Roundtable: font issues

Registered by Arne Goetje on 2009-05-23

Discussion about the current issues with the fonts we ship and how to improve the situation for Karmic.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
Obsolete
Series goal:
None
Implementation:
Informational Informational
Milestone target:
None
Completed by
Martin Pitt on 2009-12-03

Related branches

Sprints

Whiteboard

font issues
========

 * cannot use pixel sized fonts -> lots of applications reinterpret pixel font sizes as point font sizes
  * set the dpi to 72 in the application (possible with pango) "pango_ft2_font_map_set_resolution()"

 * fonts become too tiny on really high-dpi devices
  * consider profiles for different output devices (handhelds, screens, projectors)
   * pixel sized fonts, with minimum point size
   -> needs verification if it's an issue at all

 * font packages set conflicting fontconfig settings, and one of them gets to override all the others
  * fontconfig should be able to render different fonts with different settings simultaneously
  * those packages that don't include fontconfig default settings should
  * the quality of the settings should be reviewed per font
   -> I'll call on the Debian maintainers of the font packages to review the quality of their fontconfig snippets
   -> need to review the fontconfig config files which come from upstream

   * Nicolas Spalinger (and the others in the upstream Debian font team to help out with fontconfig/package review)

 * font settings in gnome are ignored by non-gnome apps.
   - look in fontconfig or other places (or just guess their own)
   - gnome should just use fontconfig instead -> upstream issue

 * automatic subpixel order detection works on the library sides, but cannot
   be expressed in the gnome font configuration dialog.

 * More than one screen can need different DPI settings (eg plug into a projector or dual monitor)
 -> may not be possible in X. May cause an awkward transition when dragging a window from one monitor to another

 * No freedesktop spec for font settings like are in gnome font settings
   - third party app that needs to do its own font rendering can't quite poll the settings (must instead use library) ?

 * Fonts installed into .fonts might not be optimized for screen usage.

 * Installing fonts is hard (must make .fonts folder in home directory and put it there)
   - Should be able to double click font, get a preview option, and click to install. If the font is already installed, the button should change to "Uninstall"
   -> Mat Tomaszewski will work with James Henstridge on designing the UI for that

     (this handler could also be directly run if you open font files in the web browser)
     - was written, has bitrotted, not in current Gnome release. James Henstridge to look into resurrecting it. the thumbnailer and viewer are back but the font folder was lost in the gvfs move. Upstream GNOME wants a separate utility to handle the font folder.
     - could work straight off web (click link, opens preview)
       * http://bugzilla.gnome.org/show_bug.cgi?id=495510
     - also right click->install font
     - KDE has install button on font preview that asks if you want to install it personal or system-wide

        Install this font:
        (*) for personal use
        ( ) for everyone on this computer (requires administrator password)

   - System->Preferences->Appearence->Fonts should have a way of adding fonts
   - fontypython might be a tool to investigate (pygtk, handling .fonts copying and symlinking, allowing sets), fontmatrix (qt-based) more mature (fontmatrix can be themed with gtkstyle)
   - a simpler installer code + glade is linked from https://wiki.ubuntu.com/FontManagement:
 http://perso.wanadoo.es/jag0069/screenshot2.png
    - other alternatives include gnome-specimen and Waterfall (they only preview fonts and don't manage them)

 * selection of fonts
  * should test receiving a document with microsoft fonts and see if we do metric-compatible things by default
   - Liberation fonts (or Droid fonts) and Wine Tahoma replacement need to be installed by default (and used)
    - Wine Tahoma is actually a derivative of Vera Sans:
    http://pkg-fonts.alioth.debian.org/review/fnt-a53783e3db75982d0e6f72197272a3f0.html
    better user newer open fonts.
   - need aliases to replace MS fonts in fontconfig with the Vista C-fonts and the upcoming Windows 7 set too (I have some snippets that need testing)
   - should make sure that metric-compatible fonts are being used whenever they can
  * currently many of the fonts appear identical (e.g. many versions of Helvetica with different names)
   * need to make a chart of why each font is there, and what character set(s) it covers, to identify duplication
 -> The Debian font review exist to help precisely with that (see below)
 -> Windows 7 has this widget allowing a user to hide fonts they know they will not use in their locale
  -> a smarter font set + a way for the user to hide away some of the remaining ones

   - should also make sure this cycle ships an @font-face implementing browser
    see http://openfontlibrary.org/wiki/Web_font_linking_with_@font-face

font classification
=============

Arne Goetje to follow up on the discussion about tags and package headers

 * classes: serif, sans-serif, monospaced, modulated, unmodulated, screen, printing, calligraphy, decoration, bitmap
 * use debtags to tag font packages
  * font type (class), language, script, country, hints, embedded-bitmaps

  existing tags to fill-in:
  made-of::font
  role::content:font
  x11::font
  use::printing
  works-with::text
  use::typesetting

  possible tags:
  style: serif, sans-serif, monospaced, modulated, unmodulated, screen, printing, calligraphy, decoration, bitmap, symbol, impaired
  coverage: iso-639-3 (languages), Unicode blocks/scripts, iso-15924 (writing systems)/CLDR.
  type: truetype, postscript, bitmap
  embedded bitmaps (yes/no)
  contains hints/instructions (yes/no)

 * font registry (in LP?)
  * which font package contains which fonts
  * tag each font with the same tags like the font packages
    - similar to fontconfig classes?
    we need more than what fontconfig currently offers

 Upstream resources to help with classification:

In the Debian team we have updated our weekly review to expose more
metadata, coverage and also fontlint reports for each font in the
archive: http://pkg-fonts.alioth.debian.org/review/

This script (which could always be improved and tuned for Ubuntu use)
already allows us to see when fonts are duplicated in various packages
based on the md5 hash. For example Vera in the current report:
http://pkg-fonts.alioth.debian.org/review/fnt-785d2fd45984c6548763ae6702d83e20.html

The script is in my folder in the team repo:
http://svn.debian.org/wsvn/pkg-fonts/people/yosch/debfontreview

There are also various lintian checks being written to help with that at
the packaging stage too.

Still on the review side of things, Ed Trager has written for the needs
of the Open Font Library (OFLB) a good utility to do full font review
and analysis: http://www.unifont.org/fontaine/
A jquery frontend is underway too for the uploading part.
http://openfontlibrary.fontly.org/files/glyphobet/59
http://openfontlibrary.fontly.org/submit/typeface

 * UI to access the font information
  * e.g. show me all fonts for my language which are suitable for pretty printing
  * e.g. I want to install additional fonts which are suitable for my language

And for the UI changes there are various resources on the ongoing font
management spec:
https://blueprints.edge.launchpad.net/ubuntu/+spec/font-management

http://aruiz.typepad.com/siliconisland/2008/08/font-selectio-1.html
http://www.unifont.org/fontdialog/

There's always a little patch waiting for inclusion on the GNOME
bugzilla to make the gnome-font-viewer show more useful metadata:
http://bugzilla.gnome.org/show_bug.cgi?id=407605

We should look into pulling in the work done by the Fedora guys on the
packagekit gtk module allowing detection of needed fonts and offering
the appropriate package for installation to the user:
https://fedoraproject.org/wiki/Features/AutoFontsAndMimeInstaller
http://blogs.gnome.org/hughsie/2008/12/01/packagekit-and-pango-are-now-friends/

to test the packagekit feature of Fedora 11 you need
sudo yum installl gnome-packagekit-extra, packagekit-gtk-module

then activate the gconf key
gconftool-2 –type boolean -s /apps/gnome-packagekit/enable_font_helper 1

http://git.gnome.org/cgit/pango/tree/pango-view/HELLO.txt
http://www.trigeminal.com/samples/provincial.html

(?)

Work Items