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

为Linux创建窗口管理器

柳向明
2023-03-14
问题内容

我想创建一个C供个人使用的简单堆叠窗口管理器,主要用于学习和挑战自我。

我浏览了twm的源代码,它的花样少,但由于它不是基于小部件工具箱的,因此它的级别似乎很低。1使用GTK
+之类的工具箱会更好吗?恐怕其中的某些代码和库twm可能过于陈旧( 编辑:
已弃用),我希望窗口管理器使用相对较新的库。为了理解,我也将对如何从头启动窗口管理器的建议感兴趣-为此目的的教程并不多。

更新: 对于那些考虑类似项目的人:我最终使用Common
Lisp和CLX库。tinywm-
lisp是基础,而出色的CLFSWM和Stumpwm则有很大的帮助。作为参考,我在Freenode上使用了CLX-
通用LISP X接口(
PDF警告#xlib


问题答案:

无论做什么,请使用XCB而不是Xlib。它是现代,异步,简单的,可让您直接访问X11协议。



 类似资料:
  • 问题内容: 我的新主项目之一将是一个简单的Window Manager,但是在开始之前,我需要了解一些事情: 哪种语言是最好的? 从哪里获得一些学习资源? 问题答案: 一个重要的决定是您将如何与X服务器通信。您可以将Xlib绑定用于您选择的语言,也可以使用更高级别的XCB绑定。(如果您很疯狂,则可以直接打开X服务器的套接字。) 要了解窗口管理器的行为方式,有两个文档指定了约定和策略:EWMH和IC

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

  • 译注 注意,由于作者对教程做出了更新,之前本节使用的是GLEW库,但现在改为了使用GLAD库,关于GLEW配置的部分现在已经被修改,但我仍决定将这部分教程保留起来,放到一个历史存档中,如果有需要的话可以到这里来查看。 在我们画出出色的效果之前,首先要做的就是创建一个OpenGL上下文(Context)和一个用于显示的窗口。然而,这些操作在每个系统上都是不一样的,OpenGL有目的地从这些操作抽象(

  • 问题内容: 是否有一个好的库可用于从鼠标/键盘/操纵杆收集Linux中的用户输入,而不会强迫您创建可见的窗口呢?SDL可让您以合理的方式获取用户输入,但似乎会迫使您创建一个窗口,如果您已抽象了控件,那么这将很麻烦,因此控制计算机不必与渲染计算机相同。但是,如果控制机器和渲染机器相同,则会在显示器顶部出现一个很小的SDL窗口。 编辑说明 : 渲染器有一个输出窗口,在正常情况下,该窗口是全屏的,除非它

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

  • pre { white-space: pre-wrap; } 创建一个窗口(window)非常简单,我们创建一个 DIV 标记: <div id="win" title="My Window">     Some Content. </div> 现在运行测试页面,您会看见一个窗口(window)显示在您的屏幕上。我们不需要写任何的 javascript 代码。 如果您希望创建一个隐藏的窗口(w