Fonts in GNOME 3: Cantarell, Tweaking, and Trailblazing

Nicolas Spalinger explains why Cantarell is more than just a font—it’s a symbol of a whole new design process. And he shows you how to tweak the font settings in GNOME 3.

What font-related goodies we can look forward to in GNOME3? In short, the GNOME desktop will use Cantarell by default. It’s an original contemporary humanist sans serif open font by Dave Crossland, designed to work well on-screen. GNOME will maintain and extend Cantarell as a official module. The font configuration options have been tremendously simplified in GNOME 3, but there are alternate tools and tricks to tweak them to your heart’s content. But how did we get here?

 

Fonts and related software before GNOME3

If we take a quick look at the history of fonts-related libre software, we can see that many maintainers of key components like Pango, Fontconfig, Freetype, Fribidi, Cairo, ICU (International Components for Unicode) and Graphite have been either affiliated with GNOME, in touch with the community online or in person at GNOME events. Over the years, the GNOME community has significantly helped the various pieces of the puzzle come together and encouraged incremental progress across development cycles.

Even better, back in 2004, realizing the needs in that area and unwilling to depend on restricted fonts any longer, GNOME made the bold move to commission the Vera font family from Bitstream, a US-based foundry. Building upon that major milestone, the work focused on more advanced aspects of font rendering. As a result, GTK+ and the corresponding capabilities of GNOME applications have grown even further to improve complex scripts support both for screen and print. Major GNOME contributors like Owen Taylor, Behdad Esfahbod, Keith Packard, Simos Xenitellis, Wouter Bolsterlee, Dennis Jacquerye and others played a significant role in making fonts relevant on the GNOME desktop.

The conundrum of subpixel rendering, hinting, anti-aliasing options and the big matrix of choices was exposed in the GNOME control center and refined over many GNOME development cycles.

We had various incarnations of small utilities to browse, compare or manage fonts; gnome-font-viewer (thumbnailer and viewer, now with a simple installation feature) has moved on from the original fontilus suite by James Henstridge to be part of gnome-utils. Font tools like gnome-specimen by Wouter Bolsterlee or font-manager by Jerry Casiano cater to the needs of more advanced users.

More recently, the design and API integration discussions have led to the creation of Harfbuzz . You can find a fairly good overview – if not fully current – of the progress in Behdad Esfahbod’s State of text rendering. Representatives from QT, KDE, W3C, Mozilla, OpenOffice.org and SIL have actively contributed to these discussions and to the code. With the release of GNOME3, this work becomes more apparent and points to promising avenues for the future.

The rise of LGM (Libre Graphics Meeting) and the focus on UX (User eXperience)

Since 2006, the LGM has been a key event for movers and shakers across the wider community with interest and expertise in the area of graphics. Every year was a tremendous opportunity to explore new ideas, learn from others, discuss plans, implement changes and move forward on many graphics-related challenges, including fonts. Every LGM has seen an increase in the number of talks, presentations or workshops focusing on font-related topics, with the presence of font experts from various FLOSS communities. One good example is the complicated and multi-faceted topic of webfonts: it’s no exaggeration to say that discussions and networking opportunities at LGM had very significant impact on the current webfonts paradigm shift.

GNOME contributors have been active with LGM over the years, as well as participants in the TextLayout Summits which co-located with LGM a few times. Further discussion and conference calls within the loose umbrella of freedesktop.org and the wider open font community have allowed us to bring together low-level library maintainers, designers, and developers, with a focus on internationalization (“i18n”) and fonts-related issues.

The greater – and much needed – focus given to usability and interaction design we have seen over the past few years has fueled efforts around increased availability of quality open fonts, expanding both artistic choice and support for the diverse communities using GNOME in their own language. From only a handful at first, we now have a few hundred open fonts available. Many designers have seen the value of releasing their projects under a FSF/OSI-approved and community-recommended font-specific license, like the Open Font License, and various for-profit and non-profit entities have supported the work on unrestricted fonts for the wider benefit of all, including users of the GNOME desktop.

We now value recognizable typographic look and feel as a differentiating aspect of a project. Various prominent projects, like Ubuntu, openSUSE and Fedora, have decided to use an open font in the fabric of their visual identity. They do this so that their brand is more in tune with their values, and derivative localized community marketing material can be more easily created within the appropriate trademark boundaries. Having quality open fonts used to be an afterthought, but we now recognize it as a key part of the UX: much more than the fundamental building blocks of literacy and knowledge, they are also art and beauty, and have a huge role to play in the subtle difference between engaging and painful to use.

Cantarell: moving beyond commissioning

After last year’s Boston summit, the GNOME designers announced their choice of a new default open font in gnome-shell. GNOME was the first major community project to commission an open font, and now they are innovating again by selecting Dave Crossland’s original Cantarell (designed as part of his studies at the prestigious Reading Typography Department in the UK) – to become part of GNOME, to live and grow in cadence with the GNOME release cycles.

Font designers, much like other software authors, enjoy picking clever names with deeper meaning. So I’d recommend you ask your preferred search engine about the meaning behind this particular name. It may well make you think!

The commissioning approach to fonts involves a proprietary foundry developing a font family in-house, and then transferring it to a community who will maintain it with a different toolkit and methodology. A fully libre software project approach, in contrast, develops fonts with a FLOSS toolkit on a FLOSS desktop from the start, and hosts and maintains them like other modules in the community’s infrastructure. (In GNOME’s case, those comparable modules would include git, Bugzilla, the wiki, etc.) GNOME is blazing a brand new trail in moving from the commissioning approach towards a libre approach.

Jakub “Jimmac” Steiner, designer extraordinaire and core LGM contributor from the earlier days, now also committer to Dave Crossland’s project, had already designed open fonts of his own. He indicated in his blog that the methodology used by Dave Crossland was more in tune with GNOME’s culture and made much more sense in the long-term. They are many challenges ahead but these are interesting times.

Personally, it makes me happy to see that a font released under the licensing model I’ve worked on for years, with tremendous input and support from the community (see the Go for OFL community campaign ), has now also been chosen by GNOME to enable software freedom, explicit embedding and bundling permissions, while retaining copyleft and offering dedicated collaborative mechanisms in tune with the specific way font designers and script engineers work.

But let’s not forget that DejaVu, the major branch of the original Bitstream Vera, has been quite successful and is very widely used. The core maintainers, Dennis Jacquerye and Ben Laenen, and many many contributors do a lot more than maintaining what the original foundry shipped. They have actively consolidated many branches, introduced unique features and validated best practices which have pushed many software projects forward. But the full font sources, design guide and post-processing tools from the original foundry – although promised repeatedly – sadly never surfaced. Giving prominence to Cantarell in the UI will not make the amazing work done with DejaVu over the years disappear. Nor what the Liberation maintainers have achieved. Different scopes and different origins call for different approaches but they can be mutually beneficial.

Tweaking your fonts in GNOME 3

Even if GNOME 3 designers have chosen to considerably simplify (to put it mildly) the various GUI parameters available to tweak your fonts to maintain consistency and a recognizable look and feel, you can still tweak fonts to your liking under the hood.

The current version of Cantarell, although it will surely expand in the future, does not cover all the range of supported languages of GNOME. In practice, you will get fallback from other fonts shipped by your distribution to complement the current offerings of Cantarell.

Depending on your needs, you can tweak fontconfig settings, including priority ordering and the Sans/Sans-serif/Monospace generic families. Besides editing the fontconfig configuration in your preferred text editor directly, you can use Fontik to override system-wide font settings.

You can also use the gnome-tweak-tool add-on to adjust certain font features directly impacting the behavior of your new desktop.

GNOME has moved to point sizes instead of pixel sizes (pt instead of px in the CSS) to consider flexible scale factors available in high-resolution screens. You can manually adjust the sizes in /usr/share/gnome-shell/theme/gnome-shell.css .

Using dconf-editor or gsettings you can explore and change the appropriate configuration settings:

gsettings list-keys org.gnome.desktop.interface.*
gsettings set org.gnome.desktop.interface.foo "bar" "7"

For a variety of reasons beside coverage issues, you may prefer using an alternate font. Using gsettings you can change the default font. For example:

gsettings set org.gnome.desktop.interface font-name "Dejavu Serif 10"
gsettings set org.gnome.desktop.interface font-name "Liberation Serif 10"
gsettings set org.gnome.desktop.interface font-name "Linux Biolinum G 10"

You can also tweak extra font settings. For example:

gsettings set org.gnome.desktop.interface monospace-font-name "Inconsolata 10"
gsettings set org.gnome.desktop.interface document-font-name "Andika Basic 10"
settings set org.gnome.desktop.interface text-scaling-factor "1.1"

Your preferred distro should already ship with a good selection of open fonts in a default install, with plenty more available from the repositories or from online open font catalogs.

Looking into the future

Balancing the tension between maintaining a unique visual identity and expanding linguistic coverage for the diverse GNOME community is an exciting challenge to tackle. But the tools and infrastructure are now in place: the open font design toolkit is maturing, and with designers’ voices being heard, fonts will take on bigger roles. With the innovation happening around webfonts and similar technologies in the desktop and mobile space, we can expect both typographic finesse and artistic expressiveness to grow. As designers and developers expand fonts and design new ones, we’ll see a new challenge: exposing advanced typographic functionalities in a sane and balanced way, but avoiding overwhelming users with too many options.

  • Who will be the first to take advantage of the flexibility of the gnome-shell to write extensions specifically tuned to advanced fonts capabilities?
  • Will fonts be the focus of GSOC work as well?
  • Will gnome-tweak-tool be extended to expose more font-related capabilities for the advanced typophile or designer using GNOME? Will some inspiration come fromfontmatrix ?
  • Is a revamping of the font menu widget still planned?
  • Will officially supporting a new language in GNOME include making sure the needed glyphs and behaviors are validated in the official GNOME UI font family?
  • Will the upcoming Desktop Summit—held in Berlin, Germany, a city renowned for the high concentration of typographers and typophiles—push the envelope even further?
  • Will other desktops using freedesktop.org open standards also embark on the project of picking and maintaining their own dedicated visual identity in the shape of an open font? Maybe just in the lettering of their logo?

Time will tell, but good ideas tend to spread…

Why not pick up fontforge and the rest of the open font design toolkit, learn its formidable feature set and start playing with your own branch of the Cantarell sources? Contributing to making it work perfectly in your own language? Contributing to weight variations? Adding advanced typographic features and smart behaviors? Joining an open font design workshop in your corner of the world? Have fun and happy open font hacking!

Nicolas Spalinger is the co-author of the Open Font License, maintains various open font packages, helps coordinate the Debian Fonts Task Force and the corresponding Ubuntu team, advocates FLOSS best practices to font designers and script engineers, contributes to release engineering of open font projects, contributes to the open font design toolkit and is a volunteer for SIL’s Non-Roman Script Initiative.

Follow the conversations of the open font community on planet.open-fonts.org.

Update: The editor apologizes for earlier errors. We’ve now corrected some code instructions and the names of several people and pieces of software.

Discuss this story with other readers on the GNOME forums.

Advertisements

Posted on April 6, 2011, in April 2011. Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: