Well, this is not the direct answer, but a suggestion and examples.
If you run xinput
, you will get list of your devices. Then run xinput list-props $id
where $id
is your touchpad id in the list.
You will have a list of options like this:
$ xinput list-props 13
Device 'SynPS/2 Synaptics TouchPad':
Device Enabled (135): 1
Coordinate Transformation Matrix (137): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (268): 1
Device Accel Constant Deceleration (269): 2.500000
Device Accel Adaptive Deceleration (270): 1.000000
Device Accel Velocity Scaling (271): 12.500000
Synaptics Edges (292): 1765, 5371, 1637, 4453
Synaptics Finger (293): 25, 30, 0
Synaptics Tap Time (294): 180
Synaptics Tap Move (295): 234
Synaptics Tap Durations (296): 180, 180, 100
Synaptics ClickPad (297): 1
[...]
You can change all of these on-the-fly with xinput set-prop $id $propId $value
where $id
is the device id, $propId
is property id in brackets and $value
is what you want it to be. For example:
xinput set-prop 13 135 0
sets Device Enabled (135)
to 0
and this will disable the touchpad.
You will need descriptions of properties and a way to make your changes permanent.
Descriptions can be found in man synaptics
, but wait, they are in another cryptic format! Let's see why.
To make changes permanent, you need to create conf file in /etc/X11/xorg.conf.d
, for example 30-tochpad.conf
with contents like these:
Section "InputClass" # you can read more in `man xorg`
Identifier "all touchpads" # just a name for this config
MatchIsTouchpad "on" # enables this config for all detected touchpads
Driver "synaptics" # enables synaptics-specific options below
# This will disable the device
#Option "Ignore" "1"
# There are options that are generic for input-devices or mouse-like devices, see `man evdev`:
Option "ButtonMapping" "0 0 0 0 0 0 0" # i disabled all buttons here, for example
# Here go options from `man synaptics`
Option "VertTwoFingerScroll" "1"
Option "HorizTwoFingerScroll" "1"
Option "PalmDetect" "1"
Option "ClickPad" "0"
# ...etc...
EndSection
So, man synaptics
describes options for xorg.conf
and tells how they correspond to xinput list-props
output.
PS. I tried to configure trackpoint on my ThinkPad X220 to have only two-fingers-scroll enabled, without clicks or mouse movement. I failed. Maybe you will manage to do what you want (there was an option to disable everything but clicks, maybe Synaptics Off
).
Sources, more examples and unicorns:
https://wiki.ubuntu.com/X/Config/Input
https://wiki.archlinux.org/index.php/Touchpad_Synaptics
You can fix it this way:
- Run
sudo -H gedit /etc/default/grub
In the open window edit line
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
it should look this way
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.nopnp"
Save file and run
sudo update-grub
Run
echo "blacklist i2c_hid" | sudo tee /etc/modprobe.d/i2c-hid.conf
sudo depmod -a
sudo update-initramfs -u
echo "synaptics_i2c" | sudo tee -a /etc/modules
Reboot.
Please be careful, do not retype these commands, but copy them and paste into the terminal, or you can break the whole system, if mistype.
This solution disables Plug & Play for i8042
devices, then disables i2c-hid
module and enables synaptics_i2c
instead or it.
Plug & Play triggers a wrong module for this device.
Best Answer
This won't help, but only to provide some info about what's happening.
The latest "Precision touch pad" (PTP) devices, which were developed according to Microsoft's PTP spec for Windows 8, are i2c devices. But, they also have a required fallback to PS/2 mode, which allows them to work with non-i2c-aware OSes.
In PTP mode (i2c), the device simply reports three to five individual X/Y coordinates for touch. No relative mouse data is reported. Windows 8 (and other driver-supported OSes) use these points to either compute a relative mouse delta (single point) or gestures.
In PS/2 mode, obviously, it works like a normal touchpad.
The problem here is that Linux is i2c-aware, but does not have the proper driver to get the HID report descriptor and other necessary data to work with the PTP device. The attempt to work with the i2c device fails, but the device is stuck in i2c mode and won't respond to the Synaptics PS/2 driver.
I have this same laptop, and am going to attempt to install Linux Mint 17 (after I finish imaging the stock install with G4L) I will attempt the 'blacklist i2c-hid' solution/workaround described here:
http://trustdarkness.com/wordpress/dell-sputnik-xps-13-touchpad-settings-not-working-in-updated-ubuntumint/
...and see what happens...
[UPDATE]
The touchpad is working with the blacklist entry (and the touch screen continues to work as well). This is not an ideal solution, because a PTP touchpad running over an i2c bus is capable of so much more than a simple PS/2 touchpad. But, I'm hopeful we'll get a proper driver for i2c and be able to use the full capabilities in Linux soon.
[UPDATE 2]
Doing more research, I found out that the clickpad is part of Synaptics' RMI4 line of products, and the latest kernels have driver support. So, I followed this guide to downloading, building and installing the latest Linux kernel:
http://forums.linuxmint.com/viewtopic.php?f=42&t=131433
After installing, and before rebooting, remove the blacklist entry you created for the clickpad. Reboot, and... now it works better.
The acceleration and speed settings will need to be readjusted, but I've found that tapping and two-finger scrolling works MUCH better in i2c mode than PS/2.
On a side note, the newer kernel/driver for the Intel wireless module in this laptop also seems to provide better performance than what I had in place before.