Как отключить сглаживание шрифта только в терминале?

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

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

7
задан 30 March 2011 в 23:42

2 ответа

Вы можете управлять сглаживанием шрифтов в ~/.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 является ссылкой на язык конфигурации, но без особых практических примеров.

0
ответ дан 30 March 2011 в 23:42

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

sudo apt-get install xfonts-terminus console-terminus

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

0
ответ дан 30 March 2011 в 23:42

Другие вопросы по тегам:

Похожие вопросы: