x11 - 编写窗口管理器的现代方法

标签 x11 xlib window-managers

我正在尝试编写一个窗口管理器。 (实际上,我已经编写了一个操作系统和一个编译器,但这不是重点。)

XLib 和 xcb 并不是很讨厌,至少不是按照例如 win32 标准,但它们绝对是非常古老的,并且不能很好地适合体面的抽象来让我的生活更轻松。不仅如此,现代高级语言明显缺乏良好的绑定(bind)。

我的问题是:现在这些低级的东西真的有必要吗?是否存在可以为我封装所有讨厌的东西的库?我有一个模糊的内存,启蒙运动的人做过这样的事情,但是什么也找不到。或者像 GDK 这样的现代小部件库是否有足够的功能,我不需要接触 Xlib 层?

任何具有 Java 绑定(bind)的库都特别令人感兴趣...

最佳答案

这是一个迟到的答案,所以也许它不再具有太大的相关性,但无论如何我都会发布它,因为其他人可能正在寻找它......

我问过自己同样的问题,得出的结论是不存在这样的东西,尤其是在 Java 中。虽然某些小部件工具包,如 qt,为您提供了使用现有显示结构并从现有 xlib 窗口句柄创建小部件的可能性,但您仍然必须使用 xlib/xcb 来完成与 X 服务器通信的讨厌工作wm具体操作。正如其他人所说,其他库,如 GDK 和启蒙,也提供了很好的基本抽象工作。

尽管如此,我对所有这些都使用 C/C++ 并坐在我懒惰的屁股上等到有人用 Java 为我完成工作不是一种选择感到不满意,我开始编写自己的库,让你可以用 Java 构建您自己的模块化 WM。
https://github.com/Zubnix/trinityshell

关于x11 - 编写窗口管理器的现代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5811332/

相关文章:

c - XCreateGC() 中的 (value)mask 真的有必要吗?

c++ - 使用 Xlib 时 XCode 中的链接错误

gdb - xlib集成调试(Tracing)

python - 带有框的 pygtk 窗口忽略所有 X(鼠标)事件(通过它们)

lua - 任务列表项的很棒的 wm 设置大小

c++ - X11 具有 undefined reference 的功能,但似乎没问题。 IDE 不会提示那些库

c - 在位操作中使用 'char' 变量

ruby - Ruby 桌面环境

linux x11 窗口管理器 - 阻止鼠标事件

x11 - 主"java.awt.AWTError : Can't connect to X11 window server using ':99' as the value of the DISPLAY variable