Glyphs Plugin: Filter List Manager

Hi all,

I just released a free, open source plugin for Glyphs called Filter List Manager. It assists with the creation and management of glyph filter lists by specifying a newline-delimited text definition file that can be stored locally or remotely and used through the plugin to define the filters that are listed in your Glyphs GUI. The definition files are stored in a new directory on your macOS system (~/GlyphsFilters). My hope is that this will simplify conversion between different filters for any project-specific needs that exist out there and provide an avenue for sharing filter lists between design teams (e.g., push a definition file that you create to a Github repository and make it available to others who could benefit from it, they enter the URL to it and can immediately use it in their editor). The definition files support comment lines for licensing and commentary needs. The repository README has full details on how to create definition files and use the three new Edit menu items that are installed with the plugin.

I hope that it is helpful to development workflows out there and look forward to any feedback that you have. If you give the approach a try and run into any problems or have suggestions for changes, please file an issue report on the repository so that we can address them! Our projects are always open to collaboration. If you would like to dive in and commit source changes to make the project better, please fork the Github repository and file a pull request. Let me know if the pull request process poses a barrier to contributions because we can easily work around that issue so that we can include your contributions. Enjoy!

Apache License 2.0

-C

1 Like

You know that you can just put a ‘CustomFilter.plist’ file next to your .glyphs file (with the same format than the one from ‘Application Support/Glyphs’). You will get a second filter section in the sidebar. You can give the local group a name by adding it to the file name. So ‘CustomFilter My Secret Project.plist’ will be called ‘My Secret Project’.

Then the synchronisation with colleges is very easy as you can use the same ways as you sync the .glyphs file (e.g.: git or dropbox).

And I would strongly advise agains putting something in ~/GlyphsFilters. Those things belong in the App Support folder.

Part of the benefit of the plugin approach IMO is that it takes the user-facing definitions out of plist/XML and places them in simple (for humans) newline-delimited text files. Users never touch XML/plist spec’d data, they just write a text file that lists glyph names in either the Unicode hexadecimal (uniXXXX style) or AGL style formats supported by Glyphs using any text editor. CustomFilter.plist files (where Glyphs stores filter list data) are never stored in the ~/GlyphsFilters directory and the existing builtin approach to filter list management is not broken or modified in any fashion. ~/GlyphsFilters is the location for storage of the human readable filter list definition files that are used to create the Glyphs-specific definition file CustomFilter.plist. The plugin writes the file to the default location. The repository contains a Python 3 script that permits export of currently defined filter lists to the FLM specific definition format and when FLM writes the new filter lists to the CustomFilter.plist file, it is by definition in the Glyphs specific format and can be modified, adapted, deleted using the Glyphs tools and Glyphs editor UI. When/if the plugin is uninstalled all filters continue to work in Glyphs and can be modified, deleted, edited using the Glyphs editor and Glyphs tools. This was designed to supplement, not replace your builtin approach :slight_smile:

This is definitely something that we could consider supporting if users prefer to view new filter list sections through plist definition files that are stored in a project-specific fashion next to their typeface source. In my mind, the plugin makes it simple enough to swap filters in/out (you can create a master remote definition list and comment out those that you don’t need, uncomment those that you do, then update your filters with a click on the plugin Edit menu item as you work on different projects) that this may not be necessary. Be interested in more feedback about this.

The user can add/remove/edit the filters through the normal Glyphs’s UI. I see that I need to add UI to add a local plist file.

I really meant it when I when I said to not store stuff in the users main folders. That is like office marking a folder with internal shit in my documents folder. That is so annoying.

1 Like

The directory is where users store their own definition files that they are writing themselves (or their own custom definition files that include URL to the location of remote filter list definition files, again that they are editing themselves in a text editor directly in that directory). I chose it so that it was easily accessible. Happy to change the location. The directory is automatically opened in one of the plugin Edit menu items and that can be linked to the change in location. Adding issue report to the repository to discuss this. Let’s take the discussion about this change there. Thanks Georg.

Will answer on GitHub.

The custom plist for shared custom filters is a great feature, but could the be editable inside of Glyphs as well?
One little flaw: At the moment I see only 2 ways: edit manually in a text editor (which is a bit cumbersome due to the plist’s xml format) or opening in Xcode (which not every member of the team has and which is also not easy to adjust)

but could the be editable inside of Glyphs as well

Not through the plugin.

At the moment I see only 2 ways: edit manually in a text editor (which is a bit cumbersome due to the plist’s xml format) or opening in Xcode (which not every member of the team has and which is also not easy to adjust)

This was a major part of the rationale for the plugin design. It uses newline delimited lists of glyph names that you can edit in any text editor (without dealing with XML) and store either remotely (e.g. Github repository) or locally for use.

Oh, I see. Seems I need to have a look at the Plugin :smiley:
Thanks

1 Like

No problem Mark. Please let me know if you have any problems/questions.

Also, this repository contains a large number of premade newline delimited filter lists that include data from Adobe, Comité Européen de Normalisation, Google, Underware, Unicode


Hope it helps!

1 Like