Re: [RFC][PATCH] "Disable Trackpad while typing" on Notebooks withh a PS/2 Trackpad

Hans-Georg Thien
2003-05-02T11:29:33Z

Andi Kleen wrote:
> Hans-Georg Thien <1682-600@onlinehome.de> writes:
>
>
>>The short story
>>---------------
>>The trackpad on the MacIntosh iBook Notebooks have a feature that
>>prevents unintended trackpad input while typing on the keyboard. There
>>are no mouse-moves or mouse-taps for a short period of time after each
>>keystroke.
>
>
> Very nice. In fact I wanted something like this for my ibook for a
> long time.
>
> But it won't work on an ibook of course because it doesn't use the
> pc_keyb driver. Instead it uses the Input layer for the adb device.
> In fact in 2.5 there is only the input layer for everything including
> PC keyboards. It should be probably moved there too.
>
Sounds good! I will look into 2.5 soon. But I fear that a lot of time
will pass until 2.6 is available and I think it is a good interim
solution for the 2.4 users.

> One suggestion: don't make it a CONFIG_*. Recompiling a kernel
> to change things like that is not good. Make it an ioctl that
> can be configured at runtime.
>
that's why I would prefer a LKM instead of a kernel patch. If you know a
clean way to save/restore irq-handlers please let me know. That would
also allow to make it portable to other platforms like Apple iBook or
notebooks with other than PS/2 trackpads.

Implementing an ioctl() is a nice idea too. But why not have it
configurable via the /proc interface? If you use ioctl() you still need
to write a userspace program. Ok, that's not difficult, but I think it's
more comfortable if you can simply use

#/etc/rc.d/trackpad, set trackpad delay time
echo "trackpad delay=2000" > /proc/something

#/etc/hotplug??? external mouse is just plugged in, disable trackpad
echo "trackpad disable=1" > /proc/something

#/etc/hotplug??? external mouse is just revmoved, re-enable trackpad
echo "trackpad disable=0" > /proc/something

> Another one: the disable_trackpad_timer_while_typing variable is not
> really needed. You can manage all state by checking the timer with
> timer_pending()
>
yes ok, so I can save one variable. But I would than have to make the
enable_trackpad_timer a static global var. That's not really bad, but I
feel that "complex datastructures" better hidden in a function, - but
it's only a "feeling"

-Hans