Cherry-picked Iosevka ligatures work in other terminals, but not Ghostty #4592
Replies: 1 comment 1 reply
-
I was having the same issue over the last day, since I wanted to disable the I noticed whatever I did to build the font, it would still show I then started playing around with So not entirely sure if I don't fully unstand how Iosevka build plans work or if it's an "issue" with Ghostty. Just thought I'd share some things I discovered while trying to figure this out myself. |
Beta Was this translation helpful? Give feedback.
-
The popular Iosevka font allows users to create a custom build to fine-tune the appearance. I used this to selectively enable only some of the ligatures it offers, as I only want "non intrusive" ligations (like connected arrows
-->
) and not those that obscure the individual characters (like the connected!=
that turns into a strikethrough-equals≠
). My custom build works fine in Kitty and iTerm, but running Ghostty, all ligatures the font offers show up, even the ones I disabled:The image has Ghostty on the left and iTerm, behaving as expected, on the right.
I am aware that this may not be a Ghossty issue, since this project is pretty good with standards, and perhaps Iosevka is not following one of them. But the other terminals handle the custom-built font just fine and display what is expected. I sadly don't know much about fonts and thus can't really judge where to report this issue.
Ghostty version (running on macOS 15.2):
How to reproduce:
This is the
private-build-plans.toml
used to build the font:I could probably distribute the finished files (it's 4
.ttf
s) under the license if desired. https://fontdrop.info shows that all ligatures, even the disabled ones, are still present in the file (duh).Install the font and set it as the default:
For comparison, also configure another Terminal like iTerm to use "Ioveska".
Enter something like
>=
. In Ghostty, it becomes a connected symbol, whereas iTerm and Kitty show the individual characters.Beta Was this translation helpful? Give feedback.
All reactions