2009-09-06 109 views
5

我想用這兩種語言中的任何一種製作窗口管理器(最好是ruby)。我真的不知道從哪裏開始,除了我需要某種X模塊來加載。所以如果任何人有線索,如果你能指出我的方向是正確的,那將是非常好的。謝謝(Ruby || Python)窗口管理器

回答

6

XCB,X的下一代API使用XML格式來定義X協議並使用腳本生成特定的語言綁定。它在概念上與SWIG類似,不同之處在於它不描述C API,而是描述X協議。

目前,C和Python存在綁定。從理論上講,Ruby端口只是一個從XML協議定義語言到Ruby編寫翻譯器的問題。生成的Ruby代碼可以包裝C API或在純Ruby中實現有線協議(我推薦後者)。

這個API顯然比傳統的Xlib有關阻塞I/O有一些固有的優勢。它也有一個Windows端口,很奇怪。

http://xcb.freedesktop.org/

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

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

2

你看過http://ruby-xlib-wrap.sourceforge.net/。這似乎爲XLib提供了Ruby綁定。

在嘗試編寫窗口管理器之前,您可能需要嘗試使用XWindows。

爲什麼不從桌面開始,所以你可以得到一些經驗。

0

不Ruby或Python,但這些窗口管理器也被寫在陰涼語言:awesome(LUA)和XMonad(哈斯克爾)。也許你可以偷看他們的內部,看看他們是如何工作的。

2

注:

1)真棒不是寫在LUA,它寫在C.它使用的Lua作爲腳本/配置界面。

2)Qtile和Samurai-X是兩個用Python寫的。

3)微妙是一個wm使用紅寶石作爲腳本語言。

Qtile和Subtle都是平鋪窗口管理器。

+0

細微之處在於用C編寫,它只是使用Ruby作爲腳本語言。 – unexist 2010-04-18 22:58:54