web-dev-qa-db-fra.com

Maximiser une application avec un PID connu de la CLI

J'ai besoin de maximiser la fenêtre d'une application lorsqu'elle est réduite à l'aide de la ligne de commande uniquement.

Alors, comment faire cela en connaissant l'identifiant du processus.

En travaillant sur la commande wmctrl, j'ai l'erreur suivante:

X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  20 (X_GetProperty)
  Resource id in failed request:  0x6718
  Serial number of failed request:  11
  Current serial number in output stream:  11
3
Maythux

Cela devrait fonctionner:

xdotool windowactivate `xdotool search --pid YOUR_PID_HERE | tail -1`

xdootool signale pas mal d'identifiants de fenêtre lors de la recherche par pid, alors j'ai "ajusté" la sortie pour obtenir uniquement le dernier identifiant de fenêtre. Pour moi, cela fonctionnait bien avec Firefox et gnome-calculator. Si xdotool ne signale qu'un seul identifiant de fenêtre pour votre pid, le tuyau d'échappement est bien entendu inutile.

6
falconer

Vous pouvez utiliser wmctrl ( page de manuel ) pour manipuler les fenêtres à partir de la ligne de commande.

  1. Installez le programme en utilisant Sudo apt-get install wmctrl ou tout autre gestionnaire de paquets avec lequel vous vous sentez à l'aise.
  2. Obtenez l'ID de fenêtre appartenant à votre PID. wmctrl -lp liste toutes les fenêtres existantes avec leur ID de fenêtre dans la première et le PID dans la deuxième colonne de la sortie.
  3. Soulevez la fenêtre avec wmctrl -iR <window ID> ou wmctrl -ia <window ID>, selon que vous souhaitez basculer vers son bureau ou le déplacer vers le bureau actuel.
4
drc

Cela devrait le faire:

awk '$3 == 17213 {print $1}' <(wmctrl -lp) | xargs -i% sh -c "xwit -id % -pop -raise; wmctrl -i -r % -b add,maximized_vert,maximized_horz"

Vous devrez modifier l'ID dans l'instruction awk, mais cela maximisera et activera la fenêtre. Vous aurez également besoin d'installer xwit (Sudo apt-get install xwit) pour que la suppression de minimisation fonctionne.


La raison pour laquelle cela est si compliqué est qu’aucun outil ne fait tout ce dont vous avez besoin et que ceux qui sont légèrement capables ont des problèmes terminaux:

  • xdotool ne peut pas rechercher par PID (bien qu'il s'agisse d'une fonctionnalité annoncée)
  • wmctrl ne sait pas comment minimiser et maximiser les choses
  • xwit ne peut pas changer astuces de fenêtre, mais cela peut annuler la minimisation

Idéalement, c'est quelque chose que vous devriez être capable de faire avec juste xdotool ou wmctrl, mais leurs recherches de PID ne fonctionnent ni n'existent, respectivement.

1
Oli