我正在制作一个程序,我需要在屏幕上锁定窗口的位置,有人会认为最简单的方法是使用 _NET_WM_ALLOWED_ACTIONS 但显然没有用,或者我不知道它是如何工作的 xD.. . 我试图发送一个事件,像这样:
def getatom (atom):
return self.display.intern_atom(atom)
data = [getatom("_NET_WM_ACTION_ABOVE"),getatom("_NET_WM_ACTION_CLOSE"),
getatom("_NET_WM_ACTION_BELOW"),getatom("_NET_WM_ACTION_CHANGE_DESKTOP"),
getatom("_NET_WM_ACTION_SHADE")]
state = getatom("_NET_WM_ALLOWED_ACTIONS")
event = Xlib.protocol.event.ClientMessage(window = window, client_type = state, data = (32, data))
root.send_event(event, X.SubstructureRedirectMask)
self.display.sync()
那什么也没做,如果我使用 xprop 允许的操作是 _NET_WM_ACTION_ABOVE、_NET_WM_ACTION_CLOSE、_NET_WM_ACTION_BELOW、_NET_WM_ACTION_CHANGE_DESKTOP 和 _NET_WM_ACTION_SHADE 但我仍然可以移动窗口,我真的不知道该怎么做/它是如何工作的,如果有人能澄清我的话给我一个例子会很感激。