LINUX.ORG.RU

xterm развернуть при открытии

 ,


1

1

Можно ли открыть xterm развернутым на весь экран при открытии? Не нашел в параметрах.
Сейчас запускаю через него mc, как пункт меню в icewm:

xterm -fa 'LiberationMono' -geometry 100x40+0+0 -e /usr/bin/mc
Geometry, большее чем текстовое разрешение экрана, позволяет развернуть максимально, но кнопка окна «развернуть», соответственно, не нажата. Цель - чтобы мышь, отправленная в правый верхний угол, попадала на крестик.
Заметил сейчас, что нажатие кнопки «развернуть» отправляет окно на несколько пикселей вверх и влево. Соответственно, крестик будет все равно не на своем месте. Это - баг icewm или иксов? Можно ли починить?


Можно ли открыть xterm развернутым на весь экран при открытии? Не нашел в параметрах.

Ну вообще-то есть опция "-maximize",

Это - баг icewm или иксов? Можно ли починить?

но работает она все равно не правильно. Попробуй так:

xterm -e bash -c "icesh -window \$WINDOWID setState Maximized  Maximized ; exec bash"

arson ★★★★★ ()

В icewm есть файл ~/.icewm/winoptions. Туда можно вписать, как надо запускать окно терминала.

xterm.startMaximized: 1

Далее надо перезапустить IceWM, чтобы он принял изменения (Ctrl+Alt+Del и далее «Перезауск IceWM»).

Zubok ★★★★★ ()
Последнее исправление: Zubok (всего исправлений: 2)

Заметил сейчас, что нажатие кнопки «развернуть» отправляет окно на несколько пикселей вверх и влево. Соответственно, крестик будет все равно не на своем месте. Это - баг icewm или иксов? Можно ли починить?

Это не баг иксов и не баг icewm. Это особенность xterm. Он просит менять свой размер не в пикселях, а шагами, равными размеру фонта. Поэтому при развертывании в максимум он принимает ближайшее значение, кратное ширине и высоте символов. Это делается в WM_SIZE_HINTS. У меня, например: program specified resize increment: 7 by 13.

Zubok ★★★★★ ()
Последнее исправление: Zubok (всего исправлений: 1)

Цель - чтобы мышь, отправленная в правый верхний угол, попадала на крестик.

Проблема в том, что icewm не умеет располагать максимизированное окно у правой границы — все время развернутое окно от top-left располагает. Есть, правда, опция в ~/.icewm/preferences — CenterMaximizedWindows=1, которая позволяет центрировать окно. При определенном размере строки/столбца в терминале эта опция может помочь попасть кнопке закрытия в угол.

Еще есть опция geometry в ~/.icewm/winoptions. Она устанавливает размер в пикселях, а не в строчках, как это устанавливается в xterm опцией -geometry. Я в исходник, правда, не заглядывал, но сразу предполагаю, что IceWM, как вежливый WM, учитывает WM_SIZE_HINTS и все равно смотрит гранулярность, о которой просит приложение, и устанавливает размер так, чтобы влезло целое число строк и столбцов.

В общем, надо подумать, что еще можно сделать. Если не средствами IceWM, то хотя бы сторонними: типа wmctrl или devilspie.

Zubok ★★★★★ ()
Последнее исправление: Zubok (всего исправлений: 3)
Ответ на: комментарий от arson
xterm -e bash -c "icesh -window \$WINDOWID setState Maximized  Maximized ; exec bash"

Это работает! Правда пока не понял, что для чего в этой строке. И не запускается из меню Программы в icewm - пишет: icesh: Неверный идентификатор окна: '$WINDOWID'. А если из консоли вводить - новое окно открывает максимизированным и кнопки попадают под указатель мыши верно.

loco ()
Ответ на: комментарий от loco

Вообще странно, что у тебя одно работает, а другое нет. Если честно, то я просто опцию не нашел :) (за 25 лет документацию на icewm так и не дописали).
Шрифты при разных способах запуска одинаковые?

Поместить окно в правый верхний угол можно заданием отрицательных координат (xterm -geometry -0-3000 или xterm -geometry -0+0(немного по разному выравниваются))

И не запускается из меню

Смени кавычки:

xterm -e bash -c 'icesh -window $WINDOWID setState Maximized  Maximized ; exec bash'

arson ★★★★★ ()
Ответ на: комментарий от Zubok

/etc/X11/icewm/winoptions (в Debian 8.7.1 - для применения настроек всем пользователям)
xterm.startMaximized: 1 - разворачивается кратно символам (остается зазор справа и снизу), перебивает geometry;
xterm.geometry: 1024x768+0+0 - (равно как и подбор меньших, чем полное разрешение значений) приводит к центровке по горизонтали и зазору внизу; боковые бордеры окна ровно и симметрично укладываются в границы экрана; того, что за окном - справа не видно.
В последнем случае курсор мыши в правом верхнем углу превращается в стрелку, направленную в уголок. Нажатием левой кнопки мыши начинается ресайз окна.

loco ()
Ответ на: комментарий от arson

Вообще странно, что у тебя одно работает, а другое нет.

Сам в шоке. :) Возможно из-за особенностей формата файла «prog название иконка программа» и методов запуска icewm...

Если честно, то я просто опцию не нашел :) (за 25 лет документацию на icewm так и не дописали).

".startMaximized" и ".geometry" в winoptions? У меня их тоже там не было - ни в других программах, ни закомментированных, ни в описании... Добавлял вручную, как написал Zubok, и немного погуглил для образования (на предмет других вариантов).

Шрифты при разных способах запуска одинаковые?

Да. Я этот LiberationMono по написанию значка «@» опознаю. ))

Поместить окно в правый верхний угол можно заданием отрицательных координат (xterm -geometry -0-3000 или xterm -geometry -0+0(немного по разному выравниваются))

Вариант с «3000» - огонь! Теперь зазоры слева и снизу, крестиком окно закрывается. ))

И не запускается из меню

Смени кавычки:
xterm -e bash -c 'icesh -window $WINDOWID setState Maximized Maximized ; exec bash'

Не, не помогло... В каком направлении вообще курить, чтобы разобраться в этой строке?

loco ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.