Старый баг Ubuntu с переключением раскладок клавиатуры

/www/pages/modesco/ubuntovod

К сожалению, в Ubuntu есть баги, которые не исправляются годами и всякий раз остаются без внимания разработчиков. К таким багам-долгожителям относится один мелкий, но очень неприятный баг с переключением языка ввода по умолчанию в новых окнах.

Проявление бага следующее. Допустим, у вас в системе в настройках клавиатуры выбрано два (или более) языка ввода, например, английский и русский. Вы хотите использовать не глобальное переключение клавиатурной раскладки во всех окнах, а хотите использовать индивидуальную раскладку в отдельных окнах. При этом вы хотите, чтобы любое новое окно по умолчанию получало английскую раскладку.

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

Казалось бы, всё просто и понятно, для этого всего лишь в настройках клавиатуры нужно выставить соответствующие опции:

  1. Allow different layouts for individual windows.
  2. New windows use the default layout.

Старый баг Ubuntu с переключением раскладок клавиатуры

Но проблема именно в том, что эти настройки не работают. При этих настройках новое окно по умолчанию получает язык ввода, который использовался в предыдущем активном окне, а вовсе не язык по умолчанию (английский).

Этот баг появился в Ubuntu более пяти лет назад (и я уже писал о нём) вместе с появлением там композитного менеджера окон Compiz и не исправлен до сих пор (включая Ubuntu-12.04.1 и Ubuntu-12.10-beta1). Баг проявляется только при использовании Compiz в качестве оконного менеджера, что особенно неприятно, т.к. интерфейс Unity, который сейчас используется по умолчанию, базируется именно на Compiz.

Многие англоязычные разработчики с этим багом никогда не сталкиваются, т.к. используют в системе всего один язык ввода - английский. Если же вы в Ubuntu используете несколько языков ввода (несколько клавиатурных раскладок) и заинтересованы в устранении данного бага, то предлагаю вам сделать следующее:

  1. Зарегистрироваться на сайте launchpad.net (там используется Ubuntu-аккаунт, поэтому если вы используете сервис Ubuntu One, либо уже ранее сообщали о багах Ubuntu, то у вас этот аккаунт уже есть)
  2. Перейти на страницу с описанным багом: bugs.launchpad.net
  3. Указать, что этот баг вас тоже затрагивает, для этого в верхней части страницы щёлкнуть на зелёную ссылку "This bug affects X people. Does this bug affect you?" и выбрать там пункт "Yes, it affects me"
  4. Опционально можно ещё подписаться на оповещения по каким-либо изменениям, связанным с этим багом. Для этого в правой части окна щёлкнуть на зелёную ссылку "You are not directly subscribed to this bug`s notifications" и выбрать вариант оповещения, например, "Receive all emails about this bug"

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

Andrey
2012-10-02 11:10:00
Поддержал, думал только у меня так.
paulus
2012-10-02 12:30:00
"Ошибкой было бы думать..." В.И.Ленин. Андрюша, нужно отчеты о багах отправлять...
paulus
2012-10-02 12:34:00
В статье забыли написать предупреждение для дебилов!!! НЕ ТРОЛЬТЕ НА БАГТРЕККЕРЕ! А то отчет прикроют, а баг никогда не исправят. Подобные случаи уже бывали.
scruwi
2014-08-12 00:48:00
а что нынче отвечает за переключение раскладки в Unity? хочу сменить несколько символов, редактирую файл раскладки в /usr/share/X11/xkb/symbols/ua а оно изменения не подхватывает. X-сервер перезапускал.