Skewed vertical box lines displayed in Far Manager #22589

Closed
opened 2026-01-31 08:17:48 +00:00 by claunia · 14 comments
Owner

Originally created by @vblazhkun on GitHub (Nov 25, 2024).

Windows Terminal version

1.22.3232.0

Windows build number

10.0.19045.0

Other Software

Far Manager 3.0.6364.0 x64

Steps to reproduce

Open a directory in the left panel of Far Manager with some Russian-named files there.

Expected Behavior

No skewed surrounding boxes displayed anywhere.

An example from conhost.exe:

Image

Actual Behavior

On the rows where the Russian-named files are, the vertical box drawing lines are shifted left. The characters used to draw the given lines are Unicode Box Drawings Double Vertical encoded as U+2551.

Example:

Image

NOTE: I have not seen that issue in the previous versions (e.g. 1.21.3231.0) of the Terminal. It might be related to some new setting introduced in the Preview release, but I am not sure.

Originally created by @vblazhkun on GitHub (Nov 25, 2024). ### Windows Terminal version 1.22.3232.0 ### Windows build number 10.0.19045.0 ### Other Software Far Manager 3.0.6364.0 x64 ### Steps to reproduce Open a directory in the left panel of `Far Manager` with some Russian-named files there. ### Expected Behavior No skewed surrounding boxes displayed anywhere. An example from `conhost.exe`: ![Image](https://github.com/user-attachments/assets/1df5b720-f562-4263-a5d3-e4396573d9c3) ### Actual Behavior On the rows where the Russian-named files are, the vertical box drawing lines are shifted left. The characters used to draw the given lines are Unicode `Box Drawings Double Vertical` encoded as `U+2551`. Example: ![Image](https://github.com/user-attachments/assets/a4427a31-bac8-4e79-83df-91264c97fe55) NOTE: I have not seen that issue in the previous versions (e.g. 1.21.3231.0) of the Terminal. It might be related to some new setting introduced in the Preview release, but I am not sure.
claunia added the Resolution-By-DesignNeeds-TriageIssue-Bug labels 2026-01-31 08:17:48 +00:00
Author
Owner

@DHowett commented on GitHub (Nov 25, 2024):

Would you be able to capture a screenshot that covers the entire width of the window where the corruption exists?

@DHowett commented on GitHub (Nov 25, 2024): Would you be able to capture a screenshot that covers the entire width of the window where the corruption exists?
Author
Owner

@vblazhkun commented on GitHub (Nov 25, 2024):

The entire screen as requested:

Image

Also I do not see the issue with Midnight Commander running under WSL with the same directory and box drawing characters:

Image

@vblazhkun commented on GitHub (Nov 25, 2024): The entire screen as requested: ![Image](https://github.com/user-attachments/assets/8b37ebd9-cd75-47ed-8461-c2fd49a99710) Also I do not see the issue with `Midnight Commander` running under WSL with the same directory and box drawing characters: ![Image](https://github.com/user-attachments/assets/a134c15f-2119-4d74-912f-1294c99a9ef7)
Author
Owner

@DHowett commented on GitHub (Nov 25, 2024):

Image

This is highly unusual. Two files with the same display name?

Is there a chance you have decomposed and composed character versions of the same filename in that folder?

Decomposed (or composed, I guess) characters will have different measurement outcomes on 1.22+.

@DHowett commented on GitHub (Nov 25, 2024): ![Image](https://github.com/user-attachments/assets/7ceb7987-2b70-46c7-bec8-80aa70e13f14) This is highly unusual. Two files with the same display name? Is there a chance you have decomposed and composed character versions of the same filename in that folder? Decomposed (or composed, I guess) characters will have different measurement outcomes on 1.22+.
Author
Owner

@vblazhkun commented on GitHub (Nov 25, 2024):

Image

This is highly unusual. Two files with the same display name?

Is there a chance you have decomposed and composed character versions of the same filename in that folder?

Decomposed (or composed, I guess) characters will have different measurement outcomes on 1.22+.

The filenames are actually different (see the attached hex dump):

Image

  1. d0 93 d1 80 d1 83 d0 bf d0 bf d0 be d0 b2 d0 b0 d1 8f 20 d0 bf d0 b5 d1 87 d0 b0 d1 82 d1 8c 20 d0 b2 d1 8b d0 b1 d1 80 d0 b0 d0 bd d0 bd d1 8b d1 85 20 d0 b7 d0 b0 d0 bf d0 b8 d1 81 d0 b5 d0 b8 cc 86 31 20 28 31 29 2e 70 64 66 0a
  2. d0 93 d1 80 d1 83 d0 bf d0 bf d0 be d0 b2 d0 b0 d1 8f 20 d0 bf d0 b5 d1 87 d0 b0 d1 82 d1 8c 20 d0 b2 d1 8b d0 b1 d1 80 d0 b0 d0 bd d0 bd d1 8b d1 85 20 d0 b7 d0 b0 d0 bf d0 b8 d1 81 d0 b5 d0 b9 31 20 28 31 29 2e 70 64 66 0a
@vblazhkun commented on GitHub (Nov 25, 2024): > ![Image](https://github.com/user-attachments/assets/7ceb7987-2b70-46c7-bec8-80aa70e13f14) > > This is highly unusual. Two files with the same display name? > > Is there a chance you have decomposed and composed character versions of the same filename in that folder? > > Decomposed (or composed, I guess) characters will have different measurement outcomes on 1.22+. The filenames are actually different (see the attached hex dump): ![Image](https://github.com/user-attachments/assets/82421e46-8b41-46ff-b3cd-f2d9435445e5) 1. `d0 93 d1 80 d1 83 d0 bf d0 bf d0 be d0 b2 d0 b0 d1 8f 20 d0 bf d0 b5 d1 87 d0 b0 d1 82 d1 8c 20 d0 b2 d1 8b d0 b1 d1 80 d0 b0 d0 bd d0 bd d1 8b d1 85 20 d0 b7 d0 b0 d0 bf d0 b8 d1 81 d0 b5 d0 b8 cc 86 31 20 28 31 29 2e 70 64 66 0a` 2. `d0 93 d1 80 d1 83 d0 bf d0 bf d0 be d0 b2 d0 b0 d1 8f 20 d0 bf d0 b5 d1 87 d0 b0 d1 82 d1 8c 20 d0 b2 d1 8b d0 b1 d1 80 d0 b0 d0 bd d0 bd d1 8b d1 85 20 d0 b7 d0 b0 d0 bf d0 b8 d1 81 d0 b5 d0 b9 31 20 28 31 29 2e 70 64 66 0a`
Author
Owner

@vblazhkun commented on GitHub (Nov 25, 2024):

And the diff:

Image

Looks like the letter й issue. It can be composed as a single character and as a double character (diacritical) as well: и + U+0306.

@vblazhkun commented on GitHub (Nov 25, 2024): And the diff: ![Image](https://github.com/user-attachments/assets/880b3795-6085-43c1-9cab-56ea9043f6be) Looks like the letter `й` issue. It can be composed as a single character and as a double character (diacritical) as well: `и` + `U+0306`.
Author
Owner

@o-sdn-o commented on GitHub (Nov 25, 2024):

@o-sdn-o commented on GitHub (Nov 25, 2024): - https://habr.com/en/articles/262679/ - And it looks like FarManager is not measuring grapheme clusters correctly.
Author
Owner

@vblazhkun commented on GitHub (Nov 25, 2024):

Another observation: U+0306 somehow eats the space on the right and the space pops-up when I add any character on the left:

Image

@vblazhkun commented on GitHub (Nov 25, 2024): Another observation: `U+0306` somehow eats the space on the *right* and the space pops-up when I add any character on the *left*: ![Image](https://github.com/user-attachments/assets/e689e0ac-eedd-4645-b49b-dbfe24851845)
Author
Owner

@Zeroes1 commented on GitHub (Nov 25, 2024):

@o-sdn-o Far Manager don't support grapheme now (it's may be later)

@vblazhkun Я надеюсь у вас выставлена эта опция в настройках? ( в вашей версии это в разделе Отрисовка)

Image

В настройках Совместимости или Отрисовки
Режим измерения текста должен быть изменён
Кластеры Grapheme -> консоль Windows
в settings.json
за это отвечает строка:
"compatibility.textMeasurement": "console",

пока не появится поддержка графем в FAR'e

@DHowett It's possible force set English lang interface of WT? not get from regional settins from OS?

@Zeroes1 commented on GitHub (Nov 25, 2024): @o-sdn-o Far Manager don't support grapheme now (it's may be later) @vblazhkun Я надеюсь у вас выставлена эта опция в настройках? ( в вашей версии это в разделе Отрисовка) ![Image](https://github.com/user-attachments/assets/07981dcf-0633-4a20-aa15-695d480517d1) В настройках Совместимости или Отрисовки Режим измерения текста должен быть изменён Кластеры Grapheme -> консоль Windows в settings.json за это отвечает строка: "compatibility.textMeasurement": "console", пока не появится поддержка графем в FAR'e @DHowett It's possible force set English lang interface of WT? not get from regional settins from OS?
Author
Owner

@DHowett commented on GitHub (Nov 26, 2024):

@DHowett It's possible force set English lang interface of WT? not get from regional settins from OS?

Yes. It is in the Appearance page if you are using the MSIX version.

@DHowett commented on GitHub (Nov 26, 2024): > @DHowett It's possible force set English lang interface of WT? not get from regional settins from OS? Yes. It is in the Appearance page if you are using the MSIX version.
Author
Owner

@Zeroes1 commented on GitHub (Nov 26, 2024):

@DHowett need close ticket? It's only Far Manager issue. There is a current solution to the problem.

@Zeroes1 commented on GitHub (Nov 26, 2024): @DHowett need close ticket? It's only Far Manager issue. There is a current solution to the problem.
Author
Owner

@Zeroes1 commented on GitHub (Dec 1, 2024):

Main developper FAR Manager add PR
"Warn the user when the terminal uses grapheme clusters"

@Zeroes1 commented on GitHub (Dec 1, 2024): Main developper FAR Manager add PR "Warn the user when the terminal uses grapheme clusters"
Author
Owner

@lhecker commented on GitHub (Dec 2, 2024):

For reference: 2fe2415a40
I'm glad now that I added the "text measurement mode" switch with all 3 variants. 😰

@lhecker commented on GitHub (Dec 2, 2024): For reference: https://github.com/FarGroup/FarManager/commit/2fe2415a400e7a7888c3f8df633cbaed680937fc I'm glad now that I added the "text measurement mode" switch with all 3 variants. 😰
Author
Owner

@Zeroes1 commented on GitHub (Dec 2, 2024):

Far Manager show warning only in this case:
in Windows Terminal set option use grapheme clusters (default)
and in Far Manager activate option [x] Fullwidth-aware rendering and press OK

@Zeroes1 commented on GitHub (Dec 2, 2024): Far Manager show warning only in this case: in Windows Terminal set option use grapheme clusters (default) and in Far Manager activate option [x] Fullwidth-aware rendering and press OK
Author
Owner

@carlos-zamora commented on GitHub (Dec 4, 2024):

Closing since this was an issue on the Far Manager side and they have a fix for it.

@carlos-zamora commented on GitHub (Dec 4, 2024): Closing since this was an issue on the Far Manager side and they have a fix for it.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#22589