J'essaie d'écrire un petit script pour m'aider à gérer mes fenêtres via des raccourcis clavier.
Pour pouvoir faire ce que je veux, je dois pouvoir trouver l'emplacement et la taille actuels de la fenêtre "active" (focalisée). Par emplacement, j'entends les coordonnées X, Y de la fenêtre sur le bureau et, par taille, la hauteur et la largeur de la fenêtre.
Existe-t-il un utilitaire de ligne de commande capable d'extraire ces informations?
Vous pouvez obtenir toutes les informations pour la fenêtre active en cours en utilisant cette commande:
xwininfo -id $(xprop -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}')
ou
xwininfo -id $(xdpyinfo | grep focus | grep -E -o 0x[0-9a-f]+)
Il suffit d'analyser la sortie pour obtenir les coordonnées dont vous avez besoin. Voici quelques commandes utiles lors de l'interaction avec Windows:
Par exemple, pour changer le titre de la fenêtre active en "Nouveau nom":
wmctrl -r :ACTIVE: -N "New Name"
Ou pour changer la position de la fenêtre active:
wmctrl -r :ACTIVE: -e 0,20,20,200,400
Considérez wmctrl
si vous devez simplement changer quelque chose de simple, comme la géométrie de la fenêtre. Pensez à utiliser les autres scripts mentionnés ci-dessus uniquement si vous souhaitez effectuer d'autres tâches plus complexes.
Avec "xdotool", vous pouvez facilement interagir avec Windows en utilisant des événements au clavier ou à la souris.
Exemple d'envoi d'un CtrlC séquence à la fenêtre active:
xdotool getwindowfocus key ctrl+c # Sends CTRL+C to the current window.
Si vous avez vraiment besoin de la position de la fenêtre:
eval $(xdotool getmouselocation --Shell); echo $X $Y
Pour plus d'actions/options, consultez page de manuel .