ruby - (Ruby || Python) 窗口管理器

标签 ruby x11 window-managers

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

最佳答案

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

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

与阻塞 I/O 相关的遗留 Xlib 相比,该 API 显然具有一些固有优势。奇怪的是,它还有一个 Windows 端口。

http://xcb.freedesktop.org/

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

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

关于ruby - (Ruby || Python) 窗口管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1386762/

相关文章:

mysql - 2 个 HTTP 请求同时检查记录是否存在,如果不存在则创建它 = 重复记录

ruby - 为什么我不能在 Ruby 脚本中访问我的 bash 提示符?

r - 防止R新打开的设备获得焦点

X11:通过命令行提升现有窗口?

java - 如何停止/解决 Java 应用程序在 Linux 窗口管理器中窃取焦点

ruby - 我应该如何为 Ruby 关键字参数提供 YARD/RDoc 文档?

ruby-on-rails - ActiveRecord 存在吗?与协会

c - 如何在 linux、X 下以合法和编程方式捕获第二个鼠标或轨迹球?

gnome - 删除 Gnome 中的标题栏

c++ - 除非调整大小,否则 XLib 应用程序不会重绘