Enable horizontal scrolling on synaptics touchpads in ubuntu linux

For some reason horizontal scrolling on synaptics touchpads is disabled by default in ubuntu. This tip will show you how to enable it.

Before we start, it is important to make a backup of the file we are going to edit. If you make a mistake it is possible that your desktop environment will not start. So, open a terminal (Applications, Accessories, Terminal) and run the following command:

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.backup_touchpad

If you do make a mistake and end up without a desktop environment (X won’t start) then simply hit ctrl+alt+F1 to get to a virtual terminal and run the following commands:

sudo cp /etc/X11/xorg.conf.backup_touchpad /etc/X11/xorg.conf
sudo /etc/init.d/gdm restart

You should probably write down the above commands if you don’t know what they mean.

Now that we made a backup, we can edit the file:

sudo gedit /etc/X11/xorg.conf

Find the section similar to this:

Section “InputDevice”
Identifier “Synaptics Touchpad”
Driver “synaptics”
Option “SendCoreEvents” “true”
Option “Device” “/dev/psaux”
Option “Protocol” “auto-dev”
EndSection

Add the following line before the “EndSection” part, under the other options:

Option "HorizEdgeScroll" "1"

After saving the file and restarting X (Ctrl + Alt + Backspace) horizontal scrolling using the bottom edge of your touchpad should be enabled.

Sometimes the area that the touchpad interprets as a scroll event is too big or too little. To fix this, we can do some tweaking. We don’t want to have to restart X each time we make a change so thankfully we can tweak touchpad settings on the fly before writing them to xorg.conf. First, run:

syndaemon -d && synclient -l

The latter command will output a list of all your touchpad settings. Find the section that looks something like this:

RightEdge = 5250
BottomEdge = 4300

Your values will most likely be different. The “RightEdge” value is the x coordinate of the invisible line of where the touchpad will translate vertical movement into a scroll event. Same for the “BottomEdge” value.

So, if you want to make the area for horizontal scrolling smaller, increase the BottomEdge value from 4300 to 4400:

synclient BottomEdge=4400

You can do this any number of times on any setting that synclient -l outputs. When you’re done, make sure to change the settings in your /etc/X11/xorg.conf like we did above, otherwise after you reboot your settings will be lost. Also remember to follow the syntax of the other options in the touchpad section of xorg.conf.

6 Responses to “Enable horizontal scrolling on synaptics touchpads in ubuntu linux”

  1. Spankin P Says:

    In order to get this to work, you will need to add the following line into this input device section and restart X first:

    Option “SHMConfig” “on”

    Otherwise you’ll end up getting the following error when you try to run the syndaemon -d && synclient -l command:

    Can’t access shared memory area. SHMConfig disabled?

  2. Spankin P Says:

    BTW, this has been a GREAT tip! It will definitely extend the life of my notbook! >_<

  3. Chris Says:

    I did everything mentioned and it all worked great except when i changed the horizontal coordinate number nothing happened. I went as extreme as 3000-6000 and still no horizontal scrolling.

  4. cc Says:

    Hehe, this worked for me: http://ubuntuforums.org/showthread.php?t=854940

  5. RomanIvanov Says:

    3 steps that work for my Xubuntu 8.10:
    ========== vertical scrolling
    1. gksu mousepad /etc/hal/fdi/policy/shmconfig.fdi
    2. add the xml configuration

    True
    1
    1

    3. REBOOT: sudo init 6

  6. RomanIvanov Says:

    add the xml configuration

    True
    1
    1

Leave a Reply