Ubuntu – 50-synaptics.conf options not working

synapticstouchpadxorg

How does Ubuntu come up with the default synaptics settings? I've got Ubuntu Netbook 10.10 installed on an Eeepc 900. Out of the box TapButton2 was set to 3, and TapButton3 was set to 2.

I have several custom synaptics settings I want as system wide defaults. Right now I use a script with synclient commands I have to run every boot or wake. Pita. It used to be everything went in xorg.conf..which no longer exists. I'm trying to learn the new way, which is apparently conf files at /usr/share/X11/xorg.conf.d.

  1. I edited /usr/share/X11/xorg.conf.d/50-synaptics.conf to look like:

    Section "InputClass"
         Identifier "touchpad catchall"
         Driver "synaptics"
         MatchIsTouchpad "on"
         MatchDevicePath "/dev/input/event*"
         Option "LockedDrags" "1"
         Option "TapButton2"  "2"
         Option "TapButton3"  "3"
    EndSection
  2. I tried modifying the touchpad section of /usr/share/X11/xorg.conf.d/10-evdev.conf, no cigar.

  3. Tried the same 50-synaptics.conf and 10-evdev.conf files in a /etc/X11/xorg.conf.d section.

  4. Tried making a /etc/X11/xorg.conf with the InputClass section above. No cigar.

I always revert the old change first, make the new one, and start a new X session to test (startx -- :2). Something I find interesting is that after any switch to the virtual terminal (ctrl+alt+F1) my synaptics settings are lost. Significant? I don't know.

These are the synclient commands I run:

jake@clyde:~$ cat bin/synset.sh
#!/bin/bash
synclient TapButton2=2
synclient TapButton3=3
synclient LockedDrags=1

Here is what's in /dev/input:

jake@clyde:/dev/input$ ls
by-path/  event0  event1  event2  event3  event4  event5  event6  event7  mice  mouse0
jake@clyde:/dev/input$ ls -l by-path/
total 0
lrwxrwxrwx 1 root root 9 2011-02-18 15:43 platform-eeepc-event -> ../event6
lrwxrwxrwx 1 root root 9 2011-02-18 15:43 platform-i8042-serio-0-event-kbd -> ../event4
lrwxrwxrwx 1 root root 9 2011-02-18 15:43 platform-i8042-serio-1-event-mouse -> ../event7
lrwxrwxrwx 1 root root 9 2011-02-18 15:43 platform-i8042-serio-1-mouse -> ../mouse0

The X log is rather long, but here's some output. If the whole thing would be useful, where is a good place to upload it?

jake@clyde:/var/log$ egrep "synaptics|touchpad" Xorg.0.log
[    16.707] (II) config/udev: Adding input device ETPS/2 Elantech Touchpad (/dev/input/event7)
[    16.707] (**) ETPS/2 Elantech Touchpad: Applying InputClass "evdev touchpad catchall"
[    16.707] (**) ETPS/2 Elantech Touchpad: Applying InputClass "touchpad catchall"
[    16.707] (II) LoadModule: "synaptics"
[    16.707] (II) Loading /usr/lib/xorg/modules/input/synaptics_drv.so
[    16.707] (II) Module synaptics: vendor="X.Org Foundation"
[    16.708] (II) Synaptics touchpad driver version 1.2.2
[    16.708] (II) ETPS/2 Elantech Touchpad: x-axis range 8 - 1144
[    16.708] (II) ETPS/2 Elantech Touchpad: y-axis range 8 - 760
[    16.708] (II) ETPS/2 Elantech Touchpad: device does not report pressure, will use touch data.
[    16.708] (II) ETPS/2 Elantech Touchpad: finger width range 0 - 0
[    16.708] (II) ETPS/2 Elantech Touchpad: buttons: left right double triple
[    16.708] (--) ETPS/2 Elantech Touchpad: touchpad found
[    16.708] (**) ETPS/2 Elantech Touchpad: always reports core events
[    16.708] (II) XINPUT: Adding extended input device "ETPS/2 Elantech Touchpad" (type: TOUCHPAD)
[    16.708] (**) ETPS/2 Elantech Touchpad: (accel) keeping acceleration scheme 1
[    16.709] (**) ETPS/2 Elantech Touchpad: (accel) acceleration profile 0
[    16.709] (**) ETPS/2 Elantech Touchpad: (accel) acceleration factor: 2.000
[    16.709] (**) ETPS/2 Elantech Touchpad: (accel) acceleration threshold: 4
[    16.709] (--) ETPS/2 Elantech Touchpad: touchpad found
[    16.710] (II) config/udev: Adding input device ETPS/2 Elantech Touchpad (/dev/input/mouse0)
[ 15516.377] (--) ETPS/2 Elantech Touchpad: touchpad found
[ 44215.009] (--) ETPS/2 Elantech Touchpad: touchpad found
[ 44358.733] (--) ETPS/2 Elantech Touchpad: touchpad found
[ 44414.761] (--) ETPS/2 Elantech Touchpad: touchpad found
[ 44515.817] (--) ETPS/2 Elantech Touchpad: touchpad found

It looks like this remains unresolved in current Ubuntus (12.04, 12.10).

Best Answer

Ok, let's try to dive into

Xorg custom configuration:

With deprecation of HAL Xorg uses udev for device detection. Therefore any udev rules defined will be taken into account when it comes to configure XServer. However there is no need to define udev rules as Xorg supports configuration files, in fact defining udev rules is disouraged.

Custom configuration files follow this priority:

  • settings from /usr/share/X11/xorg.conf.d/
  • udev rules (I'm not quite sure about udev priority, maybe less)
  • settings from /etc/X11/xorg.conf.d/
  • settings in /etc/X11/xorg.conf

where the good old, still supported xorg.conf has highest priority. Therefore any rules you put in /usr/share/X11/xorg.conf.d/ loose validity when other rules with a higher priority are found.

To define a custom configuration without xorg.conf file you need to create a folder /etc/X11/xorg.conf.d/ where you put your custom device configuration files in (here your 50-synaptics.conf). However any other definitions in an existing xorg.conf file will override these, therefore you need to remove your xorg.conf file.

Unfortunately I have no access to a Synaptics Touchpad and cannot test if it really works. A very good tutorial on how to configure X can be found (though alien) in the Fedora Project Wiki.

Good luck.