LINUX.ORG.RU

Странности со screen


0

0

Решил применить в хозяйственной деятельности такую полезную на вид штукенцию, как screen. Попробовал использовать её в консоли - понравилось, хоть и требует мелких доработок напильником. А потом попробовал использовать её в иксовом эмуляторе терминала (в моём случае Terminal в xfce4). Вот тут-то и начались странности. А именно, первое, что бросилось в глаза - Backspace перестал работать. Пытаясь понять причину столь мешающего в нормальной консольной жизнедеятельности недуга, решил посмотреть $TERM. Ситуация в некоторой степени прояснилась, а в некоторой - даже запуталась. В консоли echo $TERM возвращала linux. В screen та же echo $TERM возвращала screen.linux. Что за screen.linux - нипаняяятна... Тем более, что в /etc/termcap такой зверь не значится. Ну хорошо, едем дальше. Повторяю те же манипуляции в иксовом эмуляторе консоли. Без screen echo $TERM вернула xterm. Из-под screen в этом случае echo $TERM вернула screen, которого впрочем в /etc/termcap тоже нету. Решив, что нашёл корень проблемы, я попытался перебить значение $TERM на xterm, потом на screen.xterm, потом на screen.linux, а потом на linux. Делал это как напрямую, через export TERM=... , так и через tset. Эффекта никакого не заметил - Backspace как не работал в screen, так и продолжал не работать. Собственно по результатам всех этих экспериментов возник ряд вопросов:

1. Что за левые значения $TERM - screen.linux и screen - возвращались?
2. Почему их нет в /etc/termcap?
3. Почему tset нормально принимал несуществующие в termcap screen и screen.linux и ругался на точно так же не значащийся там screen.xterm, который я пытался ему скормить?
4. Откуда вообще взялись эти типы терминалов в screen, если в man screen написано, что screen эмулирует только vt100, и ничего кроме vt100?
5. Как таки заставить работать эмулятор терминала в screen нормально, в частности заставить нормально работать Backspace?

- screen эмулирует vt100, надо полагать эти датабазы служат переходниками к соответствующим терминалам
- они находятся в /usr/share/terminfo/ (s/screen* - for screen)
- п2
- п1
- man screen не намекнул на temr, terminfo/termcapinfo?

ps... для настройки ^H /me oбычно использует конфиг шелла:
bindkey -v '^?' backward-delete-char # urxvt/zsh
bindkey -v '^H' backward-delete-char # - если не пашет ^H
(можно ввести ^V<BS> и посмотреть что покажет шелл)

disclaimer: мну разбирается в архаичных костылях не очень хорошо), имхо, проще немного подогнать под себя готовый конфиг

n01r ★★
()

Меня больше бесит другая фишка -- плохо отображается htop в screen'е.

На этом шоте http://img20.imageshack.us/img20/2511/200905151929501108x412s.png не очень получилось воспроизвести, но обычно ни кол-во памяти (цифры),ни свопа, ни аптайма ни видно. А должно так: http://img516.imageshack.us/img516/2262/200905151933151108x412s.png

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

> Меня больше бесит другая фишка -- плохо отображается htop в screen'е.

у мну все нормально: http://pastebin.com/m367f3655 - конфиг screena-а

urxvt-unicode-256color

ps... субъективно /me недолюбливает htop, уж больно на непатрикоугодный mc похож)

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

проверил остальные варианты, видно в любом случае)... возможно в версии со скрином ты подгружаешь насколько иные настройки цветов, где соответсвующий серый сливается с фоном

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

> проверил остальные варианты, видно в любом случае)... возможно в версии со скрином ты подгружаешь насколько иные настройки цветов, где соответсвующий серый сливается с фоном

да, действительно, из-за цветов. попробовал с другой цветовой схемой htop'а -- всё нормально http://img51.imageshack.us/img51/245/200905161025061108x412s.png

Не пойму в чём прикол, как он может подгружаться с разными настройками?

Конфиг screen'а http://pastebin.ubuntu.com/173454/

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

> Не пойму в чём прикол, как он может подгружаться с разными настройками?

ну... не совсем так)... скорее в исходном терминале используется esc-sequence, которая не описана в screenrc

> attrcolor b '.I'

проблема в этом... мог бы и сам догадаться)...

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

*возможно если это по дефолту, то лишняя запись отменяет bright for bold*

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

> > attrcolor b '.I' проблема в этом... мог бы и сам догадаться)...

Да я на это и грешил :) просто это строчка нарисовалась в результате попытки заставить emacs показывать 256 цветов в скрине в патченном urxvt, так и осталась в конфиге.

> Не пойму в чём прикол, как он может подгружаться с разными настройками?

Чушь, конечно, ляпнул Ж)

Удалил нах этот attrcolor b '.I' -- всё отлично показывает!

Спасибо большое за наводку.

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

Мде... а ларчик то открывался просто: в xfce4-terminal меню Правка->Параметры...->Дополнительно->Нажатие клавиши Backspace вызывает. И там выбрать нужное значение (в моём случае Ctrl-H). Вот что значит правильный поисковый запрос =) А я что-то сразу начал копать в направлении терминалов, настроек screen-а и т.д., обойдя вниманием настройки xfce4-terminal.

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

Спасибо за обстоятельный ответ. Позновательно. Через bindkey проблема тоже решается.

Betanuzir
() автор топика

В ходе дальнейшего общения с screen обнаружил ещё одну неприятную особенность, проявляющуюся на сей раз как при запуске screen из консоли, так и при запуске оного из xfce4-terminal. Происходит следующее: набрав начало имени файла, я жамкаю на Tab, в надежде что услужливая консолька допишет имя этого файла до конца за меня. Однако, если файлов с введённым началом имени оказывается несколько, то экран при нажатии Tab мигает. Аналогично он мигает, если в пустой командной строке нажать Esc и Del. Вне screen такого неприятного эффекта не наблюдается. Пробовал в screenrc отключить vbell. Не помогло. Других опций, которые могли бы помочь моему горю, в man screen не нашёл. Можно как-то отключить это "мигание" экрана?

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