Skip to main content

Блог инженера

Блог о минимализме, инжинерии и программировании.



Как исправить недостатки клавиатурной раскладки?

  | #lifehack

Использование клавиатурных раскладок - хорошая тема для холиваров. По большому счёту в 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’ без альтернативы.

Ahk2exe compiler

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

Можно использовать и продвинутые скриптовые мозможности AutoHotkey, но это по желанию. Возможно, я ещё не открыл для себя какие-то дополнительные возможности.

Альтернативы AutoHotkey

Если говорить именно о подстановке символов в разные раскладки клавиатуры - AutoHotkey не единственный выбор. Имеются программы, которые позволяют создавать собственные клавиатурные раскладки Windows. Я не рассматриваю их здесь потому, что они требуют полномочий администратора и весь процесс куда сложнее, на мой взгляд. Между вариантом: создать простой и короткий макрос AutoHotkey, скомпилировать его и закинуть в автозагрузку и вариантом: создать свою раскладку, закинуть его в системную папку, установить нужные ключи реестра или воспользоваться программой, которая делает это автоматически. Я полностью на стороне AutoHotkey. Кроме того, я не уверен в этом до конца, но при помощи отредактированной раскладки клавиатуры не получится подвесить переключение языка на клавишу CapsLock. А это очень приятная возможность к которой удивительно быстро привыкаешь. А при быстром десятипальцевом вводе это совершенно необходимая возможность.

About Mikhail Kiselev

Photo of Mikhail Kiselev

Приветствую в моём блоге! 😄 Меня зовут Михаил. Я инженер и программист. Живу в Израиле. Но мой блог связан с работой в Сибири и на Сахалине, путешествую где придётся. Я предпочитаю пост в блог посту в твиттер. Описание полезной технологии или гаджета предпочитаю описанию заката или посиделок в кафе.