为 Linux 创建一个窗口管理器

标签 c linux x11 window-managers window-management

<分区>

我想创建一个简单的堆栈窗口管理器(C)供私有(private)使用,主要是为了学习和挑战自己。

我查看了 twm 的源代码,它的花里胡哨的东西相对较少,但看起来水平很低,因为它不是基于小部件工具包。 1 使用诸如 GTK+ 之类的工具包会更好吗?恐怕 twm 中的某些代码和库可能太过时(edit: 已弃用),我希望窗口管理器使用相对现代的库。为了便于理解,我也对如何从头开始启动窗口管理器的建议感兴趣——没有太多用于此目的的教程。

更新:对于那些考虑类似项目的人:我最终使用了 Common Lisp 和 CLX library . tinywm-lisp作为基础和辉煌CLFSWMStumpwm是一个很大的帮助。作为引用,我使用了 CLX — Common LISP X Interface (PDF 警告)和 Freenode 上的 #xlib

最佳答案

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

关于为 Linux 创建一个窗口管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3472540/

相关文章:

linux - 需要将 jenkins 日志文件推送到 Amazon S3 存储桶

r - 在 Ubuntu 上使用 R 获取抗锯齿绘图

c - 如果窗口内容更改,则自动截取 x 服务器的屏幕截图

c - 使用scanf在C中读取多个字符数组

c - MSP430 (msp430-gcc) 链接器 undefined reference

c - 为什么 frexp/ldexp 的有效范围是 [0.5, 1.0)?

python - 无法在python中导入模块

c - 如何在 C 中一起使用 libevent 和 pthread

使用 fork 创建进程树

docker - 在 Docker 中运行 Chromium - Gtk : cannot open display: :0