Font rendering changes font look after typing i or j #18113

Closed
opened 2026-01-31 06:04:03 +00:00 by claunia · 7 comments
Owner

Originally created by @ashemedai on GitHub (Aug 5, 2022).

Originally assigned to: @lhecker on GitHub.

Windows Terminal version

1.14.1962.0

Windows build number

10.0.19043.0

Other Software

Not relevant.

Steps to reproduce

  1. Open a PowerShell or Debian/Ubuntu terminal
  2. Type something without i or j, say Th
  3. Look closely and type an i or j, say This

Expected Behavior

No change in the font rendering.

Actual Behavior

After typing the i or j you will notice a change in the rendering of the text.

image

In the zoomed in view you can see how some letters change, for example, the l is now 1 pixel taller and contains red subpixel rendering on the right. But you can also see some changes with the dash, a, and s. As if they all got bolded. This was on a Debian prompt with a Monokai colourscheme. But using a settings.json reset to default to make sure it wasn't a configuration issue on my side, you can as easily see this happen on a PowerShell 7 or Ubuntu prompt.

PowerShell:
image

Interestingly enough, Command Prompt does not seem to exhibit this issue.

Also when you remove all the is and js in the sentence, the rendering reverts back.

Edit: Did some digging, thus far Cascadia Mono can reproduce this. Using Consolas or Fira Code does not trigger this behaviour.

Originally created by @ashemedai on GitHub (Aug 5, 2022). Originally assigned to: @lhecker on GitHub. ### Windows Terminal version 1.14.1962.0 ### Windows build number 10.0.19043.0 ### Other Software Not relevant. ### Steps to reproduce 1. Open a PowerShell or Debian/Ubuntu terminal 2. Type something without `i` or `j`, say `Th` 3. Look closely and type an `i` or `j`, say `This` ### Expected Behavior No change in the font rendering. ### Actual Behavior After typing the `i` or `j` you will notice a change in the rendering of the text. ![image](https://user-images.githubusercontent.com/610865/183110361-2bf0815c-fac1-4722-a879-a4627527cb5b.png) In the zoomed in view you can see how some letters change, for example, the `l` is now 1 pixel taller and contains red subpixel rendering on the right. But you can also see some changes with the dash, a, and s. As if they all got bolded. This was on a Debian prompt with a Monokai colourscheme. But using a `settings.json` reset to default to make sure it wasn't a configuration issue on my side, you can as easily see this happen on a PowerShell 7 or Ubuntu prompt. PowerShell: ![image](https://user-images.githubusercontent.com/610865/183112033-bb57b1b2-fa77-4002-83bf-f474bd2e6fef.png) Interestingly enough, Command Prompt does not seem to exhibit this issue. Also when you remove all the `i`s and `j`s in the sentence, the rendering reverts back. Edit: Did some digging, thus far `Cascadia Mono` can reproduce this. Using `Consolas` or `Fira Code` does *not* trigger this behaviour.
claunia added the Area-RenderingIssue-BugIn-PRProduct-Terminal labels 2026-01-31 06:04:04 +00:00
Author
Owner

@lhecker commented on GitHub (Aug 6, 2022):

I'm having trouble reproducing this behavior.
Long term we're currently planning to replace the default text renderer with a new one. It can be found in the Preview version of Windows Terminal and enabled in the settings menu by selecting any profile (including the "Defaults" one), navigating to "Advanced" and enabling "Enable experimental text rendering engine".
That newer text renderer should theoretically not have this issue.

@lhecker commented on GitHub (Aug 6, 2022): I'm having trouble reproducing this behavior. Long term we're currently planning to replace the default text renderer with a new one. It can be found in the Preview version of Windows Terminal and enabled in the settings menu by selecting any profile (including the "Defaults" one), navigating to "Advanced" and enabling "Enable experimental text rendering engine". That newer text renderer should theoretically not have this issue.
Author
Owner

@ashemedai commented on GitHub (Aug 6, 2022):

I'll test the preview. Anything else I can do to help provide more details/background?

@ashemedai commented on GitHub (Aug 6, 2022): I'll test the preview. Anything else I can do to help provide more details/background?
Author
Owner

@ashemedai commented on GitHub (Aug 6, 2022):

I can replicate this with default 1.15.2002.0 as well.

Using the experimental text rendering engine option in 1.15.2002.0, however, seems to have eliminated the issue and renders similarly to what Command Prompt does, i.e. when you type T with Cascadia Mono, it immediately renders it at full height instead of the slightly taller height until you type that i or j.

Default vs experimental renderer:
image

@ashemedai commented on GitHub (Aug 6, 2022): I can replicate this with default `1.15.2002.0` as well. Using the experimental text rendering engine option in `1.15.2002.0`, however, seems to have eliminated the issue and renders similarly to what Command Prompt does, i.e. when you type `T` with Cascadia Mono, it immediately renders it at full height instead of the slightly taller height until you type that `i` or `j`. Default vs experimental renderer: ![image](https://user-images.githubusercontent.com/610865/183246732-0bbabee3-1e83-4039-8f68-3bc926355820.png)
Author
Owner

@lhecker commented on GitHub (Aug 8, 2022):

Anything else I can do to help provide more details/background?

If this is fixed by the new experimental text renderer, then I'd say - to be entirely frank - it might not be worth it to fix it in the old default text renderer anymore. It's only a matter of time until we start rolling out the new one gradually to everyone after all.

But still, it might be helpful to be able to reproduce the issue. In order to do so I'd need to know what font size you're using, if you have any font features/axes set and what display scale you're using.

@lhecker commented on GitHub (Aug 8, 2022): > Anything else I can do to help provide more details/background? If this is fixed by the new experimental text renderer, then I'd say - to be entirely frank - it might not be worth it to fix it in the old default text renderer anymore. It's only a matter of time until we start rolling out the new one gradually to everyone after all. But still, it might be helpful to be able to reproduce the issue. In order to do so I'd need to know what font size you're using, if you have any font features/axes set and what display scale you're using.
Author
Owner

@ashemedai commented on GitHub (Aug 8, 2022):

Default, so Cascadia Mono at 12. Everything is at default Terminal settings.

2 QHD displays (2560x1440) with scale and layout (under display) set to 100%

@ashemedai commented on GitHub (Aug 8, 2022): Default, so Cascadia Mono at 12. Everything is at default Terminal settings. 2 QHD displays (2560x1440) with scale and layout (under display) set to 100%
Author
Owner

@lhecker commented on GitHub (Aug 8, 2022):

Apparently Cascadia Mono has a localized variant for Dutch: 017bde551a/sources/features/locl.fea (L29-L34)

The new engine not handling this correctly might rather be a bug. 🤔
I'll have to investigate that...

@lhecker commented on GitHub (Aug 8, 2022): Apparently Cascadia Mono has a localized variant for Dutch: https://github.com/microsoft/cascadia-code/blob/017bde551af6af419cc5554c37bbdffa4f9388ed/sources/features/locl.fea#L29-L34 The new engine not handling this correctly might rather be a bug. 🤔 I'll have to investigate that...
Author
Owner

@ashemedai commented on GitHub (Aug 9, 2022):

Oh wow, that makes sense and at the same time doesn't. I don't use my OSes in Dutch as I prefer English given the settings I have to work in. I do, however have this IME list configured:
image
image

I wonder if it somehow sees that English (Netherlands) and tries to kick off ligature combining when typing the i or j (despite it never doing that), which causes the change?

@ashemedai commented on GitHub (Aug 9, 2022): Oh wow, that makes sense and at the same time doesn't. I don't use my OSes in Dutch as I prefer English given the settings I have to work in. I do, however have this IME list configured: ![image](https://user-images.githubusercontent.com/610865/183584041-86c0f762-b633-4564-b232-62f6c2a7bab9.png) ![image](https://user-images.githubusercontent.com/610865/183584431-a401dd2e-fde9-4ef1-afb7-02e3189ac61c.png) I wonder if it somehow sees that English (Netherlands) and tries to kick off ligature combining when typing the i or j (despite it never doing that), which causes the change?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#18113