Glyphs 2.6.6 Released

by Rainer Erich Scheichelbauer

31 December 2020

Yes, version 2.6.6 is out! It brings you significant improvements for variable fonts and then some.

Yes, version 2.6.6 is out! It brings you significant improvements for variable fonts and then some. As always, check for updates with Glyphs > Check for Updates… and follow the on-screen instructions that will come up right away.

Variable Fonts

Yes, there is a new custom parameter called Variable SubfamilyName. You add it in File > Font Info > Instances. What it does is it defines the style name (a.k.a. ‘subfamily’ name) of the instance in a variable font export:

The Variable SubfamilyName parameter is useful in those cases where style names differ between static and variable fonts. That can happen when, e.g., different width variants are split into separate static font families, say, MyFont Condensed and MyFont Narrow, and the weights are called Medium, Semibold, Bold, etc., for both. In the variable font, where the font family would simply be called MyFont or perhaps MyFont Variable, it would not make sense to have multiple instances called Medium or Semibold, but you would add the width name to the variable instance name, a.k.a. the variable subfamily name.

And while we are at it, inactive instances are now ignored during variable font export. Exactly the way you would expect it.

Hinting for variable fonts is much improved now. Export of TrueType hints works much better in OTVars. For one thing, that has to do with an improved calculation of the cvar table, the table that changes the values in the CVT table. If you do not know what that means, don’t worry.

Glyphs 2.6.6 also exports improved avar table mappings. Speaking of which, we fixed a bug and now, removing existing axis mappings works again as expected.


If the referenced glyph of a component is empty, you get the ‘empty base glyph’ placeholder. It now has an inverted shape, so you can more easily (double) click it:

Improved global guide UI

We widened the Edit > Info for Selection dialog (Cmd-Opt-I) for global guides:

Enough space for guide names, and even the most complex filters.


You can now override the effect of the Link Metrics With First Master custom parameter with double equal sign key. Start your metrics key with ==, and the metrics of the glyph will transcend the restrictions imposed by the parameter.

And the Edit view is now responsive when you are changing metrics. Every time you change the sidebearing, you will see the changes immediately.


For a sharper pixel image, PostScript hints are now properly rounded after interpolation. And Glyphs will export even if there is not the same number of alignment zones in all masters. And Glyphs 2.6.6 now properly imports PostScript ghost hints as well as triple hints (‘vstem3’).

And in case you are coding and using the API, the GSGlyph.hasPostScriptHints property now returns a reliable value. Yes, it was a bug that was easy to work around, but nonetheless annoying, now fixed.

Font info

The UI in File > Font info has been improved. Buttons for adding and removing are a little larger and thus easier to target, and names displayed in the left column are now working as they should when you resize the sidebar. Also, the Remove Features parameter now works again for GPOS features such as mkmk or mark.

Plus, we fixed a rare but annoying crash that could happen when a custom parameter was changed not through the UI, but, say, through the Python API. You may have experienced this when you were running certain scripts. No more.

Encoding and glyph sorting

If you have double-encoded glyphs, they will now properly treated in Font view when you apply appropriate sidebar filters. And speaking of which, when you have a filter applied in Font view, the sorting of the filtered glyphs works as expected now. Did I mention sorting? Sorting of upper-plane glyphs, i.e., anything beyond a Unicode value of FFFF, now also sort exactly as they are supposed to.

Glyphs 2.6.6 adds support for AdobeJapan1-7, and double-encoded glyphs now export properly into CIDs.

Thanks to your input, we could expand the built-in glyph database, e.g., with improved Balinese, Thaana, and a range of Arabic glyphs. Cypriot, Nabataean, Etruscan, Umbrian and Oscan are now available out of the box and properly registered as RTL scripts.

Small improvements

As always, a lot of under-the-hood improvements were made and some tiny bugs were fixed. Generally, things like selection focuses to tab orders. Things too small to mention, but you may notice during everyday work. Nevertheless, these are some of those things:

  • When you now click on the Install Modules button in Glyphs > Preferences > Addons > Modules, a compatible version of the vanilla module is installed now. Reinstall modules in case you have been experiencing script troubles.
  • Fixed an issue with open paths in nested components.
  • Fixed shine-through of anchors for glyphs with nested ligature components.
  • jdotless will now be substituted for in an automated smcp.
  • Color layers are now considered ‘special’ layers, too. They will be displayed bold in the Layers palette, and they will show up in the respective smart filter, and when you check for it in Python code with GSLayer.isSpecialLayer.
  • Localizations have been improved, especially Chinese and French.
  • Implemented new crash reporter.

… and many, many more little things. Happy new year, and have fun with Glyphs 2.6.6!