Изначально тема была поднята здесь: http://lists.altlinux.org/pipermail/sisyphus/2014-December/363265.html Основная проблема в том, что в Xkbmap можно установить переключатель раскладок, например, по caps_toggle или ctrl_shift_toggle, но не получается сделать то же самое по ctrls_toggle. Возможно, что это скорее проблема пакета xkeyboard-config, к которому относится файл /usr/share/X11/xkb/symbols/group, содержащий соответствующее определение ctrls_toggle, и нужно исправить именно определение этой комбинации. Однако, в `man setxkbcomp` (раздел "USING WITH xkbcomp") приведен шаблон использования setxkbmap в паре с xkbcomp, после запуска которого переключатель ctrls_toggle устанавливается. Причину этого я пока не понял, так как в том же документе сказано, что такой образец нужен, только если X-сервер и клиент запускаются на разных машинах с разными конфигурациями. Не знаю, правильное ли это решение, но я просто изменил вызов setxkbmap в файле /etc/X11/xinit/fixkeyboard, и у меня все заработало. Мои изменеия даю в прилагаемом патче. Кроме того, я добавил еще одну альтернативу, когда файл Xkbmap отсутствует и как в системном, так и в домашнем каталоге пользователя. В этом случае настройки клавиатуры определяются конфигурацией xorg.conf (в частности, в файле /etc/X11/xorg.conf.d/95-input-keyboard.conf), и работа fixkeyboard сводится только к загрузке текущих значений setxkbmap в xkbcomp. Думаю, пока (и если) не разберемся с определением ctrls_toggle в xkeyboard-config, стоит пока использовать предложенные мной изменения.
Created attachment 6217 [details] Патч, добавляющий вызов xkbcomp в fixkeyboard
(In reply to comment #0) > Кроме того, я добавил еще одну альтернативу, когда файл Xkbmap отсутствует и > как в системном, так и в домашнем каталоге пользователя. В этом случае > настройки клавиатуры определяются конфигурацией xorg.conf (в частности, в файле > /etc/X11/xorg.conf.d/95-input-keyboard.conf), и работа fixkeyboard сводится > только к загрузке текущих значений setxkbmap в xkbcomp. А если без xkbcomp и Вашего проблемного переключателя, то такой вызов имеет всё равно смысл добавить? Или это будет действие, которое ничего не делает? (Если это так, это могло бы быть темой отдельного bug report, чтобы не потерялось и это соображение.) (Основную проблему пока не проверил.)
Да, описанная проблема и решение у меня тоже воспроизвелись с setxkbmap-1.3.0-alt1.
(In reply to comment #1) > Created an attachment (id=6217) [details] > Патч, добавляющий вызов xkbcomp в fixkeyboard Заметил такую неприятность с таким патчем и xkbcomp-1.2.4-alt1 или xkbcomp-1.3.1-alt1 и setxkbmap-1.3.1-alt1 или setxkbmap-1.3.0-alt1: setxkbmap -query потом печатает всю информацию о старой конфигурации (включая options и layout). Может быть, если пользоваться таким workaround (пока не исправлена собственно ошибка в setxkbmap), то уж делать сразу два вызова: setxkbmap -option '' `cat "$sysxkbmap"` setxkbmap -option '' `cat "$sysxkbmap"` -print | xkbcomp - "$DISPLAY"
A working fix has been published in https://bugs.freedesktop.org/show_bug.cgi?id=15843#c3 .
In a Sisyphus system, this problem is not present (perhaps, due to https://packages.altlinux.org/en/Sisyphus/srpms/xkeyboard-config ). $ rpm -qf /usr/share/X11/xkb/symbols/group xkeyboard-config-2.18-alt1 $