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