Java中的工作空间又称台式机
在发现和/或设置我的应用程序位于哪个桌面/工作区(当然是在Linux/Solaris下)方面有什么进步吗?在现代窗口管理器上发现/设置桌面是通过阅读/设置EWMH规范中的Java中的工作空间又称台式机,java,desktop,x11,workspace,ewmh,Java,Desktop,X11,Workspace,Ewmh,在发现和/或设置我的应用程序位于哪个桌面/工作区(当然是在Linux/Solaris下)方面有什么进步吗?在现代窗口管理器上发现/设置桌面是通过阅读/设置EWMH规范中的\u NET\u WM\u desktop属性来完成的() 我不知道有哪种封装整齐的API公开了这一功能,但谷歌出现了,这可能是一个开始。我是该项目的作者,该项目由“NetFrmeExtents.java”链接 以下是我的答案: 除非swing/awt现在已经实现了它,否则在纯java中很难做到这一点。最直接(也是唯一?)的方法
\u NET\u WM\u desktop
属性来完成的()
我不知道有哪种封装整齐的API公开了这一功能,但谷歌出现了,这可能是一个开始。我是该项目的作者,该项目由“NetFrmeExtents.java”链接 以下是我的答案: 除非swing/awt现在已经实现了它,否则在纯java中很难做到这一点。最直接(也是唯一?)的方法是使用JNI并通过xlib/xcb实现。但是你可以按照你的要求去做 有一个叫做EWMH的桌面约定可以帮助您实现所需的功能。 您需要执行的步骤的基本顺序是:
如果您做的一切都正确并且窗口管理器支持ewmh(大多数都支持)它应该可以工作。我已经找到了一种方法,通过KD3 KWin使用窗口id,但我发现发现发现窗口id同样困难。如何获得_NET_VM_DESKTOP属性?我最终通过JIN从Xlib获取窗口id,然后进入KWin来操作框架的桌面设置。