Bug 32638

Summary: Не устанавливается переключатель раскладок по ctrls_toggle (/etc/X11/xinit/fixkeyboard)
Product: Branch p7 Reporter: Ivan Zakharyaschev <imz>
Component: xkeyboard-configAssignee: Andrey Cherepanov <cas>
Status: NEW --- QA Contact: qa-p7 <qa-p7>
Severity: normal    
Priority: P3 CC: imz, legion, shrek
Version: не указана   
Hardware: all   
OS: Linux   
URL: http://lists.altlinux.org/pipermail/sisyphus/2014-December/363265.html
Bug Depends on: 32655    
Bug Blocks: 32661, 30618    

Description Ivan Zakharyaschev 2016-10-20 04:55:00 MSK
Да, описанная проблема и решение у меня тоже воспроизвелись с setxkbmap-1.3.0-alt1.

+++ This bug was initially created as a clone of Bug #30618 +++

Изначально тема была поднята здесь:

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, стоит пока использовать предложенные мной изменения.
Comment 1 Ivan Zakharyaschev 2016-10-22 22:10:14 MSK
setxkbmap-1.3.1-alt1 from Sisyphus also has this problem. (I haven't yet tested the Xorg server from Sisyphus.)
Comment 2 Ivan Zakharyaschev 2016-10-22 23:21:49 MSK
A working fix has been published in https://bugs.freedesktop.org/show_bug.cgi?id=15843#c3 .
Comment 3 Ivan Zakharyaschev 2016-10-24 16:32:00 MSK
In a Sisyphus system, this problem is not present (perhaps, due to https://packages.altlinux.org/en/Sisyphus/srpms/xkeyboard-config ).
Comment 4 Ivan Zakharyaschev 2016-10-24 17:30:20 MSK
http://git.altlinux.org/gears/x/xkeyboard-config.git?p=xkeyboard-config.git;a=commitdiff;h=4346c44713e2573dd7ebd4f5d6e5ac12ee9247c4 is the fix, and it follows 2.16 and precedes 2.17.

The Sisyphus version is 1:2.18-alt1 now, hence it includes the fix.

The p7/t7 version is 1:2.8-alt1 now, hence it has this bug.

As for p6/t6, we can't be sure without testing, because these rules may have worked with earlier versions of Xorg setxkbmap etc., but then stopped working because of some change in Xorg setxkbmap etc.
Comment 5 Ivan Zakharyaschev 2016-10-24 17:42:01 MSK
shrek@ , может, скопируем xkeyboard-config из Sisyphus в t7?

task #171314
Comment 6 Ivan Zakharyaschev 2016-10-24 18:52:55 MSK
(In reply to comment #5)
> shrek@ , может, скопируем xkeyboard-config из Sisyphus в t7?
> 
> task #171314

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