View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0004584 | Spring engine | Linux | public | 2014-10-11 20:01 | 2014-10-11 21:17 |
| Reporter | berryfoo | Assigned To | |||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | new | Resolution | open | ||
| Product Version | 98.0 | ||||
| Summary | 0004584: Ctrl key mapped to CapsLock key doesn't work anymore | ||||
| Description | I 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) | ||||
| Tags | No tags attached. | ||||
| Attached Files | |||||
| Checked infolog.txt for Errors | |||||
|
|
(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)
|