xterm, Operating System Controls и utf8
Здравствуйте,
Я попытался изменить заголовок окна xterm с помощью OSC,
использовав русские символы и кодировку utf8. Не получилось.
gr@tegri:~$ cat /etc/debian_version
5.0
gr@tegri:~$ xterm -version
XTerm(235)
gr@tegri:~$ echo $SHELL
/bin/bash
gr@tegri:~$ echo $PS1 cmd
${debian_chroot:+($debian_chroot)}\u@\h:\w\$ cmd
gr@tegri:~$ locale | grep LC_CTYPE
LC_CTYPE="en_US.UTF-8"
gr@tegri:~$ xterm -T "синяя борода"
правильно показывает заголовок.
А вот так нет:
gr@tegri:~$ echo -ne "\e]2;синяя борода\a"
В заголовке окна каракули.
Каракули сильно схожи с тем, что показывает xmessage
gr@tegri:~$ xmessage "синяя борода"
кроме того, что некоторые символы в окне xmessage печатаются кодами
(\201 \217 \200)
Но, xmessage работает в кои8.
Тогда я попробывал так.
Изменил шрифт в настройках WM.
Изменил локаль при старте WM.
Ctrl+Alt+Backspace
gr@tegri:~$ locale | grep LC_CTYPE
LC_CTYPE="uk_UA.koi8-u"
gr@tegri:~$ echo -ne "\e]2;синяя борода\a"
все работает.
Файл ctlseqs.txt прочитал (по крайней мере до OSC включительно).
Вернулся в utf8. Запустил xev, нажал 'а' - получил код d0 b0.
gr@tegri:~$ perl -e 'print "\x{00d0}\x{00b0}\n"'
а
gr@tegri:~$ echo -ne "\e]2;\xd0\xb0\a"
Две уже знакомые загогулины.
Собственно вопрос, на каком этапе и кто принимает решение соединять
два байта (d0 b0) в один символ ('а') в заголовке окна терминала?
И можна ли этим процессом управлять?
--
Grygory Tertychny
Reply to: