当前位置: 首页 > 面试题库 >

构建窗口管理器

卫梓
2023-03-14
问题内容

我的新主项目之一将是一个简单的Window Manager,但是在开始之前,我需要了解一些事情:

  • 哪种语言是最好的?
  • 从哪里获得一些学习资源?

问题答案:

一个重要的决定是您将如何与X服务器通信。您可以将Xlib绑定用于您选择的语言,也可以使用更高级别的XCB绑定。(如果您很疯狂,则可以直接打开X服务器的套接字。)

要了解窗口管理器的行为方式,有两个文档指定了约定和策略:EWMH和ICCCM

1。符合这些要求意味着您的窗口管理器在GNOME,KDE,XFCE和随之而来的任何其他桌面环境中都将表现良好,尽管在初次尝试时只需忽略它们当然会更容易。

窗口管理器不必是庞大而复杂的C球—成功的窗口管理器已经用Lisp,Haskell和Python等高级语言编写,甚至C语言中的一些语言仍然很小并且可读性强。用Haskell编写的XMonad在1000行以下停留了相当长的时间。StumpWM(通用Lisp)和DWM(C)都非常简约。您也许可以阅读其源代码,以获取有关如何设计WM的灵感。

1伊利亚·纽伦(Elijah Newren)写道:

不要去看这些东西。他们是真的,真的很乏味。如果这样做,您可能最终会赶上睡眠,而不是在Metacity上乱砍。;-)

想到这一点,Metacity的文档很好地说明了它如何与Windows交互以及它支持哪种扩展属性。



 类似资料:
  • Window Manager 是一种特殊的 Xclient。 使用窗口管理器时,Xserver 并不直接与其它 Xclient 通信,而是通过 WM 中转,当一些消息被定义为 WM 指令时,它们会被拦截。例如 Alt+F4 关闭窗口、拖动标题栏…… 消息“打开链接 linuxtoy.org”,具体内容如下:     输入焦点在地址栏的范围内,“linuxtoy.org”,回车      Xserv

  • 问题内容: 我想创建一个供个人使用的简单堆叠窗口管理器,主要用于学习和挑战自我。 我浏览了的源代码,它的花样少,但由于它不是基于小部件工具箱的,因此它的级别似乎很低。1使用GTK +之类的工具箱会更好吗?恐怕其中的某些代码和库可能过于陈旧( 编辑: 已弃用),我希望窗口管理器使用相对较新的库。为了理解,我也将对如何从头启动窗口管理器的建议感兴趣-为此目的的教程并不多。 更新: 对于那些考虑类似项目

  • 窗口的内容: 在 RPG 中必须要使用很多的窗口。这些窗口如何管理呢,下面我们就来讲讲这个问题。 形如Window_Xxxx 的名字的脚本很多吧,但有两个尤其重要,那就是最上面的两个。 Window_Base,基本窗口,其父类是Window Window_Selectable,项目选择窗口,其父类是Window_Base 在 RGSS 中,Window类是预先编好的,它负责确定窗口边界和背景的绘画

  • Matisse的第二个主要缺陷是它不够好,您将组件放在网格上,Matisse然后用组件的属性创建一个XML,然后为网格上的组件生成java代码。看起来很酷,但随后您决定要在表单的某个地方添加一个按钮或调整组件的大小--这个过程可能会导致所有的gui混淆,将相邻的组件扔到不同的地方--修复它可能是一个棘手的问题。即使您设法将所有组件放置在它们应该放置的位置,但手动更改了一些生成的netbeans代码

  • 就在我解决了我的第一个问题之后,这个问题出现了:(请帮我解决它... 03-02 12:47:02.785 9439-9439/com . ucu . CCS . class record E/window manager£Android . view . window leaved:Activity com . ucu . CCS . class record . log in已泄漏window

  • 主要内容:本节引言:,1.WindowManager的一些概念:,2.WindowManager使用实例:,3.文献扩展:,4.本节代码示例下载:,本节小结:本节引言: 本节给大家带来的Android给我们提供的系统服务中的——WindowManager(窗口管理服务), 它是显示View的最底层,Toast,Activity,Dialog的底层都用到了这个WindowManager, 他是全局的!该类的核心无非:调用addView,removeView,updateViewLayout这几个方