Предлагаемый мной способ не является чем-то уникальным и/или неизвестным. В любой из двух поисковых системы вы легко найдёте множество заметок о том, как настроить в Windows переключение языка ввода с помощью любой кнопки клавиатуры, прямо как в Linux, только чуть сложнее и с перезагрузкой. Однако, я так и не нашёл (тут можно меня поправить и предложить в комментариях ссылку) готовой инструкции, включающей в себя и такой немаловажный пункт, как спасение буквы Ё, а равно и обратного апострофа с тильдой. Таковую инструкцию я вам и предлагаю.
Суть проблемы
ОС Windows 7 предоставляет пользователю долгожданную возможность переключать языки ввода по обратному апострофу:
Казалось бы, удобно, но нет. Лично я вижу следующие недостатки:
- маленькая клавиша
- на домашней Linux-машине всё-таки CapsLock настроен
- пропала буква Ё
- пропала тильда и обратный апостроф
Для тех, кто как и я, обречён ходить на develop/production сервера с использованием PuTTY, потеря тильды и обратного апострофа весьма чувствительна. Я не выдержал и месяца, хотя, казалось бы, как легко запомнить Alt+126 и Alt+96. Надо что-то делать!
Меняем скан-коды
Решение для переключения раскладки по CapsLock — это переопределение скан-кодов через реестр. Есть множество описаний как это сделать. Я могу предложить прочитать одно из них по ссылке: www.howtogeek.com.
Готовый результат выглядит вот так (файл SwitchLangByCaps.reg):
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboard Layout] "Scancode Map"=hex:00,00,00,00,00,00,00,00,04,00,00,00,29,00,3a,00,3a,00,46,00,56,00,29,00,00,00,00,00
Как можно видеть, в реестре прописывается одно или несколько правил подмены вида:
<что выдавать, если><пришёл такой сканкод><что выдавать, если><пришёл такой сканкод>...
Так что нам надо распланировать алгоритм перестановки. Первая перестановка очевидна — по нажатию CapsLock (0x3a) эмулировать нажатие на Ё (0x29). Вторая тоже примерно понятна — для того, чтобы всё-таки оставить функциональность капса, требуется переназначить на него какую-нибудь ненужную клавишу. В моём примере этой клавишей оказался ScrolLock (0x46). А вот третья перестановка отвечает за спасение буквы Ё. Для этого хитрого кода нам нужна «ненужная клавиша» с текстовой клавиатуры, Pause/Break не подойдёт. Однако, тут нам повезло. Даже на полностью задействованной русскоязычной раскладке клавиатуры есть дублирующиеся клавиши:
Вот эта кнопка в левом нижнем углу и подойдёт на роль замены букве Ё, а равно и тильде с обратным апострофом. Имеет она сканкод 0x56 и отсутствует на большинстве клавиатур, так что именно её будем эмулировать при нажатии на Ё-кнопку.
На этом этапе можно произвести изменения в реестре и отправить машину в перезагрузку.
Добавляем раскладки
Как несложно догадаться, после перезагрузки вместо буквы Ё мы получим косую черту. Для исправления ситуации, требуется поправить имеющуюся клавиатурную раскладку. Редактировать раскладки клавиатуры можно посредством утилиты Microsoft Keyboard Layout Creator 1.4. Использование программы несложно — загружаем исходную клавиатуру из списка, делаем изменения (меняем символы клавиши 0x56 на требуемые буквы Ёё), сохраняем source-файл и собираем установочный пакет из меню Project.
Ту же операцию следует проделать и с английской клавиатурой, изменив поведение обратного слэша на обратный апостроф и тильду.
В результате должны получиться две папки с установочным пакетом для клавиатурной раскладки. Выполняем установку каждой, запуская setup.exe и переходим к следующему шагу.
Настройка раскладок
Открываем «языковые настройки». Для начала, выставьте переключение раскладок по Grave accent, как показано на первой картинке этой статьи. Затем добавьте только что установленные раскладки: US-Custom и Russian-Custom. И наконец, установите дефолтный ввод через US-Custom. Это необходимо, так как раскладку US удалить не получится, но в этом тоже есть плюс — теперь при смене языка ввода меняется размер значка в трее и гораздо легче заметить, попал ли ты по CapsLock или промахнулся. Результат должен выглядеть как-то так:
Если всё прошло удачно, то вы получили возможность переключения языков ввода по CapsLock, не поплатившись за это ничем существенным. Можно спокойно покупать в офис и на работу одинаковые клавиатуры и, не задумываясь больше над алгоритмом переключения, получать удвоенное удовольствие от слепой десятипальцевой печати.
Приложение
Готовые проекты раскладок, их исходники и патч к реестру можно найти по ссылке: Я.Диск.
Автор: kolemik