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

Я попытался изменить заголовок окна xterm с помощью OSC,
использовав русские символы и кодировку utf8. Не получилось.

g...@tegri:~$ cat /etc/debian_version
5.0
g...@tegri:~$ xterm -version
XTerm(235)
g...@tegri:~$ echo $SHELL
/bin/bash
g...@tegri:~$ echo $PS1 cmd
${debian_chroot:+($debian_chroot)}...@\h:\w\$ cmd

g...@tegri:~$ locale | grep LC_CTYPE
LC_CTYPE="en_US.UTF-8"
g...@tegri:~$ xterm -T "синяя борода"

правильно показывает заголовок.
А вот так нет:

g...@tegri:~$ echo -ne "\e]2;синяя борода\a"

В заголовке окна каракули.
Каракули сильно схожи с тем, что показывает xmessage

g...@tegri:~$ xmessage "синяя борода"

кроме того, что некоторые символы в окне xmessage печатаются кодами
(\201 \217 \200)

Но, xmessage работает в кои8.
Тогда я попробывал так.
Изменил шрифт в настройках WM.
Изменил локаль при старте WM.
Ctrl+Alt+Backspace

g...@tegri:~$ locale | grep LC_CTYPE
LC_CTYPE="uk_UA.koi8-u"
g...@tegri:~$ echo -ne "\e]2;синяя борода\a"

все работает.

Файл ctlseqs.txt прочитал (по крайней мере до OSC включительно).
Вернулся в utf8. Запустил xev, нажал 'а' - получил код d0 b0.

g...@tegri:~$ perl -e 'print "\x{00d0}\x{00b0}\n"'
а
g...@tegri:~$ echo -ne "\e]2;\xd0\xb0\a"

Две уже знакомые загогулины.

Собственно вопрос, на каком этапе и кто принимает решение соединять
два байта (d0 b0) в один символ ('а') в заголовке окна терминала?
И можна ли этим процессом управлять?

--
Grygory Tertychny

Reply via email to