Windows build number: 10.0.19041.0
Windows Terminal version (if applicable): 1.1.2021.0
Any other software?
Ubuntu 20.04 LTS (WSL2)
WinCompose v0.9.4 (https://github.com/samhocevar/wincompose/releases/tag/v0.9.4)
rightAlt
+ o
a
Правильный символ («å» в приведенном выше примере) отправляется на терминал.
Вроде ни один символ не отправляется, по крайней мере, ничего не отображается.
Вероятно, связано с # 6309, поскольку установка "experimental.input.forceVT": true
дает ожидаемое поведение.
Хм. Это не совсем работает в традиционной консоли, и то, что это сработало в WT, было случайностью. Однако это _должно_.
Вот что я получаю, если смотрю на ключевые события, происходящие из WC, в традиционной консоли:
v 001 0010 002a 0000 ^@ 00000010
^ 001 0010 002a 0000 ^@ 00000000
v 001 0000 0000 00f6 � 00000000
^ 001 00e7 0000 00f6 � 00000000
^ 001 004f 0018 006f o 00000000
и вот что я получаю через кран:
␛[255;0;0;1;16;1_␛[255;0;0;0;16;1_
что 255 определенно не прав
Итак, как стороннее приложение должно отправлять символы Unicode в Терминал Windows, если SendInput()
больше не работает по умолчанию?
Насколько я понимаю, эта проблема была исправлена в # 7900. Я сейчас закрою эту проблему, так как WinCompose отлично работает на моей стороне с последней версией WT.
Хорошо то, что теперь я наконец понял, почему мы получаем странные ключевые события, содержащие недопустимые коды сканирования, для сторонних приложений, использующих SendInput
: WT неправильно использует TranslateMessage(Ex)
. (Я имею в виду, что есть очень конкретная причина, по которой это не так ... А именно необходимость получать ключевые события даже для символьных клавиш.)
Самый полезный комментарий
Насколько я понимаю, эта проблема была исправлена в # 7900. Я сейчас закрою эту проблему, так как WinCompose отлично работает на моей стороне с последней версией WT.
Хорошо то, что теперь я наконец понял, почему мы получаем странные ключевые события, содержащие недопустимые коды сканирования, для сторонних приложений, использующих
SendInput
: WT неправильно используетTranslateMessage(Ex)
. (Я имею в виду, что есть очень конкретная причина, по которой это не так ... А именно необходимость получать ключевые события даже для символьных клавиш.)