2

Удобное переключение раскладки для 3 языков

Проблема:

При изучении какого-то языка требуется добавить его в список раскладок Windows, чтобы общаться на нём с другими изучателями/носителями языка. Но так как он "вторичный" и используется реже остальных, он часто мешает при работе. Приходиться нажимать Alt+Shift несколько раз.


Желаемый результат:

По Alt+Shift происходит переключение рус/англ. CapsLock переключает на японский (я капсом не ору, поэтому мне его функциональность не нужна, но можно назначить любую клавишу). При нажатии Alt+Shift при активном японском, происходит смена раскладки на англ.


Я долго мучался в поисках решения на форумах и реддитах и даже (sic!) заходил на вторую страницу гугла. Думаю, хоть где-то должна быть легкодоступная инструкция для таких же как я. Оставлю её здесь.


Решение:

AutoHotkey. Программа биндит скрипт на нажатие клавиш. Легко гуглится. Для её работы нужно создать файл с расширением .ahk, добавить его в автозапуск и отключить втроенную в Windows смену раскладки по Alt+Shift. Вот содержимое моего keyboard.ahk файла:

Удобное переключение раскладки для 3 языков

В первой строке переменным присваиваются соответствующие раскладки. Коды всех раскладок можно найти на сайте мягких (средний столбец):

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. Не бейте за говнокод, пожалуйста.