web-dev-qa-db-fra.com

Comment fermer, réduire et agrandir une fenêtre spécifiée à partir de Terminal?

J'utilise Ubuntu GNOME 15.10 avec GNOME 3.18 et je me demande s’il existe un moyen de fermer Terminal, de minimiser, de minimiser, de minimiser, de maximiser et de minimiser la maximisation des fenêtres spécifiées?

Note - J'ai regardé cette Q & A - Je demande comment faire depuis Terminal ... Pas comment ajouter les boutons ... Les boutons sont déjà là, je n'ai pas besoin de Ajoutez-les.

15
user364819

Il existe deux outils importants pour manipuler les fenêtres à partir de cli; xdotool et wmctrl. Les fonctionnalités des deux outils se chevauchent, mais les commandes les plus importantes se rapportant à votre question:

Dans un aperçu (sans doute incomplet), listant les commandes que j'utilise le plus:

Fermer une fenêtre

wmctrl:

wmctrl -ic <window_id>

Minimiser une fenêtre

xdotool:

xdotool windowminimize <window_id>

Diminuer une fenêtre

wmctrl:

efficacement ​​la réduction est effectuée par:

wmctrl -ia <window_id>

Je mentionne effectivement, puisque la commande se déplace sur le bureau correspondant, minimise et soulève la fenêtre, mais la commande aussi le fait sur les fenêtres qui ne sont pas réduites.

Maximiser une fenêtre

xdotool:

xdotool windowsize <window_id> 100% 100%

wmctrl:

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

Maximiser une fenêtre:

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

Remarques

  • xdotool et wmctrl ne sont pas sur votre système par défaut:

    Sudo apt-get install xdotool wmctrl
    
  • Pour exécuter l’une des commandes de la fenêtre en cours active:

    • pour les commandes wmctrl, supprimez l'option -i, remplacez <window_id> par :ACTIVE:

    • pour les commandes xdotool: remplacez <window_id> par $(xdotool getactivewindow)

  • Dans de nombreux cas, les commandes peuvent être exécutées à l'aide de id de fenêtre ou de nom de la fenêtre. L'option -i dans wmctrl indique à wmctrl d'utiliser l'ID de fenêtre. Je suggérerais pas d'utiliser le nom de la fenêtre comme identifiant pour éviter les conflits de noms. Cela se produit plus facilement que prévu.

  • De ma propre expérience, en utilisant maximiser dans un script; Utiliser wmctrl pour maximiser/unmaximize peut être un peu buggé à la fois pour Unity et Gnome, alors que l'option xdotool fonctionne mieux, à mon avis. Dans la plupart des scripts, je finis par utiliser un mélange de wmctrl et xdotool.

Plus d'infos sur man wmctrl et man xdotool (principalement la section: WINDOW COMMANDS ).

16
Jacob Vlijm

Ajoutant à la réponse de Jacob Vlijm:

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

Fonctionne également pour déminimer une fenêtre. L'animation est plus rapide pour moi.

4
asdfdsa