Хотел бы предложить свой метод переключения раскладок на клавиатуре. Существует множество программ, переключающих раскладки - 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:
Данный способ требует программируемую клавиатуру, но, теоретически, можно обойтись и без дорогой клавиатуры. Нужно написать программу, которая при нажатии на любую кнопку одной клавиатуры переключает раскладку на русский, а при нажатии на другой клавиатуре – на английский. Я хотел в первую очередь проверить, удобно ли пользоваться таким способом переключения языков.
Комментарии (48)
t38c3j
18.11.2023 14:02+10Зачем в уме держать какая раскладка, если достаточно научиться слепому набору и во время набора смотреть в монитор, а не на клавиатуру, первых 2-3 букв хватает понять что не та раскладка, а еще можно разделять раскладки между окнами, как правило, в иде 99% это английский
bolk
18.11.2023 14:02Меня именно это и раздражает — приходится стирать ошибочные буквы и переключаться, вышибает из потока.
t38c3j
18.11.2023 14:02+3Это дело привычки, как и с опечатками, со временем оттачивается до автоматизма.
Если вас вышибает именно на переключении раскладки, то попробуйте ее переключение установить на капслок
bolk
18.11.2023 14:02+1Я с 89 года за клавиатурой, сколько ещё ждать до формирования привычки? Переключение раскладки у меня на Fn.
Mingun
18.11.2023 14:02+6Не освещён вопрос набора двуязычных текстов русский/английский. Причём, как вариант, где преобладает английская раскладка и надо ввести что-то на русском (программируем и хотим ввести комментарий), так и обратный вариант с преобладающей русской раскладкой и надо что-то ввести на английском (пишем документацию, надо сослаться на программную сущность — переменную, класс, функцию).
ri1wing
18.11.2023 14:02+9Мне, как программисту, пользоваться Punto Switcher и аналогами, довольно проблематично, постоянно происходит неверное определения языка.
Автопереключение всегда отключено. Если вижу, что начал печатать не в той раскладке, просто нажимаю кнопку Break.
1dNDN
18.11.2023 14:02Я так за много лет привык нажимать на Break, а потом купил ноут без этой клавиши
dyadyaSerezha
18.11.2023 14:02А глянуть в правый нижний угол экрана на иконку языка - не судьба? И зачем какие-то программы для переключения? Разве средств ОС не достаточно? В общем, такое ощущение, что, решая маленькую проблемку, автор нагородил кучу других проблемищ, включая будущие мучения при работе на компе где угодно, кроме дома.
vadimr
18.11.2023 14:02+6В новой macOS иконка языка прямо посреди текста появляется при наборе.
dyadyaSerezha
18.11.2023 14:02-3А вот холивары нам тут не нужны)
Кстати, до сих пор удивляюсь, почему в телефонах клавиатура хранит и часто угадывает даже имена, адреса имейла и прочее, а в компах она такая же тупая, какой была 40 лет назад
vadimr
18.11.2023 14:02+4На нормальной клавиатуре быстрее просто набрать, чем играть в угадайку с предиктивным вводом.
dyadyaSerezha
18.11.2023 14:02-1Вот только сегодня заполнял несколько однотипных форм и очень жалел, что клавиатура не угадывает мои имя, фамилию и почту. Подумал, что на телефоне я бы заполнил всё быстрее.
Affdey
18.11.2023 14:02В Винде тоже есть. У меня с 98-й такой драйвер для мышки. Флажок рядом с текстовым курсором. Удобно.
SunSlav
18.11.2023 14:02+4Я так понимаю, это для ПК и стола, при чём вместительного, у меня котяра отжал коврик для мышки, место для 2 клавиатуры точно нет, мене сын мышку отдал игровую с кучей кнопок, которыми я не пользуюсь, может есть вариант на кнопку мыши скинуть смену раскладки?
mdmitry1 Автор
18.11.2023 14:02Встроенных способов, насколько я знаю, нет. Но можно запрограммировать нажатия кнопок мышки, если она позволяет это. Или AutoHotkey, об этом написано тут: https://habr.com/ru/articles/599457/
kpmy
18.11.2023 14:02+1У программы Punto Switcher для русскоговорящих программистов есть две удобные фичи -- отключение автоисправления в конкретных программах (IDEA, vscode) и возможность назначить включение конкретных языков на конкретные служебные клавиши справа или слева (RShift = En, LShift = Рус). По сути аналог кнопки Рус/Лат, если кто ещё помнит такую.
А вот ручное исправление по Break работает не всегда -- не везде сейчас есть эта кнопка.bolk
18.11.2023 14:02+2Кнопка рус/лат вернулась на Маках — там это кнопка с «глобусом» (совмещённая с Fn).
DrArgentum
18.11.2023 14:02+1Лично по моему, покупать новую клавиатуру, для такой небольшой проблемы - слишком сложное решение. Если вы на Linux, то можно просто сделать свои скрипты, которые при переключении раскладки отображают уведомление на весь экран, или сделать на видном месте индикатор раскладки клавиатуры. Но, в любом случае, интересное решение, автор молодец
aamonster
18.11.2023 14:02+4Прямо-таки старые времена напомнили: DOS, KeyRus или аналоги, на русской раскладке красящие рамку экрана в красный цвет (для тех, кто не застал: на ЭЛТ-мониторах было свободное место за пределами рабочей области экрана, и его цвет можно было поменять).
delvin-fil
18.11.2023 14:02+2а зачем?
"grp_led:scroll" наше все(особенно если светодиоды на клаве разного цвета)setxkbmap -layout us,ru -option compose:lwin,terminate:ctrl_alt_bksp,grp:ctrl_shift_toggle,grp_led:scroll -variant ","
пихаем куда хотим, хоть в стартап, хоть в xorg.conf
IvanPetrof
18.11.2023 14:02+1Меня бы вполне устроил индикатор текущей раскладки, расположенный прям на клавиатуре. А ещё лучше прям отдельная кнопка РУС/ЛАТ со светодиодом (раньше были такие). А если совсем шикарно - педаль))
aamonster
18.11.2023 14:02+1У вас есть такая кнопка, даже две на выбор – Caps и Scroll Lock. Ну или можно на условной ардуине индикатор сделать и приклеить, где удобно.
Alex_Crack
18.11.2023 14:02+1Я как раз уже лет 10 переключаю раскладку с помощью Caps Lock. Очень удобно и быстро одним мизинцем это делать. И индикатор на клавиатуре есть.
IvanPetrof
18.11.2023 14:02Про CapsLock знаю. Но тут два момента.
Психологически я её всё-таки воспринимаю как переключатель регистра, и иногда в таком качестве и использую. Индикатор от неё обычно очень далеко не в поле зрения (от чего даже при вводе пароля не в том регистре выдают подсказку на экране, что включен CapsLock, т.к. Не сразу доходит почему правильный пароль не подходит.
Со скроллоком та же проблема с полем зрения.
saroff
18.11.2023 14:02Пользуюсь mahou, для всех ide и подобных программ настроено что раскладка всегда остаётся на английском. Это убирает большую часть проблем с переключением. Автопереключение больше бесит, чем помогает.
Aurielic
18.11.2023 14:02У меня как раз есть вопрос по теме этой статьи, по VIA. Кто-нибудь может подсказать как переключать раскладку путем макросов? Пытался использовать макрос на стандартные комбинации переключения раскладки, не работало к сожалению
mdmitry1 Автор
18.11.2023 14:02Тут в комментариях пишут, как настроить переключение. Сам пока не проверял. https://wiki.geekboards.ru/guides/via-russian-guide/#4
mdmitry1 Автор
18.11.2023 14:02Протестировал макрос в VIA: можно написать макрос нажатия клавиш Win+Space, т.е. макрос должен иметь вид: {KC_LGUI,KC_SPC}
astenix
18.11.2023 14:02+1Ну вот, а вы говорили, что Кулибиных не стало. А вот же!
Я пошёл дальше и расположил друг над другом два ноутбука. На одном печатаю только на английском. Над ним второй, там только русские буквы. Редактор открыт по внутренней сети на отдельном nas, все норм.
А если надо будет ещё и на румынском что-то написать, так я куплю третий ноутбук, мне уже всё равно…
Четвертый мне понадобится для переписки в Telegram, а пятый ноутбук я возьму для почты. Точнее, пятый и шестой, ведь иногда письма на английском, иногда на русском, а я вам не казённый, чтобы между раскладками переключаться.
Werasik
18.11.2023 14:02Вот поколение пошло. Запомнить какая раскладка уже не могут. В угол глянул en/ru, капец. А книги когда читаешь прочитал - забыл? Там куда больше надо запомнить, чтобы вспомнить о ком идёт речь... У меня вообще смена языка на кнопках alt shift а основная смена языка если надо англ букву в колл-ве одной, двух штук вообще на боковой кнопке мыши....
MiyuHogosha
18.11.2023 14:02На линукс можно поступить проще, если в графике X11 (там и несколько мышыных курсоров можно). Нужно разделить устройства ввода с помощью xinput, для одного поставить ру по умолчанию, оформитт в скрипт для автозапуска.
moonug
18.11.2023 14:02+2Как много лет назад перешел на нециклическое переключение раскладки, так и забыл уже об этих проблемах. И вторая клавиатура не нужна, достаточно одной. Просто вместо переноса рук на другую клавиатуру пальцы всегда нажимают caps перед вводом английского текста и shift-caps перед вводом русского.
rml
18.11.2023 14:02+1Аналогично :)
Только правый shift - кирилица, левый shift - латиница (настройка переключения в Punto switcher, остальные возможности программы отключены)
Как где-то когда-то писали, punto switcher - единственная программа, которую для нормального использования нужно отключить :)
nev3rfail
18.11.2023 14:02>У программных способов переключения есть и недостатки - это ошибки при определении языка, безопасность, а также, в некоторых случаях, цена.
Пользуясь случаем, порекомендую софтину, на которую мы с товарищем наткнулись случайно всего несколько лет назад (и были несказанно рады), и которая не имеет тех проблем что имеют аналогичные софтины (обычно это кривые хуки, когда в каких-то приложениях всё ок, в каких-то нет).
https://github.com/erryox/Switchy/tree/master/Switchy
Опенсорс, интерфейс отсутствует, нужно только закинуть в автостарт ярлычок и можно переключаться капслоком как белый человек.
DavisR
18.11.2023 14:02После долгих лет съехал с пунто на SimpleSwitcher(https://github.com/Aegel5/SimpleSwitcher) и очень рад. Автопереключения нет и не надо. Есть LeftShift для основного и RightShift для второго языка и CapLock для ручной конвертации ошибочно введенного текста (как Break в пунто). Это все, конечно, настраивается.
Маленькая, открытая.
TimSafari
18.11.2023 14:02Геморрой на ровном месте. И в Линуксе, и в винде уже есть переключение по тильде. Хотя я бы предпочёл даже не кнопку, а рычажок на клаве. Положение вверху -- русский, внизу -- английский.
P.S. ну а уж автопереключение в Пунто не найти... Это постараться надо.
smrl
При работе с дальней клавиатурой руки будут постоянно висеть? Даже запястья не опереть?
Если так уж хочется тактильно контролировать состояние раскладки, разве педаль не удобнее?
mdmitry1 Автор
Запястье упиралось об стол, не удобств в этом плане почти не было. Мне кажется в этом способе преимущество в том, что не нужно вообще думать о раскладке, руки сами привыкнут, на какой клавиатуре работать.
smrl
А вы печатаете вслепую, или глядя на клавиатуру?
mdmitry1 Автор
В основном, вслепую. Но слишком часто приходилось исправлять ошибочную раскладку, раздражает. Хотя и с Break в Punto Switcher тоже довольно удобно, но не пользуюсь, не прижилось.
Vcoderlab
Не очень понятна фраза автора "Я расположил вторую клавиатуру под первой". По идее это означает, что одна клавиатура расположена над другой на какой-то полке. Но судя по дальнейшему тексту, основная клавиатура (с русским языком) у него полноразмерная, а дополнительная (с английским языком) - компактная. При этом "английская" клавиатура лежит на краю стола, а "русская" позади "английской". И при работе с основной "русской" клавиатурой руки лежат на столе и расположены как бы "вокруг" маленькой "английской" клавиатуры. А работа с лежащей на краю дополнительной "английской" клавиатурой происходит редко и помалу, и отсутствие упора для запястьев неудобств не доставляет.
Так себе решение, имхо. Хотя у меня клавиатура лежит как раз на таком расстоянии от края стола, что перед ней можно положить ещё одну, лично мне неудобно, когда на этом месте что-то лежит, и приходится всё время стараться это не задеть.
А ещё мне интересно, на чём программирует автор, при том, что основная клавиатура у него - "русская". 1С?
mdmitry1 Автор
Основную полноценную клавиатуру с русской раскладкой я расположил дальше от себя, а перед ней, ближе к себе, расположил английскую маленькую. Английская основная, и при необходимости, немного вытягиваю руки для русского.
smrl
Ух, целое расследование! Спасибо. Хотя по-прежнему не представляю, как это было бы возможно для меня, потому что
именно! То же самое. Когда сеттинг из ноутбука и внешней клавиатуры (перед ноутбуком) без мышки, это просто какое-то мучение пользоваться тачпадом, стараясь не нащелкать предплечьями и запястьями.
ahdenchik
Пользуюсь педалью. Недостаток нашёл один - ногу тяжелее передвигать когда долго не требовался другой язык и она под столом куда-то "ушла". Стал замечать что в гугловом поиске из-за этого ленюсь переключать раскладку (гугл понимает такой набор)