Wie schalte ich mit Python und dem Xlib-Modul zwischen den Arbeitsbereichen meines Fenstermanagers um?
Dies ist mein vielversprechendster Versuch:
#!/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])
Der obige Code ist schamlos von verschiedenen Stellen im PyPanel-Quellcode gestohlen; leider tut er nichts, nicht einmal eine Warnung/Ausnahme erzeugen. Bin ich etwas hier fehlt?
Ich verwende Python und PyGTK. Xlib scheint die richtige Wahl für das Umschalten von Desktops zu sein. Ich habe nicht vor, wnck (fehlerhaftes Python-Modul) oder ähnliches zu verwenden, aber ich wäre trotzdem dankbar für Hinweise.
Ich möchte hinzufügen, dass dies mein erster Versuch ist, eine Python-Anwendung mit Xlib (oder PyGTK) zu schreiben.