LINUX.ORG.RU

размер терминала


0

0

Запускаю xterm

в нем htop. Она рисуется не на весь xterm, а 80х25

запускаю mc - все нормально

выхожу, опять запускаю htop - 80х25

изменяю размер xterm - перезапускаю htop - все нормально.

Вопрос: сколько способов получения размеров терминала существует? Кого пропатчить, чтобы все работало хорошо, xterm или htop?

★★★★★

ЗЫ - WM - ion3. Да, там есть функция nudge, которая обычно помогает xterm'у и в нем все запускается нормально, но интересно все таки почему mc работает и без этого.

sergej ★★★★★
() автор топика

Один из способов:

echo $COLUMNS echo $LINES

mc написан на ncurses, поэтому он знает размеры терминала через вызов соответствующих функций. В htop, похоже, жёстко забито 80x25.

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

mc - slang htop - ncurses

htop работает нормально после Mod1+L в xterm и во всех других терминалах.

Наверное я как то не так объяснил. Мне не нужно узнать размер терминала. Мне нужно понять, что не так с xterm'ом. Потому что я почти уверен, что проблема в нем.

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

xterm по умолчанию сука смотрит исключительно на размеры Expose.

Мне интересно как mc умудряется его обманывать. Кстати и у него не всегда получается нормальный размер.

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

> Мне нужно понять, что не так с xterm'ом. Потому что я почти уверен, что проблема в нем.

с xterm'ом как раз всё в порядке -- это htop'овские тараканы

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

Нет. Я уже не раз встречал упоминания о том, что xterm не полностью поддерживает ICCCM и поэтому у него есть проблемы в tiled wm'ах.

тем более что echo $LINES $COLUMNS тоже выдает 25 на 80.

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

> тем более что echo $LINES $COLUMNS тоже выдает 25 на 80.

хм. в каком-то из LFS в своё время применялся патч на man, так как там было жёстко пробита ширина выводимого (форматируемого) текста в 80 знакомест. Может всё-таки посмотреть на htop повнимательней?

Да, и никто почему-то не уточнял. Какие версии прог используються? Может upgrade помогет?

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

Здравствуйте!

Наткнулся на обсуждение проблемы, которую я заметил давно и живу с ней.

Запускаю xterm от омени другого пользователя: sudo -H -u user /usr/bin/X11/xterm -k8 -class "user-terminal"

в 9 случаях из 10 он разворачивается на полный экран. echo $COLUMNS 181

Но иногда он "становится узким". echo $COLUMNS 80

Если в таком "узком" режиме дать ему команду export COLUMNS=181 - все становится хорошо.

Пытался эту команду прописать в опциях xterm: sudo -H -u user /usr/bin/X11/xterm -k8 -class "user-terminal" -e "export COLUMNS=180; - ничего не меняется.

Оконный менеджер wmii.

Может, у кого-нибудь есть идеи, как это побороть?

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

pacman -Syu делаю переодически, так что все свежее.

xterm даже сам собрал последний (227й).

htop использует ncurses. ничего криминального. Да и умеет она разворачиться на 120х50 как минимум...

sergej ★★★★★
() автор топика
Ответ на: комментарий от anonymous

я поборол пока сменой xterm на urxvt. Но есть желание разобраться и пофиксить...

Докопался пока до того, что xterm изменяет размер терминала на основе размеров из события Expose.

Есть мысль засунуть куда-нибудь в район обработки ConfigureNotify изменение размеров (где он вызывает RequestResize())...

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

хотя нет. тут rxvt будет делать также как и xterm.... по крайней мере в ионе

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