В данной статье я не предлагаю полностью заменить Punto Switcher (Спасибо Сергею Москалёву за данную программу), а только в очень ограниченном функционале. Довольно давно пользуюсь программой Punto Switcher, но не в целях автопереключения, а как переключатель по левому и правому Shift. Ещё со времен Dos мне удобно такое переключение, да и под Windows (особенно это касается 7 версии) мне не надо задумываться, какой там язык окажется в окне, а достаточно нажать левый Shift и мой основной русский уже готов к вводу. Заметьте, что пока правая рука на мышке, то левая уже может или переключать языки или выставить русский всего лишь нажатием на левый Shift, и для этого даже не надо никуда отвлекаться, все делается автоматически. Таким образом, мне всегда было удобно переключать язык на русскую раскладку левым Shift-ом, а английский правым Shift-ом.
Время идёт, и тут понадобилось еще один язык внедрить пользователям, да ещё хотят поддержку раскладки Бирмана, да и других раскладок. Какое это неудобство я смог оценить сам и вот поэтому и пришлось придумывать, на чём это можно сделать. Если взять просто раскладку Бирмана, так по правому Alt если есть горячие клавиши, то они перекрывают эту раскладку и ничего не работает. А таких горячих клавиш полно, так как на каждый ярлык рабочего стола можно быстрый вызов по «Ctrl+Alt+клавиша» навесить. Если же сделать по подобии раскладки Бирмана, но без правого Alt, по клавишам, то проблема переключения кучи этих языков так и так будет стоять.
Короче, ничего лучше, чем использовать скрипт на autohotkey я не придумал, так как он позволяет сделать многие нужные вещи и легко может быть изменен другим человеком. Поэтому эта статья будет полезна некоторым читателям хабра, а профессионалы могут и подправить мой код, так как каюсь, но этой мой первый опыт написания скрипта на autohotkey.
Под катом рисунок «Расширение раскладки клавиатуры в программе «Keybord Assistant 1.0»» и подробное пояснение к этому рисунку.
Идеальных решений не бывает и всегда приходится чем-то жертвовать. В данном случае мне пришлось пожертвовать функционалом правых клавиш RAlt и RWin, благо их редко использую. Так как в других языках RAlt может использоваться, то использую RCtrl для этого. Так как некоторые программы имеют свои хитрые перехватчики клавиатурных состояний, то чтобы полностью «убить» их реакцию на нажатие клавиш RAlt и RWin пришлось с помощью программы «KeyTweak» назначить правому ALt значение «WWW Stop», а правому Win значение «My Computer». Эти клавиши из мультимедиа клавиатур почти не используются людьми, так что идеально подошли для моих целей. И даже если их случайно нажать, то они никак не повлияют на функциональность Windows.
Раскладка Бирмана у меня почти полностью повторяется (добавлен знак гривны), разве, что она на RWin клавише и возможно от этого кому-то будет не так удобно как в оригинале по RAlt. Но это не мой основной инструмент, а основной на RAlt клавише.
Для того чтобы напечатать символ из раскладки Бирмана, вам надо нажать клавишу RAlt и какую-то клавишу над которой коричневым цветом нарисован этот символ. Если символ нарисован более светлым цветом, то он будет напечатан, если еще нажимают клавишу Shift. Пример: RAlt+Shift+Ф напечатает знак ⌘.
Клавиша CapsLock используется как левый Ctrl, так как мне при слепом наборе очень-очень неудобно тянуться к LCtrl и полностью невозможно дотянуться до RCtrl. Редко CapsLock бывает необходим, поэтому переключаю его по LAlt+CapsLock.
Переключение раскладок тут несколько (не считая возможных Windows: RWin+Space или RAlt+RShift): LShift — переключение в русскую, RShift — переключение в английскую, RAlt — переключение только между En и Ru раскладками, LAlt+Пробел — переключение между другими раскладками, но не En и не Ru. Переключение CapsLock, что и этих раскладок сделано быстрое, то есть нажали и сразу отжали кнопку. Это сделано для исключения проблем с нажатием сложных комбинаций клавиш. Переключение по Shift языков реагирует быстрее, чем в Punto Switcher, что только меня радует при более быстром наборе. Если вы переключали раскладку по RAlt и потом вам надо набирать какое-то слово в другом языке (не в русском или английском), то переключившись быстро по LAlt+Пробел и набрав нужное слово, можно потом одним нажатием на RAlt снова получить тот язык, что был до этого, так как языки (Ru или En) запоминаются. Пока не запоминаются языки по LAlt+Пробел, но если у вас их очень много и часто нужно еще не только 3 языка, а 4,5 и тд, то может и надо будет изменить скрипт и сделать такую функцию.
С помощью клавиши LAlt можно вводить знаки валют, апостроф украинского языка, знак ударения, длинное тире с неразрывным пробелом. Я понимаю, что LAlt используется в меню и там важно все буквенные клавиши не переназначать, но вот некоторые цифровые я все же использовал у себя в скрипте и не трогал LAlt+1,2,3,4 которые удобно так использовать в стандартном калькуляторе.
Основная рабочая клавиша у меня RAlt. С помощью данного скрипта и этой клавиши я могу спокойно перемещать курсор по тексту, легко удалять или вставлять нужные символы. И всё это без того, чтобы перемещать правую руку, отрываясь от основной позиции слепого набора. Тем, кому приходится программировать давно известна проблема, что русские буквы заменили знаки [] или <>. Если вы пишете статью и надо набрать эти знаки, то без переключения языков не обойтись. В данном скрипте я решил эту проблему использованием клавиши RAlt. Пример: RAlt+Ъ — напечатает знак ]; RAlt+2 — напечатает знак @; RAlt+Ю — напечатает знак >.
Комбинации клавиш RAlt+Tab+Ш, Л и т.п., будут уже не перемещать текстовый курсор, а перемещать курсор мыши. С использованием Tab данный скрипт может в некотором роде заменить мышь, допустим в случае её внезапной поломки. По мне, функционал чуть удобней, чем встроенной в специальные возможности windows.
Ну, и для пользователей кириллических языков, у кого основной русский, но надо набрать символ украинский, белорусский и, даже такой почти не использованный символ, как буква ӂ молдавской кириллицы, есть возможность с помощью RAlt+клавиша набрать нужный символ.
Для того, чтобы использовать скрипт, его предварительно надо скачать:
Скачать архив «Keybord Assistent 1_0.rar»
Проверка архива на вирусы (6 антивирусов не ясных фирм всегда ругаются на любой скрипт Autohotkey)
Для тех, кто использует Autohotkey и так будет понятно, что из данного архива им надо поглядеть файл «Keybord Assistent 1_0.ahk». Для обычных пользователей, что даже не знают, как переназначать клавиши (допустим с помощью программы «KeyTweak»), необходимо запустить c правами администратора и проделать следующее:
- Распаковать архив «Keybord Assistent 1_0.rar»
- Запустить файл «Переназначить RAlt RWin.reg»
- Перегрузить компьютер
- Запустить файл «Keybord Assistent 1_0.exe»
Программа будет размещена в трее (около часиков) и по правой клавише доступно меню управления программой, возможность получить справку (рисунок, что показан был выше). В режиме «Стоп» производится возврат функциональности (поведения) всех стандартных клавиш (даже RAlt и RWin, хоть они и переназначены), так как иногда в играх или каких-то программах нужны все клавиши.
Если вам программа не понравилась, то запустить файл «Вернуть как было RAlt RWin.reg» и снова перегрузите компьютер.
Для продвинутых пользователей можно править скрипт «Keybord Assistent 1_0.ahk» и запускать его на исполнение (конечно при условии установленного Autohotkey). Все ваши функциональные изменения можно подправить и в файле «Keybord Assistent 1_0.xlsx», сделать скриншот с него сформировав новый файл «СправкаKeybAs.jpg».
Разрешаются любые изменения кода (ну, кроме замены автора в скрипте на своё имя, а дописывать не запрещается), дополнения кода, использование частей кода в своих скриптах.
Данная статья написана специально для habr.com и до этого нигде не была опубликована, как и сам скрипт в общем (даже на сайте автора скрипт ещё не был опубликован).
Автор: kaiu