Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch To Unassign Glyphs for Regional Indicator Symbol range U+1F1E6 -> U+1F1FF #2555

Open
vollink opened this issue Oct 18, 2024 · 5 comments

Comments

@vollink
Copy link

vollink commented Oct 18, 2024

The problem I'm actually trying to solve:
In macOS both Terminal.app (builtin) and iTerm2 have the ability to show Flag emoji (🇦🇿). However, because Iosevka assigns glyphs to the Regional Indicator Symbol range U+1F1E6 -> U+1F1FF, both terminals just print the glyphs instead of doing the combining. Switch to another font, poof the flag appears, Switch to Iosevka I get little A, Z glyphs.

Solution suggestion:
I'd like a flag in .private_build_plans that could disable this range (as well as an update in the configurator to output this flag).

Alternatives:
At no point would I want anybody's Font to break if they already rely on these glyphs, so I don't think simply removing the assignments would be the "kind thing to do".
I've also considered the good possibility that there's already a way to do this, but I couldn't find it.

Screenshot shows Courier New vs Iosevka showing the sequence for an American Flag (the behavior follows Font, not app).
Screenshot 2024-10-18 at 12 08 14 PM

@jmcwilliams403
Copy link
Contributor

jmcwilliams403 commented Oct 18, 2024

I would like to note that on Windows it eccentrically replaces any valid emoji sequences with emoji unless specifically disabled with U+FE0E, which made it a challenge to actually show images of the plain text forms in my original pull request.

However, as I do not own a mac, I wasn't originally able to test how Mac handles emoji on desktop at the time I implemented these.

Also, out of curiosity, what happens when you put U+FE0F after each character in the sequence?
(not at the end of the entire sequence but after each character individually, so two in total)

@jmcwilliams403
Copy link
Contributor

Also I would like to point out that this example exists in private-build-plans-sample.toml:

# Character Exclusion
# Specify character ranges in the section below to exclude certain characters from the font being
# built. Remove this section when this feature is not needed.

[buildPlans.IosevkaCustom.excludeChars]
ranges = [[10003, 10008]]

@vollink
Copy link
Author

vollink commented Oct 18, 2024

Okay, yeah, adding the extra characters works. But hey! There's an exclude ranges thing! Awesome, I'll try that tonight!

It would still be nice if the configurator had this as a callout. Either way, I appreciate the help!

Screenshot 2024-10-18 at 12 38 24 PM

@be5invis
Copy link
Owner

@jmcwilliams403 I may consider REMOVAL of RIS chars in v32, and maybe other chars that has Emoji_Presentation property.

@vollink
Copy link
Author

vollink commented Oct 19, 2024

Manually excluding the RIS range worked for me. macOS and Linux are happy again!

[buildPlans.UniqueName.excludeChars]
ranges = [[0x1f1e6, 0x1f1ff]]

I'm happy if this closes here, unless you do want an action item to default exclude these code points.


@jmcwilliams403 , This has NOTHING to do with Font, but I figured it might interest you to know that I'm getting the opposite than you did back then. Using Windows Terminal (1.20.11781.0) [win11], it doesn't seem to aggressively link Emoji anymore, in fact, it seems to go through all fallback fonts and doesn't even try to combine if ANY font can satisfy for a glyph in this range, which means that even when injecting variation selectors, I can't get a country flag to show up. I don't use Windows for much but games, so it doesn't bother me, just seemed interesting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants