Reducing the number of fonts available to specific applications

fontweb-browser

It is not wise to install every font there is.
This slows down the system, your workflow etc.

For different projects and applications I need a certain number of fonts available. These are numbered significantly above the core fonts needed to run the operating system. That number is still manageable by hand.

But when using for example a web browser I want to restrict the number of fonts available from the system to them severely.

Examples: I need Arial available to me and my word processors. I do not want to see it on web pages. Browser fingerprinting is also affected by the fonts installed (as seen through the browser).
Using Writer I want to have the full set available, using image editors they should be almost font agnostic. But web browsers being the main concern here.

Without resorting to big iron font managers, user switching, VMs or the like, and not counting javascript modifications to the browsers while running:

I am aiming for something like at least two profiles for two kinds of programs running under the same user: 1. full set available 2. sandboxed/restricted set.

How to force programs into seeing just a very small and clearly defined subset of installed fonts otherwise available to the system or the current user?

Best Answer

There doesn't appear to be an easy solution. Here's the best I could come up with.

  1. In Font Book, reduce the font set to the "minimal" set by disabling fonts as appropriate.
  2. Create font "collection" folders in some directory of your choosing by symlinking to fonts in one of the font locations as appropriate.
  3. On an app-by-app basis, within the application bundle:
    • Create a directory within the resources folder that symlinks to one of your "collections" folder
    • Add the ATSApplicationFontsPath to the info.plist file as appropriate.

Ideally there'd be a way to specify font collections rather than font folders, but it seems like Apple intends this to only be used with prepackaged fonts, not by the end user. If you're keen on using the Font Book GUI, you could read from the ~/Library/FontCollections folder and automate step 2. You could also take it a step further and automate step 3.