Schwierigkeiten mit Xlib und Popen
Verfasst: Sonntag 26. Oktober 2008, 22:27
Hi!
Ich beschaffe mir mit einem Skript mittels Xlib die Namen und ID's aller aktuell offenen Fenster. Jetzt soll mit Popen ein beliebiges (grafisches) Programm aufgerufen und nur dessen Name und ID zurückgegeben werden. Komischerweise wird das Fenster für das Programm zwar geöffnet, aber es erscheint kein neuer Eintrag in der Liste (müsste als letzter Eintrag erscheinen). Jemand ne Idee, was ich falsch mache? Ich nutze hier XFCE als Fenstermanager, falls das von Belang ist. Hier mal das Skript:
Sebastian
Ich beschaffe mir mit einem Skript mittels Xlib die Namen und ID's aller aktuell offenen Fenster. Jetzt soll mit Popen ein beliebiges (grafisches) Programm aufgerufen und nur dessen Name und ID zurückgegeben werden. Komischerweise wird das Fenster für das Programm zwar geöffnet, aber es erscheint kein neuer Eintrag in der Liste (müsste als letzter Eintrag erscheinen). Jemand ne Idee, was ich falsch mache? Ich nutze hier XFCE als Fenstermanager, falls das von Belang ist. Hier mal das Skript:
Code: Alles auswählen
from subprocess import Popen
from Xlib.display import Display
from Xlib.X import AnyPropertyType
Popen(['gnome-terminal'])
display = Display()
screen = display.screen()
root = screen.root
win_list = display.intern_atom('_NET_CLIENT_LIST')
list_content = root.get_full_property(win_list, AnyPropertyType)
win_ids = [win_id for win_id in list_content.value] # gesonderte LC, weil spaeter auf das letzte Element zugegriffen werden soll
for win_id in win_ids:
name = display.create_resource_object('window', win_id).get_wm_name()
print win_id, name