Использование клавиатурных раскладок - хорошая тема для холиваров. По большому счёту в Windows имеется две “нормлальные” клавиатурные раскладки: Russian (Typewriter) и Russian. Их нормальность в использовании раскладки ЙЦУКЕН, т.е. соответствие латинских букв QWERTY русским буквам ЙЦУКЕН. Это общерпниятая раскладка ещё со времён печатных машинок. И раскладка Russian - Mnemonic, где соответствие букв QWERTY - ЯШЕРТЫ. Здесь раскладка выбрана по фонетическому сходству букв и я ниогда не видел, чтобы кто-либо её использовал на практике.
Я сторонник раскладки Russian (Typewriter). В ней предполагается, что при нажатии на цифровую клавишу без клавиши Shift вводятся знаки препинания, а цифры нужно водить с Shift. Цифры можно вводить с цифровой клавиатуры, но я обычно использую мини-клавиатуру. Вввод цифр - не проблема. Проблема в знаках препинания. Они переехали в раскладку напрямую со времён печатных машинок. Символ #
в русской раскладке отсутствует вовсе и за ним нужно переключаться в английскую раскладку. На клавише с ‘~’, которая на нормальных клавиатурах слева от едициницы находятся символы |
и +
. На единице “повешен” символ №
, но с этим я научился мириться, т.к. символ !
находится на клавише ‘-‘ и к этому можно привыкнуть. Мои минимальные требования к раскладке TypeWriter заключаются в возможности набрать символы #
, ``’ и ~
без необходимости переключаться в английскую раскладку. И вомзожность переключать английский/русский язык нажатием ‘Caps Lock’, как дополнительное пожелание. К счастью, для Windows есть совершенно фантастическая программа, которая позволяет это сделать.
AutoHotkey
Возможности программы AutoHotkey куда больше простой подстановки символов. Кроме того, действия можно писваивать не только клавишам, но и кнопкам мыши и даже джойстику. Не уверен насчёт джойстика, но вот испоьзовать мыши с количеством кнопок пять и более в AutoCAD реально ускоряет черчение. Но эти трюки за пределами статьи. Просто знайте - AutoCAD и AutoHotkey созданы друг для друга.
Прочитать руководство к AutoHotkey можно на их сайте. Продвинутые возможности AutoHotkey реально сложны, а вот базовые возможности настолько просты, что их можно пояснить здесь. Вот мой скрипт для подстановок:
|::#
+|::`
!|::~
!х::[
!ъ::]
SetCapsLockState, AlwaysOff
+CapsLock::CapsLock
CapsLock::
Send, {Ctrl down}{Shift down}{Shift up}{Ctrl up}{Ctrl up}
SoundBeep 999, 1
return
Он устроен очень просто. Для переопределения нужно указать символ, для которого делается переопределние. Именно символ в той раскладке, в которой мы делаем переопределение. Потом два двоеточия и указать символ на который делается переопределение. В первой строке я “жертвую” совсем не нужным мне символом | и переопределяю на чрезвычайно нужный символ хэштега. Хэштеги я использую везде и, возможно, даже злоупотребляю ими. На одну клавишу можно повесить несколько символов, именно для этого есть клавиши-модификаторы. Я привожу не полный список модификаторов, полный список возможных модификаторов AutoHotkey приведён в руководстве. |
| Символ | Модификатор |
+———-+——————–+
| #
| Клавиша Win
|
| !
| Клавиша Alt
|
| ^
| Клавиша Ctrl
|
| +
| Клавиша Shift
|
Таким образом, скрипт выше переопределяет ввод квадратных скобок в русской раскладке с клавишей Alt и привязывает ряд символов к клавише тильда. Весь остаток скрипта потрачен на переключение раскладок по нажатию на клавишу CapsLock
.
SetCapsLockState, AlwaysOff
Отключает стандартную функцию клавиши CapsLock
.
+CapsLock::CapsLock
Привязывает функцию CapsLock на комбинацию клавиш Shift
и CapsLock
. Я крайне редко пользуюсь этой функцией, но посчитал нужым оставить её.
Определение
CapsLock::
Send, {Ctrl down}{Shift down}{Shift up}{Ctrl up}{Ctrl up}
SoundBeep 999, 1
return
Привязывает к нажатию клавиши CapsLock
последовательность действий: отпустить Ctrl
и Shift
(на случай, если они зажаты), нажать клавиши Shift
и Ctrl
. Я не помню, зачем указал нажатие клавиши Ctrl
дважды. Кажется, без этого сочетание плохо отрабатывала и я подобрал его опытным путём.
Компиляция скриптов AutoHotkey
Возможность компиляции скриптов - главная функция AutoHotkey. Без неё - это была бы полезная, но не незаменимая программа. AutoHotkey нужно было бы установить на компьютер, разместить в автозагрузку и запускать любые скрипты. Но скрипты AutoHotkey создаются однажды и на долгие годы. Не хотелось бы держать постоянно установленной на компьютер эту программу. К счастью, из скрипта можно сделать один исполняемый файл и дальше пользоваться им. Он абсолютно портабельный, его можно переносить на другие комьпютеры и он продолжил работать после перехода с Windows 7 на Windows 10.
Компилятор имеет графический интерфейс, никакой возни с командной строкой и параметрами. Запускаем файл Ahk2Exe.exe
из папки ‘Compiler’. Выбираем файл скрипта, указываем имя скомпилированного скрипта. По желанию указываем иконку для результирующего файла и выбираем опцию разрядности. На современных 64-битных Windows это опция ‘Unicode 64-bit’ без альтернативы.
Получившийся после компиляции файл можно заносить в автозагрузку и забыть о его существовании. Некоторое время уйдёт на привыкание, но это недолго. С этого момента ввод текстов навсегда станет другим, а небольшое время, потраченное на продумывание привязки будет восполнено с лихвой.
Можно использовать и продвинутые скриптовые мозможности AutoHotkey, но это по желанию. Возможно, я ещё не открыл для себя какие-то дополнительные возможности.
Альтернативы AutoHotkey
Если говорить именно о подстановке символов в разные раскладки клавиатуры - AutoHotkey не единственный выбор. Имеются программы, которые позволяют создавать собственные клавиатурные раскладки Windows. Я не рассматриваю их здесь потому, что они требуют полномочий администратора и весь процесс куда сложнее, на мой взгляд. Между вариантом: создать простой и короткий макрос AutoHotkey, скомпилировать его и закинуть в автозагрузку и вариантом: создать свою раскладку, закинуть его в системную папку, установить нужные ключи реестра или воспользоваться программой, которая делает это автоматически. Я полностью на стороне AutoHotkey. Кроме того, я не уверен в этом до конца, но при помощи отредактированной раскладки клавиатуры не получится подвесить переключение языка на клавишу CapsLock. А это очень приятная возможность к которой удивительно быстро привыкаешь. А при быстром десятипальцевом вводе это совершенно необходимая возможность.