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

7

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

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

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

Есть ли что-то, что я делаю неправильно? Любые мысли?

Спасибо

    
задан Amelio Vazquez-Reina 31.03.2011 в 15:13
источник

1 ответ

14

Параметр --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 пикселей больше, чем на основе оконных менеджеров и т. Д., Как показано в «конкретном размере базы» выше).     

ответ дан Kees Cook 31.03.2011 в 23:21
источник

Ознакомьтесь с другими вопросами по меткам