[lkml]   [2003]   [Aug]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: PROBLEM: keyboard shift not registered under fast typing or auto-repeat
On Tue, Aug 26, 2003 at 08:38:50PM -0400, Carl Nygard wrote:

> Summary: Keyboard shift state not registered under fast typing or
> autorepeat
> If someone can help point me where to look at the code, I've already
> looked into ./drivers/char/keyboard.c but didn't see anything obvious.
> More specific help would be appreciated.

You must look at input/input.c at occurrences of repeat_key.
(And afterwards at char/keyboard.c at kbd_event, kbd_keycode.)

You'll see that the current 2.6 code ignores a lot of what the keyboard
is telling us and synthesizes its own events.

What happens in your autorepeat case:
- Press a key, repeat_key is set to its keycode.
If you keep it pressed then the keyboard repeats are ignored,
but the kernel generates its own repeats using a timer.
- Press Shift, repeat_key is set to its keycode.
Now the timer repeat generates repeats of the Shift-down event,
but that does not generate keyboard input.

But in your autorepeat case the kernel does precisely what the
keyboard also would have done: repeat the last key that was pressed.
Also the hardware keyboard does not send anything after Press A,
Press Shift, Release Shift.

Incidentally, both add_keyboard_randomness() and add_mouse_randomness()
are called - we invent more randomness than one might have thought
at first.


> Kernel doesn't register shift state when typing quickly. Example, 'ls
> *' shows up as 'ls 8' when typed fast. Also, holding '-' key down, once
> it's repeating, shift key makes no difference.

So, the first part of what you say, when true, would be a bug.
But a bug difficult to distinguish from a finger coordination error.
The second part is correct behaviour.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:48    [W:0.536 / U:1.128 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site