[Script] Connaître la taille de l'écran
Bonjour à tous,
J'ai écrit un petit script, appelé tile_windows.sh, qui permet de positionner une fenêtre sur 1/2 ou 1/4 d'écran suivant l'argument en entrée (entier entre 1 et 8).
Par exemple si j'exécute "tile_windows.sh 1", la fenêtre qui a le focus va occuper la moitié gauche de l'écran.
Pour pouvoir faire cela, j'ai besoin de la taille de l'écran. Je la récupère pour l'instant de la manière suivante :
Mon problème est que les dimensions que j'obtiens correspondent aux dimensions totales de l'écran et pas aux dimensions "effectives" du bureau. J'appel dimension effective, la taille que peux prendre une fenêtre lorsqu'elle est maximisée sur le bureau. J'ai donc un problème quand il y a présence de barre d'outils sur les cotés de l'écran.
Petit exemple pour illustrer mes propos. Si j'ai 1600 pixels de largeur, la commande ci-dessus me donnera une largeur de 1600 (jusque là tout va bien). Supposons que j'ai une barre d'outils sur le coté gauche de l'écran qui fait 40 pixels. Je ne peux en fait placer mes fenêtres que sur une largeur de 1600 - 40 = 1560 pixels et pas 1600. Comme dans mon script, je suppose avoir 1600 pixels de largeur, mes fenêtres se chevaucheront sur 40 pixels.
Pour un bureau donné, il serait facile de compenser à la main en diminuant la largeur et la hauteur par la taille des barres d'outils. Cependant, je souhaiterais ne pas avoir à modifier mon script à chaque changement de la taille ou de la position des barres d'outils.
Savez-vous s'il existe une commande permettant d'obtenir la taille "effective" du bureau que l'on peut utiliser ?
Merci d'avance !
J'ai écrit un petit script, appelé tile_windows.sh, qui permet de positionner une fenêtre sur 1/2 ou 1/4 d'écran suivant l'argument en entrée (entier entre 1 et 8).
Par exemple si j'exécute "tile_windows.sh 1", la fenêtre qui a le focus va occuper la moitié gauche de l'écran.
Pour pouvoir faire cela, j'ai besoin de la taille de l'écran. Je la récupère pour l'instant de la manière suivante :
WIDTH='xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'' HEIGHT='xdpyinfo | grep 'dimensions:' | cut -f 2 -d 'x' | cut -f 1 -d ' ''
Mon problème est que les dimensions que j'obtiens correspondent aux dimensions totales de l'écran et pas aux dimensions "effectives" du bureau. J'appel dimension effective, la taille que peux prendre une fenêtre lorsqu'elle est maximisée sur le bureau. J'ai donc un problème quand il y a présence de barre d'outils sur les cotés de l'écran.
Petit exemple pour illustrer mes propos. Si j'ai 1600 pixels de largeur, la commande ci-dessus me donnera une largeur de 1600 (jusque là tout va bien). Supposons que j'ai une barre d'outils sur le coté gauche de l'écran qui fait 40 pixels. Je ne peux en fait placer mes fenêtres que sur une largeur de 1600 - 40 = 1560 pixels et pas 1600. Comme dans mon script, je suppose avoir 1600 pixels de largeur, mes fenêtres se chevaucheront sur 40 pixels.
Pour un bureau donné, il serait facile de compenser à la main en diminuant la largeur et la hauteur par la taille des barres d'outils. Cependant, je souhaiterais ne pas avoir à modifier mon script à chaque changement de la taille ou de la position des barres d'outils.
Savez-vous s'il existe une commande permettant d'obtenir la taille "effective" du bureau que l'on peut utiliser ?
Merci d'avance !
A voir également:
- [Script] Connaître la taille de l'écran
- Comment réduire la taille d'un fichier - Guide
- Double ecran - Guide
- Script vidéo youtube - Guide
- Capture d'écran whatsapp - Accueil - Messagerie instantanée
- Retourner ecran pc - Guide
1 réponse
À mon avis ce qu'il te faut c'est xwinfo
https://linux.die.net/man/1/xwininfo
Exemple : ici ma fenêtre est maximisée, j'ai une barre au bas de mon écran (1280x1024) :
On retrouve ici que ma barre est en bas de l'écran et fait 50px de haut.
Maintenant ma fenêtre est à peu près centrée sur mon bureau et n'en touche pas les bords.
xprop permet de récupérer l'id de la fenêtre courante et de le passer à xwininfo.
https://www.ruby-forum.com/t/title-from-current-active-window/148609
Bonne chance
https://linux.die.net/man/1/xwininfo
Exemple : ici ma fenêtre est maximisée, j'ai une barre au bas de mon écran (1280x1024) :
(mando@aldur) (~) $ xwininfo xwininfo: Please select the window about which you would like information by clicking the mouse in that window. xwininfo: Window id: 0x4000072 "[Script] Connaître la taille de l'écran | CommentCaMarche - Chromium" Absolute upper-left X: 0 Absolute upper-left Y: 0 Relative upper-left X: 0 Relative upper-left Y: 0 Width: 1280 Height: 974 Depth: 24 Visual: 0x21 Visual Class: TrueColor Border width: 0 Class: InputOutput Colormap: 0x20 (installed) Bit Gravity State: NorthWestGravity Window Gravity State: NorthWestGravity Backing Store State: NotUseful Save Under State: no Map State: IsViewable Override Redirect State: no Corners: +0+0 -0+0 -0-50 +0-50 -geometry 1280x974+0+0
On retrouve ici que ma barre est en bas de l'écran et fait 50px de haut.
Maintenant ma fenêtre est à peu près centrée sur mon bureau et n'en touche pas les bords.
(mando@aldur) (~) $ xwininfo xwininfo: Please select the window about which you would like information by clicking the mouse in that window. xwininfo: Window id: 0x4000072 "[Script] Connaître la taille de l'écran | CommentCaMarche - Chromium" Absolute upper-left X: 81 Absolute upper-left Y: 47 Relative upper-left X: 0 Relative upper-left Y: 0 Width: 1054 Height: 838 Depth: 24 Visual: 0x21 Visual Class: TrueColor Border width: 0 Class: InputOutput Colormap: 0x20 (installed) Bit Gravity State: NorthWestGravity Window Gravity State: NorthWestGravity Backing Store State: NotUseful Save Under State: no Map State: IsViewable Override Redirect State: no Corners: +81+47 -145+47 -145-139 +81-139 -geometry 1054x838+81+47
xprop permet de récupérer l'id de la fenêtre courante et de le passer à xwininfo.
https://www.ruby-forum.com/t/title-from-current-active-window/148609
Bonne chance