Приветствую.
Как известно, есть магическая ANSI escape-последовательность (\e]0;строка\007
), позволяющая динамически менять заголовок окна терминала (вернее, одновременно WM_NAME
и WM_ICON_NAME
, иначе 0 нужно заменить на 1 или 2).
Последовательность поддерживается подавляющим большинством эмуляторов терминалов, в т. ч. и XTerm
.
А вот теперь, собственно, вопрос. У XTerm
есть ресурс titleModes
, описание которого гласит:
titleModes (class TitleModes)
Tells xterm whether to accept or return window- and icon-labels
in ISO-8859-1 (the default) or UTF-8. Either can be encoded in
hexadecimal. The default for this resource is “0”.
Each bit (bit “0” is 1, bit “1” is 2, etc.) corresponds to one
of the parameters set by the title modes control sequence:
0 Set window/icon labels using hexadecimal
1 Query window/icon labels using hexadecimal
2 Set window/icon labels using UTF-8 (overrides utf8Title
resource).
3 Query window/icon labels using UTF-8
Странность состоит в том, что, если ресурс имеет значение 0 (0b00
) или 2 (0b10
), то всё работает корректно и совершенно идентично (в «не-юникодной локали», в соответствии с ICCCM, выставляются атомы WM_NAME(COMPOUND_TEXT)
и WM_ICON_NAME(COMPOUND_TEXT)
, в «юникодной» же, в соответствии с EWMH, дополнительно к первым двум выставляются _NET_WM_NAME(UTF8_STRING)
и _NET_WM_ICON_NAME(UTF8_STRING)
).
А вот при значениях 1 (0b01) и 3 (0b11) всё одинаково не работает — escape-последовательность игнорируется (т. е. значение атомов не меняется).
Кто-нибудь может мне растолковать данный ман, а также как с ним коррелирует наблюдаемое поведение?
Спасибо.