Гм, э… ну, как бы сабж. Внешние переключалки клавиатуры (которые вызывают функцию xKbLockGroup) более не работают в Гноме 3.18: муттер мгновенно переключает раскладку обратно.
Я раскопал почему. История вот такая:
1. В Убунте (и, возможно, в Дебиане) поставляются патченные иксы, в которых переключение раскладок клавиатуры происходит при отпускании клавиши, а не при её нажатии. Причём этот патч не принят в апстрим (хотя патч существует не менее пяти лет).
Keyboard layout change on hotkeys press instead of release and do not work well with shortcuts
208_switch_on_release patch has been dropped although not included upstream
2. Из-за этого патча в Гноме на Убунте были проблемы с переключением раскладок, и его, гм, поправили.
Причём поправили таким чудацким образом: при получении события XkbStateNotify муттер проверяет текущую группу, и если группа не та, которую ожидает муттер, от лочит ту, которую он ожидает.
Результат этого изменения таков: все прочие переключалки клавиатуры (которые вызывают функцию XkbLockGroup) в пролёте. Я написал им, и получил ответ: не-гномовские переключалки не поддерживаются.
Ну ладно, я не прошу поддерживать не-гномовские переключалки, но я не понимаю одно: зачем включать в муттеровский *апстрим* исправление для работы с *патченными* иксами?? Дебианщики пропатчили иксы, патч в апстрим не принят, но муттер прогибается под патченные иксы… Если дебианщики патчат иксы, пусть бы уж заодно патчили и муттер…
Короче, если у вас проблемы с не-гномовой переключалкой клавиатуры в Гноме 3.18, велкам побухтеть в гномовом или красношапковом трекерах: