FontManagement

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 functionalities.

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 knows he'll never use Arabian fonts for writing, just for viewing when visiting websites; the fonts should not appear in font selection menus.
  • Dylan is an expert in his subject matter, has an accelerated mind, reads voraciously, writes professionally, and blogs prolifically. He understands that fonts with a large variation between short widths (i) and large widths (M or W) make it hard to accurately control the cursor when scribbling frantically with his keyboard boosted to a very high repeat rate, so he prefers to edit using fonts with more consistent character metrics, but there is no easy way to search for these.
  • Dylan also understands that line length, intercharacter spacing, interword spacing, interline spacing, and letter forms all interact with how quickly meaning flies off the page into his mind when reviewing copious source materials at high speed, sometimes jumping a page at a time, sometimes attending specific words and phrases. There are some fonts he loves for letterform, but hates for having the interline spacing (leading) too close together or too far apart. He would like to be able to tweak that on a system-wide basis, or search for a font with similar letter forms, but less constrictive leading.
  • Dylan knows he can adjust leading on a paragraph or document basis in OpenOffice, but would prefer the control over font leading to work to work like a volume control panel, where different sources can be normalized to his personal display aesthetic rather than futzing with paragraph formatting on a per instance basis.

  • 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: 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 support
  • 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. bug 10545

  • 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 the thumbnail.
  • 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).

The two last suggestions (international fonts + not font deps in the langpacks) may cause problems IMHO: 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 in the recommends of the language packs? The common fonts.conf can only do so many combinations this is why there is a /etc/fonts/conf.d. The testing will be distributed out to the LocoTeams.

Implementation

Possible inspiration

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.

  • gfontsampler

  • yalla

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

  • Ausimage: Having been frustrated by the Debian font manger gui. et al. It would be nice to just have a program that recognize popular font cd collections and just adds them to the system. Also I should be able to just right click on the font; gksudo popup; authorize; install with minimal questions; refreshes or reminds how to get font usable (ie close this or log off that). This should also work on folders of fonts as well. After the installation, I could run the GUI and edit the defoma-font hints et al to match my needs. With editing the font hints better examples of what each term means need to be included. Also a font sample of the one being hinted would be very helpful. LET ME KNOW if you need a usability assessment.

Possible inspiration could also be some commercial stuff who is widely in use..

Extensis Suitcase:

http://www.extensis.com/en/images/SuitcaseWindows-Main.jpg

Designers and other people who often handle with fonts use it for over ten years.. So this UI works. And the program (available for WIN and MAC) also.

Linotype FontExplorerX

http://image.linotype.com/cms/power_img_d20673i27.gif

Another tool who was widely in the press the last time is the Linotype FontExplorerX - it is freely available (as in beer) for WIN and MAC - and even people who used the de-facto standard "Extensis Suitcase" in the past, now switching to this tool - because it is free and has extra support for the programs it is most used with (a complete and working auto-activation of the fonts used in the document of these programs)

So these commercial tools should be also mentioned when talking about a usable font manager for Gnome. The working principle is not too complex - move or copy the fonts which the user want to use in the .fonts/ folder, and remove them, if the user don't need them, or do this via links. Because its in fact generally that simple, the designing efforts really could be put on the user interface and nice features. Because I found no perfect tool in the past I would start a new one who is oriented on the tools who are used in printing and design companys nowadays - if someone is interested participating in such a project, leave me a message here or via mm (at) mpathy (dot) de - until then, I start a little bit for myself! -- mpathy

Perhaps something like FontCase http://www.bohemiancoding.com/fontcase/preview.html

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

FontManagement (last edited 2010-03-16 11:33:47 by allan-stokes)