Je voudrais obtenir la taille de la fenêtre courante à partir d'un script shell ...
Vraiment pas grand chose d'autre à dire ... Je préférerais utiliser wmctrl.
la source
Je voudrais obtenir la taille de la fenêtre courante à partir d'un script shell ...
Vraiment pas grand chose d'autre à dire ... Je préférerais utiliser wmctrl.
wmctrl -lG
Vous donnera quelque chose comme:
oli@bert:~$ wmctrl -lG
0x0384c0d5 -1 1590 1030 330 170 bert N/A
0x01200023 -1 0 0 3840 1200 bert x-nautilus-desktop
0x01000003 -1 3840 2352 1920 24 bert Bottom Expanded Edge Panel
0x01000028 -1 0 2352 1920 24 bert Bottom Expanded Edge Panel
0x0500003e 0 676 252 1404 1015 bert Chromium
0x02e00021 0 3860 160 1361 1084 bert Liferea
0x02000047 0 6650 940 506 683 bert Social broadcast messages
0x04600004 0 4546 460 1263 833 bert oli@bert: ~
Avec cela, vous pouvez grep
et cut
vers le bas sur ces derniers de sorte que vous vous retrouvez avec les valeurs de la géométrie (colonnes 3-6).
Pour citer la page de manuel afin que vous compreniez exactement ce que sont les colonnes:
-l
Liste les fenêtres gérées par le gestionnaire de fenêtres. Une ligne est sortie pour chaque fenêtre, la ligne étant divisée en colonnes séparées par des espaces. La première colonne contient toujours l'identité de la fenêtre sous la forme d'un entier hexadécimal et la deuxième colonne contient toujours le numéro de bureau (un -1 est utilisé pour identifier une fenêtre collante). Si l'option -p est spécifiée, la colonne suivante contiendra le PID de la fenêtre sous forme d'entier décimal. Si l'option -G est spécifiée, quatre colonnes entières suivront: décalage x, décalage y, largeur et hauteur. La colonne suivante contient toujours le nom de l'ordinateur client. Le reste de la ligne contient le titre de la fenêtre (éventuellement avec plusieurs espaces dans le titre).
Je crois que wmctrl n'a pas d'option pour trouver directement l'ID de la fenêtre active .
Si quelqu'un sait comment le faire, je suis intéressé de savoir ..
Cela dit, voici quelques scripts qui affichent la taille de la fenêtre active.
C'est: wmctrl + xdotool ... (n'utilisant pas sed).
C'est: xwininfo + xdotool + sed
xwininfo
fait partie dex11-utils
la source
Utilisez
xprop
ouxwininfo
. Les deux viennent par défaut, aucune installation nécessaireExemples d'utilisation:
Les deux commandes transforment le curseur en carré / croix pour permettre de sélectionner une fenêtre particulière.
Alternativement, on peut spécifier la fenêtre en ligne de commande sous forme XID
Autres postes où ceux-ci ont été utilisés
En particulier,
xwininfo
a été activement utilisé par moi pour les scripts, comme sur ces questions AskUbuntu:la source
Les scripts shell ne connaissent pas ou ne se soucient pas des fenêtres. Au mieux, ils s'exécutent dans un terminal (qui peut ou non être affiché dans une fenêtre). Si vous souhaitez obtenir la largeur et la hauteur du terminal en caractères, utilisez l'utilitaire stty.
la source
J'ai trouvé que ça
tput cols
fonctionnait très bien!la source
wmctrl
, nous ne parlons pas de console mais de fenêtres d'environnement graphique.Vous avez 3 écrans, cette sortie 3 lignes avec les dimensions:
la source