Skript ausführen sobald bestimmtes Fenster geöffnet/geschlossen

I

Ivi

Jungspund
Hallo,

ich suche ein Tool um Skripte auszuführen sobald ein bestimmtes Fenster, z. b. zu erkennen am Titel, geöffnet oder geschlossen wird. Gibt es sowas?

Ivi
 
z.B. xev - aber je nach dem, was Du genau vorhast gibt's evtl. noch viele andere mögliche "Lösungen"
 
Ich versuch mal zu erklären was ich erreichen will, auch wenn es vielleicht etwas die Holzhammermethode ist. Ich habe bisher meinen Spiele-PC auf Windows-Basis gehabt und den jetzt umgestellt (genauer: es ist ein Dualboot und ich will nur noch Linux nutzen). Einige der Spiele sind reine Windows-Spiele, laufen aber per Wine. Eine davon verhält sich komisch.

1.) Das Spiel startet normal, es kommen Werbeinblendungen der Entwickler (ist Freeware, aber kein Open-Source) - hier muss ich einmal mit Enter bestägen
2.) Es kommt eine Abfrage ob ich im Window- oder Fullscreen-Mode spielen will
3.) Das Spiel startet

Zwischen Schritt 2 und 3 passiert etwas komisches. Das Fenster in Schritt ist inaktiv und passt sich per Tastatur oder Fernbedienung nicht steuern, außer man wählt es mit ALT+Tab aus. Das Fenster hat laut xwininfo den gleichen Namen wie das Fenster in Schritt 1 und 2 und es wird auch kein neues Fenster geöffnet (außer das ganze passiert so schnell, dass man nicht einmal ein Flackern sieht; unwahrscheinlich). Das Problem hatte ich auch unter Windows, hier konnte ich mit Tools das Fenster einfach immer im Vordergrund halten. Mit devilspie z. B. geht das NICHT. Das Fenster bis Schritt 2 wird aktiviert, in Schritt 3 nicht mehr (außer ich beendet devilspie und starte es neu). Eine bisherige Holzhammermethode besteht nun darin einfach eine Endlosschleife laufen zu lassen:

Code:
while true
do
wmctrl -a "Super Mario Bros 3 : Mario Forever"
done

Dadurch ist das Fenster immer aktiv, das Script läuft aber bis zum nächsten Reboot weiter. Bisher passiert nichts schlimmes wenn ich andere Spiele starte. Ich würde es dennoch gerne beenden oder überhaupt erst starten wenn ein Fenster mit betreffenden Namen geöffnet ist - in der Hoffnung, dass es im (Gegensatz zu devilspie) läuft.

Nachtrag
Sowas wie

Code:
wmctrl -R "Super Mario Bros 3 : Mario Forever" -b add,above

geht nicht. Das Fenster wird zwar nach oben verschoben, ist aber dennoch inaktiv.
 

Ähnliche Themen

Skript bei Lubuntu nach jedem Start ausführen

Tastaursignale für ein bestimmtes Programm ändern

OpenJDK8 unter Debian7.11/sparc64/kernel 3.16 kompilieren

grub-pc Probleme bei upgrade

Befehl beim Session beenden

Zurück
Oben