37

The default setting for synaptics touchpads includes a paste functionality mapped to the upper right corner of the touchpad. I can disable this behavior by running the command

synclient RTCornerButton=0

But every time I reboot my settings are reverted. How do I prevent this from happening?

12 Answers 12

21

You need to put the settings in a xorg.conf file as follows:

sudo gedit /usr/share/X11/xorg.conf.d/60-synaptics-options.conf 

In the new file, type

Section "InputClass"
  Identifier "touchpad catchall"
  Driver "synaptics"
  MatchIsTouchpad "on"
  MatchDevicePath "/dev/input/event*"

  Option "RTCornerButton" "0"

EndSection
7
  • 17
    You shouldn't make local changes to files in /usr/share. Instead put the new file under /etc/X11/xorg.conf.d/.
    – jdthood
    Mar 27, 2014 at 20:15
  • @jdthood This answer suggested editing /etc/X11/xorg.conf Jan 28, 2016 at 21:49
  • How do I know what number I should put in the file name, according to my distribution (Ubuntu 16.04)? Some say 60-synaptics-options.conf, other say 50-, 51-... Oct 11, 2017 at 12:56
  • 1
    @PlasmaBinturong The number starting the file name indicates the order in which the configuration files are applied; lower numbered files are applied first.
    – FThompson
    Nov 27, 2018 at 7:00
  • @jdthood There's no such directory /etc/X11/xorg.conf.d ...
    – Michael
    Apr 23, 2019 at 1:17
13

Gnome settings daemon may override existing settings (for example ones set in xorg.conf.d) for which, the existing settings in /usr/share/X11/xorg.conf.d/50-synaptics.conf are being ignored. This is how i fixed it.

Run dconf-editor

Edit /org/gnome/settings-daemon/plugins/mouse/ (or /org/cinnamon/settings-daemon/plugins/mouse/ for cinnamon)

Uncheck the active setting

It will now respect your system's existing synaptics configuration.

Then follow monkbroc's solution which will work now.

4
  • Iam using budgie-desktop on top of gdm, but even after this my settings get overriden....
    – rll
    Aug 5, 2016 at 14:11
  • Dear god this took me so long to find. Thanks for the answer it was exactly the bane of all my problems.
    – cra0zy
    Mar 18, 2018 at 12:37
  • @cra0zy, the literal needle in the haystack, eh?
    – ugly_duck
    Mar 23, 2018 at 9:38
  • 1
    I found on Ubuntu 18.04 that something still overrides my conf settings even with the dconf-editor solution. So, I instead added a script to /etc/profile.d/ that sleeps 10 seconds before applying the settings: (sleep 10; synclient TapButton2=3) &.
    – FThompson
    Nov 27, 2018 at 7:05
9

(Maybe) the fastest workaround is to create an entry in the "Startup Applications". It could be found in the unity launcher.

An example entry looks something like this:

Name: Enable Palm Detection

Command: synclient PalmDetect=1

Comment: Enable synclient palm detection

This is essentially equivalent to Augustin Riedinger's answer, but instead of creating the desktop entry manually, we let Ubuntu to do it for us.

3
  • This is not working in MATE
    – userDepth
    Mar 24, 2017 at 3:40
  • 1
    This works also fine in Gnome 3. Thanks a lot !
    – vcarel
    Aug 14, 2017 at 19:43
  • not working, Xubuntu 18.04 Feb 28, 2020 at 11:53
9

The best method that have worked for me is to add your changes into Xsession.d, so it will load automatically for all users when you log into X:

(the file doesn't exists, so you can name it whatever you want. The numbers on the left means the order in which it will be executed in comparison with the other files.)

/etc/X11/Xsession.d/80synaptics

(owned by root, with permissions 644)

For example, you can use this as base:

#https://wiki.archlinux.org/index.php/Touchpad_Synaptics
#Palm dimension
#synclient PalmDetect=1
#synclient PalmMinWidth=4
#synclient PalmMinZ=100

#Touchpad sensibility (move)
#synclient FingerLow=10
#synclient FingerHigh=20

#Click detection
#synclient MaxTapTime=180
#synclient MaxTapMove = 242
#synclient MaxDoubleTapTime = 180

#2 finger = right click
#synclient TapButton2=0
#3 finger = middle click
#synclient TapButton3=2
#click corners
#synclient RBCornerButton=0 MaxTapTime
#synclient RTCornerButton=0
#synclient LTCornerButton=0
#synclient LBCornerButton=0

#Oval instead of rectangular
#synclient CircularPad=1

#TapAndDragGesture
#synclient TapAndDragGesture=1

#scroll in sides
#synclient VertEdgeScroll=0
#synclient HorizEdgeScroll=0
#synclient CornerCoasting=0

#2 finger scroll
#synclient VertTwoFingerScroll=1
#synclient HorizTwoFingerScroll=0

#Disable Touchpad on start
#synclient TouchpadOff=1

Tested in Ubuntu 14.04 and 16.04

5
  • When I do that, and uncomment some stuff like the 2 finger and 3 finger tap, it does not work after I reboot. But it does when I manually enter them in terminal. So what could I be doing wrong?
    – Mason
    Sep 19, 2017 at 17:33
  • @Mason: Are you sure there is not a syntax error (perhaps some strange character introduced if you 'copy-pasted' the code)? Check the /var/log/Xorg.0.log log file for errors or warnings.
    – lepe
    Sep 27, 2017 at 5:48
  • This didn't work for me either, it was probably the most promising answer as well. I logged off and back in to find that the file was still there and the uncommitted line was the way I set it. But I still had to run the command in the terminal to see it work correctly.
    – Chris
    Nov 27, 2017 at 19:37
  • @Chris: It is still working for me in 16.04. I will test it in a clean installation and let you know here (probably there is something I set long time ago that makes it work for me).
    – lepe
    Nov 28, 2017 at 6:07
  • @lepe Thanks for checking into it. I ended up using the "Application Autostart" answer (2 down right now). That seems to work reasonably well. I'm trying to stop the whole TapAndDragGesture garbage. Even after setting it to 0, I still get a small window where it'll still do that. Perhaps this technique would work better, not sure.
    – Chris
    Nov 29, 2017 at 13:52
3

Make synclient options stick between X sessions

Using startx (xinit)

Add any synclient <option>=<value> & lines to .xinitrc before the line which runs your window manager or desktop environment, like so:

## ~/.xinitrc
## X11 startup script; sourced by xinit(1) and its frontend startx(1)

## Set Synaptics touchpad options
synclient RTCornerButton=0 &

## Start desktop environment or window manager of your choice
exec startxfce4
# exec startlxde
# exec startkde
# exec i3
# exec dwm

The above example sets synclient options before running the Xfce desktop environment. Lines beginning with # are comments (they will not be executed).

Using a display manager

The method is the same as for xinit, except you put the synclient lines in a relevant startup script for your display manager, e.g. /etc/GDM/Init/Default.

If you have any doubts, let me refer you to the excellent ArchWiki. Even though its Archlinux-specific, most solutions work in every linux distro due to Arch's DIY nature. Have a good one!

2
  • Won't work either ... May 4, 2014 at 10:29
  • Output of synclient; synclient RTCornerButton=0; synclient?
    – rld.
    Jun 8, 2014 at 5:48
2

I'm using Xubuntu 14.04 and this may not work for you. Open Session and startup or whatever the name is for you. Go to Application Autostart tab, again whatever the name is for you. Click the add button. Keep whatever name and description you want to and in the command type:

synclient RTCornerButton=0

If you want to add multiple lines separate them with a ;

Make sure the command you just created is checked.

1

Add synclient [Var=Value] to the end of ~/.bashrc

example: synclient RTCornerButton=0

This will make you system set this synclient setting every time you log in.

1
  • 2
    This doesn't work ... The params are executed when a bash is launched, not on session open ... May 2, 2014 at 7:17
1

try touchegg, this solution worked on my XPS13 Ubuntu16.04 https://samtinkers.wordpress.com/2016/06/13/3-finger-gestures-in-ubuntu-16-04/

0

All the solutions suggested here don't work for me:

  • I want the config to be in the /home folder as it is local config (so I can keep the parameters even if I change my distrib for instance)
  • .bashrc or .xinitrc don't seem to be executed correctly

So I ended up creating a .desktop file that is autostarted:

cat ~/.config/autostart/touchpadconfig.desktop 
[Desktop Entry]
Name=Touchpad Config
GenericName=Touchpad Config
Comment=Sets better default parameters to touchpad
Exec="synclient VertScrollDelta=40 && synclient AccelFactor=0.1 && synclient RightButtonAreaTop && synclient RightButtonAreaLeft=0"
Terminal=false
Type=Application
Icon=input-mouse
Categories=Settings;
StartupNotify=false

Maybe not the best solution but it works for me.

0

None of the solutions worked for me in Ubuntu 14.04 LTS with Unity desktop. To make the settings permanent, I had to paste the synclient commands to a shell script and add the shell script to my Startup Applications in Unity.

Note: The shell script must start something like #!/bin/bash before the synclient commands, and the permissions have to be changed to executable.

0

With Wayland (still experimental in 17.04, but soon to be the default), you have all the setting you need:

enter image description here

-1
sudoedit /usr/share/X11/xorg.conf.d/50-synaptics.conf

add those lines in the Section "InputClass"

Option "RTCornerButton" "0"

If you're using GNOME or Cinnamon desktop manager, there is a good chance that GNOME/Cinnamon's settings can override your custom settings. To prevent GNOME/Cinnamon's settings override yours, open dconf Editor [dconf-editor] and edit following entry:

/org/gnome/settings-daemon/plugins/mouse/
or
/org/cinnamon/settings-daemon/plugins/mouse/

Uncheck active.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .