Hi Eli, > My personal experience with bringing BiDi to Emacs led me to a firm > conclusion that BiDi support by terminal emulators cannot be relied on > by sophisticated text editing and display applications that are > BiDi-aware. The terminal emulator can never be smart enough to do > what the editing needs require, so the application eventually ends up > jumping through hoops in order to trick the terminal into doing TRT. > It is easier to tell users to disable BiDi support of the terminal (if > it even has one), and do everything in the app. This is the only way > of having full control of what is displayed, especially when > "higher-level protocols" need to be used to tailor the UBA to the need > of the user, because there's usually no way of asking the terminal to > apply a behavior which deviates from the UBA.
We are absolutely on the same page here. As long as the use case is text editing or something similar, it's harmful if the terminal emulator aims to do any BiDi. Having to tell users to turn off BiDi in the emulator's settings is in my firm opinion a user experience no-go. It has to be automatic, happen under the hood, that is, using escape sequences. There's another side to the entire BiDi story, though. Simple utilities like "echo", "cat", "ls", "grep" and so on, line editing experience of your shell, these kinds. It's absolutely not feasible to add BiDi support to these utilities. Here the only viable approach is to have the terminal emulator do it. Hence, as I confirm ECMA TR/53's realization of 28 years ago, there have to be two substantially different modes. "Explicit" mode for what you need for Emacs: the terminal to stay out of the game; and "implicit" mode where the terminal performs BiDi for the sake of "cat" and other simple utiltiies. I'm also arguing that contrary to TR/53, there's no way to hook up a mode switch to "cat" and a gazillion of other similar tools. The only reaslisticly implementable approach is if the "implicit" mode is the default so that simple utilities provide a proper BiDi experience. Those very few fullscreen apps that do know what they are doing and do want the terminal to leave the characters at their designated place (such as Emacs, Vim etc.) will have to request this "explicit" mode from the terminal. cheers, egmont

