![]() |
1
61
一个重要的决定是如何与X服务器对话。你可以使用 Xlib 为您选择的语言绑定,或者您可以使用更高级别的 XCB 绑定。(如果你是 insane ,您可以直接打开X服务器的套接字。) 要了解窗口管理器应该如何操作,有两个文档指定了约定和策略: EWMH 和 ICCCM 1个 . 符合这些要求意味着您的窗口管理器将在GNOME、KDE、XFCE和任何其他桌面环境中表现良好,尽管在第一次尝试时简单地忽略它们肯定更容易。 窗口管理器不必是一个庞大而复杂的C_球。成功的窗口管理器已经用Lisp、Haskell和Python等高级语言编写,甚至一些C语言仍然很小且可读。 XMonad 这是哈斯克尔写的,在1000行以下停留了相当长的一段时间。 StumpWM (共同口齿不清)和 DWM (c)都是极简主义者。您可能能够阅读他们的源代码,以获得一些关于如何设计WM的灵感。 一 以利亚·纽伦写道:
想想看, Metacity 关于它如何与Windows交互以及它支持哪种扩展属性,文档中有一点要说明。 |
![]() |
3
12
虽然从技术上讲,另一种语言和一组库是可能的,但我认为最好的语言选择是C,以及XLIB或XCB库。大多数X的窗口管理器都使用它,而且对于这些特定的库来说,已经有了很大的发展势头和成熟度。 一些相关文件:
|
![]() |
4
8
|