11

I've installed gnome-shell on ubuntu 17.04 and it works perfectly, but I'm having an hard time trying to enable natural scrolling using the trackpad. It works perfectly out of the box in unity, but in gnome despite I activated the natural scrolling in system settings, it does not work. I also created the file ".Xmodmap" in my home folder with:

pointer = 1 2 3 5 4 6 7 8 9 10 11 12

and then:

xmodmap .Xmodmap

I also tried to logout/login, but the natural scrolling is still disabled. Finally, I tried to install the package "naturalscrolling":

sudo add-apt-repository ppa:zedtux/naturalscrolling
sudo apt-get install naturalscrolling

but I get:

E: Unable to locate package naturalscrolling

Any idea?

ps: My machine is a Dell XPS 15' 9560

UPDATE:

by running xinput list I see this:

↳ DLL07BE:01 06CB:7A13 Touchpad             id=12   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=15   [slave  pointer  (2)]

Why there are 2 different touchpads?

$ /usr/bin/xinput set-prop 15 "libinput Scroll Method Enabled" 0, 1, 0
property 'libinput Scroll Method Enabled' doesn't exist, you need to specify its type and format

UPDATE 2:

I noticed that natural scrolling is actually working in Pycharm (java based IDE), but Chrome, "Files" and other apps still scroll normally :(

UPDATE 3:

I "solved" with a clean install of Ubuntu GNOME (which supports natural scrolling out of the box)

5

5 Answers 5

20

I'm running Ubuntu Gnome 17.04 on a Dell XPS 15 9530, and here's what worked for me:

The solution was to leave xserver-xorg-input-libinput installed, and instead remove xserver-xorg-input-synaptics, then reboot. It seems as if the upgrade installed both and was choosing synaptic by default, which doesn't seem to have a natural scrolling option.

6
  • 1
    I'm running Ubuntu 17.04 + Gnome-shell in an Asus Zenbook and this worked like a charm.
    – Nigini
    May 1, 2017 at 22:59
  • Also worked on XPS 13 9350 DE. Thanks! Jul 8, 2017 at 18:03
  • Worked great on Lenovo X1 Carbon as well! Thanks!
    – popstr
    Jul 23, 2017 at 12:58
  • Also works on a Thinkpad X230. Thanks :) Sep 4, 2017 at 20:50
  • No need to reboot, just log out and back in
    – Zoltán
    Nov 1, 2017 at 22:28
8

had the same problem. solved:

sudo apt install xserver-xorg-input-libinput
sudo apt purge xserver-xorg-input-synaptics

then reboot

1
  • I still don't understand why this worked now and didn't before but you saved me from having to do a full reinstall. Even reinstalling gnome didnt help previously. synaptics driver would kill input for me on wake from sleep or suspend and natural scrolling didnt work.
    – Roh_mish
    Jul 11, 2017 at 15:01
6

Perhaps your mouse requires a different property to be set. Please try the following:

Find your mouse ID (mine is 10 below):

$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB-PS/2 Optical Mouse           id=10   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳   USB Keyboard                            id=8    [slave  keyboard (3)]
    ↳   USB Keyboard                            id=9    [slave  keyboard (3)]

List available properties of the mouse (replace 10 with ID of your mouse):

$ xinput list-props 10
Device 'Logitech USB-PS/2 Optical Mouse':
    Device Enabled (136):   1
    Coordinate Transformation Matrix (138): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Accel Speed (273): 0.000000
    libinput Accel Speed Default (274): 0.000000
    libinput Accel Profiles Available (275):    1, 1
    libinput Accel Profile Enabled (276):   1, 0
    libinput Accel Profile Enabled Default (277):   1, 0
    libinput Natural Scrolling Enabled (278):   1
    libinput Natural Scrolling Enabled Default (279):   0
    libinput Send Events Modes Available (258): 1, 0
    libinput Send Events Mode Enabled (259):    0, 0
    libinput Send Events Mode Enabled Default (260):    0, 0
    libinput Left Handed Enabled (280): 0
    libinput Left Handed Enabled Default (281): 0
    libinput Scroll Methods Available (282):    0, 0, 1
    libinput Scroll Method Enabled (283):   0, 0, 0
    libinput Scroll Method Enabled Default (284):   0, 0, 0
    libinput Button Scrolling Button (285): 2
    libinput Button Scrolling Button Default (286): 2
    libinput Middle Emulation Enabled (287):    0
    libinput Middle Emulation Enabled Default (288):    0
    Device Node (261):  "/dev/input/event2"
    Device Product ID (262):    1133, 49215
    libinput Drag Lock Buttons (289):   <no items>
    libinput Horizontal Scroll Enabled (290):   1

As you can see, there is a property named "libinput Natural Scrolling Enabled" for my mouse that has number 278 in my case.

Set it to 1 and natural scrolling should be enabled (replace 10 with ID of your mouse and 278 with what actually your property number is):

$ xinput set-prop 10 278 1
1

If you are using the synaptics driver xserver-xorg-input-synaptics you can set negative values for VertScrollDelta and HorizScrollDelta in the config file 70-synaptics.conf:

cp /usr/share/X11/xorg.conf.d/70-synaptics.conf /etc/X11/xorg.conf.d/70-synaptics.conf 
sudoedit /etc/X11/xorg.conf.d/70-synaptics.conf

Then reboot and enjoy smooth natural scrolling for your trackpad. For a detailed explanation, see this page on the Arch wiki.

0

I have the following in startup applications:

/usr/bin/xinput set-prop 14 "libinput Scroll Method Enabled" 0, 1, 0 

and named it "Edge scroll workaround. You can then also reverse the order of scrolling from "settings" itself (like we did in Unity).


The 14 is the code for the touchpad. You can find yours with ...

$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                  id=14   [slave  pointer  (2)]

ppa:zedtux/naturalscrolling is only supported up to 14.04.

0

You must log in to answer this question.

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