5 Stimmen

Python: wie man zwischen Arbeitsbereichen mit Xlib wechseln?

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X