Font Feature Support #24

Open
opened 2025-12-30 01:29:14 +01:00 by adam · 2 comments
Owner

Originally created by @bawjames on GitHub (Dec 23, 2025).

Originally assigned to: @sayyadirfanali on GitHub.

As far as I can tell, Myna does not currently have customisable font features.

This would allow users to choose between the two variants of the lowercase L glyph (#20), or to turn on/off ligatures, etc.

Apologies if this already exists and I have missed it.

Originally created by @bawjames on GitHub (Dec 23, 2025). Originally assigned to: @sayyadirfanali on GitHub. As far as I can tell, Myna does not currently have customisable font features. This would allow users to choose between the two variants of the lowercase L glyph (#20), or to turn on/off ligatures, etc. Apologies if this already exists and I have missed it.
adam added the enhancementdocumentation labels 2025-12-30 01:29:14 +01:00
Author
Owner

@bawjames commented on GitHub (Dec 23, 2025):

Also, in release v2.0.0 Beta we got

contextual alternates for |>:=, etc

and, though in #1 it was decided that ligatures was the best implementation, it would be great to optionally have vertically centered : or | even without ligatures using font features.

@bawjames commented on GitHub (Dec 23, 2025): Also, in release v2.0.0 Beta we got > contextual alternates for `|>`, `:=`, etc and, though in #1 it was decided that ligatures was the best implementation, it would be great to optionally have vertically centered `:` or `|` even without ligatures using font features.
Author
Owner

@sayyadirfanali commented on GitHub (Dec 24, 2025):

@bawjames currently, Myna doesn't feature any ligatures (afaik, in #1 it was decided that contextual alternates should be explored intially and ligatures only if they don't work)

|>, := etc are implemented using font features (contextual alt and vertical kern) which you can see in features.fea (the file is used in build.py). about the l glyph, i gathered that nobody would expect the "ambiguous" version and have not supplied it in the release.

if you want to get the font without the alternates, you can tweak around with the build.py. for example, you can remove: e80ce0ccce/build.py (L7)

i have committed a script altl.py i use personally to avoid features and use the ambiguated l (which i'm used to). you can use it to build the font (i've not included the actual .otf/.ttf for now to avoid confusion). you'd need to install fontforge though. if you can't use it, you can comment here and i'd post the font files too.

in v1 the idea was that there's going to be no frills like variants, alternates, ligatures, etc (i didn't expect any community interest). but now v2 includes all these.

so, there must be a streamlined customisable release allowing more freedom in choosing. but i haven't come around to doing it. maybe you can suggest some ideas on what to release (apart from .otf, .fea files), which defaults to use, etc.

@sayyadirfanali commented on GitHub (Dec 24, 2025): @bawjames currently, Myna doesn't feature any ligatures (afaik, in #1 it was decided that contextual alternates should be explored intially and ligatures only if they don't work) `|>`, `:=` etc are implemented using font features (contextual alt and vertical kern) which you can see in `features.fea` (the file is used in `build.py`). about the `l` glyph, i gathered that nobody would expect the "ambiguous" version and have not supplied it in the release. if you want to get the font without the alternates, you can tweak around with the `build.py`. for example, you can remove: https://github.com/sayyadirfanali/Myna/blob/e80ce0ccce0160f19f9248e631caf4cd8a6a9c25/build.py#L7 i have committed a script `altl.py` i use personally to avoid features and use the ambiguated `l` (which i'm used to). you can use it to build the font (i've not included the actual .otf/.ttf for now to avoid confusion). you'd need to install fontforge though. if you can't use it, you can comment here and i'd post the font files too. in v1 the idea was that there's going to be no frills like variants, alternates, ligatures, etc (i didn't expect any community interest). but now v2 includes all these. so, there must be a streamlined customisable release allowing more freedom in choosing. but i haven't come around to doing it. maybe you can suggest some ideas on what to release (apart from `.otf`, `.fea` files), which defaults to use, etc.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/Myna#24