Spécification de la géométrie des fenêtres X dans les coordonnées obtenues à partir de wmctrl

9

Dans la documentation X je lis que le Width, Height, Xpositionet Ypositioncoordonnées doivent être spécifiées en caractères terminaux lors de l' utilisation:

gnome-terminal --geometry=WidthxHeight+Xposition+Yposition

Si j'utilise comme coordonnées d'entrée celles que j'obtiens d'une wmctrl -lGsortie ( je ne sais pas si wmctrlutilise des pixels, des caractères terminaux ou quelque chose de différent comme unités géométriques), je n'obtiens pas les résultats attendus. C'est-à-dire que les coordonnées géométriques produites par wmctrl -lGet celles qu'un utilisateur peut spécifier avec gnome-terminal --geometrys'avèrent différentes.

Y a-t-il quelque chose que je fais mal? Des pensées?

Merci

Amelio Vazquez-Reina
la source

Réponses:

17

L' --geometryoption pour gnome-terminalest réellement mesurée en caractères plutôt qu'en pixels. Par exemple, pour obtenir un terminal à 80 colonnes de seulement 10 lignes de haut, vous pouvez lancer gnome-terminalcomme ceci:

gnome-terminal --geometry 80x10

Le terminal sera redimensionné par incréments de la taille des caractères de police, qu'il communique au Xserver à l'aide WM_NORMAL_HINTS. Vous pouvez les examiner à l'aide de la xpropcommande. Par exemple, ici, je trouve un identifiant de fenêtre de terminal et je demande à xprop:

$ wmctrl -lG | tail -n1
0x06400021  0 592  314  580  338  myhostname kees@myhostname: ~
$ xprop -id 0x6400021
...
WM_NORMAL_HINTS(WM_SIZE_HINTS):
        program specified minimum size: 48 by 16
        program specified resize increment: 7 by 14
        program specified base size: 20 by 2
        window gravity: NorthWest
...

Dans le cas ci-dessus, la taille de la police est de 7 x 14 pixels. Donc, si je voulais un terminal de 70 par 140 pixels, je pourrais courir gnome-terminal --geometry 10x10(même s'il serait 20 x 2 pixels plus grand que celui basé sur les décorations du gestionnaire de fenêtres, etc., comme le montre la "taille de base spécifique" ci-dessus).

Kees Cook
la source