Ubuntu: Wie sende ich einen "close" -Befehl an ein Fenster mit einem Titel, der einer Regex entspricht?

5

Ich muss in einigen Programmen ein Fenster programmgesteuert schließen, basierend auf dem Fenstertitel.

Gibt es ein Tool oder einen eingebauten Systembefehl, den ich dafür verwenden kann?

GJ.
quelle

Antworten:

11

wmctrlkann ein Fenster basierend auf einer Teilzeichenfolge oder einer genauen Übereinstimmung des Fenstertitels ( wmctrl -c 'substring'oder wmctrl -F -c 'exact match') schließen.

Wenn Sie mehr Kontrolle benötigen, können Sie wmctrl -ldie übereinstimmenden Fenster-IDs analysieren , extrahieren und an übergeben wmctrl -i -c. Sie können wmctrl -x -ldie Klasse auch verwenden und anpassen. In der Tat empfehle ich es, da Anwendungen, an die Sie nicht gedacht haben, möglicherweise Fenster mit demselben Titel haben.

Gilles
quelle
Danke vielmals. Wenn ich jedoch über ssh verbunden bin, gibt wmctrl "Kann Anzeige nicht öffnen" zurück. Gibt es einen Weg, um das zu umgehen?
GJ.
@GJ: Programme stellen normalerweise eine Verbindung mit der Anzeige her, die von der DISPLAYUmgebungsvariablen angegeben wird. Wenn Sie über verbunden sind sshund die X-Weiterleitung aktiviert ist, wird wmctrlauf Ihrem Display verfahren. ohne X Weiterleitung DISPLAYwird nicht gesetzt. Sie müssen auch den Cookie angeben: Dies ist ein Kennwort, das beim Anmelden generiert und in der in der XAUTHORITYUmgebungsvariablen angegebenen Datei gespeichert wird. Lesen Sie dies , und wenn Sie es immer noch nicht herausfinden können, stellen Sie eine weitere Frage zum Fernsteuern über ein X-Display.
Gilles