Glyphs 3.0.4 released

by Rainer Erich Scheichelbauer
en zh

16 December 2021

Welcome to the next stop on our common journey, and may we introduce to you: Glyphs 3.0.4, ta-daa!

Above all, this latest version is a maintenance update for Apple’s latest two systems, macOS 11 Big Sur and macOS 12 Monterey. Though as always, the update has a few goodies for everyone, and we highly recommend updating right now: Open Glyphs 3, and choose Glyphs > Check for Updates, then simply follow the on-screen instructions.

Variable fonts and TrueType

Big improvements to feature variations with a lot of different rules, and feature variations derived from bracket layers. If you have not already, read the Switching Shapes tutorial.

Kerning exports better, and all exceptions are preserved in the complete designspace, even if only some of the masters have a kerning exception, and even if you use alternate layers for switching shapes.

You can now make use of a Virtual Master also in single-master setups.

The Font Info > Font > Axis Mappings dialog has been much improved, with a clearer distinction between internal and external coordinates.

Glyphs will now always export a fallback name table ID 25 for variable fonts, even if no variationsPostScriptNamePrefix is set in Font Info > Font > General. Our hope is that it will fix most variable font issues with InDesign. Speaking of names, the variable font filename is better calculated now and ends in ‘VF’ by default. You can override it with a fileName custom parameter in a Variable Font Setting in Font Info > Exports.

Glyphs now properly exports all flags in the glyf table, which can have an influence on how overlaps in TrueType curves are rendered. This improves rendering in Chrome and Firefox, and in some font previews. Many thanks to Rob McKaughn for pointing us into the right direction.

And there have been a couple of simple bugfixes for variable fonts:

  • The Scale to UPM parameter now works as expected in a Variable Font Setting.
  • Masters, instances, spacing and components are better imported from a compiled variable font or designspace file.
  • Cleared some issues with export of variable GPOS
  • View > Show Master Compatibility is working a bit better now, with clearer drawings and colors

OpenType features

You can now remove glyphs with the new del statement. It probably makes most sense in a contextual rule:

del @finalForms connector';

The above statement deletes the glyph connector after final shapes, e.g., in a script typeface.

The include() statement now also works across multiple nesting levels. That is if you include a feature code file that again includes an include() statement, which in turn references another feature code file that again includes an include() statement, and so on.

The feature code compiler will now tolerate the AAT features morx and kerx in Font Info > Features and not treat them as errors anymore. Sorry for the inconvenience, AAT people. Now life is good again.


You will appreciate the small improvements in your daily work. You can now toggle the export status of a glyph through the context menu in Text mode. Even a selection of multiple glyphs at once will work:

And you can type regular characters in the glyph selection dialogs, not just glyph names:

A few good news for reusing shapes: Glyphs now gracefully handles component loops, i.e., composites with components referencing each other. For instance, A has B as component, B has C as component, and C has A as component.

Speaking of component issues, detached corner components will show their badges, so you can still select and delete them. And if you have been using Cap Components, you will be pleased to hear that the Fit option now works as it should.

Good news for CPAL/COLR workflows: composites referencing glyphs with Color Palette layers will decompose properly into color layers.

Language support

You would not believe it, but yes, we do have some changes in Latin. For one thing, we moved the legacy encodings Mac Roman and Windows 1252 to Languages > Latin > Legacy Encodings:

And in Mac Roman, we fixed a wrong entry: it must be increment, not Delta, ahem. Please remove the MacRoman and Win1252 entries from the Filters in the sidebar, and only use the entries Languages > Latin > Legacy Encodings from now on.

Also in the Font View sidebar, we improved Sámi support. The sidebar was lacking some punctuation glyphs. Not anymore now. Many thanks to Niklas who has been in contact with the Sámi parliament of Finland. Pretty cool.

While we are at it, we have been moving currency signs from Languages entries into the default listing of Categories > Symbol > Currency:

Thanks to Tanya, Nick, and all the others who have been helpful and patient with my many questions. Like before, all currency signs will be filtered with this category anyway, just now some more are also listed by default. We will do that if the currency sign (a) is not tied to a specific script (because then it will be listed in the respective Languages entry), (b) is in widespread use, and (c) can be easily typed on common keyboards. No, Alt-Gr codes on Windows and character pickers do not count. Based on this, do you have more suggestions? Let us know in the forum.

Quite a few improvements have been made in the GlyphData file. Thanks to your input, we have been able to add or expand support for many languages and scripts: Javanese, Tamil, even Dives Akuru. Many thanks Sérgio, Fadhl and many others who contributed.

We added Belarusian to the language picker, so you can now easily write and test OpenType features localized for Belarusian Cyrillic.

The new custom parameter Use Arabic Presentation Form Unicodes, available in Font Info > Font, will write legacy Unicode values for positional shapes. We do not recommend this option for shipping OpenType fonts, but it can be useful for testing and perhaps supporting legacy software environments. Use it only if you know what you are doing.

And if you know what that means, we updated MapFileAdobe-CNS1. Many thanks to Ken for his input. We could also fix an issue in the Adobe-KR ROS. And if you have been struggling with the import of CIDs, you will love to hear that we were able to track down and fix the bug that caused you so much trouble. It’s all good now.


Some good news for the scripters among you. Glyphs now officially supports Python 3.10, and we were able to update much of the API documentation.

For plug-ins, we added a new, much safer addCallback API. Make sure you use the latest plugin binary from the GlyphsSDK to profit from it.

Glyphs should now spit out much better error messages when a script fails. Also, in case you are a TextMate user, the line numbers in the tracebacks are clickable again.

In further news, we fixed Glyphs.localize() method for zh-Hant. And we added GSDocumentDidCloseNotification and proper KVO (Key Value Observing) for NSDocumentController.documents and Glyphs.orderedDocuments. If you know what this means, you will understand how much easier your life just became. And your users will appreciate it as well, we are sure.

The usual

Thanks to your bug and crash reports, we have been able to further improve both stability and performance of our favorite font editing app. And then some. Here is a very selective list of our further update news:

  • Improved bracket layers in OTVar export
  • Improved Chinese and Portuguese localizations (thx Colt and Sérgio)
  • Improved font export at a low level
  • Improved app performance with a sub-grid and a high zoom level
  • Improved UFO handling, especially round-tripping of glyph.userData and kerning to and from UFO files
  • Improved component handling
  • Fixed toolbar issues in macOS 12
  • Improved sidebar behavior: quicker update of badges, logical-and concatenation in filters
  • Improved Edit > Compare Family…
  • Fixed the decomposition of component anchors in ligatures into consecutive anchors like top_1, top_2 (thx Joancarles)
  • Improved handling of RTL kerning (including clipboard operations)
  • Improved hinting:
    • Improved behavior of TT deltas on zones
    • Improved behavior of TT zones with a scope
    • When editing paths, hints attached to the outline are preserved much better
    • Better decomposition of PostScript hints
    • Improved TT instructions (thanks Edgar)

If you have not already, please open the Glyphs menu, choose Check for Updates, and enjoy the latest app version. Stay sane, safe and healthy.