如何开始写一个合成的Wm



我想编写一个基本的硬件加速窗口管理器,所以我一直在寻找有关如何开始的文档,但是我只设法找到了这个教程,它使用过时的杂物版本,并且不会与当前可用的任何版本一起构建。还有其他良好的资源用于执行此操作,或者是真正的裸露的WM,以查看?

的来源

您的问题中有两个部分:1)如何编写WM 2)如何编写复合管理器

一些链接以帮助了解第二部分(除了XCOMPMGR来源之外):

  • http://www.talisman.org/~erlkonig/misc/misc/x11-composite-tutorial/(使用QT,但非常通用和低级别)
  • https://github.com/gustavosbarreto/compmgr
  • http://projects.mini-dweeb.org/projects/unagi

窗口管理器,"第一部分":

  • 我在JavaScript中有简单的〜100 loc wm:https://github.com/sidorares/node-x11/blob/master/master/examples/windowmanager/wm.js
  • 另一个极简主义的WM(在C中),很好地开始作为参考:https://code.google.com/p/winmalist/
  • 最重要的关键字:SubstructureRedirect事件蒙版。这里有一点文档

原始演示合成管理器是XCOMPMGR,我建议您了解基础X扩展。

如果您使用OpenGL来执行硬件加速渲染,则需要在EXT_texture_from_pixmap扩展程序上阅读,以避免通过用户空间复制窗口内容。该扩展程序允许您使用硬件加速的蓝图作为这些副本。

您可能还会对_net_wm_sync_request的规范感兴趣,以允许无泪的渲染同步到垂直反击。

您可以尝试使用python config(也非常容易开始)可以定制qtile,您可以在Wayland和X11之间进行选择,尽管在Python中写了这一点快速

最新更新