Synaptics touchpad under Xorg lives again

I have a Dell Inspiron 1501 laptop running Arch Linux, and recently, after an update, the Synaptics touchpad stopped working.

The touchpad shows up in dmesg as:

Synaptics Touchpad, model: 1, fw: 6.3, id: 0x180b1, caps: 0xa04713/0x200000
input: SynPS/2 Synaptics TouchPad as /class/input/input7

I was using a USB mouse until I found time to get the touchpad working again. Here’s what I had to do…

I had to first install a driver for the pad – the Arch package was xf86-input-synaptics.

Next, I edited xorg.conf and added:

Section "InputDevice"
        Identifier  "Touchpad"
        Driver      "synaptics"
        Option      "Protocol" "auto"
        Option      "Device" "/dev/input/mice"
        Option      "SendCoreEvents" "true"
        Option      "SHMConfig" "1"
        Option      "TouchpadOff" "0"
        Option      "TapButton1" "1"
EndSection

SHMConfig allows the synclient utility to change settings via shared memory once Xorg is running (don’t enable this on a shared system as other users could potentially change your settings; however, most laptops tend to only be used by one person :)

TouchpadOff should be set to 0 to allow all touchpad functionality.

TapButton1 determines what button click is simulated on a single-finger tap on the touchpad; I’ve set it to 1, which indiates the left mouse button. (You could also set TapButton2 and TapButton3 which decide what button press to simulate for two-finger and three-finger taps respectively.)

Here’s a much more detailed Synaptics Linux driver reference.

Once you’ve added the above to Xorg.conf, add a line to the ServerLayout section to make use of it:

InputDevice    "Touchpad" "CorePointer"

You should now be able to make use of the touchpad.

You should be able to use the synclient utility to verify the settings which are currently in use – for example:

[davidp@masterplan:~]$ synclient -l
Parameter settings:
    LeftEdge                = 1632
    RightEdge               = 5312
    TopEdge                 = 1575
    BottomEdge              = 4281
    FingerLow               = 24
    FingerHigh              = 29
    FingerPress             = 255
    MaxTapTime              = 180
    MaxTapMove              = 221
    MaxDoubleTapTime        = 180
    SingleTapTimeout        = 180
    ClickTime               = 100
    FastTaps                = 0
    EmulateMidButtonTime    = 75
    EmulateTwoFingerMinZ    = 280
    VertScrollDelta         = 100
    HorizScrollDelta        = 100
    VertEdgeScroll          = 0
    HorizEdgeScroll         = 0
    CornerCoasting          = 0
    VertTwoFingerScroll     = 1
    HorizTwoFingerScroll    = 0
    MinSpeed                = 0.4
    MaxSpeed                = 0.7
    AccelFactor             = 0.00995223
    TrackstickSpeed         = 40
    EdgeMotionMinZ          = 29
    EdgeMotionMaxZ          = 159
    EdgeMotionMinSpeed      = 1
    EdgeMotionMaxSpeed      = 401
    EdgeMotionUseAlways     = 0
    UpDownScrolling         = 1
    LeftRightScrolling      = 1
    UpDownScrollRepeat      = 1
    LeftRightScrollRepeat   = 1
    ScrollButtonRepeat      = 100
    TouchpadOff             = 0
    GuestMouseOff           = 0
    LockedDrags             = 0
    LockedDragTimeout       = 5000
    RTCornerButton          = 0
    RBCornerButton          = 0
    LTCornerButton          = 0
    LBCornerButton          = 0
    TapButton1              = 1
    TapButton2              = 0
    TapButton3              = 0
    ClickFinger1            = 1
    ClickFinger2            = 1
    ClickFinger3            = 1
    CircularScrolling       = 0
    CircScrollDelta         = 0.1
    CircScrollTrigger       = 0
    CircularPad             = 0
    PalmDetect              = 0
    PalmMinWidth            = 10
    PalmMinZ                = 199
    CoastingSpeed           = 0
    PressureMotionMinZ      = 29
    PressureMotionMaxZ      = 159
    PressureMotionMinFactor = 1
    PressureMotionMaxFactor = 1
    GrabEventDevice         = 1

One extra feature I discovered after setting this up is the ability to scroll via a double-fingered drag on the touchpad – if you drag two fingers along the pad, it simulates a mousewheel being rotated, for easy scrolling. Really quite useful.

6 thoughts on “Synaptics touchpad under Xorg lives again”

  1. Seriously, just get a Mac and stop having to worry about this stupid stuff.

    Also: this is your own laptop. You yourself say that you’re not worried about it being more than a single-user machine. Why, then, is your username “davidp”?

    (Also, if comments will appear in a normal proportionally-spaced font, why is this textarea styled as 10 point Courier New?)

  2. @Sam: Heh, maybe one day. For now though, I’m happy with Linux, and happy to put up with the occasional fix needed when I upgrade stuff.

    As for the username – at PIPEX, my username on all machines was ‘davidp’, so I used that on my personal machines, too (muscle memory is good). These days, my username at work is just ‘dave’, but I’ve pretty much stuck with ‘davidp’ at home.

    As for the comments area being in a Monospace font, well, that’s how I want it :)

Comments are closed.