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

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.