Удобное переключение раскладки для 3 языков
Проблема:
При изучении какого-то языка требуется добавить его в список раскладок Windows, чтобы общаться на нём с другими изучателями/носителями языка. Но так как он "вторичный" и используется реже остальных, он часто мешает при работе. Приходиться нажимать Alt+Shift несколько раз.
Желаемый результат:
По Alt+Shift происходит переключение рус/англ. CapsLock переключает на японский (я капсом не ору, поэтому мне его функциональность не нужна, но можно назначить любую клавишу). При нажатии Alt+Shift при активном японском, происходит смена раскладки на англ.
Я долго мучался в поисках решения на форумах и реддитах и даже (sic!) заходил на вторую страницу гугла. Думаю, хоть где-то должна быть легкодоступная инструкция для таких же как я. Оставлю её здесь.
Решение:
AutoHotkey. Программа биндит скрипт на нажатие клавиш. Легко гуглится. Для её работы нужно создать файл с расширением .ahk, добавить его в автозапуск и отключить втроенную в Windows смену раскладки по Alt+Shift. Вот содержимое моего keyboard.ahk файла:
В первой строке переменным присваиваются соответствующие раскладки. Коды всех раскладок можно найти на сайте мягких (средний столбец):
https://docs.microsoft.com/en-us/previous-versions/windows/i...
То есть, вместо "00000411" в переменной jp можно написать "00000410" и при нажатии CapsLock будет переключение на итальянский.
Или можно создать переменную
pkb := DllCall("LoadKeyboardLayout", "Str", "00000410", "Int", 1)
Написать аналогичный 5-8 строчкам блок, но вместо CapsLock написать ScrollLock, и вместо %jp% - %pkb%. И у вас будет японский на CapsLock, итальянский на ScrollLock.
Мой keyboard.ahk для ленивых:
https://drive.google.com/open?id=1A2gT9ZuT5gNNxx0Y_KYypvZpUJ...
Конечно, вместо "изучаемого" языка может быть и родной язык (для стран СНГ наверное актуально). Надеюсь кому-то будет полезно.
P.S. Не бейте за говнокод, пожалуйста.