Переключение раскладок методом смены клавиатур
Хотел бы предложить свой метод переключения раскладок на клавиатуре. Существует множество программ, переключающих раскладки — 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
Настройка макросов для горячих клавиш с Ctrl
Теперь потребуется создать новую раскладку с помощью программы Microsoft Keyboard Layout Creator (MSKLC). Скачиваем программу и запускаем.
Загружаем готовую русскую раскладку. При отсутствии клавиш-модификаторов (Ctrl, Alt и др.) нажатие на клавишу выдает русский символ.
Раскладка без модификаторов
На каждую букву английского алфавита необходимо добавить обработку нажатия Ctrl+Alt+клавиша, а также обработку макросов с клавишей CapsLock. Нажимаем галочку «Alt+Сtrl» и видим, какие символы будут получены при нажатии Alt+Сtrl+клавиша (данное сочетание выдает наша программируемая клавиатура).
Раскладка для клавиш с Alt+Сtrl
Для клавиш с макросами (x, c, v, z, a, s, f, h) нажмем галочку «Show the Caps Lock» и задаем параметры с нажатой клавишей CapsLock (последние 2 параметра в окне настроек клавиши). Это позволяет работать горячим клавишам с Ctrl на второй клавиатуре.
Параметры раскладки с нажатой клавишей CapsLock
После подготовки раскладки остается нажать «Build Dll and SetupPackage» и запустить получившийся файл.
Файл раскладки для двух клавиатур можно загрузить из файла:
Файл раскладки для интерфейса VIA:
Данный способ требует программируемую клавиатуру, но, теоретически, можно обойтись и без дорогой клавиатуры. Нужно написать программу, которая при нажатии на любую кнопку одной клавиатуры переключает раскладку на русский, а при нажатии на другой клавиатуре — на английский. Я хотел в первую очередь проверить, удобно ли пользоваться таким способом переключения языков.