Comment basculer entre les espaces de travail de mon gestionnaire de fenêtres en utilisant Python avec le module Xlib?Python: comment basculer entre les espaces de travail en utilisant Xlib?
Ceci est ma tentative la plus prometteuse:
#!/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])
Le code ci-dessus est sans vergogne volé à divers endroits dans la source PyPanel; malheureusement, il ne fait rien, ne génère même pas d'avertissement/d'exception. Est-ce que j'ai râté quelque chose? J'utilise Python et PyGTK. Xlib semble être le bon choix pour changer de bureau. Je n'ai pas l'intention d'utiliser wnck (module buggy Python) ou similaire, mais j'apprécierais n'importe quel pointeur de toute façon.
Je pourrais ajouter que c'est ma première tentative d'écriture d'une application Python en utilisant Xlib (ou PyGTK).
Merci beaucoup! L'ajout de display.flush() le fait fonctionner. – Philip