With xinput!
Note that your device name will probably be different from the "Alps PS/2 ALPS DualPoint TouchPad" that's used here -- likely something like "SynPS/2 Synaptics TouchPad". Your available options will probably vary too, both depending on your pad and on your version of xserver-xorg-input-synaptics.
Code:
zorael@laughlyn:~$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB Receiver id=12 [slave pointer (2)]
⎜ ↳ Logitech USB Receiver id=13 [slave pointer (2)]
⎜ ↳ DualPoint Stick id=15 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=16 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
[...]
zorael@laughlyn:~$ xinput list-props "AlpsPS/2 ALPS DualPoint TouchPad"
# or by id 16, but id may change if you have more pointer devices attached when starting X
# so especially if in a script, better to refer to the device by name
Device 'AlpsPS/2 ALPS DualPoint TouchPad':
Device Enabled (126): 1
Coordinate Transformation Matrix (128): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (256): 1
Device Accel Constant Deceleration (257): 2.500000
Device Accel Adaptive Deceleration (258): 1.000000
Device Accel Velocity Scaling (259): 12.500000
Synaptics Edges (280): 300, 1700, 210, 1190
Synaptics Finger (281): 90, 90, 999
Synaptics Tap Time (282): 80
Synaptics Tap Move (283): 120
Synaptics Tap Durations (284): 20, 80, 80
Synaptics Tap FastTap (285): 0
Synaptics Middle Button Timeout (286): 75
Synaptics Two-Finger Pressure (287): 141
Synaptics Two-Finger Width (288): 7
Synaptics Scrolling Distance (289): 40, 40
Synaptics Edge Scrolling (290): 1, 1, 0
Synaptics Two-Finger Scrolling (291): 0, 0
Synaptics Move Speed (292): 0.300000, 1.650000, 0.050000, 0.000000
Synaptics Edge Motion Pressure (293): 15, 80
Synaptics Edge Motion Speed (294): 1, 195
Synaptics Edge Motion Always (295): 0
Synaptics Off (296): 0
Synaptics Locked Drags (297): 0
Synaptics Locked Drags Timeout (298): 5000
Synaptics Tap Action (299): 1, 1, 1, 1, 1, 2
Synaptics Click Action (300): 1, 1, 1
Synaptics Circular Scrolling (301): 0
Synaptics Circular Scrolling Distance (302): 0.100000
Synaptics Circular Scrolling Trigger (303): 0
Synaptics Circular Pad (304): 0
Synaptics Palm Detection (305): 0
Synaptics Palm Dimensions (306): 10, 100
Synaptics Coasting Speed (307): 15.000000, 15.000000
Synaptics Pressure Motion (308): ... of unknown type CARDINAL
Synaptics Pressure Motion Factor (309): 1.000000, 1.000000
Synaptics Grab Event Device (310): 1
Synaptics Gestures (311): 1
Synaptics Capabilities (312): 1, 1, 1, 1, 1, 1, 0
Synaptics Pad Resolution (313): 1, 1
Synaptics Area (314): 0, 0, 0, 0
Synaptics Noise Cancellation (315): 2, 2
Device Product ID (245): 2, 8
Device Node (246): "/dev/input/event16"
From the man page of synaptics;
Code:
Synaptics Tap Action
8 bit, up to MAX_TAP values (see synaptics.h), 0 disables an element. order: RT, RB, LT, LB, F1, F2, F3.
RT is right top corner, RB right bottom corner, LT left top corner, LB left bottom corner, F1 non-corner one finger tap, F2 non-corner two finger tap, F3 non-corner three finger tap.
So to disable all taps everywhere with any number of fingers;
Code:
$ xinput set-prop "AlpsPS/2 ALPS DualPoint TouchPad" "Synaptics Tap Action" 0 0 0 0 0 0 0
An example of an easy-to-maintain script with which you can set properties;
Code:
#!/bin/bash
# this script sets some touchpad settings
# see 'man synaptics' for information about properties
DEVICE="AlpsPS/2 ALPS DualPoint TouchPad" # change to match your device name
DELAY=0.1
setprop() {
# sets a property.
# arg $1: property name, rest ($@) are property values
local property="$1"
# we've saved $1 in $property, so shift it away so only the values remain
shift
# print what we're doing
echo "-- ${property}: "$@""
xinput set-prop "$DEVICE" "$property" "$@"
errlvl=$?
# check if the xinput command output errors and if so, call err() to exit
[ $errlvl -gt 0 ] && err $? "$property" "$@"
# pausing a bit to let the driver do its thing
# some time ago doing this too fast could muck stuff up royally
sleep $DELAY
}
err() {
# spouts an error and exits.
# arg $1: errorlevel, arg $2: property name, rest ($@) are property values
local errlvl=$1
local property="$2"
# shift away $1 and $2 so only the values remain
shift 2
echo # padding
echo "ERROR: xinput threw errorlevel $errlvl when trying to set property \"$property\" with values: "$@""
exit $errlvl # end script
}
# ------ execution start
echo "Pad settings for ${DEVICE}:"
# list available properties with 'xinput list-props "$DEVICE"'
setprop "Synaptics Tap Action" 0 0 0 0 0 0 0
# 0 disables an element. order: RT RB LT LB F1 F2 F3.
setprop "Synaptics Edge Scrolling" 1 1 0
# 3 values, vertical, horizontal, corner.
setprop "Synaptics Coasting Speed" 15 15
# FLOAT, 2 values, speed, friction
#setprop "Synaptics PROPERTYNAME" value1 value2 value3 ...
This is more or less what I use, but I set some additional values (Move Speed, Noise Cancellation, etc) -- and I certainly don't disable taps. D:
Save it as executable in ~/.config/autostart/, or in ~/.kde/Autostart/, or wherever as long as it ends up being run upon X start.
Bookmarks