Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(Ruby | | Python)窗口管理器_Ruby_X11_Window Managers - Fatal编程技术网

(Ruby | | Python)窗口管理器

(Ruby | | Python)窗口管理器,ruby,x11,window-managers,Ruby,X11,Window Managers,我想用这两种语言(最好是ruby)制作一个窗口管理器。我真的不知道从哪里开始,除了我需要一些X模块来加载。所以如果有人有线索的话,如果你能给我指出正确的方向,那就太好了。谢谢你看过了吗。这似乎为XLib提供了Ruby绑定 在尝试编写窗口管理器之前,您可能需要尝试使用XWindows 为什么不从桌面开始,这样您就可以获得一些经验。XCB,下一代X API使用XML格式定义X协议,并使用脚本生成特定的语言绑定。它在概念上与SWIG类似,只是它不描述C API,而是描述X协议 目前,C和Python存

我想用这两种语言(最好是ruby)制作一个窗口管理器。我真的不知道从哪里开始,除了我需要一些X模块来加载。所以如果有人有线索的话,如果你能给我指出正确的方向,那就太好了。谢谢你看过了吗。这似乎为XLib提供了Ruby绑定

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


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

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

目前,C和Python存在绑定。从理论上讲,Ruby端口只需编写一个从XML协议定义语言到Ruby的转换器。生成的Ruby代码可以包装C API,也可以用纯Ruby实现wire协议(我推荐后者)

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


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

注意:

1) Awesome不是用lua编写的,而是用C编写的。它使用lua作为脚本/配置接口

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

3) 微妙是一种使用ruby作为脚本语言的wm


Qtile和微妙都是平铺窗口管理器。

微妙是用C编写的,它只是使用Ruby作为脚本语言。