26

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).

djeikyb
  • 30,245

6 Answers6

25

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.

Takkat
  • 142,284
  • Eheh..My question is why adding my options at these locations is not having any effect. – djeikyb Feb 18 '11 at 23:53
  • @djeikyb: can you also please check (from Xorg.0.log) if there might possibly be more than one instance of the synaptics module loaded (that makes all your custom settings void if the other one was current) – Takkat Feb 19 '11 at 12:08
  • You're right. Start from basics, work up. Anyway, you can see part of my Xorg log now. Looks like the synaptics module is loaded only once. Not sure how to interpret /dev/input, but it's in the question now. – djeikyb Feb 19 '11 at 12:55
  • Nope. Tried it in 10-edev.conf and 50-synaptics.conf. Interestingly, the xorg log does show my options read from the file. – djeikyb Feb 19 '11 at 14:57
  • 1
    @djeikyp: xinput --list --long to show current devices and settings may (or may not) give you additional hints. – Takkat Feb 19 '11 at 16:28
  • Okay. I've got my custom 50-synaptics.conf in under etc. I notice it loads the etc conf folder before the usr/share conf. MatchDevicePath as mouse0 or mice don't work. Tried adding to identifier: pointer, mice, mouse0. What should I look for in xinput? I see the virtual core pointer, the virtual xtest pointer, and my touchpad, as master, slave, slave; respectively. – djeikyb Feb 21 '11 at 01:33
  • Blast. I wonder if something in udev is causing the conflict in the first place. Maybe it's time for a bug report! – djeikyb Feb 23 '11 at 07:41
  • Well, it isn't solved, but you've helped diagnose quite a bit and provided lots of good info, therefore I award thee the bounty. – djeikyb Feb 24 '11 at 19:14
  • Thank you - very sweet - but tastes bitter because I couldn't really answer your question. If only someone came up with a real good answer. I'll clean this up a bit by deleting some dated comments. – Takkat Feb 24 '11 at 19:49
9

I'm using Ubuntu 11.04 and apparently the gnome settings daemon is the one overriding the synaptics options wherever you put them. In fact, for the "TapButton" option, the values djkeikyb is trying to use are the default and the daemon inverts them.

Running a script with the synclient commands at startup was not an option, because of the virtual terminal thing described by djkeikyb and also because any time I connected/disconnected my USB mouse, the values were also reset.

I decided to disable the settings daemon for the mouse/touchpad properties. In a terminal type:

gconf-editor

Then go to apps > gnome_settings_daemon > plugins > mouse and dismiss the active option. Of course, the side effect is not being able to edit the mouse properties under System > Preferences > Mouse

  • 2
    Interesting. Unfortunately, I believe this is an upstream bug (although I've been too lazy and busy to write a proper report). I experience this problem using Arch Linux with nary a trace of gnome. However, with this method are you able to have your Xorg settings respected? – djeikyb Nov 27 '11 at 05:55
  • 1
    Yes. I put an "Option" in the /usr/share/X11/xorg.conf.d/50-synaptics.conf file (lowest priority according to Takkat, right?) and it is working properly. – anthomas8 Feb 27 '12 at 22:48
  • 10
    Inspired by this answer I found a similar solution. Run dconf-editor (apt-get install it if you have to), go to org.gnome.settings-daemon.plugins.mouse, uncheck active. I confirm that this solution allowed me to make my /etc/X11/xorg.conf.d/50-synaptics.conf settings be respected in Ubuntu 12.04 beta. @djeikyb, you should mark this answer accepted, because it's the only one that actually solves the subject issue. – Nikita Volkov Apr 18 '12 at 10:42
  • 1
    @mojojojo I'll install the latest Ubuntu and give it a go once I've got a spare minute. Looks promising. – djeikyb Apr 22 '12 at 20:01
  • 1
    @djeikyb You should really up this, but of course only if it worked for you. It worked for me (I used both gconf-editor and dconf-editor). Also make sure you use "event*" as the numbers can change. – pjv Dec 25 '12 at 21:49
  • 1
    @NikitaVolkov, didn't worked for me in 13.04... – tutuca May 05 '13 at 14:10
  • 3
    Works for me on Debian 8 Jessie – aaaaaa Nov 30 '15 at 00:04
  • Debian 8 Jessie here too. Wanted to disable touchpad scrolling on startup vs. running a script with synclient commands. Tried xorg.conf/xorg.conf.d as well. dconf-editor (which I wasn't familar with) worked: org-->gnome->settings-daemon->peripherals->touchpad – AAAfarmclub Nov 16 '16 at 23:02
2

At this point it looks like a bug. I'll move forward with asking around the synaptic and xorg mailing lists and filing a bug report. This is my unsatisfactory answer :/

While I haven't had the opportunity to test my options in Ubuntu 11.04 yet, synaptics and xorg also do not work as expected in an up to date (Thu Jun 2 03:09:43 PDT 2011) Arch install. Thus, it appears to be an upstream bug, not specifically Ubuntu.

djeikyb
  • 30,245
1

Using 11.04 upgraded in series from 9.04 or so if it matters. udev did not work, using /etc/udev/rules.d/99-touchpad-borders.rules

ACTION!="add|change", GOTO="xorg_synaptics_end"
KERNEL!="event*", GOTO="xorg_synaptics_end"

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

# synclient for settings

ENV{x11_options.RightEdge}="5200"
ENV{x11_options.LeftEdge}="1744"
ENV{x11_options.TopEdge}="2000"
ENV{x11_options.BottomEdge}="4256"

LABEL="xorg_synaptics_end"

synclient showed no change in settings after reboot. xorg.conf.d did work, with /usr/share/X11/xorg.conf.d/55-touchpad-border.conf

Section "InputClass"
        Identifier "touchpad border config"
        MatchIsTouchpad "on"
        Driver "synaptics"
        Option "RightEdge" "5200"
        Option "LeftEdge" "1744"
        Option "TopEdge" "2000"
        Option "BottomEdge""4256"
EndSection

restarting X had the changes show up with synclient.

gpointing-device-settings was also mentioned somewhere as a solution.

Misaki
  • 11
  • What actually worked for you? Can you clarify? It sounds like you're saying editing xorg.conf.d files solved your problem, but it definitely did not for me under 10.10 Ubuntu. – djeikyb Jun 16 '11 at 04:43
0

Not sure if it helps but if you save it as xorg.conf it should work

robin0800
  • 1,092
  • 5
    xorg.conf is deprecated. If possible, I'd like to do this The Right Way. Also, I just catted that section into an otherwise empty /etc/X11/xorg.conf, and no cigar. – djeikyb Feb 14 '11 at 12:11
0

does

Option "SHMConfig" "on"

still apply? At least I still have it in my old configfile. Couldnt hurt putting that one in, could it?

marto
  • 1,391
  • I use synclient without this option. If I understand: if it is required, it must be on for any synaptic configuration. Thus the option is not useful. Correct? Incidentally, this has no effect on my current Arch install that has the same problem. Hopefully I can get Ubuntu dual-booting on this netbook so I can properly maintain the question here at askubuntu :) – djeikyb Jun 16 '11 at 05:00
  • apparently, shmconfig goes through HAL, which is no longer used. or something.. – marto Jun 19 '11 at 14:58
  • That makes sense. The current current hardware detection scheme is a mash of udev and dbus. I can't help but think this is a udev problem at its core, especially since my synclient settings are reset on acpi events like hibernate. – djeikyb Jun 19 '11 at 18:32