代码之家  ›  专栏  ›  技术社区  ›  Iceland_jack

为Linux创建窗口管理器

  •  24
  • Iceland_jack  · 技术社区  · 15 年前

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

    我已经看过了 twm 1 太瓦 可能太过时了( 编辑: 我希望窗口管理器使用相对现代的库。为了理解我也会感兴趣的建议如何启动一个窗口管理器从零开始有没有很多教程为这个目的。

    对于那些考虑类似项目的人:我最终使用了commonlisp和 CLX library tinywm-lisp 作为基础和辉煌 CLFSWM Stumpwm CLX — Common LISP X Interface PDF警告 )以及 #xlib 在Freenode上。

    8 回复  |  直到 14 年前
        1
  •  23
  •   Serge    15 年前

    不管你做什么,使用XCB而不是Xlib。它是现代的、异步的、更简单的,让您可以直接访问X11协议。

        2
  •  8
  •   Chuan Ji    11 年前

    我已经写了一个深入的教程系列,展示了如何在C++中编写X11窗口管理器:

    此外,您还可以查看一个简单的窗口管理器示例basic\u wm,位于

    出于教学目的,它被大量评论。

    关于Xlib和XCB-如果你是第一次开始的话,我会推荐Xlib而不是XCB。XCB效率更高,但它的级别更低,更冗长(想想GUI的汇编语言)。在你已经有了一个原型工作之前,你不想过早的优化给自己带来负担。

        3
  •  6
  •   quinmars    15 年前

    wm2 . 我没有读过源代码,因此我不知道它是否是一个教学示例。当然,您可以使用已经为您完成了许多抽象和绘图工作的库 gdk gtk . 但由于这个项目只是为了个人学习,我会努力直接使用Xlib。

    以下是一些可能对您有用的链接:

        4
  •  6
  •   Dave    15 年前

    看看你的密码 dwm . 代码库很漂亮,也很容易理解。整个过程大约有2000行。

        5
  •  2
  •   zwol    15 年前

    http://code.google.com/p/partiwm/ 是一个试图从头开始编写窗口管理器(平铺,而不是堆叠)的程序,通读代码可能对您有用。

        6
  •  2
  •   Community Mohan Dere    9 年前

    metacity对某些UI元素使用gtk。看看它的黑客和自述。

    另请参见 Where are some good Xlib programming guides?

        7
  •  2
  •   Frank Hale    15 年前

    为了理解,我也会感兴趣的建议,如何启动一个窗口管理器从零开始

    您可能想看看aewm窗口管理器。代码很小,基本功能也做得很好。它是用C写的,使用Xlib。

    http://www.red-bean.com/decklin/aewm/

        8
  •  0
  •   Gaius    15 年前

    Xmonad 也许是个好的开始。

    推荐文章