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)

Zanna
  • 70,465
daveoncode
  • 293
  • 1
  • 3
  • 11

5 Answers5

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.

amiller27
  • 360
8

had the same problem. solved:

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

then reboot

trappo
  • 81
  • 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 '17 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.

Zanna
  • 70,465
jojomojo
  • 111
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.

Rinzwind
  • 299,756