В macOS можно очень удобно назначить переключение раскладки на Caps Lock (а когда нужно включить именно Caps — просто зажать его либо нажать Shift+Caps Lock / Ctrl+Caps Lock), а в новых версиях вообще есть отдельная клавиша переключения языка. Из-за специфики работы приходится работать на Windows, а потому захотелось подобного решения, и оно есть — AutoHotkey.
Скачиваем AutoHotkey с официального сайта.
Открываем в проводнике директорию с автозапуском:
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Создаем новый текстовый файл с таким содержимым:
SendMode Input
SetWorkingDir %A_ScriptDir% CapsLock::Send, {Alt Down}{Shift Down}{Shift Up}{Alt Up}{Ctrl Down}{Shift Down}{Shift Up}{Ctrl Up}
Переименовываем файл в caps_to_change_kb_layout.ahk
(название любое, расширение должно быть ahk
).
Запускаем файл. Впоследствии он будет запускаться автоматически при входе в систему.
P.S. Можно указать в скрипте только нужную комбинацию для переключения раскладки — Ctrl+Shift или Alt+Shift. Локально я использую Ctrl+Shift, а на удаленных серверах по RDP по умолчанию настроен Alt+Shift, поэтому в скрипте обрабатываются одновременно оба варианта.
P.P.S. Переключение раскладки по Caps Lock не работает в оснастке Active Directory и иногда слетает при подключении по RDP (в последнем случае нужно просто через ПКМ по иконке AutoHotkey в трее перезапустить скрипт).
UPD: В новой версии AutoHotkey 2.0 изменился синтаксис, поэтому скрипт caps_to_change_kb_layout.ahk
будет выглядеть следующим образом:
#Requires AutoHotkey v2.0 CapsLock:: { Send '{Alt Down}{Shift Down}{Shift Up}{Alt Up}{Ctrl Down}{Shift Down}{Shift Up}{Ctrl Up}'
}