СофтХабрахабр

[Из песочницы] Замена Punto Switcher, раскладки Бирмана с помощью скрипта на autohotkey

В данной статье я не предлагаю полностью заменить Punto Switcher (Спасибо Сергею Москалёву за данную программу), а только в очень ограниченном функционале. Довольно давно пользуюсь программой Punto Switcher, но не в целях автопереключения, а как переключатель по левому и правому Shift. Ещё со времен Dos мне удобно такое переключение, да и под Windows (особенно это касается 7 версии) мне не надо задумываться, какой там язык окажется в окне, а достаточно нажать левый Shift и мой основной русский уже готов к вводу. Заметьте, что пока правая рука на мышке, то левая уже может или переключать языки или выставить русский всего лишь нажатием на левый Shift, и для этого даже не надо никуда отвлекаться, все делается автоматически. Таким образом, мне всегда было удобно переключать язык на русскую раскладку левым Shift-ом, а английский правым Shift-ом.

Какое это неудобство я смог оценить сам и вот поэтому и пришлось придумывать, на чём это можно сделать. Время идёт, и тут понадобилось еще один язык внедрить пользователям, да ещё хотят поддержку раскладки Бирмана, да и других раскладок. А таких горячих клавиш полно, так как на каждый ярлык рабочего стола можно быстрый вызов по «Ctrl+Alt+клавиша» навесить. Если взять просто раскладку Бирмана, так по правому Alt если есть горячие клавиши, то они перекрывают эту раскладку и ничего не работает. Если же сделать по подобии раскладки Бирмана, но без правого Alt, по клавишам, то проблема переключения кучи этих языков так и так будет стоять.

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

0»» и подробное пояснение к этому рисунку.
Под катом рисунок «Расширение раскладки клавиатуры в программе «Keybord Assistant 1.

В данном случае мне пришлось пожертвовать функционалом правых клавиш RAlt и RWin, благо их редко использую. Идеальных решений не бывает и всегда приходится чем-то жертвовать. Так как некоторые программы имеют свои хитрые перехватчики клавиатурных состояний, то чтобы полностью «убить» их реакцию на нажатие клавиш RAlt и RWin пришлось с помощью программы «KeyTweak» назначить правому ALt значение «WWW Stop», а правому Win значение «My Computer». Так как в других языках RAlt может использоваться, то использую RCtrl для этого. И даже если их случайно нажать, то они никак не повлияют на функциональность Windows. Эти клавиши из мультимедиа клавиатур почти не используются людьми, так что идеально подошли для моих целей.

Но это не мой основной инструмент, а основной на RAlt клавише. Раскладка Бирмана у меня почти полностью повторяется (добавлен знак гривны), разве, что она на RWin клавише и возможно от этого кому-то будет не так удобно как в оригинале по RAlt.

Если символ нарисован более светлым цветом, то он будет напечатан, если еще нажимают клавишу Shift. Для того чтобы напечатать символ из раскладки Бирмана, вам надо нажать клавишу RAlt и какую-то клавишу над которой коричневым цветом нарисован этот символ. Пример: RAlt+Shift+Ф напечатает знак ⌘.

Редко CapsLock бывает необходим, поэтому переключаю его по LAlt+CapsLock. Клавиша CapsLock используется как левый Ctrl, так как мне при слепом наборе очень-очень неудобно тянуться к LCtrl и полностью невозможно дотянуться до RCtrl.

Переключение CapsLock, что и этих раскладок сделано быстрое, то есть нажали и сразу отжали кнопку. Переключение раскладок тут несколько (не считая возможных Windows: RWin+Space или RAlt+RShift): LShift — переключение в русскую, RShift — переключение в английскую, RAlt — переключение только между En и Ru раскладками, LAlt+Пробел — переключение между другими раскладками, но не En и не Ru. Переключение по Shift языков реагирует быстрее, чем в Punto Switcher, что только меня радует при более быстром наборе. Это сделано для исключения проблем с нажатием сложных комбинаций клавиш. Пока не запоминаются языки по LAlt+Пробел, но если у вас их очень много и часто нужно еще не только 3 языка, а 4,5 и тд, то может и надо будет изменить скрипт и сделать такую функцию. Если вы переключали раскладку по RAlt и потом вам надо набирать какое-то слово в другом языке (не в русском или английском), то переключившись быстро по LAlt+Пробел и набрав нужное слово, можно потом одним нажатием на RAlt снова получить тот язык, что был до этого, так как языки (Ru или En) запоминаются.

Я понимаю, что LAlt используется в меню и там важно все буквенные клавиши не переназначать, но вот некоторые цифровые я все же использовал у себя в скрипте и не трогал LAlt+1,2,3,4 которые удобно так использовать в стандартном калькуляторе. С помощью клавиши LAlt можно вводить знаки валют, апостроф украинского языка, знак ударения, длинное тире с неразрывным пробелом.

С помощью данного скрипта и этой клавиши я могу спокойно перемещать курсор по тексту, легко удалять или вставлять нужные символы. Основная рабочая клавиша у меня RAlt. Тем, кому приходится программировать давно известна проблема, что русские буквы заменили знаки [] или <>. И всё это без того, чтобы перемещать правую руку, отрываясь от основной позиции слепого набора. В данном скрипте я решил эту проблему использованием клавиши RAlt. Если вы пишете статью и надо набрать эти знаки, то без переключения языков не обойтись. Пример: RAlt+Ъ — напечатает знак ]; RAlt+2 — напечатает знак @; RAlt+Ю — напечатает знак >.

С использованием Tab данный скрипт может в некотором роде заменить мышь, допустим в случае её внезапной поломки. Комбинации клавиш RAlt+Tab+Ш, Л и т.п., будут уже не перемещать текстовый курсор, а перемещать курсор мыши. По мне, функционал чуть удобней, чем встроенной в специальные возможности windows.

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

Для того, чтобы использовать скрипт, его предварительно надо скачать:
Скачать архив «Keybord Assistent 1_0.rar»
Проверка архива на вирусы (6 антивирусов не ясных фирм всегда ругаются на любой скрипт Autohotkey)

Для обычных пользователей, что даже не знают, как переназначать клавиши (допустим с помощью программы «KeyTweak»), необходимо запустить c правами администратора и проделать следующее: Для тех, кто использует Autohotkey и так будет понятно, что из данного архива им надо поглядеть файл «Keybord Assistent 1_0.ahk».

  1. Распаковать архив «Keybord Assistent 1_0.rar»
  2. Запустить файл «Переназначить RAlt RWin.reg»
  3. Перегрузить компьютер
  4. Запустить файл «Keybord Assistent 1_0.exe»

Программа будет размещена в трее (около часиков) и по правой клавише доступно меню управления программой, возможность получить справку (рисунок, что показан был выше). В режиме «Стоп» производится возврат функциональности (поведения) всех стандартных клавиш (даже RAlt и RWin, хоть они и переназначены), так как иногда в играх или каких-то программах нужны все клавиши.

Если вам программа не понравилась, то запустить файл «Вернуть как было RAlt RWin.reg» и снова перегрузите компьютер.

Все ваши функциональные изменения можно подправить и в файле «Keybord Assistent 1_0.xlsx», сделать скриншот с него сформировав новый файл «СправкаKeybAs.jpg». Для продвинутых пользователей можно править скрипт «Keybord Assistent 1_0.ahk» и запускать его на исполнение (конечно при условии установленного Autohotkey).

Разрешаются любые изменения кода (ну, кроме замены автора в скрипте на своё имя, а дописывать не запрещается), дополнения кода, использование частей кода в своих скриптах.

Данная статья написана специально для habr.com и до этого нигде не была опубликована, как и сам скрипт в общем (даже на сайте автора скрипт ещё не был опубликован).

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть