You are not logged in.

#1 2017-12-04 15:06:58

VonSieger
Member
Registered: 2017-12-04
Posts: 4

[SOLVED]No Recognition of Special Characters with USB-Keyboard

Hello there,
for password storing, I use an external password device, which emulates an USB-keyboard(https://www.themooltipass.com/).
Since a recent update(maybe three days ago) it cannot type in special characters like '%'. But this only occures in a X-session, so luckely I can access my entire system through the console without Xorg. Nevertheless it is annoying and I cannot login into online services with my computer anymore.
If I try to type in special charaters with my PS2 keyboard it is working fine. I do not have a normal USB-keyboard, so I cannot check, if it works with that one.

/etc/X11/xorg.conf.d/20-keyboard.conf:

Section "InputClass"
        Identifier "keyboard"
        MatchIsKeyboard "yes"
        Option "XkbLayout" "de"
EndSection

/var/log/Xorg.0.log:

[  7020.350] (**) Option "xkb_layout" "de"
[  7020.350] (**) Option "xkb_variant" "deadgraveacute"
[  7020.350] (II) event3  - (II) ROCCAT ROCCAT Kone Pure: (II) is tagged by udev as: Keyboard
[  7020.350] (II) event3  - (II) ROCCAT ROCCAT Kone Pure: (II) device is a keyboard
[  7020.351] (II) config/udev: Adding input device SE Mooltipass (/dev/input/event1)
[  7020.351] (**) SE Mooltipass: Applying InputClass "libinput keyboard catchall"
[  7020.351] (**) SE Mooltipass: Applying InputClass "keyboard"
[  7020.351] (II) Using input driver 'libinput' for 'SE Mooltipass'
[  7020.351] (II) systemd-logind: got fd for /dev/input/event1 13:65 fd 29 paused 0
[  7020.351] (**) SE Mooltipass: always reports core events
[  7020.351] (**) Option "Device" "/dev/input/event1"
[  7020.351] (**) Option "_source" "server/udev"
[  7020.351] (II) event1  - (II) SE Mooltipass: (II) is tagged by udev as: Keyboard
[  7020.351] (II) event1  - (II) SE Mooltipass: (II) device is a keyboard
[  7020.351] (II) event1  - (II) SE Mooltipass: (II) device removed
[  7020.352] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:14.0/usb3/3-5/3-$
[  7020.352] (II) XINPUT: Adding extended input device "SE Mooltipass" (type: KEYBOARD, id 11)
[  7020.352] (**) Option "xkb_layout" "de"
[  7020.352] (**) Option "xkb_variant" "deadgraveacute"
[  7020.352] (II) event1  - (II) SE Mooltipass: (II) is tagged by udev as: Keyboard
[  7020.352] (II) event1  - (II) SE Mooltipass: (II) device is a keyboard

I am not sure, if it is of interest, but I am using the i3-wm.

Thank you for your help!

Last edited by VonSieger (2017-12-04 17:27:24)

Offline

#2 2017-12-04 15:43:15

seth
Member
Registered: 2012-09-03
Posts: 51,299

Re: [SOLVED]No Recognition of Special Characters with USB-Keyboard

Try the behavior with xev and since you point out "special characters" I'd especially check the behavior of "z" and "y" - could be the thing is a qwerty keyboard.

Online

#3 2017-12-04 17:02:11

VonSieger
Member
Registered: 2017-12-04
Posts: 4

Re: [SOLVED]No Recognition of Special Characters with USB-Keyboard

I created an example account on the device:
Username: example
Password: yWhyzZet%5[]()

This is the ouput I became:

With Xorg:
example
ywhYzzet558989

Without Xorg(correct, it's what I wanted to type):
example
yWHYzZET%5[]()

Before I did not realize, that big and small letters are wrong, too. But it can distinguish correcty between 'y' and 'z'.

The output of xev for a correct letter(e in the username):

KeyPress event, serial 33, synthetic NO, window 0x2000001,
    root 0x277, subw 0x0, time 8918989, (-558,496), root:(1686,518),
    state 0x0, keycode 26 (keysym 0x65, e), same_screen YES,
    XLookupString gives 1 bytes: (65) "e"
    XmbLookupString gives 1 bytes: (65) "e"
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x2000001,
    root 0x277, subw 0x0, time 8918990, (-558,496), root:(1686,518),
    state 0x0, keycode 26 (keysym 0x65, e), same_screen YES,
    XLookupString gives 1 bytes: (65) "e"
    XFilterEvent returns: False

Example for a letter, which does not work(%):

KeyPress event, serial 34, synthetic NO, window 0x2000001,
    root 0x277, subw 0x0, time 8922701, (-558,496), root:(1686,518),
    state 0x0, keycode 14 (keysym 0x35, 5), same_screen YES,
    XLookupString gives 1 bytes: (35) "5"
    XmbLookupString gives 1 bytes: (35) "5"
    XFilterEvent returns: False

KeyPress event, serial 34, synthetic NO, window 0x2000001,
    root 0x277, subw 0x0, time 8922701, (-558,496), root:(1686,518),
    state 0x0, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x2000001,
    root 0x277, subw 0x0, time 8922702, (-558,496), root:(1686,518),
    state 0x1, keycode 14 (keysym 0x25, percent), same_screen YES,
    XLookupString gives 1 bytes: (25) "%"
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x2000001,
    root 0x277, subw 0x0, time 8922702, (-558,496), root:(1686,518),
    state 0x1, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

Another wrong letter(W, which becomes w):

KeyPress event, serial 34, synthetic NO, window 0x2000001,
    root 0x277, subw 0x0, time 8922659, (-558,496), root:(1686,518),
    state 0x0, keycode 25 (keysym 0x77, w), same_screen YES,
    XLookupString gives 1 bytes: (77) "w"
    XmbLookupString gives 1 bytes: (77) "w"
    XFilterEvent returns: False

KeyPress event, serial 34, synthetic NO, window 0x2000001,
    root 0x277, subw 0x0, time 8922659, (-558,496), root:(1686,518),
    state 0x0, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x2000001,
    root 0x277, subw 0x0, time 8922660, (-558,496), root:(1686,518),
    state 0x1, keycode 25 (keysym 0x57, W), same_screen YES,
    XLookupString gives 1 bytes: (57) "W"
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x2000001,
    root 0x277, subw 0x0, time 8922660, (-558,496), root:(1686,518),
    state 0x1, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

Offline

#4 2017-12-04 17:12:43

seth
Member
Registered: 2012-09-03
Posts: 51,299

Re: [SOLVED]No Recognition of Special Characters with USB-Keyboard

Try to install xf86-input-evdev and add

Driver "evdev"

to your 20-keyboard.conf
See what happens.

The xev output is obviously suspicious - you seem to never get key releases for the actual key but instead it's pressed twice: once before and once after the shift key is pressed.
I'd blame the device or the kernel, but as you say it works w/o X11, libinput becomes the natural contender.

Online

#5 2017-12-04 17:23:57

VonSieger
Member
Registered: 2017-12-04
Posts: 4

Re: [SOLVED]No Recognition of Special Characters with USB-Keyboard

Installing evdev and editing the .conf file solved the problem.
Thank you very much!

Offline

#6 2017-12-04 17:59:28

seth
Member
Registered: 2012-09-03
Posts: 51,299

Online

#7 2017-12-04 18:17:18

VonSieger
Member
Registered: 2017-12-04
Posts: 4

Re: [SOLVED]No Recognition of Special Characters with USB-Keyboard

Downgrading libiput 1.9.2-1 works as well.
I just took a quick look about the bug report, but i guess it has nothing to do with the speed the characters are typed in.
I can change that setting on my device to 300ms breaks and it still does not work.
So I will have to wait for an update.

Offline

Board footer

Powered by FluxBB