python - 我可以在 openbox 中使用 _NET_WM_WINDOW_TYPE_DOCK EWHM 扩展吗?
问题描述
Openbox在这里被声明为符合 EWMH 标准。我想使用这个合规层来实现一个无装饰的窗口,正如这个问题的最佳答案所建议的那样。
因此,我正在尝试使用 python 和 Xlib 构建一个简单的窗口,该窗口使用 _NET_WM_WINDOW_TYPE_DOCK 类型提示来摆脱窗口装饰。但是该过程失败并显示以下代码:
from Xlib import X, display
d = display.Display()
s = d.screen()
w = s.root.create_window(10, 10, 100, 100, 1, s.root_depth, background_pixel=s.black_pixel, event_mask=X.ExposureMask|X.KeyPressMask)
int_atom = d.intern_atom('int')
wm_window_type = d.intern_atom('_NET_WM_WINDOW_TYPE')
wm_window_type_dock = d.intern_atom('_NET_WM_WINDOW_TYPE_DOCK')
w.change_property(wm_window_type, int_atom, 32, [wm_window_type_dock, ], X.PropModeReplace)
w.map()
d.next_event()
d.next_event()
print(w.get_full_property(wm_window_type, X.AnyPropertyType).value[0])
print(wm_window_type_dock)
窗户出现了,但仍然有装饰品。最后两个打印语句都返回434
,所以我猜这个窗口确实有一个有效的 EWMH window_type。所以问题是双重的:
我的代码是否适用于此目的?
openbox 应该画一个无装饰的窗口吗?(为什么不呢?)
解决方案
好吧,我花了大约 12 个小时才找到答案:
我在change_property
. 电话应该是:
w.change_property(wm_window_type, Xatom.ATOM, 32, [wm_window_type_dock, ], X.PropModeReplace)
因此,使用相关import
语句,整个代码变为:
from Xlib import X, Xatom, display
d = display.Display()
s = d.screen()
w = s.root.create_window(10, 10, 100, 100, 1, s.root_depth, background_pixel=s.black_pixel, event_mask=X.ExposureMask|X.KeyPressMask)
wm_window_type = d.intern_atom('_NET_WM_WINDOW_TYPE')
wm_window_type_dock = d.intern_atom('_NET_WM_WINDOW_TYPE_DOCK')
w.change_property(wm_window_type, Xatom.ATOM, 32, [wm_window_type_dock, ], X.PropModeReplace)
w.map()
d.next_event()
d.next_event()
print(w.get_full_property(wm_window_type, Xatom.ATOM).value[0])
print(wm_window_type_dock)
哪个按预期工作(请注意,如果您的屏幕背景是黑色的,您应该更改 background_pixel 值以查看任何内容)。
推荐阅读
- javascript - 如何在一个 localStorage 键中存储多个值?
- r - R:如何计算数据框中变量的重复字符观察值
- prolog - CHR:管理“约束存储”
- git - 使用 Git 将具有不相关历史记录的新分支合并到存储库子目录中
- javascript - 覆盖对等依赖项时出错 - npm install reactstrap
- postgresql - 基于外键递归更新行
- php - 使用 WPGraphQL 在草稿模式下获取帖子
- python - Python,KivyMD - 从 Checkboxes 获取数据,文本输入,一定有更好的方法
- excel - 我想创建一个宏来删除范围内字符串之后的空格。尝试修剪并没有做任何事情
- python-3.x - 流式传输实时 Websocket 流数据并在类中使用破折号更新绘图图