Обзор проблем повторного присоединения экрана UTF8.

Обзор проблем повторного присоединения экрана UTF8.

Обзор проблем повторного присоединения экрана UTF8.

Проблема:

Создание экрана, использующего UTF8, работает отлично до тех пор, пока не будет выполнено повторное присоединение сеанса экрана.

Шаги:

ssh remothost
screen -U -S ttytter
[detach screen]
[exit ssh]
xterm -class 'xterm-ttytter' -geometry 175x20 \
  -title 'ttytter' -e ssh -t remotehost "screen -dU -r ttytter"

Подробности

Я действительно большой поклонникттитери уже некоторое время пользуюсь им. Недавно я начал использовать xterm вместо xfce4-terminal/gnome-terminal, так как считаю, что он намного чище. Я пытаюсь использовать UTF8 по личным и профессиональным причинам и все еще пытаюсь исправить несколько ошибок.

Первоначальное вложение (создание) дает мне входные данные UTF8, которые работают так, как и должны. $TERM — этоxterm-256colorsв то время как $LANG — этоru_US.UTF-8. Это также верно, когда я снова подключаю экран, хотя я не могу использовать некоторые символы, такие как backspace, который отображается как.

Кажется, проблема связана с командой, которую я даю для повторного присоединения экрана. Я пытаюсь выяснить, что может вызывать такую ​​проблему, когда я повторно присоединю свой экран UTF8. Я пробовал-д-ри-дУ -р, оба из которых не решают мою проблему. Я пробовал задать xterm флаг -u8, но это не дало мне никаких изменений в поведении.

xterm -class 'xterm-ttytter' -geometry 175x20 \
-title 'ttytter' -e ssh -t remotehost "screen -dU -r ttytter"

Вышеуказанное вызывает проблемы.

ssh remotehost
screen -dU -r ttytter

Вышеуказанное работает просто отлично.

Настройки

.screenrc

defc1 off
defutf8 on
utf8 on

.Xdefaults

xterm*utf8: 1

.bashrc

export LANG=en_US.UTF-8

Я буду очень признателен за любые рекомендации по решению этой проблемы.

решение1

Решение

Различные «классы» загружают различные файлы конфигурации из/etc/X11/app-default/. Моя проблема заключалась в том, что мой новый класс xterm не имел соответствующего файла конфигурации.

# cd /etc/X11/app-default
# ln -s XTerm-color xterm-ttytter

Вышеприведенное свяжет настройки класса XTerm-color с xterm-ttytter, создав символическую ссылку. Таким образом, любые изменения, внесенные в XTerm-color, будут автоматически применены и к xterm-ttytter.

Спасибо @NeiFreenode/#xtermза объяснение классов программ для X11.

решение2

Файлы приложений по умолчанию для xtermпредназначены для включения XTerm-colorиспользования другого маршрута. Этот ресурс

*customization: -color

сообщит библиотеке X Toolkit о необходимости загрузить файл ресурсов, заканчивающийся на «-color».

Для установлено несколько файлов app-defaults xterm. Если посмотреть на мой /etc/X11/app-defaults, то вот основные из них:

-rw-r--r--   1 root         2400 Nov 27 2012    KOI8RXTerm
-rw-r--r--   1 root         3609 Nov 27 2012    UXTerm
-rw-r--r--   1 root        10112 Nov 27 2012    XTerm

а это те, которые настроены по цвету:

-rw-r--r--   1 root         6217 Nov 27 2012    KOI8RXTerm-color
-rw-r--r--   1 root         6209 Nov 27 2012    UXTerm-color
-rw-r--r--   1 root         6207 Nov 27 2012    XTerm-color

TheXTermиXTerm-colorодни требуют небольшого пояснения: класс по умолчанию — XTerm, а ресурс настройки добавляет «-color». Другие используют другие классы. Вам должен быть интересен класс UXTerm, так как он устанавливает этот

    *VT100.utf8:    1

а также настройка шрифтов, полезных с UTF-8. Скрипт uxtermзапускается xtermс использованием UXTermкласса, а также обеспечивает настройку переменных среды локали.

Дальнейшее чтение:

решение3

Я предполагаю, что вы получаете искаженный вывод, и если это так, попробуйте выполнить команду reset, или, может быть, stty sane. Это, по крайней мере, устранит симптом.

Связанный контент