Table of Contents

"Красивые" шрифты в X11

FIXME добавить раздел про настройку X11, KDE, XFCE, qt, gtk FIXME

Вступление

Рассмотрим три случая:

OpenSource по-умолчанию

Конфиг /etc/fonts/local.conf для первого случая:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
 
<!--  Use the Antialiasing -->
  <match target="font">
    <edit name="antialias" mode="assign"><bool>true</bool></edit>
  </match>
 
<!--  Use the Autohinter -->
  <match target="font">
    <edit name="autohint" mode="assign"><bool>false</bool></edit>
  </match>
 
<!--  Enable sub-pixel rendering -->
  <match target="font">
    <edit name="rgba" mode="assign"><const>rgb</const></edit>
  </match>
 
 
<!--  Use Full Hinting -->
  <match target="font">
    <edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
  </match>
 
<!-- Включить автохинтинг в DejaVu шрифтах -->
 
    <match target="font">
        <test name="family">
            <string>DejaVu Sans</string>
        </test>
        <edit name="autohint">
            <bool>true</bool>
        </edit>
    </match>
 
    <match target="font">
        <test name="family">
            <string>DejaVu Serif</string>
        </test>
        <edit name="autohint">
            <bool>true</bool>
        </edit>
    </match>
 
    <match target="font">
        <test name="family">
            <string>DejaVu Sans Mono</string>
        </test>
        <edit name="autohint">
            <bool>true</bool>
        </edit>
    </match>
 
<!-- Map specifics to generics -->
 
        <!-- PostScript -->
        <alias binding="same">
          <family>Liberation Sans</family>
          <default>
          <family>Helvetica</family>
 
          </default>
        </alias>
 
        <alias binding="same">
          <family>Liberation Serif</family>
          <default>
          <family>Times</family>
          </default>
 
        </alias>
 
        <alias binding="same">
          <family>Liberation Mono</family>
          <default>
          <family>Courier</family>
          </default>
        </alias>
 
        <!-- Microsoft -->
        <alias binding="same">
          <family>Liberation Sans</family>
          <default>
          <family>Arial</family>
          </default>
        </alias>
 
        <alias binding="same">
          <family>Liberation Serif</family>
          <default>
          <family>Times New Roman</family>
          </default>
        </alias>
 
        <alias binding="same">
 
          <family>Liberation Mono</family>
          <default>
          <family>Courier New</family>
          </default>
        </alias>
 
<!-- Map generics to specifics -->
 
 
        <!-- PostScript -->
 
        <alias binding="same">
          <family>Helvetica</family>
          <accept>
          <family>Liberation Sans</family>
          </accept>
        </alias>
 
        <alias binding="same">
 
          <family>Times</family>
          <accept>
          <family>Liberation Serif</family>
          </accept>
        </alias>
 
        <alias binding="same">
          <family>Courier</family>
           <accept>
          <family>Liberation Mono</family>
          </accept>
        </alias>
 
        <!-- Microsoft -->
        <alias binding="same">
          <family>Arial</family>
 
          <accept>
          <family>Liberation Sans</family>
          </accept>
        </alias>
 
        <alias binding="same">
          <family>Times New Roman</family>
          <accept>
 
          <family>Liberation Serif</family>
          </accept>
        </alias>
 
        <alias binding="same">
          <family>Courier New</family>
          <accept>
          <family>Liberation Mono</family>
 
          </accept>
        </alias>
 
 
<!--
  Mark common families with their generics so we'll get
  something reasonable
-->
<!--
  Serif faces
 -->
    <alias>
        <family>Liberation Serif</family>
        <default><family>serif</family></default>
    </alias>
 
<!--
  Sans-serif faces
 -->
    <alias>
        <family>Liberation Sans</family>
        <default><family>sans-serif</family></default>
    </alias>
<!--
  Monospace faces
 -->
    <alias>
        <family>Liberation Mono</family>
 
        <default><family>monospace</family></default>
    </alias>
<!--
  Fantasy faces
 -->
    <alias>
        <family>Liberation Sans</family>
        <default><family>fantasy</family></default>
    </alias>
<!--
  Cursive faces
  -->
 
    <alias>
        <family>Liberation Sans</family>
        <default><family>cursive</family></default>
    </alias>
 
<!-- Final config -->
 
        <alias>
                <family>serif</family>
 
                <prefer>
                        <family>Liberation Serif</family>
                </prefer>
        </alias>
        <alias>
                <family>sans-serif</family>
                <prefer>
                        <family>Liberation Sans</family>
 
                </prefer>
        </alias>
        <alias>
                <family>monospace</family>
                <prefer>
                        <family>Liberation Mono</family>
                </prefer>
        </alias>
 
        <alias>
                <family>fantasy</family>
                <prefer>
                        <family>Liberation Sans</family>
                </prefer>
        </alias>
        <alias>
                <family>cursive</family>
 
                <prefer>
                        <family>Liberation Sans</family>
                </prefer>
        </alias>
 
</fontconfig>

OpenSource по-умолчанию + шрифты Microsoft

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
 
<!--  Use the Antialiasing -->
  <match target="font">
    <edit name="antialias" mode="assign"><bool>true</bool></edit>
  </match>
 
<!--  Use the Autohinter -->
  <match target="font">
    <edit name="autohint" mode="assign"><bool>false</bool></edit>
  </match>
 
<!--  Enable sub-pixel rendering -->
  <match target="font">
    <edit name="rgba" mode="assign"><const>rgb</const></edit>
  </match>
 
 
<!--  Use Full Hinting -->
  <match target="font">
    <edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
  </match>
 
 
<!-- Включить автохинтинг в DejaVu шрифтах -->
 
    <match target="font">
        <test name="family">
            <string>DejaVu Sans</string>
        </test>
        <edit name="autohint">
            <bool>true</bool>
        </edit>
    </match>
 
    <match target="font">
        <test name="family">
            <string>DejaVu Serif</string>
        </test>
        <edit name="autohint">
            <bool>true</bool>
        </edit>
    </match>
 
    <match target="font">
        <test name="family">
            <string>DejaVu Sans Mono</string>
        </test>
        <edit name="autohint">
            <bool>true</bool>
        </edit>
    </match>
 
 
 
<!-- Map specifics to generics -->
 
        <!-- PostScript -->
        <alias binding="same">
          <family>Liberation Sans</family>
          <default>
          <family>Helvetica</family>
 
          </default>
        </alias>
 
        <alias binding="same">
          <family>Liberation Serif</family>
          <default>
          <family>Times</family>
          </default>
 
        </alias>
 
        <alias binding="same">
          <family>Liberation Mono</family>
          <default>
          <family>Courier</family>
          </default>
        </alias>
 
<!-- Map generics to specifics -->
 
 
        <!-- PostScript -->
 
        <alias binding="same">
          <family>Helvetica</family>
          <accept>
          <family>Liberation Sans</family>
          </accept>
        </alias>
 
        <alias binding="same">
 
          <family>Times</family>
          <accept>
          <family>Liberation Serif</family>
          </accept>
        </alias>
 
        <alias binding="same">
          <family>Courier</family>
           <accept>
          <family>Liberation Mono</family>
          </accept>
        </alias>
 
<!--
  Mark common families with their generics so we'll get
  something reasonable
-->
<!--
  Serif faces
 -->
    <alias>
        <family>Liberation Serif</family>
        <default><family>serif</family></default>
    </alias>
 
<!--
  Sans-serif faces
 -->
    <alias>
        <family>Liberation Sans</family>
        <default><family>sans-serif</family></default>
    </alias>
<!--
  Monospace faces
 -->
    <alias>
        <family>Liberation Mono</family>
 
        <default><family>monospace</family></default>
    </alias>
<!--
  Fantasy faces
 -->
    <alias>
        <family>Liberation Sans</family>
        <default><family>fantasy</family></default>
    </alias>
<!--
  Cursive faces
  -->
 
    <alias>
        <family>Liberation Sans</family>
        <default><family>cursive</family></default>
    </alias>
 
<!-- Final config -->
 
        <alias>
                <family>serif</family>
 
                <prefer>
                        <family>Liberation Serif</family>
                </prefer>
        </alias>
        <alias>
                <family>sans-serif</family>
                <prefer>
                        <family>Liberation Sans</family>
 
                </prefer>
        </alias>
        <alias>
                <family>monospace</family>
                <prefer>
                        <family>Liberation Mono</family>
                </prefer>
        </alias>
 
        <alias>
                <family>fantasy</family>
                <prefer>
                        <family>Liberation Sans</family>
                </prefer>
        </alias>
        <alias>
                <family>cursive</family>
 
                <prefer>
                        <family>Liberation Sans</family>
                </prefer>
        </alias>
 
</fontconfig>

Microsoft по-умолчанию

Конфиг /etc/fonts/local.conf для третьего случая:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
 
<!--  Use the Antialiasing -->
  <match target="font">
    <edit name="antialias" mode="assign"><bool>true</bool></edit>
  </match>
 
<!--  Use the Autohinter -->
  <match target="font">
    <edit name="autohint" mode="assign"><bool>false</bool></edit>
 
  </match>
 
<!--  Enable sub-pixel rendering -->
  <match target="font">
    <edit name="rgba" mode="assign"><const>rgb</const></edit>
  </match>
 
 
<!--  Use Full Hinting -->
  <match target="font">
    <edit name="hintstyle" mode="assign"><const>hintfull</const></edit>
  </match>
 
<!-- Включить автохинтинг в DejaVu шрифтах -->
    <match target="font">
        <test name="family">
            <string>DejaVu Sans</string>
        </test>
        <edit name="autohint">
            <bool>true</bool>
        </edit>
    </match>
 
    <match target="font">
        <test name="family">
            <string>DejaVu Serif</string>
        </test>
        <edit name="autohint">
            <bool>true</bool>
        </edit>
    </match>
 
    <match target="font">
        <test name="family">
            <string>DejaVu Sans Mono</string>
        </test>
        <edit name="autohint">
            <bool>true</bool>
        </edit>
    </match>
 
<!-- Map specifics to generics -->
 
        <!-- PostScript -->
        <alias binding="same">
          <family>Arial</family>
          <default>
          <family>Helvetica</family>
          </default>
        </alias>
 
        <alias binding="same">
          <family>Times New Roman</family>
          <default>
          <family>Times</family>
          </default>
 
        </alias>
 
        <alias binding="same">
          <family>Courier New</family>
          <default>
          <family>Courier</family>
          </default>
        </alias>
 
 
<!-- Map generics to specifics -->
 
 
        <!-- PostScript -->
 
        <alias binding="same">
          <family>Helvetica</family>
          <accept>
          <family>Arial</family>
          </accept>
        </alias>
 
        <alias binding="same">
 
          <family>Times</family>
          <accept>
          <family>Times New Roman</family>
          </accept>
        </alias>
 
        <alias binding="same">
          <family>Courier</family>
          <accept>
          <family>Courier New</family>
          </accept>
        </alias>
 
<!--
  Mark common families with their generics so we'll get
  something reasonable
-->
<!--
  Serif faces
 -->
	<alias>
		<family>Times New Roman</family>
		<default><family>serif</family></default>
	</alias>
 
<!--
  Sans-serif faces
 -->
	<alias>
		<family>Arial</family>
		<default><family>sans-serif</family></default>
	</alias>
<!--
  Monospace faces
 -->
 	<alias>
		<family>Courier New</family>
 
		<default><family>monospace</family></default>
	</alias>
<!--
  Fantasy faces
 -->
 	<alias>
		<family>Impact</family>
		<default><family>fantasy</family></default>
	</alias>
<!--
  Cursive faces
  -->
 
	<alias>
		<family>Comic Sans MS</family>
		<default><family>cursive</family></default>
	</alias>
 
<!-- Final config -->
 
        <alias>
               	<family>serif</family>
 
                <prefer>
                        <family>Times New Roman</family>
                </prefer>
        </alias>
        <alias>
               	<family>sans-serif</family>
                <prefer>
                        <family>Arial</family>
 
                </prefer>
        </alias>
        <alias>
               	<family>monospace</family>
                <prefer>
                        <family>Courier New</family>
                </prefer>
        </alias>
 
        <alias>
               	<family>fantasy</family>
                <prefer>
                        <family>Impact</family>
                </prefer>
        </alias>
     	<alias>
               	<family>cursive</family>
 
                <prefer>
                        <family>Comic Sans MS</family>
                </prefer>
        </alias>
 
</fontconfig>

</code>

Настройки GNOME

FIXME Изменить ЭТО на gconftool-2 FIXME

~/.gconf/apps/metacity/general/%gconf.xml следует дополнить/изменить следующим образом:

<?xml version="1.0"?>
<gconf>
        <entry name="titlebar_font" mtime="1236170515" type="string">
                <stringvalue>Liberation Sans Bold 8</stringvalue>
        </entry>
</gconf>

~/.gconf/desktop/gnome/font_rendering/%gconf.xml следует дополнить/изменить следующим образом:

<?xml version="1.0"?>
<gconf>
        <entry name="dpi" mtime="1236139981" type="float" value="96">
        </entry>
        <entry name="hinting" mtime="1236145205" type="string">
                <stringvalue>full</stringvalue>
        </entry>
        <entry name="antialiasing" mtime="1236145205" type="string">
                <stringvalue>rgba</stringvalue>
        </entry>
</gconf>

~/.gconf/desktop/gnome/interface/%gconf.xml следует дополнить/изменить следующим образом:

<?xml version="1.0"?>
<gconf>
         <entry name="monospace_font_name" mtime="1205580299" type="string">
                 <stringvalue>Monospace 8</stringvalue>
         </entry>
         <entry name="document_font_name" mtime="1205580287" type="string">
                 <stringvalue>Sans 8</stringvalue>
         </entry>
         <entry name="font_name" mtime="1205580284" type="string">
                 <stringvalue>Sans 8</stringvalue>
        </entry>
</gconf>

Заключение

Вот и всё. Осталось перезапустить подсистему X (если не перезапустить, то некоторые приложения могут “не увидеть” новые настройки. Да и всё-равно все приложения использующие шрифтовую подсистему (например firefox) придётся перезапустить.