dvorak works fine, but ctrl+<foo> is wrong (not even qwerty)

Dieter Plaetinck dieter at plaetinck.be
Thu Nov 20 00:24:56 PST 2008


Hi list,
I'm using:
xorg 7.4
xorg-server 1.5.3
xkeyboard-config 1.4

I'm using a regular ps/2 azerty keyboard but with dvorak layout.  The
problem is the dvorak layout by itself works fine, but when I press (and
hold) ctrl the other buttons behave totally differently, some seem to be
qwerty again but sometimes it's even different.
I test this in urxvt and xterm, so no gtk or gnome is involved (not that
I know)
Examples: (xev output follows later)
* ctrl+c becomes ctrl+i (dvorak c is on qwerty i)
* ctrl+j on dvorak does not become ctrl+c (what it would be in qwerty).
* ctrl+a only produces a ctrl character.

I have this problem both with hal hotplugging and with the classic
method (autoadddevices false).
I have this with both layout dvorak and dvorak-intl.
setxkbmap -layout dvorak[-intl] doesn't change anything

dieter at dieter-ws ~ $ setxkbmap -v
Trying to build keymap using the following components:
keycodes:   xfree86+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+us(dvorak-intl)
geometry:   pc(pc104)

( I posted my xorg.conf and fdi file here:
http://bbs.archlinux.org/viewtopic.php?pid=451182#p451182 )

dieter at dieter-ws ~ $xmodmap -pke # some relevant keys
keycode  31 = c C c C ccedilla dead_abovedot
keycode  38 = a A a A agrave
keycode  39 = o O o O ocircumflex
keycode  40 = e E e E eacute
keycode  41 = u U u U ucircumflex
keycode  42 = i I i I icircumflex


And now, the xev's:

* xev ctrl+c (press+hold ctrl, press c, release c, release ctrl !)
KeyPress event, serial 32, synthetic NO, window 0x1c00001,
    root 0x188, subw 0x0, time 1817959, (170,-29), root:(196,66),
    state 0x10, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

FocusOut event, serial 32, synthetic NO, window 0x1c00001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 32, synthetic NO, window 0x1c00001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 32, synthetic NO, window 0x0,
    keys:  4294967176 0   0   0   32  0   0   0   0   0   0   0   0
0   0   0
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0

KeyRelease event, serial 32, synthetic NO, window 0x1c00001,
    root 0x188, subw 0x0, time 1820112, (170,-29), root:(196,66),
    state 0x14, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False



* xev ctrl+j

KeyPress event, serial 29, synthetic NO, window 0x1c00001,
    root 0x188, subw 0x0, time 1240357, (171,-26), root:(197,69),
    state 0x10, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyPress event, serial 32, synthetic NO, window 0x1c00001,
    root 0x188, subw 0x0, time 1241550, (171,-26), root:(197,69),
    state 0x14, keycode 54 (keysym 0x6a, j), same_screen YES,
    XLookupString gives 1 bytes: (0a) "
"
    XmbLookupString gives 1 bytes: (0a) "
"
    XFilterEvent returns: False

KeyRelease event, serial 32, synthetic NO, window 0x1c00001,
    root 0x188, subw 0x0, time 1241644, (171,-26), root:(197,69),
    state 0x14, keycode 54 (keysym 0x6a, j), same_screen YES,
    XLookupString gives 1 bytes: (0a) "
"
    XFilterEvent returns: False

KeyRelease event, serial 32, synthetic NO, window 0x1c00001,
    root 0x188, subw 0x0, time 1242297, (171,-26), root:(197,69),
    state 0x14, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False


* xev ctrl+a (press+hold ctrl, press a, release a, release ctrl !)

KeyPress event, serial 29, synthetic NO, window 0x1800001,
    root 0x188, subw 0x0, time 16768525, (171,-26), root:(185,38),
    state 0x10, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

FocusOut event, serial 32, synthetic NO, window 0x1800001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 32, synthetic NO, window 0x1800001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 32, synthetic NO, window 0x0,
    keys:  4294967290 0   0   0   32  0   0   0   0   0   0   0   0   0 
   0   0
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0

KeyRelease event, serial 32, synthetic NO, window 0x1800001,
    root 0x188, subw 0x0, time 16770786, (171,-26), root:(185,38),
    state 0x14, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False


* xev a:
KeyPress event, serial 29, synthetic NO, window 0x1c00001,
    root 0x188, subw 0x0, time 1778583, (166,-26), root:(192,69),
    state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

KeyRelease event, serial 32, synthetic NO, window 0x1c00001,
    root 0x188, subw 0x0, time 1778694, (166,-26), root:(192,69),
    state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False



Is there anyone who understands anything of this?
Thanks,
Dieter




More information about the xorg mailing list