<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>30618</bug_id>
          
          <creation_ts>2014-12-30 08:26:30 +0300</creation_ts>
          <short_desc>Не устанавливается переключатель раскладок по ctrls_toggle (/etc/X11/xinit/fixkeyboard)</short_desc>
          <delta_ts>2016-10-24 20:12:16 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>xinitrc</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://lists.altlinux.org/pipermail/sisyphus/2014-December/363265.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>32658</dependson>
    
    <dependson>32638</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eugine V. Kosenko">eugine.kosenko</reporter>
          <assigned_to name="placeholder@altlinux.org">placeholder</assigned_to>
          <cc>glebfm</cc>
    
    <cc>imz</cc>
    
    <cc>ldv</cc>
    
    <cc>placeholder</cc>
    
    <cc>vt</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>149534</commentid>
    <comment_count>0</comment_count>
    <who name="Eugine V. Kosenko">eugine.kosenko</who>
    <bug_when>2014-12-30 08:26:30 +0300</bug_when>
    <thetext>Изначально тема была поднята здесь:

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` (раздел &quot;USING WITH xkbcomp&quot;) приведен шаблон использования 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, стоит пока использовать предложенные мной изменения.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149535</commentid>
    <comment_count>1</comment_count>
      <attachid>6217</attachid>
    <who name="Eugine V. Kosenko">eugine.kosenko</who>
    <bug_when>2014-12-30 08:27:40 +0300</bug_when>
    <thetext>Created attachment 6217
Патч, добавляющий вызов xkbcomp в fixkeyboard</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159289</commentid>
    <comment_count>2</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2016-10-20 04:29:25 +0300</bug_when>
    <thetext>(In reply to comment #0)

&gt; Кроме того, я добавил еще одну альтернативу, когда файл Xkbmap отсутствует и
&gt; как в системном, так и в домашнем каталоге пользователя. В этом случае
&gt; настройки клавиатуры определяются конфигурацией xorg.conf (в частности, в файле
&gt; /etc/X11/xorg.conf.d/95-input-keyboard.conf), и работа fixkeyboard сводится
&gt; только к загрузке текущих значений setxkbmap в xkbcomp.

А если без xkbcomp и Вашего проблемного переключателя, то такой вызов имеет всё равно смысл добавить?

Или это будет действие, которое ничего не делает?

(Если это так, это могло бы быть темой отдельного bug report, чтобы не потерялось и это соображение.)

(Основную проблему пока не проверил.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159290</commentid>
    <comment_count>3</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2016-10-20 04:54:09 +0300</bug_when>
    <thetext>Да, описанная проблема и решение у меня тоже воспроизвелись с setxkbmap-1.3.0-alt1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159373</commentid>
    <comment_count>4</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2016-10-22 21:47:22 +0300</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=6217) [details]
&gt; Патч, добавляющий вызов 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 &apos;&apos; `cat &quot;$sysxkbmap&quot;`
	setxkbmap -option &apos;&apos; `cat &quot;$sysxkbmap&quot;` -print | xkbcomp - &quot;$DISPLAY&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159375</commentid>
    <comment_count>5</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2016-10-22 23:21:26 +0300</bug_when>
    <thetext>A working fix has been published in https://bugs.freedesktop.org/show_bug.cgi?id=15843#c3 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159410</commentid>
    <comment_count>6</comment_count>
    <who name="Ivan Zakharyaschev">imz</who>
    <bug_when>2016-10-24 16:34:58 +0300</bug_when>
    <thetext>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
$</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>6217</attachid>
            <date>2014-12-30 08:27:40 +0300</date>
            <delta_ts>2014-12-30 08:27:40 +0300</delta_ts>
            <desc>Патч, добавляющий вызов xkbcomp в fixkeyboard</desc>
            <filename>fixkeyboard.patch</filename>
            <type>application/octet-stream</type>
            <size>629</size>
            <attacher name="Eugine V. Kosenko">eugine.kosenko</attacher>
            
              <data encoding="base64">LS0tIC9ldGMvWDExL3hpbml0L2ZpeGtleWJvYXJkLm9yaWcJMjAxNC0xMi0zMCAwODoxMjo1Ny44
Mjc4MDMwMzkgKzAzMDAKKysrIC9ldGMvWDExL3hpbml0L2ZpeGtleWJvYXJkCTIwMTQtMTItMzAg
MDc6MDk6MzMuMzkxOTE0NjE1ICswMzAwCkBAIC05LDggKzksMTMgQEAKIHN5c3hrYm1hcD0vZXRj
L1gxMS94aW5pdC9Ya2JtYXAKIAogaWYgeGRweWluZm8gfGZncmVwIC1xcyBYS0VZQk9BUkQ7IHRo
ZW4KLQlbIC1zICIkc3lzeGtibWFwIiBdICYmIHNldHhrYm1hcCBgY2F0ICIkc3lzeGtibWFwImAK
LQlbIC1zICIkdXNlcnhrYm1hcCIgXSAmJiBzZXR4a2JtYXAgYGNhdCAiJHVzZXJ4a2JtYXAiYAor
CWlmIFsgLXMgIiRzeXN4a2JtYXAiIF07IHRoZW4KKwkJc2V0eGtibWFwIGBjYXQgIiRzeXN4a2Jt
YXAiYCAtcHJpbnQgfCB4a2Jjb21wIC0gJERJU1BMQVkKKwllbGlmIFsgLXMgIiR1c2VyeGtibWFw
IiBdOyB0aGVuCisJCXNldHhrYm1hcCBgY2F0ICIkdXNlcnhrYm1hcCJgIC1wcmludCB8IHhrYmNv
bXAgLSAkRElTUExBWQorCWVsc2UKKwkJc2V0eGtibWFwIC1wcmludCB8IHhrYmNvbXAgLSAkRElT
UExBWQorCWZpCiBmaQogCiBbIC1zICRzeXNtb2RtYXAgXSAmJiB4bW9kbWFwICIkc3lzbW9kbWFw
Igo=
</data>

          </attachment>
      

    </bug>

</bugzilla>