XlibモジュールでPythonを使用してウィンドウマネージャーのワークスペースを切り替えるにはどうすればよいですか?
これは私の最も有望な試みです:
#!/usr/bin/python
from Xlib import X, display, error, Xatom, Xutil
import Xlib.protocol.event
screen = Xlib.display.Display().screen()
root = screen.root
def sendEvent(win, ctype, data, mask=None):
""" Send a ClientMessage event to the root """
data = (data+[0]*(5-len(data)))[:5]
ev = Xlib.protocol.event.ClientMessage(window=win, client_type=ctype, data=(32,(data)))
if not mask:
mask = (X.SubstructureRedirectMask|X.SubstructureNotifyMask)
root.send_event(ev, event_mask=mask)
# switch to desktop 2
sendEvent(root, Xlib.display.Display().intern_atom("_NET_CURRENT_DESKTOP"), [2])
上記のコードは、PyPanelソースのさまざまな場所から恥知らずに盗まれています。残念ながら、それは何もしません、警告/例外さえ生成しません。ここで何かが足りませんか?
PythonとPyGTKを使用しています。Xlibは、デスクトップを切り替えるための正しい選択のようです。wnck(バギーPythonモジュール)などを使用するつもりはありませんが、とにかくポインタをいただければ幸いです。
Xlib(またはPyGTK)を使用してPythonアプリケーションを作成するのはこれが初めての試みであると付け加えるかもしれません。