Especificando la geometría de X windows en las coordenadas obtenidas de wmctrl

9

En la documentación X leí que el Width, Height, Xpositiony Ypositionlas coordenadas deben especificarse en caracteres terminales cuando se utiliza:

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

Si uso como coordenadas de entrada las que obtengo de una wmctrl -lGsalida (no estoy seguro si wmctrlusa píxeles, caracteres terminales o algo diferente como unidades geométricas), no obtengo los resultados esperados. Es decir, la geometría coordina la salida wmctrl -lGy las que puede especificar un usuario gnome-terminal --geometrypara que resulten diferentes.

¿Hay algo que estoy haciendo mal? ¿Alguna idea?

Gracias

Amelio Vazquez-Reina
fuente

Respuestas:

17

La --geometryopción para gnome-terminalse mide realmente en caracteres, en lugar de píxeles. Por ejemplo, para obtener un terminal de 80 columnas con solo 10 líneas de altura, puede iniciarlo gnome-terminalasí:

gnome-terminal --geometry 80x10

El terminal cambiará de tamaño en incrementos del tamaño de caracteres de la fuente, que se comunica al servidor X utilizando WM_NORMAL_HINTS. Puede examinarlos con el xpropcomando Por ejemplo, aquí encuentro una identificación de ventana de Terminal y le pregunto a xprop al respecto:

$ 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
...

En el caso anterior, el tamaño de fuente es de 7 por 14 píxeles. Entonces, si quisiera un terminal de 70 por 140 píxeles, podría ejecutarlo gnome-terminal --geometry 10x10(aunque sería 20 x 2 píxeles más grande que eso en función de las decoraciones del administrador de ventanas, etc., como se ve en el "tamaño base específico" anterior).

Kees Cook
fuente