Comment fermer, minimiser et maximiser une fenêtre spécifiée à partir du terminal?


17

J'utilise Ubuntu GNOME 15.10 avec GNOME 3.18 et je me demande s'il existe un moyen à partir de Terminal pour fermer, minimiser, minimiser, maximiser et maximaliser les fenêtres spécifiées?

Remarque - J'ai regardé cette Q&R - Je demande comment le faire à partir du terminal ... Pas comment ajouter les boutons ... Les boutons sont déjà là, je n'ai pas besoin de les ajouter.



@Anastasia: Comment est-ce un double de cela? Cela ne pose que des questions sur la minimisation ... Je pose également des questions sur toutes les autres choses auxquelles on ne répond pas ici.

J'ai supposé que ces actions sont si étroitement liées que répondre à l'une devrait conduire à toutes les autres, mais vous avez raison, cela peut être un large balayage. Maintenant, je me demande également dans les sous-ensembles de questions peuvent être considérés comme des doublons.
Anastasia

@Anastasia: Eh bien, parce que les réponses à l'autre question ne mentionnent pas réellement comment y parvenir, même si elles pourraient m'aider, ce n'est toujours pas un double de cette question. De plus, même si les réponses à l'autre question répondent à ma question, ma question ne demande toujours pas la même chose que l'autre demande.

Salut Para, j'espère que la question est toujours "ouverte". Un aperçu ...
Jacob Vlijm

Réponses:


18

Il existe deux outils importants pour manipuler les fenêtres cli; xdotoolet wmctrl. Les deux outils se chevauchent dans la fonctionnalité, mais les commandes les plus importantes se référant à votre question:

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

Fermer une fenêtre

wmctrl:

wmctrl -ic <window_id>

Réduire une fenêtre

xdotool:

xdotool windowminimize <window_id>

Minimiser une fenêtre

wmctrl:

la minimisation efficace se fait par:

wmctrl -ia <window_id>

Je le mentionne efficacement , car la commande se déplace vers le bureau correspondant, minimise et ouvre la fenêtre, mais la commande fait également cela sur les fenêtres qui ne sont pas minimisées.

Maximiser une fenêtre

xdotool:

xdotool windowsize <window_id> 100% 100%

wmctrl:

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

Désagrandir une fenêtre:

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

Remarques

  • Les deux xdotoolet wmctrlne sont pas sur votre système par défaut:

    sudo apt-get install xdotool wmctrl
    
  • Pour exécuter l'une des commandes sur le serveur actuellement actif fenêtre :

    • pour les wmctrlcommandes, supprimez l' -ioption, remplacez <window_id>par:ACTIVE:

    • pour les xdotoolcommandes: remplacer <window_id>par$(xdotool getactivewindow)

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

  • D'après ma propre expérience, en utilisant la maximisation dans un script; Utiliser wmctrlpour maximiser / dé-maximiser peut être un peu bogué sur les deux Unityet Gnome, alors que l' xdotooloption fonctionne plus robuste dans mon expérience. Dans la plupart des scripts, je finis par utiliser un mélange des deux wmctrletxdotool .

Plus d'informations sur man wmctrl et man xdotool (principalement la section: COMMANDES DE FENÊTRES ).


Merci pour la bonne réponse! Mais comment minimiser également une fenêtre?

1
@ParanoidPanda voir ma réponse mise à jour :)
Jacob Vlijm

1
wmctrl -ir <window_id> -b remove,maximized_vert,maximized_horzne fonctionne pas sur gnome 3.20
user41209

4

Ajoutant à la réponse de Jacob Vlijm:

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

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.