Wie kann ich ein bestimmtes Fenster in Terminal schließen, minimieren und maximieren?


16

Ich verwende Ubuntu GNOME 15.10 mit GNOME 3.18 und frage mich, ob es eine Möglichkeit gibt, bestimmte Fenster vom Terminal aus zu schließen, zu minimieren, zu minimieren, zu maximieren und zu maximieren.

Hinweis - Ich habe mir diese Fragen und Antworten angeschaut - ich frage, wie es im Terminal gemacht werden soll ... Nicht, wie die Schaltflächen hinzugefügt werden sollen ... Die Schaltflächen sind bereits vorhanden, ich muss sie nicht hinzufügen.



@ Anastasia: Wie ist das ein Duplikat davon? Das fragt nur nach der Minimierung ... Ich frage auch nach all den anderen Dingen, die dort nicht beantwortet werden.

Ich bin davon ausgegangen, dass diese Handlungen so eng miteinander verbunden sind, dass die Beantwortung einer dieser Handlungen zu allen anderen führen sollte, aber Sie haben Recht, das mag ein weiter Bogen sein. Jetzt wundere ich mich auch, dass Teilmengen von Fragen als Duplikate gelten können.
Anastasia

@ Anastasia: Nun, da die Antworten auf die andere Frage eigentlich nicht angeben, wie dies erreicht werden soll, selbst wenn sie mir helfen würden, ist es immer noch kein Duplikat dieser Frage. Selbst wenn die Antworten auf die andere Frage meine Frage beantworten, stellt meine Frage immer noch nicht das Gleiche wie die andere Frage.

Hallo Para, ich hoffe die Frage ist noch "offen". Ein Überblick ...
Jacob Vlijm

Antworten:


17

Es gibt zwei wichtige Werkzeuge, mit denen Sie Fenster bearbeiten können cli. xdotoolund wmctrl. Beide Werkzeuge überlappen sich in ihrer Funktionalität, aber die wichtigsten Befehle, die sich auf Ihre Frage beziehen:

In einer (ohne Zweifel unvollständigen) Übersicht sind die Befehle aufgelistet, die ich am häufigsten verwende:

Ein Fenster schließen

wmctrl:

wmctrl -ic <window_id>

Ein Fenster minimieren

xdotool:

xdotool windowminimize <window_id>

Ein Fenster minimieren

wmctrl:

Eine effektive Minimierung erfolgt durch:

wmctrl -ia <window_id>

Ich erwähne effektiv , da der Befehl bewegt sich in die entsprechenden Desktop, unminimizes und hebt das Fenster, aber der Befehl auch tut , die auf Windows , die nicht minimiert werden.

Ein Fenster maximieren

xdotool:

xdotool windowsize <window_id> 100% 100%

wmctrl:

wmctrl -ir <window_id> -b add,maximized_vert,maximized_horz

Nicht maximieren eines Fensters:

wmctrl -ir <window_id> -b remove,maximized_vert,maximized_horz

Anmerkungen

  • Beide xdotoolund wmctrlnicht standardmäßig auf Ihrem System:

    sudo apt-get install xdotool wmctrl
    
  • So führen Sie einen der Befehle im derzeit aktiven Fenster aus:

    • wmctrlEntfernen Sie für Befehle die -iOption und ersetzen Sie sie <window_id>durch:ACTIVE:

    • Für xdotoolBefehle: Ersetzen <window_id>durch$(xdotool getactivewindow)

  • In vielen Fällen können Befehle unter Verwendung der Fenster-ID oder des Fensternamens ausgeführt werden . Die -iOption in wmctrlteilt wmctrlmit, dass die Fenster-ID verwendet werden soll. Ich würde vorschlagen , nicht das Fenster des Namens als Bezeichner verwenden, Namenskonflikte zu vermeiden. Es passiert leichter als man erwarten würde.

  • Aus eigener Erfahrung mit Maximieren in einem Skript; Mit wmctrlmaximieren / unmaximize kann ein bisschen Buggy auf beiden sein Unityund Gnome, während die xdotoolOption in meiner Erfahrung robuster arbeitet. In den meisten Skripten verwende ich eine Mischung aus beiden wmctrlund xdotool.

Weitere Informationen zu man wmctrl und man xdotool (hauptsächlich der Abschnitt: WINDOW COMMANDS ).


Danke für die tolle Antwort! Aber wie macht man auch ein Fenster frei?

1
@ParanoidPanda siehe meine aktualisierte Antwort :)
Jacob Vlijm

1
wmctrl -ir <window_id> -b remove,maximized_vert,maximized_horzfunktioniert nicht auf gnome 3.20
user41209

4

Hinzufügen zu Jacob Vlijms Antwort:

xdotool windowactivate $minwinid
xdotool windowraise $minwinid
xdotool windowfocus $minwinid

Funktioniert auch zum Unminimieren eines Fensters. Die Animation ist für mich schneller.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.