Как отключить сглаживание пиксельных пикселей только в терминале?

7

Для программирования мне нравится отключить сглаживание шрифтов (т. е. выбрать вариант «Монохром»), поскольку он делает текст терминала намного более резким при меньших размерах шрифта. Но тогда все в веб-браузере выглядит хуже.

Есть ли способ получить лучшее из обоих миров и иметь не-сглаженные терминальные шрифты, но сглаженные шрифты веб-браузера?

    
задан dan 30.03.2011 в 21:42
источник

2 ответа

8

Вы можете управлять сглаживанием шрифтов в ~/.fonts.conf . Выполнение этого на индивидуальной программе требует некоторого обмана.

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <dir>~/.fonts</dir>
  <alias>
    <family>XTerm</family>
    <prefer><family>Envy Code R</family></prefer>
    <default><family>monospace</family></default>
  </alias>
  <match target="pattern">
    <test name="family">
      <string>XTerm</string>
    </test>
    <edit mode="assign" name="family">
      <string>Envy Code R</string>
    </edit>
    <edit mode="assign" name="antialias">
      <bool>false</bool>
    </edit>
  </match>
</fontconfig>

Это создает псевдоним шрифта, называемый XTerm , который сопоставляется с Envy Code R , но отключает сглаживание. Запустите fc-cache ~/.fonts , и вы должны затем выбрать этот шрифт в терминале.

Если вы не возражаете (или даже предпочитаете) шрифт, используемый в терминале, всегда не сглаженный в любой программе, это немного проще:

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <dir>~/.fonts</dir>
  <match target="pattern">
    <test name="family">
      <string>Envy Code R</string>
    </test>
    <edit mode="assign" name="antialias">
      <bool>false</bool>
    </edit>
  </match>
</fontconfig>

, который не требует каких-либо других хакеров и гарантирует, что Envy Code R всегда сглаживается.

Вы также можете ограничить размеры шрифтов, в которых может выполняться сглаживание:

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
  <dir>~/.fonts</dir>
  <match target="pattern">
    <test name="family">
      <string>Envy Code R</string>
    </test>
    <test name="size" qual="any" compare="less">
      <double>8</double>
    </test>
    <edit mode="assign" name="antialias">
      <bool>false</bool>
    </edit>
  </match>
</fontconfig>

, чтобы предотвратить сглаживание для Envy Code R , когда оно меньше 8 пунктов.

Эта статья в Arch Wiki показывает, как настроить шрифты более подробно. man fonts.conf - это ссылка на язык конфигурации, но практически без практических примеров.

    
ответ дан geekosaur 30.03.2011 в 22:19
источник
1

Я потратил много времени на сглаживание шрифтов и системных конфигураций, чтобы получить достойный не-сглаженный шрифт в терминале Ubuntu. Одним из решений было установить выделенный шрифт TrueType без сглаживания, например Terminus. Задайте настройки терминалов для использования шрифта Terminus 8 или используйте инструмент дополнительных настроек Ubuntu, чтобы установить глобальный шрифт консоли на Terminus 8.

sudo apt-get install xfonts-terminus console-terminus

Мне еще предстоит найти решение, позволяющее использовать мой любимый шрифт (X11 6x13) в терминале. Между тем, я использую pterm и Putty вместо Terminal. Единственным недостатком является то, что pterm и Putty не поддерживают вкладки.

    
ответ дан Steve HHH 24.01.2013 в 20:21