[ltp] Disabling touchpad buttons only

Richard Neill linux-thinkpad@linux-thinkpad.org
Thu, 24 Jan 2008 00:34:57 +0000


Marius Gedminas wrote:
> On Tue, Jan 22, 2008 at 05:26:25PM +0000, Richard Neill wrote:
>> Marius Gedminas wrote:
>>> Lenovo T61 has the UltraNav thingy: trackpoint with three buttons and a
>>> touchpad with two buttons.
>>> Is it possible to disable the buttons below the touchpad, but keep the
>>> touchpad itself active?
>> I think so.
>>
>> 1)Write separate udev rules to create symlinks /dev/input/trackpoint, and 
>> /dev/input/touchpad
> 
> Thanks for the encouragement!
> 
> I can see now (by switching to a text console, catting the device files,
> and wiggling the mice) that touchpad events come from
> /dev/input/by-path/platform-i8042-serio-1-mouse, while trackpoint events
> come from /dev/input/by-path/platform-i8042-serio-2-mouse.
> 
> Previously I tried catting those files from an xterm, which didn't work
> too well (trackpoint events were visible, touchpad events weren't).


Great. You should be able to write udev rules now so that you have 
symlinks /dev/input/trackpoint -> /dev/input/mouseX    (where X is 
dynamic, and may change, but the symlink always points in the right place).


> 
>> 2)Configure these devices separately in xorg.conf, one as CorePointer, the 
>> other as SendCoreEvents.  Don't use /dev/input/mice.
> 
> Doesn't opening /dev/input/mouseX automatically remove those events from
> /dev/input/mice? 

No.

I'd like to keep /dev/input/mice for hotpluggable USB mice.

You *might* be able to do this with gpm.

I'd love to see some kind of /dev/switch  which can be used to 
temporarily disconnect a file-handle from the program which has opened 
it, without causing a read-failure. How hard would this be to implement 
in C ?  Is it practical to create something a bit like a transistor, 
whereby a 3rd input causes a pipe to block or not?

> 
> Can I use the 'synaptics' driver with /dev/input/mouseX instead of
> /dev/psaux?  (Reading 'man synaptics' seems to indicate that I can use
> it with /dev/input/eventX.)

The touchpad can be used in 2 ways:

  a)As an event device, with the synaptics driver.
  b)As a mouse device, with a regular mouse driver

Since you don't want any of the advanced features provided by synclient 
etc, use it in the 2nd mode.

> 
>> 3)With the touchpad, map the buttons 1/2  out of the way, so that they send 
>> button 9,10 events. (which will be ignored)
> 
> That would be Option "ButtonMapping" "9 10", right?

Something of the sort. I think it's
   Option "ButtonMapping" "1 2" "9 10"     #source -> dest
but you'll have to test this yourself.

> 
> Is there a way to do the equivalent with the 'synaptics' driver instead
> of 'mouse'?

Perhaps.  I'm afraid I don't know.

> 
> Thanks,
> Marius Gedminas

Lastly, I recommend reconfiguring xorg.conf from a 2nd machine, via SSH; 
also use icewm as your window manager. This speeds up the debug cycle 
greatly. Note that a logout/login cycle will not cause xorg.conf to be 
reloaded; you have to restart the display manager (kdm/gdm/xdm).

HTH,

Richard