Сглаживание

Модератор: Модераторы разделов

Ответить
Аватара пользователя
Damian_46
Сообщения: 10
ОС: KDE Neon User -5.24,LXLE 18.04.6

Сглаживание

Сообщение Damian_46 »

Доброго времени суток уважаемые форумчане,хочу узнать мнение по такому вопросу: мне нужно настроить сглаживание шрифтов как это было в Windows XP Обычное там был такой метод,линупсом пользуюсь уже года три и иногда мне помогала установка шрифтов с XP и такой конфиг в хомяке
Spoiler
<?xml version='1.0'?><!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<match target="font"><edit mode="assign" name="rgba"><const>none</const></edit></match>
<match target="font"><edit mode="assign" name="hinting"><bool>true</bool></edit></match>
<match target="font"><edit mode="assign" name="hintstyle"><const>hintfull</const></edit></match>
<match target="font"><edit mode="assign" name="antialias"><bool>true</bool></edit></match>
<match target="font">
<test compare="more_eq" name="pixelsize" qual="any"><double>10</double></test>
<test compare="less_eq" name="pixelsize" qual="any" ><double>17</double></test>
<test name="family">
<string>Liberation Sans</string>
<string>Liberation Serif</string>
<string>Tahoma</string>
<string>Verdana</string>
<string>Arial</string>
<string>Times</string>
<string>Times New Roman</string>
<string>Sans</string>
<string>Serif</string>
<string>monospace</string>
<string>helvetica</string>
<string>ubuntu</string>
</test>
<edit mode="assign" name="antialias"><bool>false</bool></edit>
</match>
</fontconfig>

на 2 системах у меня это работает,вчера я поставил Solus 4.3.Здесь вышеперечисленные манипуляции ничего не дают.Возможно ли сделать чтобы было вот так:
Изображение
Спасибо сказали:
Аватара пользователя
Zer0
Сообщения: 479
ОС: Void, Slackware

Re: Сглаживание

Сообщение Zer0 »

В настройках KDE параметр "Субпиксельное сглаживание" установите.
Memento mori ... сделай бэкап.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Сглаживание

Сообщение Bizdelnick »

Субпиксельного тут как раз нет.
Неплохо бы увидеть, как выглядит шрифт сейчас, чтобы понять, в чём разница.
Добавлено (16:32):
Пальцем в небо: возможно, хинтинг надо врубить.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Zer0
Сообщения: 479
ОС: Void, Slackware

Re: Сглаживание

Сообщение Zer0 »

Bizdelnick писал:
31.03.2022 16:30
Субпиксельного тут как раз нет.
По сообщениям ТС, предполагаю, что у него КДЕ, под спойлером скрин из 4.х.
Spoiler
subpixel.png
В некоторых версиях "межточечное", переведено как "субпиксельное".
Memento mori ... сделай бэкап.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Сглаживание

Сообщение Bizdelnick »

Zer0 писал:
31.03.2022 16:49
В некоторых версиях "межточечное", переведено как "субпиксельное".
Я не о том, как там что называется в KDE (понятия об этом не имею), а о том, что его нет на скриншоте.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Damian_46
Сообщения: 10
ОС: KDE Neon User -5.24,LXLE 18.04.6

Re: Сглаживание

Сообщение Damian_46 »

Bizdelnick писал:
31.03.2022 18:21
Я не о том, как там что называется в KDE
Не об том речь ведём вообще, не случайно было упомянуто XP, я допускаю что у вас никогда не было такой системы,сейчас у меня так
Изображение
это обычная тахома так она выглядит здесь если не работает моя схема.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Сглаживание

Сообщение Bizdelnick »

Damian_46 писал:
31.03.2022 21:12
сейчас у меня так
Это то, что Вам не нравится? Чем конкретно? (Здесь субпиксельное сглаживание включено, в отличие от предыдущего скриншота.)
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Damian_46
Сообщения: 10
ОС: KDE Neon User -5.24,LXLE 18.04.6

Re: Сглаживание

Сообщение Damian_46 »

Bizdelnick писал:
31.03.2022 21:26
Это то, что Вам не нравится?
Да,с таким сглаживанием я не смогу системой пользоваться,я знаю что вы скажете об отсутствия сглаживания на первом скрине и предложите его отключить,но оно там есть на параллельной системе все пункты соответствующие включены и оно работает но оно не линуксовое,в целом вижу что Solus можно допилить нормально но для этого надо решить этот вопрос для начала в противном случае придётся убирать дистрибутив этот.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Сглаживание

Сообщение Bizdelnick »

Damian_46 писал:
01.04.2022 15:43
я знаю что вы скажете об отсутствия сглаживания на первом скрине
Там есть сглаживание, но не субпиксельное.
Судя по тому, что на втором скрине субпиксельное сглаживание есть, хотя и отключено в показанном Вами конфиге, видимо, он не подхватился. Куда Вы его положили? Не пробовали класть не в хомяк, а глобально (/etc/fonts/conf.d/99-local.conf в случае Debian, в Solus путь может отличаться)?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Damian_46
Сообщения: 10
ОС: KDE Neon User -5.24,LXLE 18.04.6

Re: Сглаживание

Сообщение Damian_46 »

Нет не пробовал системные файлы лучше вообще не трогать.К тому же в инструкции к конфигу указано ложить именно в ~/,хочу сказать что метод работает только на убунту и производных и то не на всех.Просто я иногда хочу что-то другое освоить.Но пока неудачно.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Сглаживание

Сообщение Bizdelnick »

Damian_46 писал:
01.04.2022 20:47
системные файлы лучше вообще не трогать
Я и не предлагаю трогать существующие файлы. Просто положить рядом с ними ещё один.
Добавлено (21:40):
Damian_46 писал:
01.04.2022 20:47
в инструкции к конфигу указано ложить именно в ~/
А конкретнее можно?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Damian_46
Сообщения: 10
ОС: KDE Neon User -5.24,LXLE 18.04.6

Re: Сглаживание

Сообщение Damian_46 »

В той инструкции было сказано создать такой конфиг и положить именно в раздел /home я пробовал как то заменить именно родной fonts.conf своим содержимым но ничего хорошего из этого не вышло,всё кракозябрами стало,восстановил из другой системы по моему.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Сглаживание

Сообщение Bizdelnick »

Damian_46 писал:
02.04.2022 12:12
В той инструкции было сказано создать такой конфиг и положить именно в раздел /home
Третий раз спрашиваю: куда конкретно? Полный путь.
Damian_46 писал:
02.04.2022 12:12
я пробовал как то заменить именно родной fonts.conf своим содержимым но ничего хорошего из этого не вышло
Я Вам этого и не советовал. Читайте внимательнее.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Damian_46
Сообщения: 10
ОС: KDE Neon User -5.24,LXLE 18.04.6

Re: Сглаживание

Сообщение Damian_46 »

Изображение
/home/damian/.fonts.conf
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Сглаживание

Сообщение Bizdelnick »

Попробуйте положить в ~/.config/fontconfig/fonts.conf
И см. man fonts-conf.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Damian_46
Сообщения: 10
ОС: KDE Neon User -5.24,LXLE 18.04.6

Re: Сглаживание

Сообщение Damian_46 »

Bizdelnick писал:
02.04.2022 20:00
И см. man fonts-conf.
Это похоже на правду,но если вы думаете что я сам в состоянии написать конфиг,мне приятно конечно но вы преувеличиваете.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Сглаживание

Сообщение Bizdelnick »

Damian_46 писал:
03.04.2022 18:00
Это похоже на правду,но если вы думаете что я сам в состоянии написать конфиг,мне приятно конечно но вы преувеличиваете.
Я думаю, Вы в состоянии прочитать и понять, где должны располагаться конфигурационные файлы и в каком порядке они обрабатываются.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
nick87720z
Сообщения: 178
ОС: Gentoo / Calculate

Re: Сглаживание

Сообщение nick87720z »

В fonts-conf недостаточно опций, некоторые приходится выискивать. У меня в gentoo работает системная настройка fontconfig путём создания симлинков в /etc/fonts/conf.d/ на сниппеты /etc/fonts/conf.avail/, которые вместе формируют конфиг. Если у вас есть такие же каталоги (если debian/ubuntu, то возможно для этого существуют alternatives или кто его знает как ещё), то вы можете просто скопипастить эти куски в один конфиг (а можно и системным путём пойти, смотря как угодно).

Заодно - раз у вас цель сделать как в winXP, стоит разобраться, что может происходить.

Пока DE не запущен (допустим, сеанс xterm или xsession, или просто проги на голых иксах с libXft, как вариант X11+cairo), должен использоваться конфиг самого fontconfig. Если же запущено - они могут кое-что переопределять, причём некоторые переопределения не настреиваются. Например, я в XFCE, и шрифты в qt5 выглядят не так, как в gtk, хоть убей. Хотя в настройках шрифтов я специально синхронизировал доступные пункты с тем, что в fontconfig, чтоб не было расхождений, а экспорт fonts.conf из qt5ct даже не делал.

Теперь по опциям.
Во первых - сейчас выяснил, что среднего уровня хинтинга нет в Xft, т.к. в исходниках:

Код: Выделить всё

        if (FC_HINT_NONE < hint_style && hint_style < FC_HINT_FULL)
        {
            fi->load_flags |= FT_LOAD_TARGET_LIGHT;
        }
Дальше, лёгкий хинтинг был бы лучше тем, что более предсказуемый: подгон позиций выполняется только по вертикали, тогда как по горизонтали субпиксельное делает своё дело (а в вашем конфиге rgba выключено). По моему, cleartype должен по идее именно этим заниматься, так что для winXP rgba считаю уместным.

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

Код: Выделить всё

$ ls /etc/fonts/conf.avail/11-lcdfilter-* -l
-rw-r--r-- 1 root root 695 окт 31 19:27 /etc/fonts/conf.avail/11-lcdfilter-default.conf
-rw-r--r-- 1 root root 692 окт 31 19:27 /etc/fonts/conf.avail/11-lcdfilter-legacy.conf
-rw-r--r-- 1 root root 689 окт 31 19:27 /etc/fonts/conf.avail/11-lcdfilter-light.conf
# И пример конфига
$ cat /etc/fonts/conf.avail/11-lcdfilter-default.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
  <description>Use lcddefault as default for LCD filter</description>
<!--  Use lcddefault as default for LCD filter -->
  <match target="pattern">
    <!--
      This sort of configuration is available on the major desktop environments
      and we don't have to break it with "assign" unconditionally. however, we
      want to set something for others. So we use "append" here to get this working
      in both cases so that most clients would takes a look at the first place only.
    -->
    <edit mode="append" name="lcdfilter">
      <const>lcddefault</const>
    </edit>
  </match>
</fontconfig>
Для вашего конфига хватит такой строчки:

Код: Выделить всё

<edit mode="append" name="lcdfilter"><const>lcddefault</const></edit>
Это то, что обычно по умолчанию, если ничего не менять. Теперь по значениям:
  • lcdlegacy: По документации freetype, этот фильтр реализует сглаживание как в win95. Я сам не понял, чего он фильтрует, т.к. сказано, что даёт чёткие шрифты, но чреват радугой (а я думал, что это симптомы отсутствия фильтра вообще). Кстати, если полностью отключить фильтр (если он в /etc/fonts/conf.d, то удалить оттуда всё со словом lcdfilter), то при субпиксельной отрисовке будут самые чёткие шрифты, однако возможна радуга (на сверх-тонких, как в Noto или DejaVu, радуга просто блестит).
  • lcdlight: обычно не по дефолту. Строго необходимый минимум (в теории) - box размером 3, т.е. равно на ширину пиксела_несущего_цвет (тм... шучу). Самые чёткие шрифты, у меня как-раз такие. Любители чёткости как win7 оценят (не знаю, так ли в winXP или нет).
  • lcddefault: Реальность оказалась слишком реально - радуга возможна даже с lcdlight из за неидеальных мониторов. Поэтому на исходную коробку наложили ещё одну, только не коробку, а так - лёгкую размывку. Если в lcdlight распределение (85, 86, 85), то в lcddefault - (8, 77, 86, 77, 8) - где 8 сбоку вычтено из предыдущего края (по сути, второй фильтр - (24, 207, 24)). Если бы была полная коробка, то было бы заметная мыло, а так - лёгкий противовес недостаткам монитора.
Также, насколько я понял - hinting=true с опциями hintslight, hintfull это для шрифтовых интерпретаторов. Для нехинтованных шрифтов стоит включить автохинт. Это можно сделать условно, например в моей системе - такой кусок:

Код: Выделить всё

$ cat /etc/fonts/conf.avail/09-autohint-if-no-hinting.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
  <description>Enable autohinter if font doesn't have any hinting</description>
  <!--  Use the Autohinter --> 
  <match target="font">
    <test name="fonthashint"><bool>false</bool></test>
    <!--
      This sort of configuration is available on the major desktop environments
      and we don't have to break it with "assign" unconditionally. however, we
      want to set something for others. So we use "append" here to get this working
      in both cases so that most clients would takes a look at the first place only.
    -->
    <edit name="autohint" mode="append"><bool>true</bool></edit>
  </match>
</fontconfig>
(думаю, всё дело - в строке "<test name="fonthashint"><bool>false</bool></test>").

Кстати, зелёный должен бы быть 85 и в lcdlight и lcddefault.
Отредактировал: Как оказалось - это из за того, что делеть на 2^n (256) быстрее всего.
Спасибо сказали:
Ответить