terminal icon indicating copy to clipboard operation
terminal copied to clipboard

Bidirectional and RTL Text Issue in Windows Terminal

Open nochlab1 opened this issue 6 months ago • 2 comments

Windows Terminal version

1.21.2911.0

Windows build number

10.0.26100.3915

Other Software

No response

Steps to reproduce

Hi starting in v1.19 a new text engine was added called AtlasEngine, when this is turned on Hebrew is now being rendered correctly its being shown the wrong way (its being show left to right instead of right to left) if i turn off AtlasEngine it works correctly

i see there are other issues about it but none of them explained the actual issue so if possible to fix it, or at least give the option to disable AtlasEngine

I confirmed this is the issue as in v 1.20.11381.0 there is a option to turn off AtlasEngine and when i do that it renderers correctly

Thank You

Expected Behavior

when typing hebrew text it should be rendered Right To left

Actual Behavior

Hebrew Text is being rendered Left to Right

nochlab1 avatar May 04 '25 19:05 nochlab1

We've found some similar issues:

  • #18659 , similarity score: 81%

If any of the above are duplicates, please consider closing this issue out and adding additional context in the original issue.

Note: You can give me feedback by 👍 or 👎 this comment.

similar-issues-ai[bot] avatar May 04 '25 19:05 similar-issues-ai[bot]

i copied the title as that issue explains it but i think the reason given is incorrect as it has to do with the text engine and on regular ubuntu console (in ubuntu not in wsl) it shows correctly

nochlab1 avatar May 04 '25 19:05 nochlab1

Thanks for filing! We have a wealth of discussion over in #538 that goes into detail about how and why this is a problem, and how we hope for applications (and terminal emulators) to fix it. It culminates in https://github.com/microsoft/terminal/issues/538#issuecomment-1533053699.

With graphical applications, it’s the responsibility of one single application to do BiDi rendering, i.e. to convert the external data it handles (e.g. document, web page) along with its own UI to the pixel-by-pixel user-visible representation. In case of the terminal emulator, it’s the joint responsibility of two components: the emulator, and the application inside. The exact responsibility of each party and the interface between them needs to be well thought out.

To an extent, RTL has always been broken in the console (and the terminal). By fixing our rendering engine for the dominant use case (application writes text in the logical order), we necessarily broke it for applications that write in physical order.

Unfortunately, we don't have any other text rendering engines. If you need "passable" rendering that's compatible with older applications, you can always launch the original console host. 🙂

We are planning to improve this in the future.

/dup #538

DHowett avatar May 07 '25 19:05 DHowett

Thanks for filing! We have a wealth of discussion over in #538 that goes into detail about how and why this is a problem, and how we hope for applications (and terminal emulators) to fix it. It culminates in #538 (comment).

With graphical applications, it’s the responsibility of one single application to do BiDi rendering, i.e. to convert the external data it handles (e.g. document, web page) along with its own UI to the pixel-by-pixel user-visible representation. In case of the terminal emulator, it’s the joint responsibility of two components: the emulator, and the application inside. The exact responsibility of each party and the interface between them needs to be well thought out.

To an extent, RTL has always been broken in the console (and the terminal). By fixing our rendering engine for the dominant use case (application writes text in the logical order), we necessarily broke it for applications that write in physical order.

Unfortunately, we don't have any other text rendering engines. If you need "passable" rendering that's compatible with older applications, you can always launch the original console host. 🙂

We are planning to improve this in the future.

/dup #538

its just that the issue wasnt touched in 2 years so i thought i would chime in

side note do you know if its possible to set default tetrminal on windows to a exe? as i will stay on v 1.20.11381.0 but i cant figure out how to stop windows store from auto updating it and the portable exe windows is not giving me the option to set as default terminal

Thanks!

nochlab1 avatar May 07 '25 19:05 nochlab1

side note do you know if its possible to set default terminal on windows to a exe?

There's been some discussion about this over at https://github.com/microsoft/terminal/discussions/18575 :)

DHowett avatar May 07 '25 22:05 DHowett

Thanks!!

side note do you know if its possible to set default terminal on windows to a exe?

There's been some discussion about this over at #18575 :)

nochlab1 avatar May 08 '25 02:05 nochlab1