(Ruby || Python)窗口管理器

时间:2009-09-06 21:23:57

标签: ruby x11 window-managers

我想用这些语言中的任何一种制作窗口管理器(最好是ruby)。老实说我不知道​​从哪里开始,除了我需要某种X模块加载。因此,如果有人有线索,如果你能指出我正确的方向,那就太好了。感谢

4 个答案:

答案 0 :(得分:6)

XCB,X的下一代API使用XML格式定义X协议并使用脚本生成特定的语言绑定。它在概念上与SWIG类似,不同之处在于它不是描述C API,而是描述X协议。

目前,C和Python存在绑定。从理论上讲,Ruby端口只是将XML协议定义语言的翻译器编写成Ruby。生成的Ruby代码可以包装C API或在纯Ruby中实现有线协议(我推荐后者)。

与传统的Xlib相比,API显然具有一些与阻止I / O相关的固有优势。它也有一个Windows端口,奇怪的是。

http://xcb.freedesktop.org/

http://xcb.freedesktop.org//XcbPythonBinding/

http://xcb.freedesktop.org//win32port/

答案 1 :(得分:2)

你看过http://ruby-xlib-wrap.sourceforge.net/了吗?这似乎为XLib提供了Ruby绑定。

在尝试编写窗口管理器之前,您可能想尝试使用XWindows。

为什么不从桌面开始,这样你就可以获得一些经验。

答案 2 :(得分:2)

注意:

1)真棒不是用lua编写的,用C语言编写。它使用Lua作为脚本/配置界面。

2)Qtile和Samurai-X是两个用python编写的。

3)Subtle是一个使用ruby作为脚本语言的wm。

Qtile和Subtle都是平铺窗口经理。

答案 3 :(得分:0)

不是Ruby或Python,但这些窗口管理器也用很酷的语言编写:awesome(Lua)和XMonad(Haskell)。也许你可以窥视他们的内部,看看他们是如何运作的。