Allow option to force all glyphs to be narrow #19801

Closed
opened 2026-01-31 06:53:57 +00:00 by claunia · 6 comments
Owner

Originally created by @jhhcs on GitHub (May 3, 2023).

Description of the new feature/enhancement

I am suggesting to add an option where I can force each glyph to use exactly one cell. This could simply be a boolean option / checkbox that enables this feature for a single profile.

Problem description

I am using FAR in the terminal, and I sometimes deal with file names that contain foreign characters, i.e., Chinese. These characters are not rendered in a single cell, breaking FAR's layout:

image

This seems to be independent of the font, and each of the foreign characters appears to use exactly two cells:

image

Proposed technical implementation details (optional)

I honestly do not know enough about font rendering to give any technical details. However, I know that this works in ConEmu, here is a screenshot of the same directory rendered with that terminal emulator:

image

Originally created by @jhhcs on GitHub (May 3, 2023). # Description of the new feature/enhancement **I am suggesting to add an option where I can force each glyph to use exactly one cell.** This could simply be a boolean option / checkbox that enables this feature for a single profile. # Problem description I am using [FAR](https://farmanager.com) in the terminal, and I sometimes deal with file names that contain foreign characters, i.e., Chinese. These characters are not rendered in a single cell, breaking FAR's layout: ![image](https://user-images.githubusercontent.com/58880204/235978802-0c0a119d-4437-444e-a0d2-b388751abd9b.png) This seems to be independent of the font, and each of the foreign characters appears to use exactly two cells: ![image](https://user-images.githubusercontent.com/58880204/235978973-c6609b73-68b4-4f81-a320-59731a1e6bba.png) # Proposed technical implementation details (optional) I honestly do not know enough about font rendering to give any technical details. However, I know that this works in [ConEmu](https://conemu.github.io), here is a screenshot of the same directory rendered with that terminal emulator: ![image](https://user-images.githubusercontent.com/58880204/235980364-1fa869c9-bf6c-49dd-a423-7e3730835afa.png)
claunia added the Needs-TriageIssue-BugNeeds-Tag-FixNeeds-Attention labels 2026-01-31 06:53:57 +00:00
Author
Owner

@zadjii-msft commented on GitHub (May 3, 2023):

Are you using Terminal? Conhost? Which OS version? Which Terminal version? Which FAR version/? These might all matter, there's been quite a lot of iteration on the buffer & renderer even in the last 12 months.

Curiously enough, if you look at the ConEmu screenshot you provided, all the Chinese glyphs there are also double wide relative to the latin characters beneath them.

@zadjii-msft commented on GitHub (May 3, 2023): Are you using Terminal? Conhost? Which OS version? Which Terminal version? Which FAR version/? These might all matter, there's been quite a lot of iteration on the buffer & renderer even in the last 12 months. Curiously enough, if you look at the ConEmu screenshot you provided, all the Chinese glyphs there are _also_ double wide relative to the latin characters beneath them.
Author
Owner

@jhhcs commented on GitHub (May 3, 2023):

I am sorry, here we go; I am using:

  • Windows Terminal Preview, Version: 1.17.1023
  • Far Manager, version 3.0.6000.0 x64
  • Microsoft Windows 10 Version 22H2 (OS Build 19045.2846)

I don't really know what Conhost is, but while cmd.exe on my machine launches a subprocess called conhost.exe, the WindowsTerminal.exe process only has the subprocess OpenConsole.exe, so I am assuming that this is not Conhost.

You are also completely correct about the screenshot in ConEmu, I didn't even look at it that closely: All I really knew is that "it worked". I am now confused as to why it works (i.e. the FAR interface isn't broken) in ConEmu.

@jhhcs commented on GitHub (May 3, 2023): I am sorry, here we go; I am using: - Windows Terminal Preview, Version: 1.17.1023 - Far Manager, version 3.0.6000.0 x64 - Microsoft Windows 10 Version 22H2 (OS Build 19045.2846) I don't really know what Conhost is, but while `cmd.exe` on my machine launches a subprocess called `conhost.exe`, the `WindowsTerminal.exe` process only has the subprocess `OpenConsole.exe`, so I am _assuming_ that this is not Conhost. You are also completely correct about the screenshot in ConEmu, I didn't even look at it that closely: All I really knew is that "it worked". I am now confused as to _why_ it works (i.e. the FAR interface isn't broken) in ConEmu.
Author
Owner

@zadjii-msft commented on GitHub (May 3, 2023):

@alabuzhev You have any ideas what's going on here?

This is all up to date on the Terminal and Console side.

IMO, this doesn't look like a "feature". This looks like some sort of bug that we should get to the root cause of ☺️

ninja-edit: There's maybe a FAR setting for "Fullwidth-aware rendering" which might be at play here...

@zadjii-msft commented on GitHub (May 3, 2023): @alabuzhev You have any ideas what's going on here? This is all up to date on the Terminal and Console side. IMO, this doesn't look like a "feature". This looks like some sort of bug that we should get to the root cause of ☺️ ninja-edit: There's maybe a FAR setting for "Fullwidth-aware rendering" which might be at play here...
Author
Owner

@alabuzhev commented on GitHub (May 3, 2023):

@zadjii-msft By default Far does not take character width into account (doing it properly is not trivial), so, naturally, if the host renders them as wide the UI layout will be broken.
[x] Fullwidth-aware rendering and [x] Use Virtual Terminal for rendering should improve the situation indeed to some extent (it is still work in progress).

@alabuzhev commented on GitHub (May 3, 2023): @zadjii-msft By default Far does not take character width into account (doing it properly is [not trivial](https://github.com/microsoft/terminal/issues/10592)), so, naturally, if the host renders them as wide the UI layout will be broken. `[x] Fullwidth-aware rendering` and `[x] Use Virtual Terminal for rendering` should improve the situation indeed to some extent (it is still work in progress).
Author
Owner

@zadjii-msft commented on GitHub (May 3, 2023):

@jhhcs Do those settings fix this for you/?

@zadjii-msft commented on GitHub (May 3, 2023): @jhhcs Do those settings fix this for you/?
Author
Owner

@jhhcs commented on GitHub (May 4, 2023):

Holy smokes, that fixed it. I am sorry, I wasn't aware that these options existed. Thank you both!

@jhhcs commented on GitHub (May 4, 2023): Holy smokes, that fixed it. I am sorry, I wasn't aware that these options existed. Thank you both!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#19801