Zenway

Linux - это интересно!

Вы не вошли.

#1 11-04-2020 11:00:38

cdrw
Участник
Здесь с 18-08-2013
Сообщений: 335
LinuxChrome 78.0

Настройка отображения шрифтов в дистрибутиве Slackware Linux

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


Настройка отображения шрифтов в дистрибутиве Slackware Linux


Включение поддержки Unicode

Unicode, это стандарт кодирования символов, включающий в себя знаки почти всех письменных языков мира. При включенной поддержке юникода гарантировано отображение в одном документе текстового материала на разных языках от латиницы, вплоть до китайских иероглифов.

Для поддержки юникода на уровне ядра, при загрузке системы нужно передать ядру опцию «vt.default_utf8=1». При использовании загрузчика LILO, эта опция добавляется в файл /etc/lilo.conf, в строку начинающуюся со слова append:

append=" vt.default_utf8=1"

Если же в качестве загрузчика системы используется Grub2, то править нужно его конфигурационный файл /boot/grub/grub.cfg. Опция добавляется после команды загрузки ядра linux:

...
linux /boot/vmlinuz-huge-smp-4.14.19-smp root=/dev/sda3 ro pci=use_crs vt.default_utf8=1 vga=normal
...

Для загрузчика syslinux правится файл syslinux.cfg, например так:

...
LABEL 0
     MENU LABEL Slackware
     KERNEL /boot/vmlinuz
     APPEND initrd=/boot/initrd.gz load_ramdisk=1 prompt_ramdisk=0 vt.default_utf8=1 vga=791
...

При объявлении локали в системе, в скрипте /etc/profile.d/lang.sh к выбраной национальной кодировке добавляется префикс «UTF-8» или как альтернатива «utf8». Пример lang.sh для объявления русской юникодной локали:

#!/bin/sh
export LANG=ru_RU.UTF-8
export LC_COLLATE=C

Загрузка юникодного шрифта для консоли

Консольные шрифты содержат юникодные символы не для всех языков, ибо если включать в шрифт все символы национальных алфавитов, плюс спецсимволы, файл шрифта получится непомерно большим и неудобств от этого будет больше чем пользы. Поэтому в консольных юникодных шрифтах могут содержаться символы для нескольких национальных алфавитов, близких между собой по использованию. Например, консольный шрифт LatArCyrHeb-16 содержит символы латиницы, кириллицы и иврита. То есть, при загруженном шрифте LatArCyrHeb-16 в текстовом файле гарантированно будут отображаться символы именно этих национальных алфавитов. В Slackware консольный шрифт загружается скриптом /etc/rc.d/rc.font. Пример скрипта:

#!/bin/sh
 setfont LatArCyrHeb-16
 for i in 1 2 3 4 5 6; do
       echo -ne "\033%G" > /dev/tty$i
 done

В этом скрипте загружается общесистемный шрифт для консоли. Но отдельный пользователь может для своего сеанса указать другой консольный фонт добавив в свой ~/.bashrc следующие строки:

if [ $TERM = "linux" ]; then
    setfont ter-v16n
fi

В примере показана загрузка консольного шрифта Terminus.

Настройка масштабирования шрифтов в XORG

Немножко о разрешении мониторов и что такое DPI. При выборе монитора для компьютера или ноутбука при покупке, мы всегда обращаем внимание на характеристику дисплея. Чем больше разрешение дисплея, тем чётче отображается картинка, более читабельны тексты. И если с картинками и фотографиями более менее понятно, то по качеству вывода текстовой информации на экран у многих пользователей могут возникать претензии.  Во многих дистрибутивах разработчики прилагают  большие усилия  по улучшению отображения на дисплее текстовой информации. Взять те же Ubuntu, MX-Linux,  Manjaro... В этих дистрибутивах хорошее отображение шрифтов настроено «из коробки» и пользователю в большинстве случаев не нужно прилагать усилий по улучшению отображения шрифтов. В Slackware, как и в Debian впрочем, этой теме разработчики придают меньше внимания. В свежеустановленной системе шрифты и их отображение часто оставляют желать лучшего. Есть жидкокристаллические дисплеи, особенно старшего поколения, в которых без дополнительных усилий по настройке отображения шрифтов никак не обойтись. А есть дисплеи, на которых приемлимо выглядят шрифты даже без дополнительной настройки.

Разрешение дисплея измеряется в пикселях по вертикали и горизонтали. Чем больше разрешение, тем качественнее отображение. А отображение одного символа шрифта указывается в DPI, то есть в колличестве пикселей на один дюйм. И здесь уже понятие пиксель(точка) не физическое, а программное. То есть, если реальный DPI вашего монитора 150 пикселей на дюйм, то программно его можно и уменьшить. Если мы уменьшим DPI до значения 75, то два реальных пикселя программно будут работать как один и, естественно, качество отображения изменится в ту или иную сторону. Для того чтобы узнать реальный DPI вашего монитора, можно воспользоваться специализированным сайтом DPI Калькулятором. Разрешение вашего дисплея DPI Калькулятор может определить автоматически, а вот размер по диагонали в дюймах нужно ввести в ручную. Его можно узнать из характеристик вашего монитора/ноутбука.

Теперь понятно, что реальный DPI, это количество физических пикселей (не программных) на один дюйм вашего дисплея. Считается, что если указать системе реальный DPI, то отображение шрифтов будет наилучшим. Может быть это и так, но на величину отображаемых шрифтов это влияет точно. В Windows по умолчанию DPI равен 96. Некоторые программы могут затребовать для себя другой DPI, например MythTV просит DPI=100.

Для X-системы можно указать значение DPI несколькими способами. Если xorg запускается с помощью скрипта startx, откройте для редактирования в текстовом редакторе скрипт /usr/bin/startx, найдите в нём строку:

defaultserverargs=""

и впишите желаемое значение DPI, как пример 110:

defaultserverargs="110"

Если xorg запускается другим способом, например с помощью менеджера входа в систему kdm, то нужный DPI прописывается в его конфигурационном файле /etc/kde/kdm/kdmrc.

Проверить с каким разрешением загружаются шрифты в X-ах можно дав команду в консоли:

xdpyinfo | grep resolution

Для клиентских приложений X-сервера DPI задаётся в конфигурационном файле Xresources. Локальная, пользовательская версия этого файла находится в домашнем пользовательском каталоге - ~/.Xresources. В этом файле можно задать DPI монитора, сглаживание (antialiasing), хинтование (hinting) и другие настройки шрифтов X.

Fontconfig

Fontconfig - это библиотека, предназначенная для конфигурирования и настройки доступа к шрифтам, а также для настройки того, как шрифты будут отображаться. Файлы конфигураций fontconfig находятся в каталоге /etc/fonts. В каталоге /etc/fonts/conf.avail размещены все конфигурационные файлы библиотеки, но fontconfig не просматривает этот каталог. Для fontconfig рабочим является каталог /etc/fonts/conf.d, именно с этого каталога он считывает конфигурационные файлы. Поэтому достаточно сделать ссылку из каталога conf.d на любой из конфигов в каталоге conf.avail, чтобы fontconfig его смог прочесть. Таким образом можно компоновать комплект видимых библиотекой fontconfig конфигурационных файлов. После изменений в самих конфигурационных файлах, или добавления/удаления симлинков на нужные файлы конфигурации, чтобы обновления вступили в силу и fontconfig принял это, нужно дать команду:

fc-cache -f -v

В каталоге /etc/fonts/conf.d находится файл README с более подробной информацией.

Шрифты

Наличие большого количества установленных шрифтов может сильно грузить систему. Но при наличии комплекта хороших шрифтов и их качественной отрисовки, работа в системе становится намного приятнее. В Slackware есть возможность отключать каталоги с установленными шрифтами, во всяком случае для fontconfig точно. Стоит только закомментировать пути к каталогам со шрифтами в файле /etc/fonts/font.conf и система перестаёт их видеть. С X-ами сложнее. Какие то установленные шрифты X-ы видят по умолчанию, их список выдаёт команда xfontsel, и их немного. Но если X-ы не видят какие либо установленные шрифты, то стоит только прописать пути к ним в файле /etc/X11/xorg.conf, список видимых программой xfontsel шрифтов выползет за пределы дисплея.

Минимальное колличество шрифтов, необходимое для запуска Xorg можно посмотреть здесь. То есть, имеется возможность добавлять только те шрифты, которые нравятся Вам. Но это уже нужно повозиться.


Пока всё. Если ещё чего нибуть накопаю - дополню.


14103011_GgHo.png

Вне форума

#2 11-04-2020 13:16:09

redix
Участник
Откуда: Shangri-La
Здесь с 14-02-2013
Сообщений: 2,398
LinuxChrome 81.0

Re: Настройка отображения шрифтов в дистрибутиве Slackware Linux

Форум слаквари все похоже? Да там собственно и оставалось два активных пользователя, Ярик да Бормант. Жаль конечно. ( Там бы это разместить, но увы.


In Tux We Trust

Вне форума

#3 11-04-2020 13:27:52

BigOrange
Модератор
Откуда: Саратов
Здесь с 20-11-2010
Сообщений: 2,299
LinuxUnknown

Re: Настройка отображения шрифтов в дистрибутиве Slackware Linux

@cdrw, привет! Спасибо за материал.
у меня Монитор BenQ DL2215 21.5", согласно калькулятору получается DPI=102, то есть мне имеет смысл играться с цифрами 102; 51; 204.
и такое подозрение, что ~/.Xresources у меня в опенбоксе со шрифтами не работает

! шрифты ------------------------------------------
Xft.dpi: 102
Xft.antialias: true
Xft.hinting: true
Xft.rgba: rgb
Xft.autohint: false
Xft.hintstyle:  hintfull
Xft.lcdfilter: lcddefault

Добавлено спустя 02 мин 45 с:
~$ xdpyinfo | grep resolution
  resolution:    96x96 dots per inch


Долой DE! Даёшь WM!

Вне форума

#4 11-04-2020 13:37:42

redix
Участник
Откуда: Shangri-La
Здесь с 14-02-2013
Сообщений: 2,398
LinuxChrome 81.0

Re: Настройка отображения шрифтов в дистрибутиве Slackware Linux

BigOrange пишет:

~/.Xresources у меня в опенбоксе со шрифтами не работает

А вот это делал?

xrdb -merge ~/.Xresources

In Tux We Trust

Вне форума

#5 11-04-2020 14:04:15

cdrw
Участник
Здесь с 18-08-2013
Сообщений: 335
LinuxChrome 78.0

Re: Настройка отображения шрифтов в дистрибутиве Slackware Linux

redix пишет:
BigOrange пишет:

~/.Xresources у меня в опенбоксе со шрифтами не работает

А вот это делал?

xrdb -merge ~/.Xresources

Вот, эту команду пропустил. smile


14103011_GgHo.png

Вне форума

#6 11-04-2020 14:21:26

BigOrange
Модератор
Откуда: Саратов
Здесь с 20-11-2010
Сообщений: 2,299
LinuxUnknown

Re: Настройка отображения шрифтов в дистрибутиве Slackware Linux

делал и xrdb ~/.Xresources, и xrdb -load ~/.Xresources
если ставлю 48 и 192, то результат есть
но xdpyinfo показывает 96


Долой DE! Даёшь WM!

Вне форума

#7 11-04-2020 14:22:21

cdrw
Участник
Здесь с 18-08-2013
Сообщений: 335
LinuxChrome 78.0

Re: Настройка отображения шрифтов в дистрибутиве Slackware Linux

BigOrange пишет:

и такое подозрение, что ~/.Xresources у меня в опенбоксе со шрифтами не работает

Я использую IceWM, а openbox из настроек тем gtk вроде бы тянет инфу.

Добавлено спустя 02 мин 01 с:

BigOrange пишет:

делал и xrdb ~/.Xresources, и xrdb -load ~/.Xresources
если ставлю 48 и 192, то результат есть
но xdpyinfo показывает 96

А сессия как запускается, DM или startx?

Добавлено спустя 31 мин:
Попробуй насильно переназначить командой:

xrandr --dpi 102

14103011_GgHo.png

Вне форума

#8 11-04-2020 15:07:24

BigOrange
Модератор
Откуда: Саратов
Здесь с 20-11-2010
Сообщений: 2,299
LinuxUnknown

Re: Настройка отображения шрифтов в дистрибутиве Slackware Linux

сессия запускается DM (slim)
xrandr --dpi 102  помогло


Долой DE! Даёшь WM!

Вне форума

#9 11-04-2020 18:14:33

posixru
Модератор
Откуда: СССР
Здесь с 21-10-2010
Сообщений: 1,448
Сайт
LinuxSeaMonkey 2.53

Re: Настройка отображения шрифтов в дистрибутиве Slackware Linux

cdrw пишет:

Набросал тут для себя заметку про настройку шрифтов

Вот спасибо, будет куда засылать "вопрошающих", а то ...

Вне форума

#10 11-04-2020 23:52:47

BigOrange
Модератор
Откуда: Саратов
Здесь с 20-11-2010
Сообщений: 2,299
LinuxUnknown

Re: Настройка отображения шрифтов в дистрибутиве Slackware Linux

пока ковырялся с xterm также в ~/.Xresources менял парамы шрифтов.
заметна разница когда меняешь Xft.dpi: и Xft.antialias: false/true


Долой DE! Даёшь WM!

Вне форума

#11 12-04-2020 03:21:40

posixru
Модератор
Откуда: СССР
Здесь с 21-10-2010
Сообщений: 1,448
Сайт
LinuxSeaMonkey 2.53

Re: Настройка отображения шрифтов в дистрибутиве Slackware Linux

BigOrange пишет:

пока ковырялся с xterm также в ~/.Xresources менял парамы шрифтов

А я подобным лет десять назад игрался, тогда с urxvt (rxvt-unicode) кажется возился, хотелось ему желаемое оформление предать, хотелось ему желаемое оформление предать, а потом то лень было, то некогда, то казалось что и так пойдёт...
Может когда то ещё займусь, благо есть где почитать, без поиска! )))

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] CCBot

Подвал форума

Под управлением FluxBB
Модифицировал Visman

[ Сгенерировано за 0.018 сек, 10 запросов выполнено - Использовано памяти: 1.7 Мбайт (Пик: 1.79 Мбайт) ]