FontManagement

Revision 9 as of 2006-07-14 16:18:38

Clear message

Summary

Polishing existing font management infrastructure and adding extra components to make handling fonts very easy and user-friendly in GNOME

Picking up some ideas left over from ["UbuntuDownUnder/BOFs/FontHandling"].

Rationale

The free desktop has made some amazing progress with system-level font support, now we just need some interface polish to expose and complements some font-related functionnalities.

Use cases

  • Jeff is a designer with a large collection of fonts and he's much rather be able to group fonts in logical sets and activate/deactivate them when needed rather than spending too much time manually uninstalling the ones he wants out of his way or which are using a script other than his own. His font menu is too way too big and some of his apps have annoying performance problems enumerating big font lists. He needs a better way of handling fonts.
  • Jane has just installed a new font package from the archive and finds the font really beautifully designed. She goes into the font folder and wants to learn more about the font by looking all the font metadata in the properties tab. She wants to know if that font has smart features for a specific writing system. She can easily see the features of the font, the history of the project, what inspired the design of that particular font family, etc by simply using the context menu. She can also quickly see the license of the font and may choose to contact the designer to extend the font for her.
  • Jack has bought a font from a renowned foundry and would like to install it manually. He does not want to use the command line and does not care about fontconfig caches and xml configuration. He wants to drap&drop and play with cursors and menus to adjust all the font settings. He needs a nice responsive GUI to install/remove his proprietary font and configure it.

  • Ric would rather just run Free Software on his laptop. He wants to be able to visually distinguish the free/libre/open fonts he has installed from the few restricted fonts he still needs to use. He taggs his fonts with emblems and they automatically get grouped together. He has a dynamic set listing all fonts from a foundry whose open fonts he really likes, when this foundry releases a new fonts and he gets it from the archive, it automatically joins the set.

* Seb does know, he'll never use Arabian fonts for writing, just for viewing when visiting websites; the fonts should not appear in font selection menus.

  • Some fonts are designed for screen display only, and don't look well well when printed (metrics are incompatible when used as replacement fonts)

Scope

Design

  • improving the various font bits in nautilus
    • exposing the font:/// folder more
    • improving gnome-font-viewer (using treeviews to avoid scrolling)
    • creating a properties tab for fonts metadata (the binary fields showed by ftinfo -a font.ttf)
    • allowing i18n modifiable pangrams
    • visually distinguishing (manual grouping? tags? emblems?) system-wide fonts (/usr/share/fonts/) from personal ones (~/.fonts) as well as restricted/proprietary fonts from free/libre/open ones when browsing fonts:///
    • adding contextual menu actions related to fonts
    • in the font preferences panel, allow change of font family and size of all four fonts at the same time.
  • creating a smarter font menu: [http://unifont.org/fontdialog/ Font selection widget proposal]

  • providing a GUI to set more fontconfig parameters for a user's fonts.conf
  • provide a way to adjust the priority of overlapping glyphs from various fonts

RaphaelBosshard: Would it be possible to sort fonts into multiple categories? Like "Design", "Handwriting", "Futuristic", "Western", and so on?

Yes, hopefully once the ability to create font sets and activate/deactivate them easily is there.

We want the ability to hide/filter certain fonts in the font selector dialog.

We want to reduce the default set (and get better names)

  • Adding directory suppport
  • Make it so that you don't need to restart Nautilus to refresh the font list. It shows up in some apps but GNOME doesn't pick up a new font unless it's dragged and drops.
  • Have the font thumbnailer use Fontconfig to determine if a given font is using fall-back glyphs and do not show these as part of hte thumnail.
  • Add an "install" function to the context menu in GNOME.

We need better thumbs (tile view) like nautilus's upcoming section feature

We should be able to distinguish non-free from free/open fonts

Only install a basic set of "international" fonts on the default desktop, move other fonts currently installed into a meta-package "international fonts", which can be optionally installed. Do not let the language packs depend on specific fonts (we'll would have to test a huge combination of different configs which makes testing unnecessarily complicated).

These two suggestions conflict will cause problems: who defines what is basic, what is optional? We're moving away from the omnibus/pan-unicode font approach. Where else can we do the mapping between locale and appropriate fonts than the dependencies of the language packs? The common fonts.conf can only do so much combinations. The testing will be distributed out to the LocoTeams.

Implementation

Possible inspiration:

Some time ago, before dapper change from 6.04 to 6.06 I made some changes to gnome-font-viewer. It works, but I don't know to integrate it in the source package control-center. I redesigned the ui and used libglade. It is very similar to the old viewer, but it allows to install fonts (it is the same as dnd in fonts:///). I had forgotten it, when I read this spec. I think it could be useful.

There is a project to update gucharmap, improve the UI and make it more of a font viewer/manager

Code

Data preservation and migration

Outstanding issues

Look at defoma and it's use cases vs. the use of fontconfig.

BoF agenda and discussion

discussion of related specs: FontDesignToolkit OpenFonts


CategorySpec