Существует ли решение для переключения раскладка клавиатуры в Window и X11 (wsl2) по комбинации CapsLock?
Всем привет. У меня в WSL2 установлена idea. В Windows 10 она пробрасывается через X11 (XcXsrv). В XcXsrv настроено правило переключение раскладки "-xkblayout us,ru -xkboptions grp:caps_toggle". Данное правило отлично работает, но только если это же правило не стоит для переключения раскладки в Windows. Т.е если в Windows включить смену раскладки по СapsLock, тогда в X11 сеансе не переключается раскладка. Т.е проблема в том, что если настроить единую комбинацию клавиш для переключения раскладки в Windows и X11, то в Windows она переключается, а в приложении, которое отображается через X11 она остается прежней. Видимо Windows перехватывает эту комбинацию и не отправляет ее в X11. Есть ли какое-то решение этого вопроса.
Пробовал работать с переключением ALT + Shift (одновременно в X11 и Windows), но и тут проблемы, в X11 приложении (в данном случае Idea), не воспроизводиться комбинация Ctrl + Shift + Alt + T. Из этой комбинации вылетает Shift, idea думает, что я нажимаю Ctrl+Alt+T.
John Smith, Я так и пробовал. Пробовал через caps-mini и через Punto. В Windows раскладка переключается всегда, а вот в X11, видимо, это переключение не видит.
John Smith, эта комбинация не работает также как и в случае c CapsLock. Т.е в Windows переключает, в X11 приложении нет. Проблема, видимо, не в самой комбинации.
Пока переключение по Alt+Shift работает лучше всего, оно переключает и там и там. Но вот куда в X11 приложении из комбинации Ctrl + Shift + Alt + T "улетает" Shift, вот это загадка.
можно попробовать сделать комбинацию клавиш для переключения языка в Windows и/или в X11 другой, а затем написать программу, допустим, посредством pyHook или даже PowerShell, которая бы ожидала (слушала) нажатия конкретных клавиш и печатала свои. то есть, нажатием '[Caps Lock]' провоцируется нажатие других клавиш, меняющих язык.
полагаю, лучше запускать такое средство на стороне Windows.
насколько я знаю, через WSH/VBScript это не сделать, так как нет таких средств. возможно, можно вызывать библиотеки через VBScript, но думаю, что варианты с PowerShell (медленный, если из коробки) и pyHook (требует Python) лучше.