Альтернативные клавиши переключения языка

cc2b047209fb427c5ff8f6196287e4fa

Привычный способ переключать раскладку клавиатуры не оптимален. Нужно помнить, какая у тебя раскладка сейчас, и затем подумать, нажать или не нажать комбинацию. Звучит смешно, когда описываешь словами. Но эту операцию мы делаем тысячи раз в день, и самая крохотная её оптимизация ощутимо прибавляет комфорт.

Гораздо удобнее, когда есть разные клавиши «Переключить на язык такой‑то». Если этот язык уже выбран — то просто ничего не происходит. Весь смысл в том, что не нужно думать: собираешься писать на языке — нажал его кнопку. Перешёл в другое окно — автоматом нажал кнопку для желаемого языка. Отвлёкся — снова нажал. Для мозга нажать на автомате лишнюю кнопку в сто раз проще, чем вспоминать, какая там раскладка стоит сейчас.

Как только пальцы привыкнут, то явление «начал писать не на том языке» уйдёт из вашей жизни на уровне концепции. Особенно рекомендую тем, кто смотрит на клавиатуру при печати.

В Linux эти настройки доступны «из коробки», по крайней мере там, где не уничтожили окно настройки клавиш иксов. В Винтусе же «из коробки» тоже можно это наладить, но только на комбинацию Ctrl + Alt + цифра. Которая, кстати, самая удобная, когда у вас в ходу 5–6 равно используемых раскладок. Но не две.

Поэтому предлагаю создать хоткеи вручную, воспользовавшись бесплатной программой AutoHotKey. Ещё бывает, делают те же вещи через PowerToys и PuntoSwitcher, но это всё большие комплексы с кучей всего, а я предлагаю компактное решение. После установки AutoHotKey (версии 2) не надо его запускать, а нужно создать текстовый файл с инструкциями и расширением .ahk

#Requires AutoHotkey v2.0 64-bit
#Warn  ; Enable warnings to assist with detecting common errors.

CapsLock::SetInputLang(0x0409) ; English (USA)

+CapsLock::SetInputLang(0x0419) ; Russian

SetInputLang(TargetLang)
{   
    PostMessage 0x50, 0, TargetLang, , "A"
}

Эти инструкции означают: Capslock переключает всегда на английский, Shift+Capslock на русский. Если хотите другие комбинации, смотрите здесь. Когда сохраните файл, его должно быть возможно запустить правой кнопкой → Run Script. Он будет сидеть в трее, перехватывать нажатия капслока и менять язык.

Проверяйте. Если всё работает и всё понравилось, скрипт можно добавить в автозагрузку. Для этого открывайте или проводник, или Win+R, в строке адреса набирайте shell: startup

Одна проблема — он не может перехватывать кнопки в особых окнах, таких как окно UAC или то, что вылезает по нажатию Win+R. Там, если нужно, язык придётся переключать старым добрым Win+Пробел, который работает везде и всегда. Это, кстати, на заметку тем, кто часто ходит по чужим компьютерам: Alt+Shift и Ctrl+Shift опциональны, а вот Win+Пробел без бубна не отключишь.

P.S. Ещё один хороший скриптик всем любителям понагибать: когда на экране полноэкранное приложение, кнопка Win заменяется на Enter.

#Requires AutoHotkey v2.0 64-bit

isFullScreen()
{
    WinGetPos , , &W, &H, "A" ; "A" is a codename for current window
    return (W H = A_ScreenWidth A_ScreenHeight)
}

#HotIf isFullScreen()
LWin::Return
#HotIf

© Habrahabr.ru