为 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/

相关文章:

c - C中非阻塞地将数据从一个程序发送到另一个程序

c - fwrite后char数据的值发生变化

c - C中数组参数有什么区别

python - 如何保证更少的UDP数据包被丢弃?

node.js - npm-EPERM : operation not permitted on Linux

c - 多维数组的超出范围声明

静态计算地址的对齐页

linux - X11:如何在登录后运行应用程序?

x11 - Atom 为 64 位的系统上的 atom 属性的 XChangeProperty

python - clang : error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]