Часто набирая текст на клавиатуре, я столкнулся с одной интересной особенностью. Если для смены языка, например, с русского на английский, быстро нажать штатное сочетание клавиш Shift+Alt, то иногда язык не переключается. Немного погуглив в интернет я обнаружил, что не один я столкнулся с таким явлением, которое можно отнести то ли к багу, то ли к фиче.
По этой причине я задался вопросом: а можно ли в Windows переключать язык на клавиатуре нажатием всего одной клавиши, а не двух, как мы это обычно делаем. Это бы исключало возможные «осечки» и добавляло бы скорости при наборе текста. И я нашел несколько подходящих решений, которыми хочу поделиться сегодня с вами.
Сразу хочу сделать оговорку: смена раскладки клавиатуры и языка ввода – это разные вещи, и вы в этом убедитесь немного позже. Однако среди пользователей ПК в большинстве случаев эти два понятия воспринимаются за синонимы, и в рамках данной статьи я не буду нарушать эту традицию дабы не вносить путаницу.
Метод 1. Штатные возможности Windows
В поисковом окне Windows 10 наберите слово «клавиатуры» и в результатах поиска кликните на пункт «Параметры ввода с клавиатуры».
В открывшемся окне кликните на пункт «Дополнительные параметры клавиатуры» — «Сочетания клавиш для языков ввода».
Откроется окно «Языки и службы текстового ввода», где надо перейти на закладку «Переключение клавиатуры» и нажать кнопку «Сменить сочетание клавиш».
Нас интересует настройка смены языка ввода. Оказывается, штатными средствами Windows это можно делать нажатием всего лишь одной кнопки Ё, или знака ударения. Попробуйте активировать эту опцию и проверить.
Всё казалось бы хорошо, и первоначальная задача, которая была поставлена в начале статьи, решена. Однако данный метод имеет несколько существенных минусов:
- Вы не сможете больше набрать букву Ё в тексте, так как при её нажатии будет сразу меняться язык ввода.
- Указанная клавиша находится в верхней части клавиатуры и тянуться к ней любым из пальцев далеко и неудобно. Конечно со временем можно и привыкнуть, но это не мой вариант.
По этой причине я нашел другой, более подходящий для меня способ быстрой смены раскладки.
Метод 2. Бесплатная утилита AutoHotkey
При помощи маленькой утилиты AutoHotkey, имеющей открытый исходный код и лицензию GPL, вы можете переключать язык ввода нажатием какой угодно клавиши. Я изначально остановился на Caps Lock.
Во-первых, она удобно расположена для быстрого нажатия вслепую. Во-вторых, данную клавишу я не использую вообще, а потому лично для меня она относится к разряду бесполезных, наряду с Scroll Lock, Pause Break, Home.
Итак, первым делом скачиваем и устанавливаем саму утилиту с официального сайта. Она не имеет никакого интерфейса или настроек, так как по сути даже не является софтом, а просто скриптовым языком, позволяющим запускать различные макросы.
Создадим макрос для смены раскладки клавиатуры при нажатии Caps Lock. Он будет выглядеть следующим образом:
SendMode Input SetWorkingDir %A_ScriptDir% CapsLock::Send, {Alt Down}{Shift Down}{Shift Up}{Alt Up}
Откройте любой текстовый редактор, например штатный Блокнот, скопируйте и вставьте туда данный код и сохраните файл с именем capslock_language_change.ahk
Имя может быть любое, но расширение непременно .ahk
Теперь ассоциируем данный файл с AutoHotkey. Нажимаем на нем правой клавишей мыши – Открыть с помощью – AutoHotkey. Обязательно отметить галочкой пункт «Всегда использовать это приложение для открытия .ahk файлов».
На данном этапе уже можно нажать Caps Lock и убедиться, что языковая раскладка клавиатуры меняется. Согласитесь, очень удобно.
Напоследок следует сделать так, чтобы созданный нами скрипт запускался автоматически при каждом старте Windows. Для этого созданный нами файл переносим в папку C:\Пользователи\ИмяПользователя\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Не забудьте включить в проводнике отображение скрытых элементов, чтобы найти указанные выше системные папки.
На этом дело сделано. Теперь при нажатии Caps Lock у вас всегда будет меняться язык ввода с русского на английский и наоборот (если иные языки не заданы вами в настройках ОС).
А если вам вдруг понадобится воспользоваться указанной клавишей для перевода набираемого текста в верхний регистр, используйте сочетание клавиш Shift + Caps Lock.
Итог
Лично я использую второй метод и крайне им доволен. Теперь при наборе текста у меня не бывает «осечек» с переключением языков.
Утилиту AutoHotkey вы можете использовать для написания и запуска макросов не только смены раскладки клавиш и их переназначения, но я для решения различных иных всевозможных задач: автоматическое заполнение форм, автонажатие по кнопкам, автозапуск программ, автонабор текста и пр.
Похожие публикации:
Сергей, вы могли бы поправить скрипт для AutoHotkey v2?
зы. ваш скрипт у меня заработал только с первой версией программы, а она на сайте производителя помечена как deprecated
Павел, у меня первая версия программы работает без каких-либо проблем. А вот со второй у меня как-то не получилось общение. Поэтому не вижу смысла что-то менять, раз оно работает.
Спасибо тебе, добрый человек !!! :)
Пожалуйста, Анна )
Сергей, огромная благодарность вам!
Пожалуйста! Рад, что помог вам в деле легкого переключения раскладки на ПК.
Сергей, а можно туда — в макрос — прописать правый И левый Ctrl?
Павел, вы можете прописать в макрос любые комбинации клавиш.
а как прописать сразу две клавиши?
и как они называются для макроса?
Вы могли бы показать? Или сказать, где про это почитать.
Павел, читайте справку по autohotkey: https://www.autohotkey.com/docs/v2/howto/WriteHotkeys.htm
В винде все как обычно, как бы работает но с исключениями о которых никто не знает и естественно не предупредит.
Хочу пользоваться русской виндой, что бы основной язык ввода был Latvian (QWERTY), вторым языком Russian, и в добавок их можно было бы переключать сочитаением клавишь «CTRL+1» и «CTRL+2» соответственно. И хренас два. Выставить можно, команды назначить можно, но работать это не будет, а именно переключится на Latvian (QWERTY) не получится.
Любезный народ,позвольте встрять дилетанту в ваши высокоумные разговоры.Я,пардон,ни хр. не понял в ваших рассуждениях,посему у меня вопрос: А есть ли что попроще для быстрой смены языкана 7-ке? Тем более с английским у меня «напряг»,а программа это не для таких как я.
Как вы представляете себе смену языка быстрее, чем нажатие одной кнопки на клавиатуре?
Я как раз об этом.То есть нажатием ма-ленькой такой кнопочки.А не сразу двух,или того мнтереснее,трех(если это бывает). Так вот,для одной кнопулечки что надо сотворить-то?
Статья как раз об этом. Вы хоть название статьи прочитайте.
Да что ж вы умничаете не по делу… Если бы я не почитал почти все методички по это программе,вообще просто ушел отсюда.А так ,загрузил она на англ.Мало этого все так сложно что я не стал и вникать с моим опытом-не реально разобраться.Вот о чём.Есть ли простые программы с подобным обещанным результатов-вот о чём я.Надеюсь ,теперь нет повода ёрничать.Не все же такие продвинутые.Впрочем,не люблю тех кто слишком о себе высого мнения,простите что помешал вашему глубокомыслию.
Здравствуйте.
Не, переключение языка — это для меня не тема. Хочу на лат и рус собственные клавиши: левый Ctrl = Лат, правый Ctrl = Rus. Если что — согласен на Shiftы.
Утилитка Ruslat95 сиё настроить позволяет, но безупречно она работала лишь до WinXP, а вот в Win7 она не срабатывает в так называемых модальных окнах (например, там, где нужно указать путь и имя сохраняемого файла).
Соответственно вопроса два:
1) нет ли такой проблемы в местном предложении?
2) возможно ли изобразить такой макрос?
Мне кажется, для системы нет разницы слева на клавиатуре находится Shift (Ctrl) или справа — это одна и та же клавиша, которая выполняет одну и ту же функцию при нажатии.
Во-вторых, а как вы тогда собираетесь писать слова с заглавной буквы, если клавиша Шифт у вас будет занята?
Напрасно Вам так кажется :) Как раз мою задачу успешно выполняет «Rusla95», но в Win7 есть указанный недочёт.
И Shiftы там тоже так можно настроить. И это не занимает клавишу: Ctrl, Shift и Alt — модификаторы, обычно им нужно сочетание с другой клавишей. Если же просто нажать и отпустить Shift — ничего ведь не происходит (в случае с действующей утилитой включается нужная раскладка). А вот есть при зажатом Shift использовать что-то ещё — тогда переключения не происходит, и он работает как Shift :)
Похоже, что подобное чудо не для AutoHotkey :)
Сергей, как сделать чтобы при переключении языка на клавише Caps lock загорался встроенный маленький светодиод? Было бы намного удобнее при переключении контролировать.
А так, очень удобно на эту клавишу было назначить переключение. Хорошее решение.
У меня клавиатура без такого индикатора, но в теории он ведь загорается именно тогда, когда вы нажимаете на клавишу Caps Lock. Получается, если он не горит — будет одна раскладка, если горит (вы нажали клавишу) — другая.
не загорается. т.е. на Caps Lock назначил переключение языков, но индикатор не срабатывает…
Так может индикатор у вас в принципе не реагирует на нажатия? Без всяких назначений и скрипта он работает?
Да, конечно работает… )))
А если активировать CapsLock при работающем скрипте путем нажатия Shift+CapsLock, то светодиод загорится?
Да, конечно работает… индикатор у меня включается при обычной работе Caps Lock.
Если назначаю на нее переключение языка, то перестает работать.
Что можно дописать в скрипт?
Или индикатор это чисто механика — включил/выключил контакт на плате?
Хотя если это была механика, то индикатор работал бы и при назначении на кнопку переключение языков.
Тогда где в на ноуте посмотреть родной скрипт?
СЕРГЕЙ 09.11.2021
А если активировать CapsLock при работающем скрипте путем нажатия Shift+CapsLock, то светодиод загорится?
Да, загорается. При этом срабатывает Caps Lock.
Значит работа светодиода кнопки контролируется программно системой, а не просто нажатием. Боюсь, в этом случае скрипт не может контролировать работу светодиода.
Еще такой момент.
Если Caps Lock включен и горит индикатор, то если запустить скрипт, то индикатор будет гореть всегда при любой раскладке языка.
Заметил это сегодня утром.
На официальном сайте есть раздел документации https://www.autohotkey.com/docs/AutoHotkey.htm — может вы там что-то найдете по данной теме и сможете поправить этот момент у себя. Но лично мне кажется, что вы слишком загоняетесь ) У меня нет никаких индикаторов вообще на клавиатуре (даже для NumLock), и никаких неудобств в работе я не ощущаю в связи с этим. Так что если вам переключение светодиода очень принципиально — попробуйте разобраться сами с донастройкой скрипта.
Благодарен автору (Сергею) за статью! Завидую его терпению и отзывчивости!
Игорь, спасибо!
У меня не работает. Загрузил Current vertion AutoHotkey, не та версия?
Вы загрузили свежую версию, всё верно. Если не работает, значит что-то не так сделали.
этот символ в скрипте нужен? На сайте он вверху справа от макроса, на какой строке?
Не понял вопрос.
при RDP подключении пишет — нажат капслок и пароль не вводится.
Что такое RDP подключение?
Купил клаву от Apple — и переключение стало в тягость из-за специфического расположения клавиш.
Ваше решение очень понравилось. Жаль только светодиод капслок не загорается.
Если найду как пофиксить — буду полностью счастлив.
Перед этим попробовал Caramba — слишком умный, да и подглючивает неслабо при наборе в ворде.
Спасибо!
Удачи в поисках решения своей проблемы! Рад, что мой совет вам помог.
А как сделать так, чтобы при нажатии на капс лок, были функции Win+пробел?
Попробуйте вот так:
SendMode Input
SetWorkingDir %A_ScriptDir%
CapsLock::Send, {Win}{Space}
Не хочет работать сочетание клавишь для украинской расширеной. Не понимаю в чем дело. Стоит английскоязычная локализация виндовс. Русский и английский переключает как и должно.
Спасибо за описаный первый метод. Очень удобно, так как печатаю быстро и бывает не успевает сработать штатное переклюючение сочитанием клавишь раз, и два — не удобно когда используется более двух языков.
Большим пальцем левой руки-ctrl+Shift -элементарно!Попробуйте.
Так большой палец левой руки смотрит совсем в другую сторону от указанных кнопок ))
альт+шифт наше все. большой + мизинец или безимянный. Не надо кистью двигать
Caramba Switcher — новый, умный, автоматический переключатель, работающий с англо-русской или немецко-русской раскладками клавиатуры. Здесь нету лишних функций как у punto switcher.
20+ лет Ctrl+Shift юзаю, зачем что-то менять ? :)
Незачем. Юзайте дальше еще 50 лет :)
На моей клавиатуре есть буква ё. Не пользуюсь ей при наборе текста (((. Лучше ее использовать )))
Если не пользуетесь, то пожалуйста. Мне не подходит: 1) туда сложнее дотянуть палец в слепом режиме набора, 2) букву ё активно использую.
Pinto switcher — программа, которая сама автоматом переключает языка, когда вы начинаете печатать. Пользуюсь уже лет 15. Очень довольна! Следит она, не следит за мной, мне как-то…….. Я, что резидент какой.
Punto switcher, а так все правильно.
пунто оч давно купил яндекс, программа несвободная и хотя бы даже не оперсоурс, весь набираемый текст программа отправляет на сервера компании, к этим данным имеет доступ какой нибудь местный гоп служащий
У меня на работе клавиатура AQUARIUS модель: KU-0325 и на ней между Ctrl и Alt клавиша «RUS/LAT». Вот как-то, так.
Отличное решение! Моё уважение производителям.
Так вот почему комменты кишат капслоком. Начитаются и переключают язык и регистр
В Виндовс 10 пользуюсь таким способом `Win` + `Пробел` и очень доволен.
Спасибо , не знала. Очень удобно
punto switcher — вот решение всех проблем. Надо только его один раз настроить. Пользуюсь уже много лет. Левый Shift — русский, правый Shift — английский. Это намного удобнее. Не нужно каждый раз смотреть какая раскладка стоит. Просто перед набором текста жму нужную клавишу и всё. А ненужные переключения надо добавить в исключения и будет вам счастье.
плюсую за Punto Switcher )))
Caps Lock-правильно зачем большие буковки,да и точки с запятайками не нужны.печатать даже можно без пропусков.
Вы сначала разузнайте при каких случаях используется Капслок, а потом расскажите сколько раз вы использовали эту клавишу при наборе текста. Ну а потом уже можно критиковать ) Более того, вам никто не мешает переключать раскладку не caps lock-ом, а любой другой клавишей. Переключение капсолоком этой мой выбор, которым я поделился с читателями, поскольку эту клавишу я не использую совсем.
Всем привет! Полностью согласен с автором. Переключение двумя клавишами (любыми)
1. не всегда срабатывает
2. всегда срабатывает медленно, что приводит к потере фокуса редактируемым окном (неведомо куда) и мерзкому писку. Возвращать фокус приходится щелчком мышки
3. и, наконец, не знаю людей, использующих Caps Lock по прямому назначению
Автору тысяча благодарностей!
Alex, рад, что Вы оценили!
Вы не упомянули, что если у пользователя переключение языков ввода происходит по сочетанию ctrl+shift, то и скрипт AHK стоит немного изменить
Верно. ios29A написал в комментарии как надо изменить код в этом случае. Просто alt+shift работает по умолчанию у большинства пользователей, и в начале статьи я упомянул, что и у меня работает именно это сочетание.
Я контрол-шифт пользую и не парюсь. Жмётся так-же одним пальцем.
Одним пальцем сразу две клавиши? Это что ж за пальцы такие? )
Для СТЕРЕО: Подтверждаю. И да, очень часто нажимаю одним пальцем
наверно это «большой палец левой руки» — на самом деле это просто дело привычки
punto switcher это ваще жесть а не программа, не срабатывает иногда , а то и лезет когда не надо
Ей пользуются это когда не спеша что то редко, когда она по сути и не обязательна совсем
Круто !!!!
Давно искал такой метод переключения, даже собирался сделать свою программу.
Правда хотелось не CapsLock, а ScrollLock, но это решается просто в скрипте —
ScrollLock::Send, {Ctrl Down}{Shift Down}{Shift Up}{Ctrl Up}{ScrollLock Down}{ScrollLock Up}
(у меня переключение не через Alt+Shift а Ctrl+Shift).
И кстати, в этом случае, даже на клаве видно что включен «русский» — индикация включается.
Правда «с лёту» не добился включение светодиода при стандартном переключении Ctrl+Shift, надо будет поиграть.
Как я понял, AutoHotkey может гораздо больше, чем просто переключение языка, можно запускать программы, выводить диалоги, там свой скриптовый язык, если понадобится, корень можно вычислить.
ЗЫ. В начале 90х мы делали нечто подобное под DOS, резидентная программа называлось AltKeys, которая при нажатии комбинаций Alt+[Ctrl]+[Shift]+Key набирала текст на клавиатуре.
ЗЫЫ. Автор не прав в отношении того, что это не программа а скрипт, в «Диспетчере задач» она видна как AutoHotkey.exe, расположенная в C:\Program Files\AutoHotkey
Установить программу Caramba Switcher и не морочить голову. Это автопереключатель раскладки клавиатуры, в котором есть функция переключения раскладки клавиатуры одним нажатием Shift.
Во-первых, никто голову не морочит. Есть проблема — ищется решение. Во-вторых, почитайте отзывы о Caramba Switcher в интернете. Её разработчик не прислушивается к пожеланиям пользователей, не совершенствует её. В ней нельзя вносить, например, список исключений для автопереключения раскладки. Это огромный минус. Плюсов в ней по сравнению с той же пунто, нет вообще никаких.
Друзья, мне кажется часть из вас не понимает суть того, что написано в статье, а сразу старается предлагать какие-то привычные решения )
Да уж проблема. нажать две кнопки или одну.
Проще всего поставить автоматический переключатель Punto Switcher. Как только на русской раскладке вы начнёте набирать что то не похожее на русские слова, он автоматом переключит раскладку на латиницу, а если начнёте на латинице писать что-то несуразное, то переключатель переключит автоматически раскладку не кириллицу.
Юрий, для автоисправлений безусловно punto switcher хорошо, но моя проблема была несколько иная. Тем более с пунто свитчером я много лет назад намучился при наборе паролей и специфичных научных терминов на латинице. Моя задач просто: быстро САМОМУ переключать языки, без всяких автоматических помощников. Её я решил, а решением поделился со всеми.
Ну и заморосились… от нажатия двух кнопок ушли к установке прог и написанию макроса. Посмотрю как будет работать кнопка ударения. Морочить дальше.
Я долго и с очень большим терпением наблюдаю за работой Caramba на своём компьютере. Набираю быстро. Иногда пропадают буквы — пока я набираю, а Карамба исправляет раскладку. Часто набираю пароли. Она мне услужливо переводит на русский язык. Сделаешь опечатку, не вставив букву — она переведёт это в английский…. Скоро терпение лопнет, похоже….
Что же до AHK. Это сложнейший и мощнейший иструмент. Так что, тем, кто нуждается в разного рода автоматизациях — нужно его плотно изучать. Автору — респект, хотя его решение мне тоже не подходит. НО — спасибо за то, что делишься с людьми :)
Главное найти своё решение, которое будет удовлетворять на все 100%. Удачи!
у меня лопнуло через месяц.
как поиграться офисным кроликам — возможно.
как рабочий инструмент — непригодно. глюков и
связанных с этим потерь времени слишком много.
Спасибо — сколько сколько лет мучился.Вообще круто — здорово!!!
Рад, что у вас всё получилось!
Здравствуйте! У меня вопрос, а если после использования 2 способа, захочется вернуть всё как было, какие действия? Просто удалить тот файл в папке, который каждый раз запускает эту функцию?
А так огромное спасибо за статью. Очень полезно.
Здравствуйте! Либо удалите файлик либо уберите его из автозагрузки.
punto switcher
Спасибо, но нет )
такая же
Чем плоха Пунто Швистер?
Зачем мне ставить программу со 100+ функциями, если их них всех мне нужна только одна? Тем более данный продукт Яндекс не раз уже был уличен в сливе набираемой информации на сервера Яндекс. Продукты этой компании славятся скрытой слежкой за пользователи. Оно мне надо? )