Блог

Почему не переключается язык на клавиатуре в Windows 10 и 11

4 мин чтенияпроект Lang Switcher

Не переключается язык на клавиатуре в Windows 10 или 11? Причин несколько: раскладка одна, сочетание клавиш другое, значок скрыт или язык у каждого окна свой.

Коротко: переключать либо нечего — в системе одна раскладка, — либо нечем: назначено иное сочетание. Ещё два случая только похожи на поломку: язык может запоминаться отдельно в каждом окне, а сторонняя утилита — показывать его неверно. И пятое — пропавший значок. Разберу, что делать, — от простой проверки к менее очевидной. Скажу и о своей программе Lang Switcher для Windows: где она поможет, а где бессильна.

Раскладка всего одна

Тест занимает секунду: зажмите клавишу Win — с логотипом Windows — и нажмите пробел. Каждое нажатие включает следующую раскладку. Ничего не происходит — значит, установлена единственная.

Вторую добавляют в «Параметрах». В Windows 11 путь такой: «Время и язык» → «Язык и регион», затем «…» у языка интерфейса — того, на котором написаны меню, — его параметры и кнопка «Добавить клавиатуру». В Windows 10 короче: «Время и язык» → «Язык», у него — «Параметры», дальше так же.

Что может Lang Switcher, а чего нет

Я пишу утилиты, и среди них — Lang Switcher, программа для переключения раскладки. Она для другой беды: вы набрали «ghbdtn» вместо «привет».

Сломанное переключение языка она не чинит. Сочетание клавиш и значок настраивает сама Windows, а если раскладка в системе одна, перекодировать набранное не во что.

Lang Switcher для Windows — по нажатию Pause перекодирует последнее слово и переключает раскладку окна. Страница программы

Не то сочетание клавиш

Помимо Win+Пробел, для этого есть Alt+Shift и Ctrl+Shift. Какое из них действует у вас — а то и клавиша Ё сама по себе, — зависит от настроек. Если тест прошёл, а язык перестал переключаться привычной комбинацией, в настройках выбрана другая. Как её поменять — тема другой записи.

Пропал значок языка

Значок у часов на панели задач показывает текущую раскладку, а по щелчку раскрывает перечень раскладок. По умолчанию он включён, но бывает, что не отображается.

Прячется он, во-первых, когда раскладка всего одна. Во-вторых, его вытесняет старая языковая панель — полоска из прежних версий: вместе они не показываются. Восстановить его в Windows 11 можно через «Параметры» → «Время и язык» → «Ввод» → «Дополнительные параметры клавиатуры». Там, в разделе «Переключение методов ввода» (методами ввода Windows называет раскладки), снимите флажок «Использовать языковую панель рабочего стола, если она доступна». Цена такая: пропадёт и она.

В Windows 10 сперва загляните в «Параметры» → «Персонализация» → «Панель задач» → «Включение и выключение системных значков»: переключатель «Индикатор ввода» — так там зовётся значок — должен стоять на «Вкл.». Не помогло — уберите тот же флажок, только дорога к нему ведёт через «Устройства» → «Ввод».

Каждое окно помнит свой язык

Встречается и такое: в браузере включили английский, а в соседнем окне остался русский. Или раскладка словно скачет сама, стоит перейти к другому приложению. За это отвечает флажок «Позволить выбрать метод ввода для каждого окна приложения» в тех же дополнительных параметрах.

С флажком выбор у каждого окна свой, без него — общий и следует за вами. Решайте по привычке: если по-русски и по-английски вы пишете в разных окнах — оставьте, хотите везде одно — обойдитесь без него.

Раскладку путает посторонняя программа

Утилита, которая следит за раскладкой или меняет её сама, способна ошибаться в новом Блокноте Windows 11 и в классической командной строке, где набирают текстовые команды. Она считает включённой одну раскладку, пока печатается другая. Убедиться просто: закройте её и попробуйте снова.

Так ошибалась и моя программа: в Блокноте её клавиша порой ничего не меняла, пока замер не показал, что она спрашивала не ту часть окна. Подробности — ниже.

Что проверить по порядку

Всё выясняется за один заход: начните с Win+Пробел, остальные шаги — на схеме.

Зажмите Winи нажмите пробелЯзык сменился?нетРаскладка однадобавьте вторуюв «Параметрах»даWindows переключает. Дальше:1Не работает ваше сочетаниев настройках выбрано другое2Нет значка у часовверните его в параметрах3Язык меняется со сменой окнафлажок «для каждого окна»4Путает одна программапроверьте без неё
Зажмите Win и нажмите пробелЯзык сменился?нетРаскладка однадобавьте вторуюв «Параметрах»даWindows переключает. Дальше:1Не работает ваше сочетаниев настройках выбрано другое2Нет значка у часовверните его в параметрах3Язык меняется со сменой окнафлажок «для каждого окна»4Путает одна программапроверьте без неё
Win+Пробел делит причины на две ветки.

Как это устроено внутри: для любопытных

Для решения этот раздел не нужен.

Раскладку Windows хранит не для всей системы и не для окна, а для потока. Поток — это часть программы, занятая своей работой; у одной программы их бывает несколько. Нажатие Alt+Shift меняет раскладку того потока, что принимает набор.

В классических программах — например, в Chrome — окно и поле ввода обслуживает один поток. Новый Блокнот устроен иначе. Он — упакованное приложение: Windows ставит, обновляет и удаляет его целым пакетом. Внешнее окно и поле, куда вы пишете, принадлежат там разным потокам.

Я проверил это, когда искал ошибку в Lang Switcher: 660 замеров в трёх приложениях — тестовом окне, Chrome и Блокноте, по 220 на каждое. В первых двух потоки совпали все 220 раз, в Блокноте — ни разу.

БлокнотОкно — поток 1раскладка: английскаяПоле ввода — поток 2раскладка: русскаяПриветAlt + Shiftменяет только полеСпросить окно → английскаяПечатается → русская120 раз из 120
БлокнотОкно — поток 1раскладка: английскаяПоле ввода — поток 2раскладка: русскаяПриветAlt + Shiftменяет только полеСпросить окно → английскаяПечатается → русская120 раз из 120
Два потока одного Блокнота: сочетание клавиш доходит только до поля ввода.

Дальше главное. После сочетания клавиш раскладка поля менялась, а внешнее окно помнило прежнюю: 120 случаев из 120, и расхождение держалось все две секунды наблюдения. Кто спрашивал окно, получал верный ответ на не тот вопрос. Поток поля с курсором не ошибся ни разу из 660.

Классическая командная строка строже: прочитать там раскладку не удаётся вовсе — 120 отказов из 120, хотя сама смена проходит. Поэтому Lang Switcher теперь смотрит на поле, где вы печатаете, а в командной строке не ждёт подтверждения, которого не будет.

Программы бесплатные

Я стараюсь делать их доступными и удобными: они не показывают рекламу и не собирают данные о вас. Если что-то из этого вам пригодилось, на странице поддержки можно сказать спасибо.

Поддержать автора
← Предыдущая запись Свой сайт, сервер и почта на своём домене: что это даёт Следующая запись → Как сделать шкаф из ЛДСП своими руками: от замера до сборки