Summary

Enhance the font setting tool in gnome and KDE to manipulate the system-wide or user-based fontconfig configuration. This includes settings like font reordering for serif, sans-serif and monospace meta fonts, anti-aliasing, hinting and embedded bitmap handling.

Release Note

In the past users often complained about the default font settings in Ubuntu, however each user has different preferences. To have one font configuration which suits all users is simply impossible. Therefore we give the users the opportunity to change the default font settings in the font setting dialog according to their liking. The settings which can be modified with this tool include: font reordering for serif, sans-serif and monospace meta fonts, anti-aliasing, hinting and embedded bitmap handling on a per-font basis.

Rationale

In the past users often complained about the default font settings in Ubuntu, however each user has different preferences. To have one font configuration which suits all users is simply impossible. We need to give the users the possibility to manipulate the default font settings according to their liking.

In detail, we currently have the following situation:

  1. fontconfig provides a low level method to configure and manipulate font settings
    1. distribution wide (/etc/fonts/conf.avail/ and /etc/fonts/conf.d/)
    2. system wide (/etc/fonts/local.conf) -- overrides settings in /etc/fonts/conf.d/
    3. by user (~/.fonts.conf) -- overrides system wide and distribution wide settings
  2. KDE uses fontconfig by default and uses ~/.fonts.conf when settings in Appearances/Fonts are changed.
  3. Gnome has its own way to store this configuration information. The Gnome settings override the fontconfig settings in Gnome applications.
    • need to cause running applications to be updated
    • gnome-settings-daemon uses X Settings to communicate this to running applications
  4. Problems we face:
    1. Users have different preferences about font settings, which cannot be satisfied with a 'one configuration fits all' approach. This includes:
      • Anti-aliasing on/off/embedded bitmaps for CJK
      • Hinting (autohinting on/off/binary hinting)
      • Font ordering for the meta fonts (serif, sans-serif, monospace)
      • cannot be set by locale as users use all kinds of locales to display all kinds of scripts, however, we can suggest a font ordering based on the user's locale setting.
    2. Full implementation requires language tags for text (which many applications do not support), but a lesser implementation is possible

Use Cases

Assumptions

Design

The font selection tool reads the system wide and local user fontconfig configurations and displays the current configuration in a GUI with multiple options, e.g. different tabs for font reordering, anti-aliasing, hinting and other important settings. Changes will be stored in a separate config file, which overrides the existing fontconfig configuration.

GUI design

The current Gnome and KDE font setting dialogs need to be redesigned. Matthew Paul Thomas will provide suggestions for this.

TBC

additional user requests (may be implemented later)

Implementation

Test/Demo Plan

Things to watch out for

Default font settings


CategorySpec

font-selector (last edited 2008-12-17 15:57:26 by 122-116-246-179)