Задание геометрии X окон в координатах, полученных из wmctrl

9

В документации X я прочитал , что Width, Height, Xpositionи Ypositionкоординаты должны быть указаны в терминальных символов при использовании:

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

Если я использую в качестве входных координат те, которые я получаю из wmctrl -lGвыходных данных (не уверен, wmctrlиспользуют ли пиксели, терминальные символы или что-то другое, например, геометрические единицы), я не получу ожидаемых результатов. Т.е. геометрические координаты, выводимые пользователем, wmctrl -lGи те, которые пользователь может указать gnome-terminal --geometry, оказываются разными.

Что-то я делаю не так? Какие-нибудь мысли?

Спасибо

Амелио Васкес-Рейна
источник

Ответы:

17

--geometryВариант для gnome-terminalфактически измеряется в символах, а не пикселей. Например, чтобы получить 80-колоночный терминал высотой всего 10 строк, вы можете запустить его gnome-terminalтак:

gnome-terminal --geometry 80x10

Размер терминала будет изменяться с шагом в размер шрифта, который он сообщает Xserver WM_NORMAL_HINTS. Вы можете проверить их с помощью xpropкоманды. Например, здесь я нахожу идентификатор окна терминала и спрашиваю об этом 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
...

В приведенном выше случае размер шрифта составляет 7 на 14 пикселей. Так что, если бы я хотел Терминал 70 на 140 пикселей, я мог бы работать gnome-terminal --geometry 10x10(хотя он был бы на 20 x 2 пикселя больше, чем тот, что основан на украшениях оконного менеджера и т. Д., Как видно из «конкретного базового размера» выше).

Кис Кук
источник