LINUX.ORG.RU

История изменений

Исправление Zubok, (текущая версия) :

Глянул я твои правила и призадумался. Потому что то, что идет у тебя в строчке терминалов в виде шаблона для шрифтов — это не правило, а *запрос*, по которому fontconfig ищет наиболее подходящий вариант, а вот поле поиска определяются правилами. И по всему комплексу правил находит наиболее подходящий.

Ближайший — это рисовать Courier New, но только без AA, так как такой способ задан правилом. Если правила нет и поле antialias пустое, то можно и так и сяк рисовать, но у тебя задано. Вот как выглядит без правил (нет поля antialias):

$ fc-match --verbose ':family=Courier New'  | grep -E '\<(family|antialias)\>'
        family: "Courier New"(s)

И вот в этом случае работает запрос ...:antialias=true/false. Пока я вижу как единственный вариант в случае твоих правил сделать исключение для конкретных приложений. Например, для xterm. Добавь к своим правилам то, что ниже, и просто проси Courier New без свойства antialias.

  <match target="font">
<!--     Это можно добавить опционально, чтобы только для Courier New -->
<!--     <test name="family" compare="eq"> -->
<!--       <string>Courier New</string> -->
<!--     </test> -->
    <test name="prgname" compare="eq">
      <string>xterm</string>
    </test>
    <edit name="antialias" mode="assign">
      <bool>true</bool>
    </edit>
  </match>

Тестируем: rxvt -fn "xft:Courier New рисует без AA, а xterm -fa "Courier New" рисует в AA. Вроде как и должно быть.

В теме fontconfig я могу плавать, потому что настравивал его ну так редко, что даже не помню, что я там делал. :) Надо еще подумать. Вполне может быть, что xterm и все эти терминалы просто не научены это свойство менять самостоятельно, а просто отдают все на откуп fontconfig.

Исправление Zubok, :

Глянул я твои правила и призадумался. Потому что то, что идет у тебя в строчке терминалов в виде шаблона для шрифтов — это не правило, а *запрос*, по которому fontconfig ищет наиболее подходящий вариант, а вот поле поиска определяются правилами. И по всему комплексу правил находит наиболее подходящий, ближайший — это рисовать Courier New, но только без AA, так как такой способ задан правилом. Если правила нет и поле antialias пустое, то можно и так и сяк рисовать, но у тебя задано. Вот как выглядит без правил (нет поля antialias):

$ fc-match --verbose ':family=Courier New'  | grep -E '\<(family|antialias)\>'
        family: "Courier New"(s)

И вот в этом случае работает запрос ...:antialias=true/false. Пока я вижу как единственный вариант в случае твоих правил сделать исключение для конкретных приложений. Например, для xterm. Добавь к своим правилам то, что ниже, и просто проси Courier New без свойства antialias.

  <match target="font">
<!--     Это можно добавить опционально, чтобы только для Courier New -->
<!--     <test name="family" compare="eq"> -->
<!--       <string>Courier New</string> -->
<!--     </test> -->
    <test name="prgname" compare="eq">
      <string>xterm</string>
    </test>
    <edit name="antialias" mode="assign">
      <bool>true</bool>
    </edit>
  </match>

Тестируем: rxvt -fn "xft:Courier New рисует без AA, а xterm -fa «Courier New» рисует в AA. Вроде как и должно быть.

В теме fontconfig я могу плавать, потому что настравивал его ну так редко, что даже не помню, что я там делал. :) Надо еще подумать.

Исходная версия Zubok, :

Глянул я твои правила и призадумался. Потому что то, что идет у тебя в строчке терминалов в виде шаблона — это не правило, а *запрос*, по которому fontconfig ищет наиболее подходящий вариант, а вот поле поиска определяются правилами. И по всему комплексу правил находит наиболее подходящий, ближайший — это рисовать Courier New, но только без AA, так как такой способ задан правилом. Если правила нет и поле antialias пустое, то можно и так и сяк рисовать, но у тебя задано. Вот как выглядит без правил (нет поля antialias):

$ fc-match --verbose ':family=Courier New'  | grep -E '\<(family|antialias)\>'
        family: "Courier New"(s)

И вот в этом случае работает запрос ...:antialias=true/false. Пока я вижу как единственный вариант в случае твоих правил сделать исключение для конкретных приложений. Например, для xterm. Добавь к своим правилам то, что ниже, и просто проси Courier New без свойства antialias.

  <match target="font">
<!--     Это можно добавить опционально, чтобы только для Courier New -->
<!--     <test name="family" compare="eq"> -->
<!--       <string>Courier New</string> -->
<!--     </test> -->
    <test name="prgname" compare="eq">
      <string>xterm</string>
    </test>
    <edit name="antialias" mode="assign">
      <bool>true</bool>
    </edit>
  </match>

Тестируем: rxvt -fn "xft:Courier New рисует без AA, а xterm -fa «Courier New» рисует в AA. Вроде как и должно быть.

В теме fontconfig я могу плавать, потому что настравивал его ну так редко, что даже не помню, что я там делал. :) Надо еще подумать.