Привычный способ переключать раскладку клавиатуры не оптимален. Нужно помнить, какая у тебя раскладка сейчас, и затем подумать, нажать или не нажать комбинацию. Звучит смешно, когда описываешь словами. Но эту операцию мы делаем тысячи раз в день, и самая крохотная её оптимизация ощутимо прибавляет комфорт.
Гораздо удобнее, когда есть разные клавиши «Переключить на язык такой‑то». Если этот язык уже выбран — то просто ничего не происходит. Весь смысл в том, что не нужно думать: собираешься писать на языке — нажал его кнопку. Перешёл в другое окно — автоматом нажал кнопку для желаемого языка. Отвлёкся — снова нажал. Для мозга нажать на автомате лишнюю кнопку в сто раз проще, чем вспоминать, какая там раскладка стоит сейчас.
Как только пальцы привыкнут, то явление «начал писать не на том языке» уйдёт из вашей жизни на уровне концепции. Особенно рекомендую тем, кто смотрит на клавиатуру при печати.
В Linux эти настройки доступны «из коробки», по крайней мере там, где не уничтожили окно настройки клавиш иксов. В Винтусе же «из коробки» тоже можно это наладить, но только на комбинацию Ctrl + Alt + цифра. Которая, кстати, самая удобная, когда у вас в ходу 5–6 равно используемых раскладок. Но не две.
Поэтому предлагаю создать хоткеи вручную, воспользовавшись бесплатной программой AutoHotKey. Ещё бывает, делают те же вещи через PowerToys и PuntoSwitcher, но это всё большие комплексы с кучей всего, а я предлагаю компактное решение. После установки AutoHotKey (версии 2) не надо его запускать, а нужно создать текстовый файл с инструкциями и расширением .ahk
#Requires AutoHotkey v2.0 64-bit
#Warn ; Enable warnings to assist with detecting common errors.
CapsLock::SetInputLang(0x0409) ; English (USA)
+CapsLock::SetInputLang(0x0419) ; Russian
SetInputLang(TargetLang)
{
PostMessage 0x50, 0, TargetLang, , "A"
}
Эти инструкции означают: Capslock переключает всегда на английский, Shift+Capslock на русский. Если хотите другие комбинации, смотрите здесь. Когда сохраните файл, его должно быть возможно запустить правой кнопкой → Run Script. Он будет сидеть в трее, перехватывать нажатия капслока и менять язык.
Проверяйте. Если всё работает и всё понравилось, скрипт можно добавить в автозагрузку. Для этого открывайте или проводник, или Win+R, в строке адреса набирайте shell:startup. Откроется папка. Туда нужно поместить ярлык на скрипт.
Одна проблема — скрипт не может перехватывать кнопки в особых окнах, таких как окно UAC или то, что вылезает по нажатию Win+R. Там, если нужно, язык придётся переключать старым добрым Win+Пробел, который работает везде и всегда. Это, кстати, на заметку тем, кто часто ходит по чужим компьютерам: Alt+Shift и Ctrl+Shift опциональны, а вот Win+Пробел без бубна не отключишь.
P. S. Ещё один хороший скриптик всем любителям понагибать: когда на экране полноэкранное приложение, кнопка Win заменяется на Enter.
#Requires AutoHotkey v2.0 64-bit
isFullScreen()
{
WinGetPos , , &W, &H, "A" ; "A" is a codename for current window
return (W H = A_ScreenWidth A_ScreenHeight)
}
#HotIf isFullScreen()
LWin::Return
#HotIf
Комментарии (36)
RealBeria
27.12.2023 17:36+1несколько лет назад некоторые производители выпустили ноутбуки на клавиатуре которых была специальная клавиша для переключения языков (с пиктограммой глобуса). по мне - это было очень удобно, сравнимо с тем, когда впервые попробовал мышь с колесиком. потом долго искал этот глобус на других клавах. жаль идея не прижилась. а сейчас на некоторых пк в своем окружении сделал переключение языков через кнопку Тильда (да простит меня госпожа Дашкова за принесенную в жертву одну из букв алфавита)
ganzmavag
27.12.2023 17:36+2На Макбуках сейчас есть такая клавиша. Но почему-то если комбинация клавиш переключает язык мгновенно, то эта клавиша с задержкой.
ppnn
27.12.2023 17:36+1Logitech сейчас делает SIGNATURE K650 - с глобусом на одной клавише, но прикол в том, что это клавиша insert. Чтобы ввести insert, надо нажать Fn+insert, чтобы Shift+Insert, схема понятна. Вкупе с дефолтным действием F1-F12 как медиа-клавиши, привыкший к Far Manager человек неизменно фраппируется. Чтобы переназначить всякие медиа-ф-клавиши, ставится блоб на 500 мегабайт(!?) и пара лишних иконок в трее, но вот этот покалеченный Ins - это единственная кнопа, которая фирменным софтом не переназначается. Очень странные люди.
eugrus
27.12.2023 17:36Fn+Esc это не отключает?
ppnn
27.12.2023 17:36Увы, нет. F1-F12 таким образом меняются, даже без дополнительного софта, а эта кнопка с глобусом так и остаётся переключением языков. Доп.софт добавляет к этому on-screen-display "Fn-Lock вкл/выкл".
Нам на работе закупили пачку таких клавиатур, многие коллеги как-то привыкли и пользуются, кто-то находит этот дизайн странным. В целом не худший вариант.
diakin
27.12.2023 17:36Удобно было, когда работала Punto switcher и раскладка переключалась автоматически. Но Яндекс на нее забил. Хорошо, хоть можно перевести в другую раскладку неправильно напечатанное по Shift-Pause.
format1981
27.12.2023 17:36+1Вот уже много лет использую Punto Switcher.
Правый shift - переключает на английский, правый ctrl - на русский.
Sabirman
27.12.2023 17:36Я настроил Punto switcher на левый ctrl. Это самый удобный вариант - переключать язык можно не двигая рукой - просто ладошкой надавливая.
drinkmaker
27.12.2023 17:36+1Где-то встречал исследование, что с точки зрения эргономики, оптимальным является правый альт. Просто одна кнопка, без всяких сочетаний.
Настроил себе, после нескольких дней привыкания, по другому уже не смогу, будет не удобно. Рекомендую.
eugrus
27.12.2023 17:36+3Ctrl+Alt+цифра был в Windows где-то до Висты. С тех пор Ctrl+цифра, чем и пользуюсь повсеместно.
Правда, в Windows уже десятилетиями есть следующий баг: при Win+L кастомные настройки переключения раскладки для пользователя (
[HKEY_CURRENT_USER\Control Panel\Input Method\Hot Keys]
) переписываются дефолтными. Для обхода проблемы, если есть административный доступ, переписываю дефолтные ([HKEY_USERS.DEFAULT\Control Panel\Input Method\Hot Keys]
) своими кастомными: https://gist.github.com/eugrus/52dc90e6cb5da8de278f1afbc93969fa
К счастью, проблема не проявляется для сессий, доступ к которым производится только по RDP.Из DE под X11 и Wayland привязка комбинаций для конкретных раскладок через родной GUI мне известна только в KDE.
В Gnome (в том числе под Wayland) для реализации этого функционала привязываю комбинацию клавиш к команде
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us')]"
В объектную модель Cinnamon аналога ещё не затащили: https://github.com/linuxmint/Cinnamon/issues/7884
В иксовых DE/WM привязываю к сочетаниям клавиш
setxkbmap us
и т.д.Longaru
27.12.2023 17:36+1+1 , самый полезный коммент .. Раньше было Ctrl + от 1 до 0 но потом пришлось сократить до 3-4 хехе .. Но проблема в том что оно слетало в 10-ке , мол по дефолту это еще использовалось в браузере .. Вкладки менять ( Зачем это ваще надо если 250 вкладок обычно со скроллом вниз .. Лол )
Крч нужно было заходить в Панель Управления , Язык и снимать / ставить любую галочку вконце настроек и нажимать Сохранить .. Бинды перезаписывались .
Ваще еще советую ставить галку что бы он для каждого окна сам ставил язык и запоминал какой был , тоже очень интуитивно .
В общем бинды на Вин 11 Канари починили и они не слетают как в 10 , их еще и перенесли в новую Панель Управлений .
shiru8bit
27.12.2023 17:36+1На советских ПК для переключения раскладки была или одна клавиша РУС/ЛАТ со светодиодом состояния, или две отдельные клавиши РУС и ЛАТ. Когда я начал пользоваться PC, долго удивлялся отсутствию таковой.
klvov
27.12.2023 17:36Для меня конец мучений наступил тогда, когда я везде внедрил решение из статьи:
https://habr.com/ru/articles/301882/
Там как раз клавиша CapsLock превращается в клавишу РУС/ЛАТ, а светодиодная индикация к ней предусмотрена штатно. Ну и можно программу-индикатор состояния CapsLock добавить, которая будет в трее ее состояние показывать, чтоб каждый раз взгляд на клавиатурный светодиод не переводить.
mltk
27.12.2023 17:36На клавиатуре есть ещё одна кнопка с лампочкой - совершенно не нужная Scroll Lock - с досовских времён были фанаты использовать её для переключения языка.
PbIXTOP
27.12.2023 17:36Так и сейчас можно приобрести такую клавиатуру от Бештау https://gkbeshtau.ru/products/keyboard/
petro_64
27.12.2023 17:36+1Ещё вариант: настроить циклическое переключение раскладок на одну клавишу (CapsLock например), но индикацию сделать аппаратную, например светофорами на модели железной дороги, как я недавно сделал :-)
feelamee
27.12.2023 17:36а я пожертвовал сразу оба альта на переключение(
левый - русский, правый - английский
MountainGoat Автор
27.12.2023 17:36А настраивали чем?
feelamee
27.12.2023 17:36Я на арче с иксами, поэтому что-то вроде setxkbmap(может ошибаюсь)
Костыль использую, из-за этого не получится продолжить их использовать как модификаторы.
Если захотите, завтра скину конфиг
MountainGoat Автор
27.12.2023 17:36+1Ну на иксах можно и козу настроить, чтобы норы рыла. Я вот тоже на Арче, только не с иксами, а в WSL. Гораздо интереснее, как в Выньтузе народ кастомизируется.
olegshutov
27.12.2023 17:36Сначало было два шифта (rk2 под дос), потом все привыкали к ctrl+shift, потом вдруг Windows поменяло на alt-shift, который неудобен, так как мимо альта часто промахиваешься. Недавно вроде там опять начали менять на win + shift (руки бы оторвал, если честно), на маке это клавиша отдельная. Да, вроде удобно, только вот она не работает как надо - она часто перескакивает с языка обратно. Теперь еще какое-то суперприложение появилось, которое рекомендуется для удобства ставить на все используемые компы. Интересно, что в итоге у меня переключения раскладок на всех трех частоиспользуемых компах разное в итоге. Битва стандартов. Не понимаю в чем была проблема оставить два шифта.
sbw
27.12.2023 17:36На рабочем компе не могу устанавливать никакие левые программы. Интересно, можно ли сделать скриптом - хотя бы подмену одних нажатий другими? Например, нажимаю Caps lock , а скрипт, крутящийся в отдельном бесконечном задании, определяет это и выводит в клавиатурный буфер что-нибудь другое. В наличии есть PowerShell, VB, Python
CaptainFlint
27.12.2023 17:36+1AutoHotkey не использует какой-то эзотерической магии, это всё стандартные хуки из WinAPI, как я понимаю. На PowerShell можно писать программы с полным набором WinAPI, так что то же самое можно сделать и на нём. Но придётся детально разбираться в этой подсистеме и реализовывать перехват и обработку.
RR_Zz
27.12.2023 17:36+1Предложу ещё один вариант, который ещё нигде не встречал в предложениях, но достаточно удобен для меня.
CapsLock это Shift + Caps
CapsLock + R - русская
CapsLock + Е - английская
И ещё у меня доп:
CapsLock + S - слой математических символов
CapsLock + G - греческий
А при нажатии на CapsLock ничего не происходит.
xaosxaos2
27.12.2023 17:36Не понятно, что значит "CapsLock это Shift + Caps", а ниже "А при нажатии на CapsLock ничего не происходит".
RR_Zz
27.12.2023 17:36Тут я имел в виду два определения.
CapsLock как клавиша на клавиатуре, и CapsLock как модификатор поведения ввода.
Активация CapsLock (как модификатора ввода) происходит через комбинацию Shift + CapsLock (клавиша). А при нажатии просто на клавишу CapsLock (одинарным, двойным или с задержкой) - никаких действий.
Раньше при двойном нажатии происходила активация домашнего слоя, которым у меня был английский, но это немного портило ощущение от этой клавиши как от "модификатора", через который происходит выбор раскладки. Поэтому я и уточнил это поведение.
nin-jin
27.12.2023 17:36+1Поэтому предлагаю создать хоткеи вручную, воспользовавшись бесплатной программой
https://learn.microsoft.com/en-us/windows/powertoys/keyboard-manager
старым добрым Win+Пробел, который работает везде и всегда
Если убить проводник, то (как минимум в 10) перестаёт работать. И попробуй его запусти после этого, если застрял в не английской раскладке. Лайфхак:
Лочим через Win+L
Там переключаем раскладку через Win+Space
Входим обратно
Запускаем диспетчер задач через Ctrl+Shift+Esc
Файл -> Запустить задачу -> explorer.exe
LeshaRB
На Маке у меня Capslock отвечает за раскладку (короткое нажатие), длинное включает верхний регистр
А как в случае
"Эти инструкции означают: Capslock переключает всегда на английский"
Включить верхний регистр?
MountainGoat Автор
Нажать Shift.
den_rad
На маке еще можно переключать регистр с помощью Shift + CapsLock, мне кажется это удобнее, чем долго нажимать CapsLock