View Issue Details

IDProjectCategoryView StatusLast Update
0004584Spring engineLinuxpublic2014-10-11 21:17
Reporterberryfoo Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
Product Version98.0 
Summary0004584: Ctrl key mapped to CapsLock key doesn't work anymore
DescriptionI have my X11 keyboard setup slightly modified as this:

- CapsLock key acts as LeftCtrl key. xev shows this:

    keycode 66 (keysym 0xffe3, Control_L)


- LeftCtrl key acts as Super_L key (probably the keysym for the
  "Windows key", which I don't have on my 102 key keyboard). xev shows this:

    keycode 37 (keysym 0xffeb, Super_L)


In spring 0.96, the CapsLock key acting as Ctrl key worked just fine
(and the Ctrl key acting as Super_L/Windows key was ignored, as it
should be).

Starting with 0.98, (tried latest git version from 2014-10-11, too),
the CapsLock key is not accepted as Ctrl key anymore by the spring engine
(tried mods "Tech Annihilation 2.31.0/1" and "Balanced Annihilation 8.03").


See the following table for an overview which keys are recognized as Ctrl:


Table "Is key XYZ recognized as Ctrl key?"
------------------------------------------
NOTES: - Key names in table header denote *hardware* keys, i.e. what's
         printed on them, not the associated key symbol.

       - 96 = Spring version 0.96
         98 = Spring version 0.98 and above

       - kc = X11 keycode (layout independent), as shown by xev

       - ks = X11 keysym number, as shown by xev (in the table, the keysym
              name is listed in the line after each keysym number)



       \ Key | CapsLock+ CapsLock LeftCtrl RightCtrl
Layout \ | LeftCtrl
---------------+--------------------------------------------
default layout 96: no 96: yes 96: yes
                             98: no 98: yes 98: yes

                             kc 66 kc 37 kc 105
                             ks 0xffe5 ks 0xffe3 ks 0xffe4
                             Caps_Lock Control_L Control_R

------------------------------------------------------------

ctrl:nocaps 96: yes 96: yes 96: yes
(CapsLock acts 98: NO 98: yes 98: yes
as additional
Ctrl key) kc 66 kc 37 kc 105
                             ks 0xffe3 ks 0xffe3 ks 0xffe4
                             Control_L Control_L Control_R

------------------------------------------------------------

ctrl:nocaps+ 96: yes 96: yes 96: no 96: NO
compose:rctrl+ 98: yes 98: NO 98: no 98: yes
XKB keymap
(CapsLock acts kc 66 kc 37 kc 105
as additional ks 0xffe3 ks 0xffeb ks 0xff20
Ctrl key, left Control_L Super_L Multi_key
Ctrl key acts as
Super_L/Windows,
right Ctrl key
acts as both
right Ctrl key
and Compose key)


You can see in the last case, that spring 0.98+, although it
recognizes neither the hardware CapsLock key nor the hardware
Ctrl key alone as Ctrl key, it DOES recognize a Ctrl key event when
BOTH keys are pressed, which is weird, but might help narrowing
down the bug. It looks like it would recognize Ctrl key events
only if the X11 keycode for the left Ctrl key (37) AND the X11
keysym Control_L were present in the list of currently pressed keys.


Attached find (combined in ONE file, as I can only upload 1 file):

- /etc/default/keyboard (used for console and X11 keyboard layout in Debian)
- $HOME/.xkbmap (gets loaded in ~/.xinitrc / ~/.xsession using xkbcomp)



If you need any more information, please let me know.


Steps To Reproduce- Configure the X11 keyboard layout to be tested
  (Changes in /etc/default/keyboard need

    udevadm trigger --subsystem-match=input --action=change

  executed by root to be incorporated by X11/event driver)

- Select spring engine for testing in springlobby:
    Edit | Preferences | Left-click on engine | [OK]

- Start single-player game in springlobby with one NullAI bot.

- Try using Ctrl commands, like: left-click on commander, then
  press e.g. Ctrl-3 to assign it to group 3. If there is no
  white number "3" popping up next to the commander, the group
  assignment (and thus the recognition of the configured Ctrl
  key) failed.


Additional Information- OS: Debian testing (amd64)
- springlobby 201
- German 102 keys PS/2 keyboard (no Windows keys)
TagsNo tags attached.
Attached Files
etc-default-keyboard---and---xkbmap (Attachment missing)
Checked infolog.txt for Errors

Activities

berryfoo

2014-10-11 20:08

reporter   ~0013753

Last edited: 2014-10-11 20:09

(Hopefully, this mantis version supports the HTML pre tag to make
the table in the bug report more readable. *sigh*)




Table "Is key XYZ recognized as Ctrl key?"
------------------------------------------
NOTES: - Key names in table header denote *hardware* keys, i.e. what's
         printed on them, not the associated key symbol.

       - 96 = Spring version 0.96
         98 = Spring version 0.98 and above

       - kc = X11 keycode (layout independent), as shown by xev

       - ks = X11 keysym number, as shown by xev (in the table, the keysym
              name is listed in the line after each keysym number)



       \ Key   | CapsLock+   CapsLock   LeftCtrl   RightCtrl
Layout  \      | LeftCtrl
---------------+--------------------------------------------
default layout               96: no     96: yes    96: yes
                             98: no     98: yes    98: yes

                             kc 66      kc 37      kc 105
                             ks 0xffe5  ks 0xffe3  ks 0xffe4
                             Caps_Lock  Control_L  Control_R

------------------------------------------------------------

ctrl:nocaps                  96: yes    96: yes    96: yes
(CapsLock acts               98: NO     98: yes    98: yes
as additional
Ctrl key)                    kc 66      kc 37      kc 105
                             ks 0xffe3  ks 0xffe3  ks 0xffe4
                             Control_L  Control_L  Control_R

------------------------------------------------------------

ctrl:nocaps+     96: yes     96: yes    96: no     96: NO
compose:rctrl+   98: yes     98: NO     98: no     98: yes
XKB keymap
(CapsLock acts               kc 66      kc 37      kc 105
as additional                ks 0xffe3  ks 0xffeb  ks 0xff20
Ctrl key, left               Control_L  Super_L    Multi_key
Ctrl key acts as
Super_L/Windows,
right Ctrl key
acts as both
right Ctrl key
and Compose key)



Issue History

Date Modified Username Field Change
2014-10-11 20:01 berryfoo New Issue
2014-10-11 20:01 berryfoo File Added: etc-default-keyboard---and---xkbmap
2014-10-11 20:08 berryfoo Note Added: 0013753
2014-10-11 20:09 berryfoo Note Edited: 0013753