Glyphs '…' and '⇕' overlap proceeding text in some fonts #20209

Closed
opened 2026-01-31 07:06:35 +00:00 by claunia · 2 comments
Owner

Originally created by @djdv on GitHub (Jul 9, 2023).

Windows Terminal version

2f0d3dc17a

Windows build number

10.0.25393.0

Other Software

Powershell Core v7.3.5

Steps to reproduce

Use the symbols '…' or '⇕' with text proceeding it. Like "…abc⇕abc"
The 'a's will be overlapped by the symbols.

I'm specifically using the Iosevka font, but other fonts I've tried have the same overlapping problem. Where some do not.
I think this only occurs in proportion fonts, but I'm not exactly sure the common link between the fonts that don't render this correctly. All monospace fonts seem to render as expected.

Expected Behavior

Non-overlapping characters.
I'm pretty sure the ellipses glyph was spaced correctly at some point, but is no longer.
Unfortunately, I'm not sure the exact commit when this changed. It was some time ago but I haven't reported it until now.

Using the same fonts in something like Notepad doesn't cause the rendering problem so I assume it has to do with the terminal render engine and not the fonts themselves.
image

extra context:
I use the ellipses as a prefix when the cwd is too long (…AppData\Local\Temp).
And the is used within posh-git.

Actual Behavior

Characters after the glyphs get overstruck.
image

Originally created by @djdv on GitHub (Jul 9, 2023). ### Windows Terminal version 2f0d3dc17a09493a17ef45551deea864914854c2 ### Windows build number 10.0.25393.0 ### Other Software Powershell Core v7.3.5 ### Steps to reproduce Use the symbols '…' or '⇕' with text proceeding it. Like "…abc⇕abc" The 'a's will be overlapped by the symbols. I'm specifically using the Iosevka font, but other fonts I've tried have the same overlapping problem. Where some do not. I think this only occurs in proportion fonts, but I'm not exactly sure the common link between the fonts that don't render this correctly. All monospace fonts seem to render as expected. ### Expected Behavior Non-overlapping characters. I'm pretty sure the ellipses glyph was spaced correctly at some point, but is no longer. Unfortunately, I'm not sure the exact commit when this changed. It was some time ago but I haven't reported it until now. Using the same fonts in something like Notepad doesn't cause the rendering problem so I assume it has to do with the terminal render engine and not the fonts themselves. ![image](https://github.com/microsoft/terminal/assets/13862850/c8fd7b98-03ac-49ca-b1ba-3f32c6d304fc) extra context: I use the ellipses as a prefix when the cwd is too long (`…AppData\Local\Temp`). And the `⇕` is used within `posh-git`. ### Actual Behavior Characters after the glyphs get overstruck. ![image](https://github.com/microsoft/terminal/assets/13862850/1afe703b-0ce0-4c57-be58-079b4619a0a2)
claunia added the Resolution-By-DesignNeeds-TriageIssue-Bug labels 2026-01-31 07:06:36 +00:00
Author
Owner

@lhecker commented on GitHub (Jul 10, 2023):

That behavior is correct, and it's always been something like that. Are you sure you're using the right Iosevka variant, the same one you used to use?

This is Iosevka in the old text renderer (note the incorrect cursor position):
image

And this is the now fixed text renderer, where the Terminal determines the spacing between glyphs and not the font:
image

This is why you need to use "Iosevka Fixed" (no ligatures) or "Iosevka Term" (ligatures):
image

@lhecker commented on GitHub (Jul 10, 2023): That behavior is correct, and it's always been something like that. Are you sure you're using the right Iosevka variant, the same one you used to use? This is Iosevka in the old text renderer (note the incorrect cursor position): ![image](https://github.com/microsoft/terminal/assets/2256941/1bdc796b-2956-4c72-a80e-4e0d06193c9a) And this is the now fixed text renderer, where the Terminal determines the spacing between glyphs and not the font: ![image](https://github.com/microsoft/terminal/assets/2256941/451c8054-d5e4-47a7-9c3f-e0192226f640) This is why you need to use "Iosevka Fixed" (no ligatures) or "Iosevka Term" (ligatures): ![image](https://github.com/microsoft/terminal/assets/2256941/333128c5-5495-4f96-a57c-f14047011b55)
Author
Owner

@djdv commented on GitHub (Jul 10, 2023):

Thanks for that.
I do remember encountering that cursor issue. I think with '⚠️' in particular (and/or some other symbols).
Switching to the "Iosevka Term" variant does indeed render as expected.

I've bounced between PragmataPro and the standard Iosevka as the renderer has changed, but not any of their variants, until now.
On a personal note, I must have avoided the "Term" variant due to the smaller symbols (I have poor eyesight so I bias against that :-)

@djdv commented on GitHub (Jul 10, 2023): Thanks for that. I do remember encountering that cursor issue. I think with '⚠️' in particular (and/or some other symbols). Switching to the "Iosevka Term" variant does indeed render as expected. I've bounced between PragmataPro and the standard Iosevka as the renderer has changed, but not any of their variants, until now. On a personal note, I must have avoided the "Term" variant due to the smaller symbols (I have poor eyesight so I bias against that :-)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#20209