QEMU sendkey
Oct. 4th, 2019 12:42 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
В мониторе QEMU есть команда sendkey. Правда, она почти не документирована.
Только в каком-то левом Wiki удалось нарыть таблицу названий клавиш, причем не полную и по состоянию на qemu 0.12.
Пришлось RTFS заняться. Но теперь у меня в документации на vws есть таблица, в которой по крайней мере все нормальные клавиши с алфавитно-цифровой клавиатуры описаны (включая grave_accent, bracket_left и bracket_right).
Правда, вот возможность сделать
я туда не приделал. Просто потому что из qemu монитора нет никакой возможости узнать в какой раскладке сегодня клавиатура виртуальной машины. (и даже состояния caps lock и num lock).
Поэтому если я туда пошлю что-то вроде
может быть получится "Киса, ку-ку!", а может и нет.
Только в каком-то левом Wiki удалось нарыть таблицу названий клавиш, причем не полную и по состоянию на qemu 0.12.
Пришлось RTFS заняться. Но теперь у меня в документации на vws есть таблица, в которой по крайней мере все нормальные клавиши с алфавитно-цифровой клавиатуры описаны (включая grave_accent, bracket_left и bracket_right).
Правда, вот возможность сделать
vws sendkey machine "Hello, kitty!"
я туда не приделал. Просто потому что из qemu монитора нет никакой возможости узнать в какой раскладке сегодня клавиатура виртуальной машины. (и даже состояния caps lock и num lock).
Поэтому если я туда пошлю что-то вроде
vws sendkey WinSrv2008 ctrl-shift shift-r b c f comma spc r e minus r e shift-1
может быть получится "Киса, ку-ку!", а может и нет.
no subject
Date: 2019-10-04 10:03 am (UTC)no subject
Date: 2019-10-04 11:08 am (UTC)Второй -- сделать stateless клавиатуру (я делал для RDP ~150 клавишную, с кириллицей на неиспользуемых сканкодах). Правда патчить "понемногу" пришлось почти все.
no subject
Date: 2019-10-04 11:52 am (UTC)no subject
Date: 2019-10-04 01:29 pm (UTC)no subject
Date: 2019-10-04 11:54 am (UTC)Хотя... remote desktop client в винду теперь не кладут, надо из Microsoft Store доставлять.
Так что может вмеcnj xrdp XSpice поставить...
no subject
Date: 2019-10-04 01:27 pm (UTC)Вот я ему нагенерил таблицу сканкодов несуществующих клавиш с кодами 210-243, и сделал для них xkb раскладку. Но с этим не все приложения живут (нормальные -- живут, а вот вайн мне патчить пришлось, потому что он считает символы для которых нет сканкода несуществующими. Ужасные подробности есть в багтрекере вайна, потому что если XLookupString возвращает для инпута валидный юникод, то символ должен вводиться не смотря на все внутренние хаки для игрушек).
no subject
Date: 2019-10-04 01:40 pm (UTC)no subject
Date: 2019-10-04 01:48 pm (UTC)no subject
Date: 2019-10-04 01:56 pm (UTC)no subject
Date: 2019-10-07 12:24 pm (UTC)Я могу показать место в исходниках иксового модуля где это происходит -- https://github.com/neutrinolabs/xorgxrdp/blob/devel/xrdpkeyb/rdpKeyboard.c#L860 вот собственно