Especificando a geometria das janelas X nas coordenadas obtidas de wmctrl

8

Na documentação X , li que As coordenadas Width , Height , Xposition e Yposition devem ser especificadas nos caracteres do terminal ao usar:

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

Se eu usar como coordenadas de entrada aquelas que recebo de uma saída wmctrl -lG (não tenho certeza se wmctrl usa pixels, caracteres terminais ou algo diferente como unidades geométricas), não obtenho os resultados esperados. Ou seja as coordenadas de geometria emitidas por wmctrl -lG e aquelas que um usuário pode especificar com gnome-terminal --geometry se tornam diferentes.

Existe alguma coisa que estou fazendo errado? Alguma idéia?

Obrigado

    
por Amelio Vazquez-Reina 31.03.2011 / 17:13

1 resposta

16

A opção --geometry para gnome-terminal é realmente medida em caracteres, em vez de pixels. Por exemplo, para obter um terminal de 80 colunas com apenas 10 linhas de altura, você pode lançar gnome-terminal da seguinte forma:

gnome-terminal --geometry 80x10

O terminal será redimensionado em incrementos do tamanho do caractere de fonte, que ele se comunica com o Xserver usando WM_NORMAL_HINTS . Você pode examiná-los usando o comando xprop . Por exemplo, aqui eu encontro um id da janela do Terminal e peço ao xprop sobre ele:

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

No caso acima, o tamanho da fonte é de 7 por 14 pixels. Portanto, se eu quisesse um Terminal de 70 por 140 pixels, eu poderia executar gnome-terminal --geometry 10x10 (embora fosse 20 x 2 pixels maior que aquele baseado nas decorações do gerenciador de janelas, etc., como visto no "tamanho base específico" acima).

    
por Kees Cook 01.04.2011 / 01:21