Bug 1322 - ctrl:swapcaps kills some control-shift key combos
Summary: ctrl:swapcaps kills some control-shift key combos
Status: RESOLVED NOTABUG
Alias: None
Product: xkeyboard-config
Classification: Unclassified
Component: doc (show other bugs)
Version: unspecified
Hardware: x86 (IA32) Linux (All)
: high normal
Assignee: xkb
QA Contact:
URL:
Whiteboard:
Keywords: NEEDINFO
Depends on:
Blocks:
 
Reported: 2004-09-10 09:39 UTC by Andreas Koch
Modified: 2008-09-02 16:07 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
xkbcomp :0 -xkb zz.xkb after seeting ctrlswapcaps (42.98 KB, text/plain)
2006-04-13 01:44 UTC, Andreas Koch
Details

Description Andreas Koch 2004-09-10 09:39:56 UTC
To reproduce, first reset all XKB options 
 
$ setxkbmap -option -option srvrkeys:none 
 
Now press control-shift-x and watch correct result in xev 
 
$ xev 
... 
KeyPress event, serial 30, synthetic NO, window 0x3400001, 
    root 0x72, subw 0x0, time 18906299, (54,126), root:(1269,151), 
    state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES, 
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False 
 
KeyPress event, serial 30, synthetic NO, window 0x3400001, 
    root 0x72, subw 0x0, time 18906303, (54,126), root:(1269,151), 
    state 0x4, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES, 
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False 
 
KeyPress event, serial 30, synthetic NO, window 0x3400001, 
    root 0x72, subw 0x0, time 18909298, (54,126), root:(1269,151), 
    state 0x5, keycode 53 (keysym 0x58, X), same_screen YES, 
    XLookupString gives 1 bytes: (18) "▒" 
    XmbLookupString gives 1 bytes: (18) "▒" 
    XFilterEvent returns: False 
 
Control-Shift-X is correctly reported as an event. Now swap control and 
caps-lock keys. 
 
$ setxkbmap -option -option srvrkeys:none,ctrl:swapcaps 
 
... and try the same excercise again: 
 
$ xev 
... 
KeyPress event, serial 30, synthetic NO, window 0x3400001, 
    root 0x72, subw 0x0, time 19055073, (66,94), root:(1279,119), 
    state 0x0, keycode 66 (keysym 0xffe3, Control_L), same_screen YES, 
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False 
 
KeyPress event, serial 30, synthetic NO, window 0x3400001, 
    root 0x72, subw 0x0, time 19056614, (66,94), root:(1279,119), 
    state 0x4, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES, 
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False 
 
And that's it, pressing x in addition to control and shift does not generate an 
event. Interestingly, not all control-shift-keys get killed this way. E.g., for 
me, the effect occurs only for the key column containing x,s,w,2. 
 
My keyboard is an IBM Model M connected via PS/2 to a Dell Latitude C810 laptop 
running Gentoo Linux, kernel 2.4.27. XKB is set as follows: 
 
$ setxkbmap -print 
xkb_keymap { 
        xkb_keycodes  { include "xfree86+aliases(qwerty)"       }; 
        xkb_types     { include "complete"      }; 
        xkb_compat    { include "complete"      }; 
        xkb_symbols   { include 
"pc/pc(pc104)+pc/us+ctrl(swapcaps)+srvr_ctrl(no_srvr_keys)"     }; 
        xkb_geometry  { include "pc(pc104)"     }; 
}; 
 
Changing the keyboard type to pc101 and pc102 does not affect the misbehavior I 
observe.
Comment 1 Daniel Stone 2006-04-02 10:38:51 UTC
at a guess, I'd say this is related to the confusion of keycodes and keysyms for
modifier definitions
Comment 2 Sergey V. Udaltsov 2006-04-12 09:36:35 UTC
Andreas, could you please run xkbcomp with output to the text .xkb file - and
attach it? Thanks...

(xkbcomp :0 -xkb zz.xkb)
Comment 3 Andreas Koch 2006-04-13 01:44:25 UTC
Created attachment 5279 [details]
xkbcomp :0 -xkb zz.xkb after seeting ctrlswapcaps

Here's the data requested by svu@gnome.org. Good hunting!
Comment 4 Sergey V. Udaltsov 2006-04-20 08:14:00 UTC
> Here's the data requested by svu@gnome.org. Good hunting!
Well, I see nothing strange or invalid... Could you please do the same thing for
the configuration without "swapcaps"?
Comment 5 Benjamin Close 2008-01-11 02:37:27 UTC
Bugzilla Upgrade Mass Bug Change

NEEDSINFO state was removed in Bugzilla 3.x, reopening any bugs previously listed as NEEDSINFO.

  - benjsc
    fd.o Wrangler
Comment 6 Andriy Gapon 2008-08-21 10:07:16 UTC
From the original report (no event in xev) and my own experience with some keyboards, my educated guess is that the issue is not in X but much closer to hardware.
With my Sven Slim 303 keyboard pressing CapsLock+Shift (in any order) and then arbitrary alpha keys gives the following results: W-S-X "diagonal" is dead, all other keys are good.
I believe that this is how keyboard hardware is wired.

Original reporter can check upon my claim by pressing CapsLock+Shift+X without switching CapsLock and Ctrl and checking if xev reports anything when pressing X.
Comment 7 Andreas Koch 2008-09-02 16:07:59 UTC
(In reply to comment #6)
> Original reporter can check upon my claim by pressing CapsLock+Shift+X without
> switching CapsLock and Ctrl and checking if xev reports anything when pressing
> X.

Your suspicion is indeed correct, holding non-swapped CapsLock+Shift produces no effect when pressing the keys in the 2-w-s-x diagonal. So this does appear to be a limitation of the keyboard hardware.

Many thanks for the hint :-)




Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.