Жирные шрифты в rxvt-unicode

Jun 26, 2008 20:01

Есть такой чудесный эмулятор терминала - rxvt-unicode, известный своим хорошим отображением юникода в сравнении с, например, gnome-terminal, основанным на библиотеке vte, которая довольно криво показывает различные условно-экзотические символы. Можете сами проверить с помощью простого текстового файла UTF-8-demo.txt.

Но есть в нем багофича забавная, не отображался русский жирный шрифт, даже если явно прописать в .Xresources опции:
URxvt.font: -*-terminus-medium-*-*-*-14-*-*-*-*-*-*-*
URxvt.boldFont: -*-terminus-bold-*-*-*-14-*-*-*-*-*-*-*

Т.к. в качестве жирного шрифта выбирался первый попавшийся, а не все возможные, поэтому русские символы отображались обычным шрифтом.

Если же прописать шрифты с использованием xft, то жирный шрифт начинает отрисовываться корректно.
URxvt.font: xft:Terminus:pixelsize=14,xft:Fixed:pixelsize=14
Добавление «Fixed» позволяет отображать более широкий набор символов.

Альтернатива - явно указать кодировку для шрифта:

URxvt.font: -*-terminus-medium-r-*-*-14-*-*-*-*-*-iso10646-1,\
-*-fixed-medium-r-*-*-14-*-*-*-*-*-iso10646-1
URxvt.boldFont: -*-terminus-bold-*-*-*-14-*-*-*-*-*-iso10646-1,\
-*-fixed-bold-*-*-*-14-*-*-*-*-*-iso10646-1
Это работает, т.к. rxvt-unicode выбирает для каждого шрифта первое совпадение, а не проверяет все возможные шрифты, подходящие под wildcard-ы, соответственно, без явного указания кодировки вполне может выбираться шрифт содержащий только символы из iso8859-1 (Latin-1).

linux, howto, эмуляторы терминала

Previous post Next post
Up