Monday, February 22, 2010

Configure Your Synaptic Touchpad With udev

Editors Note -
Configuring the Touchpad in Debian using udev no longer works. Now you have to configure it through xorg. Use this guide to configure your touchpad settings.

----

xserver-xorg-input-synaptics 1.2.1-1 changed the handling of the synaptic touchpad driver from HAL to udev. Due to the switch, custom configuration files in /etc/hal/fdi/policy/ no longer work. In order to get the touchpad to tap to click, horizontal scroll, vertical scroll etc you need to write a udev rules file.

In a terminal type:
sudo gedit /etc/udev/rules.d/65-xorg-synaptics-hubi.rules

In this file copy:
ACTION!="add|change", GOTO="xorg_synaptics_hubi_end"
KERNEL!="event*", GOTO="xorg_synaptics_hubi_end"

ENV{ID_INPUT_TOUCHPAD}!="1", GOTO="xorg_synaptics_hubi_end"

ENV{x11_driver}="synaptics"
ENV{x11_options.VertEdgeScroll}="true"
ENV{x11_options.HorizEdgeScroll}="true"

LABEL="xorg_synaptics_hubi_end"

In this file you can add options and values for ever aspect of the synaptic touchpad driver and configure it to your finger size and personal preferences.

For a list of options for the synaptic touchpad
In a terminal type:
man synaptics

Here is an example I wrote for the Dell Mini 9/Vostro A90
ACTION!="add|change", GOTO="xorg_synaptics_hubi_end"
KERNEL!="event*", GOTO="xorg_synaptics_hubi_end"

ENV{ID_INPUT_TOUCHPAD}!="1", GOTO="xorg_synaptics_hubi_end"

ENV{x11_driver}="synaptics"
ENV{x11_options.LeftEdge}="1600"
ENV{x11_options.RightEdge}="5000"
ENV{x11_options.TopEdge}="1600"
ENV{x11_options.BottomEdge}="4200"
ENV{x11_options.FingerLow}="24"
ENV{x11_options.FingerHigh}="28"
ENV{x11_options.FingerPress}="255"
ENV{x11_options.MaxTapTime}="180"
ENV{x11_options.MaxTapMove}="220"
ENV{x11_options.MaxDoubleTapTime}="180"
ENV{x11_options.SingleTapTimeout}="180"
ENV{x11_options.ClickTime }="100"
ENV{x11_options.FastTaps}="1"
ENV{x11_options.EmulateMidButtonTime}="80"
ENV{x11_options.EmulateTwoFingerMinZ}="66"
ENV{x11_options.EmulateTwoFingerMinW}="12"
ENV{x11_options.VerteScrollDelta}="100"
ENV{x11_options.HorizScrollDelta}="100"
ENV{x11_options.VertEdgeScroll}="true"
ENV{x11_options.HorizEdgeScroll}="true"
ENV{x11_options.CornerCoasting}="0"
ENV{x11_options.VertTwoFingerScroll}="false"
ENV{x11_options.HorizTwoFingerScroll}="false"
ENV{x11_options.MinSpeed}="0.4"
ENV{x11_options.MaxSpeed}="0.7"
ENV{x11_options.AccelFactor}="0.00995"
ENV{x11_options.EdgeMotionMinZ}="30"
ENV{x11_options.EdgeMotionMaxZ}="160"
ENV{x11_options.EdgeMotionMinSpeed}="1"
ENV{x11_options.EdgeMotionMaxSpeed}="400"
ENV{x11_options.EdgeMotionUseAlways}="0"
ENV{x11_options.UpDownScrolling}="1"
ENV{x11_options.LeftRightScrolling}="1"
ENV{x11_options.UpDownScrollRepeat}="1"
ENV{x11_options.LeftRightScrollRepeat}="1"
ENV{x11_options.ScrollButtonRepeat}="100"
ENV{x11_options.TouchpadOff}="0"
ENV{x11_options.GuestMouseOff}="0"
ENV{x11_options.LockedDrags}="0"
ENV{x11_options.LockedDragTimeout}="5000"
ENV{x11_options.RTCornerButton}="0"
ENV{x11_options.RBCornerButton}="0"
ENV{x11_options.LTCornerButton}="0"
ENV{x11_options.LBCornerButton}="0"
ENV{x11_options.TapButton1}="1"
ENV{x11_options.TapButton2}="2"
ENV{x11_options.TapButton3}="3"
ENV{x11_options.ClickFinger1}="1"
ENV{x11_options.ClickFinger2}="2"
ENV{x11_options.ClickFinger3}="0"
ENV{x11_options.CircularScrolling}="0"
ENV{x11_options.CircScrollTrigger}="0"
ENV{x11_options.CircScrollDelta}="0"
ENV{x11_options.PalmDetect}="false"
ENV{x11_options.PalmMinWidth}="10"
ENV{x11_options.PalmMinZ}="200"
ENV{x11_options.CoastingSpeed}="0"
ENV{x11_options.PressureMotionMinZ}="30"
ENV{x11_options.PressureMotionMaxZ}="160"
ENV{x11_options.PressureMotionMinFactor}="1"
ENV{x11_options.PressureMotionMaxFactor}="1"
ENV{x11_options.GrabEventDevice}="1"
ENV{x11_options.AreaLeftEdge}="0"
ENV{x11_options.AreaRightEdge}="0"
ENV{x11_options.AreaTopEdge}="0"
ENV{x11_options.AreaBottomEdge}="0"
ENV{x11_options.JumpyCursorThreshold}="0"

LABEL="xorg_synaptics_hubi_end"

You can download my 65-xorg-synaptics-hubi.rules here.

No comments:

Post a Comment