Linux Mint 22.3: переключение раскладки клавиатуры сломалось после обновления — обходной путь

Я пользуюсь Linux Mint. Только что обновился до Mint 22.3 и заметил, что после обновления сломалось нормальное переключение клавиатуры а это дико бесит, особенно когда пользуешься не только английским языком. Ощущения от моей божественно удобной клавиатуры на ThinkPad X280 пропали напрочь, и это отбивает всякое желание печатать: раньше переключение раскладки было рефлексом, а теперь превратилось в отдельную борьбу с системой.

Разбираясь, в чём дело, я нашёл и причину, и рабочий обходной путь делюсь всем этим здесь, чтобы не искать по десятому разу.

В чём именно проблема

Судя по обсуждениям на официальном форуме Linux Mint и в официальном баг-трекере Cinnamon на GitHub, это не только моя личная беда с тем же самым столкнулись многие пользователи после обновления до Mint 22.3 (Cinnamon 6.6).

Причина в том, что в новой версии Cinnamon переключение раскладки клавиатуры теперь можно настроить сразу в двух разных местах:

  • вкладка «Раскладки» (Layouts) — привычный, «традиционный» интерфейс настройки сочетания клавиш;
  • вкладка «Параметры XKB» (XKB Options) — более низкоуровневые настройки самого X Keyboard Extension.

Если сочетание клавиш для переключения раскладки задано одновременно в обоих местах, они начинают конфликтовать друг с другом. Отсюда и всё то безумие, которое многие описывают: переключение работает только при строго определённом порядке нажатия клавиш (например, обязательно сначала левый Alt, потом левый Shift, а не наоборот), часть комбинаций вообще перестаёт срабатывать, а после обновления сочетание клавиш иногда сбрасывается само по себе на Super+Space.

Дополнительно к этому в Cinnamon 6.6 заодно расширили поддержку раскладок теперь наравне с обычными XKB-раскладками в тех же настройках отображаются ещё и методы ввода IBus (например, для японской раскладки Mozc), что тоже добавило путаницы в и без того перегруженный интерфейс настроек.

Обходной путь

Раз проблема в конфликте между двумя настройками, решение оставить активной только одну из них.

  1. Откройте МенюПараметры системыКлавиатура.
  2. Перейдите на вкладку «Раскладки» и отключите (уберите) назначенное там сочетание клавиш для переключения раскладки сочетание не должно быть задано на этой вкладке вообще.
  3. Перейдите на вкладку «Параметры XKB».
  4. Найдите там раздел «Переключение на другую раскладку» (в английской версии Switching to another layout) и задайте нужное сочетание уже здесь например, конкретно «Левый Alt + Левый Shift», а не общее «Alt+Shift».
  5. Примените изменения.

После этого переключение снова начинает работать стабильно, без странной привязки к порядку нажатия клавиш.

Важный нюанс: порядок нажатия всё равно имеет значение

Даже после того как конфликт устранён, стоит иметь в виду один момент, который отмечают и другие пользователи: при использовании сочетания вроде Alt+Shift система теперь более чувствительна к порядку нажатия клавиш например, для комбинации «Alt+Shift» сначала нужно нажать именно Alt, а затем Shift, а не наоборот и не одновременно, как это привычно работало раньше. Это не баг конкретно вашей настройки, а особенность поведения текущей версии переучиться, впрочем, оказалось быстрее, чем можно было ожидать.

Проблема с настройками после перезагрузки

Отдельная неприятность, о которой стоит знать заранее: у части пользователей (в том числе видно из открытого тикета в трекере Cinnamon) настройка на вкладке «Параметры XKB» не сохраняется после перезагрузки или повторного входа в систему само значение в настройках остаётся прежним, но фактически переключение перестаёт срабатывать, и приходится заново «трогать» настройку, чтобы она снова заработала.

Если вы столкнулись именно с этим, рабочий обходной путь создать команду автозапуска, которая переустанавливает раскладку и параметры переключения через setxkbmap сразу после входа в систему:

  1. Откройте «Автоматически запускаемые приложения» (Startup Applications).
  2. Добавьте новую запись с небольшой задержкой запуска (буквально несколько секунд чтобы сессия успела полностью загрузиться) и командой вида: setxkbmap -layout us,ru -option grp:alt_shift_toggle (замените us,ru на свои раскладки в нужном порядке, а grp:alt_shift_toggle на код нужного вам сочетания для переключения)

Это не самое элегантное решение, но оно гарантированно переживает перезагрузку, пока разработчики Cinnamon не закроют баг с несохраняющимися настройками XKB окончательно.

Итог

Если после обновления до Linux Mint 22.3 переключение раскладки клавиатуры стало вести себя странно скорее всего, дело в том, что сочетание клавиш одновременно задано и на вкладке «Раскладки», и на вкладке «Параметры XKB». Отключите его в «Раскладках» и настройте заново только в «Параметрах XKB» в большинстве случаев это полностью решает проблему. Если настройка не переживает перезагрузку, спасает автозапуск с командой setxkbmap.

Не самое очевидное поведение для, казалось бы, рутинной задачи, но, к счастью, полностью решаемое и божественно удобная клавиатура ThinkPad снова может работать так, как должна.

Menu