LINUX.ORG.RU

Xterm не отображает double-sized characters

 , ,


1

2

Возьмём xterm и сконфигурим его по старинке (через core X fonts):

*.vt100.renderFont:             False
*.vt100.locale:                 False
*.vt100.font:                   -monotype-courier new-medium-r-normal--*-120-*-*-m-*-koi8-r

При этом в тесте vttest символы удвоенного размера будут отображаться корректно:

картинка

Теперь сконфигурим его, чтобы использовал клиентские шрифты через библиотеку Xft:

*.vt100.renderFont:             True
*.vt100.faceName:               Courier New:antialias=false
*.vt100.faceSize:               12
*.vt100.utf8:                   1
*.vt100.utf8Fonts:              True
*.vt100.utf8Title:              True

После этого исмволы удвоенного размера отображаться перестанут:

картинка

ИЧСХ, в PuTTY и konsole тот же тест проходится на «ура», хотя обе программы тоже используют клиентские шрифты. Чёрт побери, даже на «маке» в стандартном Terminal.app всё корректно. Ну, в rxvt всё, ясное дело, отродясь не работало.

Что это? Я хреново нестроил xterm? Или это известный баг?

★★★

Да, double width / double height работает только с битмапными шрифтами. С векторными шрифтами (Xft) нет.

То, что ты видешь во втором случае – это то, как оно кодируется:

Top HalfBottom Half
1/11 2/3 3/31/11 2/3 3/4
ESC # 3ESC # 4

4.10.1 Double Height Line (DECDHL)

beastie ★★★★★ ()
Последнее исправление: beastie (всего исправлений: 2)

faceNameDoublesize выставил? Попробуй в тот же самый паттерн выставить. Я просто проверять не хочу.

  faceNameDoublesize (class FaceNameDoublesize)
               Specify a double-width scalable font for cases where an
               application requires this, e.g., in CJK applications.  There is
               no default value.

               If the application uses double-wide characters and this
               resource is not given, xterm will use a scaled version of the
               font given by faceName.
                            

 -fd pattern
               This option sets the pattern for double-width fonts selected from the FreeType 
               library if support for that library was compiled into xterm.  This corresponds to
               the faceNameDoublesize resource.

Zubok ★★★★★ ()
Последнее исправление: Zubok (всего исправлений: 4)
Ответ на: комментарий от beastie

работает только с битмапными шрифтами

Спасибо. Но я бы уточнил, что работает с векторными серверными и не работает с векторными клиентскими. С растровыми шрифтами я не пробовал ни в том, ни в другом случае. В обоих сценариях шрифт Courier New (TTF).

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

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

UPD. Хотя... в описании и не говорится, что они отобразятся увеличенными. Интересно, а если указать CJK какой-нибудь, то отобразит? Надо попробовать.

Zubok ★★★★★ ()
Последнее исправление: Zubok (всего исправлений: 2)

Возьмём xterm и

Дальше не читал. У тебя какой сейчас век на дворе? Возьми уже наконец нормальный терминал, а не это говно мамонта.

Если сам не знаешь, какой взять, спроси, умные люди подскажут тут. Меньше тупых вопросов задавать будешь: чё как, баг, не баг, мак дак, мак кряк, и т.д. и т.п.

PS: и да, надеюсь понятно, что под нормальным современным терминалом пацаны понимают не urxvt.

anonymous ()