我想爲我用Python編寫的Gtk應用程序在屏幕上保留一些空間。我已經寫了這個功能:無法更改_NET_WM_STRUT_PARTIAL屬性
import xcb, xcb.xproto
import struct
def reserve_space(xid, data):
connection = xcb.connect()
atom_cookie = connection.core.InternAtom(True, len("_NET_WM_STRUT_PARTIAL"),
"_NET_WM_STRUT_PARTIAL")
type_cookie = connection.core.InternAtom(True, len("CARDINAL"), "CARDINAL")
atom = atom_cookie.reply().atom
atom_type = type_cookie.reply().atom
data_p = struct.pack("I I I I I I I I I I I I", *data)
strat_cookie = connection.core.ChangeProperty(xcb.xproto.PropMode.Replace, xid,
atom, xcb.xproto.Atom.CARDINAL, 32, len(data_p), data_p)
connection.flush()
它的調用是這樣的:
utils.reserve_space(xid, [0, 60, 0, 0, 0, 0, 24, 767, 0, 0, 0, 0])
不幸的是,這是行不通的。我的代碼中有哪些錯誤?
UPD: Here是我的xprop輸出。我的WM是Compiz。
你可以在調用之前和之後打印'xprop -id [xid here]'嗎?你使用的是什麼窗口管理器? –