Коротко: переключать либо нечего — в системе одна раскладка, — либо нечем: назначено иное сочетание. Ещё два случая только похожи на поломку: язык может запоминаться отдельно в каждом окне, а сторонняя утилита — показывать его неверно. И пятое — пропавший значок. Разберу, что делать, — от простой проверки к менее очевидной. Скажу и о своей программе Lang Switcher для Windows: где она поможет, а где бессильна.
Раскладка всего одна
Тест занимает секунду: зажмите клавишу Win — с логотипом Windows — и нажмите пробел. Каждое нажатие включает следующую раскладку. Ничего не происходит — значит, установлена единственная.
Вторую добавляют в «Параметрах». В Windows 11 путь такой: «Время и язык» → «Язык и регион», затем «…» у языка интерфейса — того, на котором написаны меню, — его параметры и кнопка «Добавить клавиатуру». В Windows 10 короче: «Время и язык» → «Язык», у него — «Параметры», дальше так же.
Что может Lang Switcher, а чего нет
Я пишу утилиты, и среди них — Lang Switcher, программа для переключения раскладки. Она для другой беды: вы набрали «ghbdtn» вместо «привет».
Сломанное переключение языка она не чинит. Сочетание клавиш и значок настраивает сама Windows, а если раскладка в системе одна, перекодировать набранное не во что.
Не то сочетание клавиш
Помимо Win+Пробел, для этого есть Alt+Shift и Ctrl+Shift. Какое из них действует у вас — а то и клавиша Ё сама по себе, — зависит от настроек. Если тест прошёл, а язык перестал переключаться привычной комбинацией, в настройках выбрана другая. Как её поменять — тема другой записи.
Пропал значок языка
Значок у часов на панели задач показывает текущую раскладку, а по щелчку раскрывает перечень раскладок. По умолчанию он включён, но бывает, что не отображается.
Прячется он, во-первых, когда раскладка всего одна. Во-вторых, его вытесняет старая языковая панель — полоска из прежних версий: вместе они не показываются. Восстановить его в Windows 11 можно через «Параметры» → «Время и язык» → «Ввод» → «Дополнительные параметры клавиатуры». Там, в разделе «Переключение методов ввода» (методами ввода Windows называет раскладки), снимите флажок «Использовать языковую панель рабочего стола, если она доступна». Цена такая: пропадёт и она.
В Windows 10 сперва загляните в «Параметры» → «Персонализация» → «Панель задач» → «Включение и выключение системных значков»: переключатель «Индикатор ввода» — так там зовётся значок — должен стоять на «Вкл.». Не помогло — уберите тот же флажок, только дорога к нему ведёт через «Устройства» → «Ввод».
Каждое окно помнит свой язык
Встречается и такое: в браузере включили английский, а в соседнем окне остался русский. Или раскладка словно скачет сама, стоит перейти к другому приложению. За это отвечает флажок «Позволить выбрать метод ввода для каждого окна приложения» в тех же дополнительных параметрах.
С флажком выбор у каждого окна свой, без него — общий и следует за вами. Решайте по привычке: если по-русски и по-английски вы пишете в разных окнах — оставьте, хотите везде одно — обойдитесь без него.
Раскладку путает посторонняя программа
Утилита, которая следит за раскладкой или меняет её сама, способна ошибаться в новом Блокноте Windows 11 и в классической командной строке, где набирают текстовые команды. Она считает включённой одну раскладку, пока печатается другая. Убедиться просто: закройте её и попробуйте снова.
Так ошибалась и моя программа: в Блокноте её клавиша порой ничего не меняла, пока замер не показал, что она спрашивала не ту часть окна. Подробности — ниже.
Что проверить по порядку
Всё выясняется за один заход: начните с Win+Пробел, остальные шаги — на схеме.
Как это устроено внутри: для любопытных
Для решения этот раздел не нужен.
Раскладку Windows хранит не для всей системы и не для окна, а для потока. Поток — это часть программы, занятая своей работой; у одной программы их бывает несколько. Нажатие Alt+Shift меняет раскладку того потока, что принимает набор.
В классических программах — например, в Chrome — окно и поле ввода обслуживает один поток. Новый Блокнот устроен иначе. Он — упакованное приложение: Windows ставит, обновляет и удаляет его целым пакетом. Внешнее окно и поле, куда вы пишете, принадлежат там разным потокам.
Я проверил это, когда искал ошибку в Lang Switcher: 660 замеров в трёх приложениях — тестовом окне, Chrome и Блокноте, по 220 на каждое. В первых двух потоки совпали все 220 раз, в Блокноте — ни разу.
Дальше главное. После сочетания клавиш раскладка поля менялась, а внешнее окно помнило прежнюю: 120 случаев из 120, и расхождение держалось все две секунды наблюдения. Кто спрашивал окно, получал верный ответ на не тот вопрос. Поток поля с курсором не ошибся ни разу из 660.
Классическая командная строка строже: прочитать там раскладку не удаётся вовсе — 120 отказов из 120, хотя сама смена проходит. Поэтому Lang Switcher теперь смотрит на поле, где вы печатаете, а в командной строке не ждёт подтверждения, которого не будет.