Наконец-то мне настоебло смотреть на корявенькие шрифты в системе, и дошли руки заняться шрифтами вплотную. Вообще, переключаясь между Windows и Linux, регулярно наблюдал следующую картинку: в винде шрифты помельче, но выглядят почётче. Что ж, подумал я — кажется, жизнь не научила ещё Линукс нормально определять DPI монитора. Но нет! Первый взгляд на логи показал, что научила. В принципе, подобных инструкций в интернете море, но всё-таки напишу по-своему, попроще.
Итак, сначала мы посмотрим логи X-сервера:
[chronos] baron ~ % less /var/log/Xorg.0.log
[ 18209.517] (II) intel(0): EDID for output LVDS1 [ 18209.517] (II) intel(0): Manufacturer: SEC Model: 314b Serial#: 0 [ 18209.517] (II) intel(0): Year: 2011 Week: 0 [ 18209.517] (II) intel(0): EDID Version: 1.3 [ 18209.517] (II) intel(0): Digital Display Input [ 18209.517] (II) intel(0): Max Image Size [cm]: horiz.: 34 vert.: 19 [ 18209.517] (II) intel(0): Gamma: 2.20 [ 18209.517] (II) intel(0): No DPMS capabilities specified [ 18209.517] (II) intel(0): Supported color encodings: RGB 4:4:4 YCrCb 4:4:4 [ 18209.517] (II) intel(0): First detailed timing is preferred mode [ 18209.517] (II) intel(0): redX: 0.624 redY: 0.340 greenX: 0.327 greenY: 0.578 [ 18209.517] (II) intel(0): blueX: 0.154 blueY: 0.060 whiteX: 0.313 whiteY: 0.329 [ 18209.517] (II) intel(0): Manufacturer's mask: 0 [ 18209.517] (II) intel(0): Supported detailed timing: [ 18209.517] (II) intel(0): clock: 100.4 MHz Image Size: 344 x 194 mm [ 18209.517] (II) intel(0): h_active: 1600 h_sync: 1648 h_sync_end 1680 h_blank_end 1792 h_border: 0 [ 18209.517] (II) intel(0): v_active: 900 v_sync: 902 v_sync_end 907 v_blanking: 932 v_border: 0
Из этого куска понятно, что размеры нашего монитора - 344х194. Приложим к стеклу чего-нибудь, размеры чего мы хорошо знаем :). У меня получилось с одной стороны 16.5 * 2 и 1.5-2 см, с другой стороны - 16.5 и ещё 2-3 см. Сходится!
В таком случае, кусок моего /etc/X11/xorg.conf выглядит так:
Section "Monitor" Identifier "Generic Monitor" #VertRefresh 43 - 60 #HorizSync 28 - 80 DisplaySize 344 194 EndSection
После перезагрузки иксов ничего не изменилось, так как у нас же есть настройки XFCE! Settings → Appearance → Fonts, там я для себя выбрал следующие параметры:
- По логам иксов, или из xdpyinfo | grep -C1 resol узнаём, что на самом деле разрешение моего экрана — 118 DPI. Отлично, так и пропишем.
- Во-первых, мне нравятся шрифты Deja Vu и Droid. Между ними тяжело выбрать: Droid чуть посложнее читать (узкие), зато более функциональные — больше текста влезает. При этом Deja Vu Sans Bold — наоборот, широковат, впору юзать Condensed. А вот Droid Sans Bold — великолепен. В общем, подумал и ещё подумал, и ещё, и решил, что всё-таки системным шрифтом будет Droid Sans. Liberation Sans мне вообще не нравится.
- Droid Sans — отличный шрифт, для которого не нужен хинтинг. Хинтинг отключен. Антиалиазинг включён. Подобрать субпиксельное сглаживание — как? У меня ничего не меняется. Оставил без субпиксельного.
- Теперь у нас великоват размер заголовка окна. Попробовав несколько вариантов, остановился на Droid Sans Bold. Отлично там смотрится!
- И всё-таки нет, шрифты смотрятся чуть вытянутыми по высоте. Но если включить небольшой (Slight) хинтинг, то всё становится отлично. Проверяем все программы, которыми пользуемся — всё ОК. Закрываем лавочку.
Ложка дёгтя в бочке мёда — это моноширинный Droid Sans Mono. Он БОЛЬШОЙ. Слишком. В терминале мне пришлось поставить размер 8 (но выглядит как 9). А вот в редакторе блогов не ставится этот шрифт :(. Поставил через eselect fontconfig всё-таки Deja Vu Sans Mono. Доверяй, но проверяй:
[chronos] baron ~ % fc-match monospace
DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book"
Вот так выглядит мой рабочий экран. Кому кажутся буковки слишком узкими, может переключиться на DejaVu Sans.
В целом и в общем, качеством шрифтов я доволен: всё видно ясно и чётко. Есть,правда, небольшие претензии у меня к serif и к monospace, причём полярные: serif меньше на 1 пункт, monospace больше на 1 пункт.