Как стать автором
Обновить

Переключение раскладок методом смены клавиатур

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров11K

Хотел бы предложить свой метод переключения раскладок на клавиатуре. Существует множество программ, переключающих раскладки - Punto Switcher, Comfort Keys Pro... И для большинства пользователей эти способы, вполне возможно, будут предпочтительными.

У программных способов переключения есть и недостатки - это ошибки при определении языка, безопасность, а также, в некоторых случаях, цена.

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

Я подумал: почему бы вместо переключения раскладок на одной физической клавиатуре не переключаться между двумя физическими клавиатурами. Т.е. русский текст набираем на одной клавиатуре, а английский - на другой клавиатуре.

А когда знаешь, что на одной клавиатуре будет только один язык, а на другой клавиатуре - только второй, то уже не задумываешься о раскладке. В общем, решил я провести эксперимент на себе и пользоваться двумя клавиатурами в течение хотя бы недели (для набора кода и текстов на английском и русском языках).

По завершении недели можно сказать, что эксперимент прошел успешно и возвращаться к старому методу нет никакого желания:

Первые 2 дня проходило привыкание к новому способу набора текста, рука так и тянулась к клавишам переключения раскладки. Поэтому совет: отключите сочетание клавиш переключения языка, к которому Вы привыкли. А в следующие дни работа с клавиатурой пошла быстрее, без неверно введенных слов. Больше не приходилось заново набирать текст или менять раскладку, что вселяло некоторую уверенность при наборе текста.

Я расположил вторую клавиатуру под первой, чтобы рукам приходилось делать минимальные передвижения между клавиатурами, но при этом вторая клавиатура должна быть достаточно компактной, чтобы не мешать работе с первой.

Были и некоторые проблемы, в основном связанные с урезанным набором клавиш на моей клавиатуре (мини-раскладка 60% - 63 клавиши) – лучше выбирайте полноценную клавиатуру хотя бы с 75% клавиш (со стрелками, F1-F12, Delete, Home…)

Есть и ограничения с работой сочетаний клавиш – на каждое сочетание с Ctrl, которое Вы хотите использовать на дополнительной клавиатуре, необходимо добавить свой макрос.

Настройка второй клавиатуры для набора английских букв

Первая клавиатура у нас будет основная с русской раскладкой, а вторая клавиатура будет выдавать только английские символы. Можно сделать и наоборот, но я выбрал этот вариант, т.к. потребуется переопределять меньше клавиш.

Далее, нам потребуется клавиатура, поддерживающая интерфейс VIA. В интерфейсе программирования клавиатуры на каждую букву английского алфавита навешиваем сочетание Ctrl+Alt+клавиша, например, буква Q будет выдавать сочетание: Ctrl+Alt+Q

Для сочетаний клавиш Ctrl+C, Ctrl+V, Ctrl+X, Ctrl+Z и других необходимо назначить другое сочетание, иначе горячие клавиши с Ctrl не будут работать. Для них я назначил макросы с клавишей CapsLock, например, на клавишу C назначается следующая последовательность клавиш: {KC_CAPS}c{KC_CAPS}. Обычно программируемые клавиатуры имеют не более 16 макросов, но, если Вам понадобится больше сочетаний быстрых клавиш, всегда можно нажать их на основной клавиатуре.

Переопределение клавиш в интерфейсе VIA
Переопределение клавиш в интерфейсе VIA
Настройка макросов для горячих клавиш с Ctrl
Настройка макросов для горячих клавиш с Ctrl

Теперь потребуется создать новую раскладку с помощью программы Microsoft Keyboard Layout Creator (MSKLC). Скачиваем программу и запускаем.

Загружаем готовую русскую раскладку. При отсутствии клавиш-модификаторов (Ctrl, Alt и др.) нажатие на клавишу выдает русский символ.

Раскладка без модификаторов
Раскладка без модификаторов

На каждую букву английского алфавита необходимо добавить обработку нажатия Ctrl+Alt+клавиша, а также обработку макросов с клавишей CapsLock. Нажимаем галочку “Alt+Сtrl” и видим, какие символы будут получены при нажатии Alt+Сtrl+клавиша (данное сочетание выдает наша программируемая клавиатура).

Раскладка для клавиш с Alt+Сtrl
Раскладка для клавиш с Alt+Сtrl

Для клавиш с макросами (x,c,v,z,a,s,f,h) нажмем галочку “Show the Caps Lock” и задаем параметры с нажатой клавишей CapsLock (последние 2 параметра в окне настроек клавиши). Это позволяет работать горячим клавишам с Ctrl на второй клавиатуре.

Параметры раскладки с нажатой клавишей CapsLock
Параметры раскладки с нажатой клавишей CapsLock

После подготовки раскладки остается нажать «Build Dll and SetupPackage» и запустить получившийся файл.

Файл раскладки для двух клавиатур можно загрузить из файла:

Файл раскладки для интерфейса VIA:

Данный способ требует программируемую клавиатуру, но, теоретически, можно обойтись и без дорогой клавиатуры. Нужно написать программу, которая при нажатии на любую кнопку одной клавиатуры переключает раскладку на русский, а при нажатии на другой клавиатуре – на английский. Я хотел в первую очередь проверить, удобно ли пользоваться таким способом переключения языков.

Теги:
Хабы:
Всего голосов 5: ↑4 и ↓1+4
Комментарии48

Публикации

Истории

Ближайшие события

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань