MacOS – Reload all fonts without restarting an app

fontmacos

On Mac, when you edit the design of a font and want to reflect the change in an app (i.e. display glyphs in an updated design instead of old one), you'll usually have to restart the app. Is there a way to quickly get the change reflected in all apps without restarting? I'm currently editing a font frequently and restarting apps every time is a pain.

One thing I noticed is that when I edit a font, and type the updated glyphs first time in hours, apps do reflect the change and display the glyphs in a new design instead of an old one without restarting. So I suspected that commands like purge, killall -KILL SystemUIServer, and killall -KILL Dock might be relevant (I run those commands a couple times a day) so I tested but they didn't work.

I also tried

sudo atsutil databases -remove
atsutil server -shutdown
atsutil server -ping

but it didn't have any effect either.

OS: Mountain Lion 10.8.3

Best Answer

Someone may have a better solution, but here's an explanation and potential workaround.

The problem you're having is that you're editing a font already loaded by your applications. In other words, while macOS has been able to dynamically add fonts to application menus since the onset of Font Book (although it often didn't work well until Mac OS X Leopard was released in 2007), it's not able to trigger the fact that the font itself has changed.

My best guess at a workaround is to just use Font Book to Disable the font and then to Enable it again. This should force all your open applications to register the change because the font has been enabled again.

As an aside, you may find this page of interest to you: Font Management in macOS and OS X.