Re: [rfd] saving old mice -- button glitching/debouncing
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2018-12-15 00:20:15
Also in:
lkml
Hi Pavel, On Fri, Dec 14, 2018 at 3:24 PM Pavel Machek [off-list ref] wrote:
I believe I have hardware problem, but I'm kind of hoping software
could help me...?
Mouse wheel on my machine started glitching on my machine, generating
double-clicks when I click it once. Which unfortunately is quite
annoying: texts are pasted twice, two tabs are closed instead of one,
....
Event: time 1544733054.903129, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90003
Event: time 1544733054.903129, type 1 (EV_KEY), code 274 (BTN_MIDDLE), value 1
Event: time 1544733054.903129, -------------- EV_SYN ------------
1544733054.967251, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90003
Event: time 1544733054.967251, type 1 (EV_KEY), code 274 (BTN_MIDDLE), value 0
Event: time 1544733054.967251, -------------- EV_SYN ------------
Event: time 1544733054.975144, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90003
Event: time 1544733054.975144, type 1 (EV_KEY), code 274 (BTN_MIDDLE), value 1
Event: time 1544733054.975144, -------------- EV_SYN ------------
: time 1544733065.127190, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90003
Event: time 1544733065.127190, type 1 (EV_KEY), code 274 (BTN_MIDDLE), value 0
Event: time 1544733065.127190, -------------- EV_SYN ------------
Now, I could just buy a new mouse, but it seems that most optical mice
die like this... so maybe it would be nice to have an option to
debounce the buttons, so that the useful life of mice is extended a
bit?
(So... I have two mice with that fault -- cheap to replace, but button
in thinkpad X220 started doing that, too. That one will not be so
cheap to fix :-( ).
It is possible that some X versions already do something like this.
Patch is obviously not ready; but:
a) would it be useful to people
b) would it be acceptable if done properly? (cmd line option to
enable, avoiding duplicate/wrong events?)I'd say if you are attached to failing hardware, solve it in userspace. Have a utility/daemon that you run (from udev?) that: - "grabs" input device with EVIOCGRAB - does the debouncing/filtering/adjusting for the dirty sensor - reinject events back into kernel with /dev/uinput It will add some latency, but should be workable. Thanks. -- Dmitry