Question about feasibility of assigning multiple Layer Colors

I am wondering if it would be feasible to be able to assign multiple Layer Colors to a glyph.

The context of this question comes from following the progress of @HugoJ plugin FontDashboard and here

The plugin is a clever way of harnessing the organizing potential of Layer Colors by adding a level of game-like visualization displayed as progress bars.

I know people use Layers Colors to organize in all sorts of ways.

An example of the mock-up of the FontDashboard UI has this type of organization:


In this context, what if a user wants to select more than one category for a glyph, for example, Needs Redrawing (Red) and Check Anchors (Purple). This would require being able to select multiple Layer Colors which isn’t possible at the moment.

In another post @mekkablue brings up the question and challenges.

While I don’t have an answer for how this would look in the Glyphs UI without it being visually cluttered…I am curious, are there any thoughts/plans of being able to assign multiple Layer Colors?

1 Like

I’m not an expert, but LayerColor are not exclusive to GlyphsApp.
If you convert your .glyph to .ufo, LayerColors will be displayed if you open .ufo in another Font Editor. ( Whereas GlyphColor is a feature exclusive to GlyphsApp)

So it must probably be difficult to change this feature or to modify it in Glyph with adding possibility to assign multiple LayerColor.

A possible solution is to use GutenTag plugin by @FlorianPircher. Instead of assign LayerColor we could think about assign “status” tags to Glyph. Like this a glyph could have “Needs Redrawing” and “Check Anchors” tag. In this case my script could check status Tag instead of LayerColor to build progress bars.

But this solution is less visual, and a bit more complex. (It easier to set LayerColor than to assign Tag)

By the way, I’m completely agree with you @gor.jious, Font Dashboard would be much more relevant in this way.

Using keyboard shortcuts is a very fast method of adding, removing, and renaming tags to the current glyph/all selected glyphs. From the Handbook:

The shortcuts would trigger the following windows, with the insertion point blinking in the text field ready for input and the Return key ready to confirm the edit:

1 Like

But there is a problem because Tags are assign to Glyph and not to Layer, it’s impossible to assign different “status” tag for each layer.

But this solution is less visual, and a bit more complex. (It easier to set LayerColor than to assign Tag)

I agree that the visual feedback would be somewhat lost switching to Tags. I guess the color aspect would only really be relevant when in Font View but with smart filters, it would be easy to filter categories by their tags.

I like the way that the GuidesPalette uses Tags with a checkbox toggle to choose with guides to display or not.

Ah right, Tags are only assigned to Glyph and not Layer. Hmm, I guess that would put a kink in things…unless Florian has a solution in mind.

You could always store custom metadata in the userData of the layer, but there is no built-in system in Glyphs for categorizing layers that way; you would need to write a custom plugin.

What is your use case? Track various issues regarding layers as shown in the screenshot of the Font Dashboard that you have posted above? Would this only apply to master layers, or would you also want to track other layer types (color layers, alternative layers, intermediate layers, …)?

I’d probably say per master?

Use case of something like this:

Light “A”
Needs Redrawing
Check Anchors

Regular “A”

Bold “A”
Check Anchors

This is defintely the only way to do it. I could write small scripts to add/remove layer.userData ( for example layer.userData['Need-Redrawing'] = True)

How work GutenTag? Does it store tags in a glyph.userData ?
Do you think it could be potentially possible to store Tag per layer with GutenTag ?

For the moment it only work for master layers, but it would be really useful to track also alternative layers, intermediate layers.

Glyphs have a separate tags property, so there is no need for user data in Guten Tag. Instead of writing each category into its own user data on a layer (layer.userData["needs-redraw"] = …), it would probably be better to write a set or array to a single user data field (layer.userData["categories"] = ["needs-redraw", …]).

1 Like

It is possible to draw in FontView with a Plugin ?
For example to add colored rectangles in Glyph box ?

Capture d’écran 2022-06-03 à 17.11.04

No, this is currently not possible. We are investigating something in this direction. If you have a specific use case in mind, we will consider it when planning future extensibility in this context.