After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 761461 - add back edge scrolling
add back edge scrolling
Status: RESOLVED FIXED
Product: gnome-control-center
Classification: Core
Component: Mouse
git master
Other Linux
: Normal normal
: ---
Assigned To: Control-Center Maintainers
Control-Center Maintainers
: 772802 781699 (view as bug list)
Depends on: 768244 768245
Blocks:
 
 
Reported: 2016-02-02 15:20 UTC by Frederic Peters
Modified: 2017-04-25 08:57 UTC
See Also:
GNOME target: 3.22
GNOME version: ---


Attachments
mouse: Offer a separate option for edge scrolling (8.23 KB, patch)
2016-06-30 12:36 UTC, Bastien Nocera
committed Details | Review
mouse: Don't allow two-finger and edge scrolling at the same time (1.82 KB, patch)
2016-06-30 12:36 UTC, Bastien Nocera
committed Details | Review

Description Frederic Peters 2016-02-02 15:20:57 UTC
It was not present from the start in libinput but it has been added for 0.20 (http://cgit.freedesktop.org/wayland/libinput/commit/?id=abff4a1c24830931f1cbd5e54d5b1a4621eab863)

I have been using 3.19 with two-fingers scrolling for around 10 days but it physically hurts (I believe mostly because I can't let my palm rest on the laptop and have to move my right hand in a strange way for two-fingers scrolling).
Comment 1 Allan Day 2016-03-02 18:03:58 UTC
There's been quite a bit of discussion over edge scrolling in relation to hardware support for two finger scrolling. I can't remember the particulars, though...

My main concern with exposing edge scrolling in the mouse and touchpad settings is that edge scrolling typically offers a poorer experience than two finger scrolling. I'd prefer not to offer users a way to degrade their experience.

I'm not opposed to offering edge scrolling somewhere else if there are more unusual requirements for it, though. Tweak Tool or the Universal Access settings seem like possibilities.
Comment 2 Bastien Nocera 2016-03-03 14:25:36 UTC
Note that this would require changes to mutter itself, see:
https://bugzilla.gnome.org/show_bug.cgi?id=759304
Comment 3 Juraj Fiala 2016-03-24 07:53:31 UTC
I miss this quite a lot on 3.20. My Thinkpad X220 has a tiny touchpad and edge scrolling is much more effective on it than two finger scrolling. I mean I can live with it, I use the trackpoint most of the time anyway, but it would be cool to get it back.
Comment 4 fedevx 2016-04-10 05:20:49 UTC
Just upgraded to 3.20 and this is the first thing I noticed. This has been reported in OpenSUSE:

https://bugzilla.opensuse.org/show_bug.cgi?id=973755

Manually enabling Edge Scrolling by running something like the below works as expected:

xinput set-prop 11 --type=int --format=8 294 0 1 0

It seems the issue is not only with the option not being available but with the schema which is missing. I quote here what was mentioned in OpenSUSE's bug:

===========================
Dont get to happy, as the change you just did is only for this session,
ref manpage of libinput I'd expect the editing of conf file to fix it permanently.

The below commit might override it though.

https://git.gnome.org/browse/mutter/commit/?id=a27b2597b962fe3fba1e79df134be4ebb2c39055

backends: Force 2-finger scroll by default if available
When the touchpad is two-finger scrolling capable, always enable it.

When the touchpad only supports edge scrolling (usually older devices, and
usually smaller devices), allow disabling the edge scrolling.

This requires a newer gsettings-desktop-schemas as the scroll-method key
was removed, and the edge-scroll-enabled key added.

https://bugzilla.gnome.org/show_bug.cgi?id=759304
===========================

Could we get a permanent fix for this?

Thanks!
Comment 5 Vasil Yonkov 2016-04-10 11:12:30 UTC
(In reply to Allan Day from comment #1)
> There's been quite a bit of discussion over edge scrolling in relation to
> hardware support for two finger scrolling. I can't remember the particulars,
> though...
> 
> My main concern with exposing edge scrolling in the mouse and touchpad
> settings is that edge scrolling typically offers a poorer experience than
> two finger scrolling. I'd prefer not to offer users a way to degrade their
> experience.

The hardware-related problems and the degraded experience, AFAIK, are when both edge scrolling and two-finer-scrolling are ON. I agree with that and the experience is poor indeed. The 2 scrolling types are mutually exclusive in practice.
The thing is that I and other folks prefer the edge scrolling to the two-finger one, so it would be much better to have a setting/button which would let you pick a scrolling method and automatically disable the other. Maybe another option can enable/disable the touchpad scrolling altogether, but I don't really care about that one.
Comment 6 Bastien Nocera 2016-04-14 12:45:03 UTC
There's not going to be any UI changes in 3.20 to support this, so you're left with running the command mentioned in comment 4 for now.

This needs UI changes, and backend changes, so it's not possible to do in stable.
Comment 7 Vasil Yonkov 2016-04-14 13:04:06 UTC
I can scroll with 2 fingers for six months (or longer). And my life will still be bearable if I'm not to edge-scroll ever again :)

My hope was the choice to be introduced at all.
Comment 8 fedevx 2016-04-17 13:22:26 UTC
I hope the changes can be introduced back nonetheless.
Comment 9 François Jaouen 2016-04-25 19:06:59 UTC
(In reply to Allan Day from comment #1)
> My main concern with exposing edge scrolling in the mouse and touchpad
> settings is that edge scrolling typically offers a poorer experience than
> two finger scrolling. I'd prefer not to offer users a way to degrade their
> experience.

I don't know where this assertion comes from but, since 3.20 two finger scrolling on my laptop is a real degradation of my user experience: it physically *hurts* while I never had any trouble with edge scrolling.

Please, please bring it as soon as possible.
Comment 10 Michał Dybczak 2016-05-11 21:27:19 UTC
Also have this bug on SynPS/2 Synaptics TouchPad and it's the biggest issue on gnome 3.20.I installed the new driver xf86-input-libinput but it didn't help.

Mine solution was to change the scrolling in xinput

1. run command: xinput list

2. find the number id of the device you want to change and then type:

xinput list-props X
where X is the number id of the chosen device

3. Recognize on the list which setting number is the one you want. In my case it was "libinput Scroll Method Enabled (286):   1, 0, 0"
so my setting number was 286

4. to change scrolling into side scrolling you need to use command:

xinput set-int-prop X settingnumber 8 0 1 0
where X is the number id of the device from the list above (in my case it was 16) and setting number (in my case it was 286), so the whole command for me looked:

xinput set-int-prop 16 286 8 0 1 0

after this, side scrolling worked again for me.

Hope this helps.

I expect this to be fixed and the option for side scrolling will be restored, because now pad/mouse settings are against gnome's motto "ease, comfort and control"...
Comment 11 Phillip Wood 2016-05-12 10:54:45 UTC
Yesterday I upgraded my wife's laptop to gnome 3.20 and when she started using it she was distinctly unimpressed that "scrolling does not work" It turns out that she was used to edge scrolling and that the upgrade had changed it to two fingered scrolling with out informing the user. Indeed the touchpad panel in gnome settings still showed a button for enabling edge scrolling (which having read the message for commit 07c6c4d would seem to be a bug) but clicking it did nothing. Anna had never heard of two fingered scrolling and when she tried it found it uncomfortable and inconvenient. At the moment we're using the xinput workaround but it's a pain that I don't think it's possible to set in /etc/X11/xorg.conf.d as gnome-control-center will just override it. 

Having a way for the user to choose edge scrolling if they want it would seem to be reasonable if that's how they want to scroll and have been doing so for years. A UI option would be good but just a gsettings solution would be better than the current situation. It's a shame it's not possible to change mutter so that it respected /org/gnome/desktop/peripherals/touchpad/edge-scrolling-enabled irrespective of two fingered scrolling support to allow a gsettings solution as the default is true.
Comment 12 Bastien Nocera 2016-05-12 11:15:34 UTC
We thought that edge scrolling was something that was only used for "old hardware", and that if the hardware supported it, people wouldn't be interested in edge scrolling if the hardware allowed 2-finger scrolling. We were obviously wrong.

If you want to untangle this, you'll need to make changes to mutter, gsettings-desktop-schemas and gnome-control-center.

We might want to restrict the functionality to builtin touchpads (devices like the Logitech T650 or the Apple Magic Trackpad don't have edges), eventually just to the ones that have edges.
Comment 13 Michał Dybczak 2016-05-12 11:52:52 UTC
I discovered that re-logging session overrides edge scrolling back to two fingers scrolling. Of course I have a command in terminal history just few clicks away to change it but still it's unnecessary inconvenience. This "old" hardware (mine has 3 years old) will be around still for many, many years and all other DEs have edge scrolling as a basic option. Without it gnome will be crippled and for many this will be the reason to change DE, since it influences how we work on the system almost every second.

Sure, I could get use to two finger scrolling, but after couple of tries, I came to conclusion that this mechanisms produces too many unwanted effects, while edge scrolling is safer and more efficient, so that's not even an equal option - on pads that allow it, edge scrolling is just superior. For those who used it, the lack of it in gnome 3.20 is a major problem.

I also hope, that laptop pads will continue support edge scrolling, because two fingers scrolling is more prone to trigger accidentally unwanted effects. Laptop without edge scrolling is no go for me, no matter how good specs or praise it would have.
Comment 14 Juraj Fiala 2016-05-12 12:27:48 UTC
I just want to add that even though I said above I preferred edge-scrolling, I have been able to teach myself to use two finger scrolling, which works much better than it used (maybe a libinput upgrade?) and is actually much more pleasant once I got used to it. I now prefer a well-done two-finger scrolling over edge-scrolling anytime. It's just nice to be able to scroll without shifting my hand too much.
Comment 15 Michał Dybczak 2016-05-12 15:52:51 UTC
I checked the latest drivers and they seem to work better in two finger scrolling mode then those in the past, nonetheless it stills causes for me unwanted site jumps or other weird behaviors quite frequently, because it senses second touch, where there is none or it's just a not well placed finger.

Anyway, people have various preferences and although two finger scrolling is (somewhat) usable (for me), I still prefer edge scrolling.

I guess people will divide into various camps but DE should enable us to choose what we prefer and not force into solution that some users don't like. Edge scrolling is definitely not outdated.
Comment 16 Ignacio Casal Quinteiro (nacho) 2016-05-12 16:11:12 UTC
+1 to this. I don't care if it is on the control center or in the tweak tool, but I just upgraded to f24 and it is horrible to use 2-finger scrolling
Comment 17 Phillip Wood 2016-05-12 18:11:52 UTC
(In reply to Bastien Nocera from comment #12)
> If you want to untangle this, you'll need to make changes to mutter,
> gsettings-desktop-schemas and gnome-control-center.
> 
> We might want to restrict the functionality to builtin touchpads (devices
> like the Logitech T650 or the Apple Magic Trackpad don't have edges),
> eventually just to the ones that have edges.
It would make sense to only show controls where the device has edges, I haven't looked to see what infrastructure gnome-control-center has for that yet.

One way to go would be to revert the changes to mutter and gsettings-desktop-schemas and improve the UI in gnome-control-center to cope with switching between no scrolling, edge scrolling and two-finger scrolling when the trackpad supports edge scrolling. 

Alan in comment 1 you said you weren't keen on having an option for turning on edge-scrolling in gnome-control-center for trackpads that support two-finger scrolling - is that still the case as there seems to be demand for it. If we go for some way of doing it in gnome-control-center then I think we either need a single row with a tristate control or two rows - one with a switch to turn scrolling on and off and a second with a pair of radio buttons to control the scrolling mode. For the tristate option I had a play at putting three radio buttons in one row but I think they're too wide compared to the rest of the controls. Another alternative would be a menu button with a popover containing the radio buttons. Have you got any opinions/ideas about the best way forward?
Comment 18 Michał Dybczak 2016-05-13 06:23:20 UTC
Thank you for taking care of this. Any DE should practice "out of the way" philosophy when it comes to usage of the system - so to have all basic and easy accessible options that configure basic usage of the system and hardware, so we could start using system without much fuzz.
Comment 19 Phillip Wood 2016-05-13 08:13:37 UTC
(In reply to Phillip Wood from comment #17)
> Alan in comment 1 you said you weren't keen on having an option for turning
> on edge-scrolling in gnome-control-center for trackpads that support
> two-finger scrolling - is that still the case as there seems to be demand
> for it. If we go for some way of doing it in gnome-control-center then I
> think we either need a single row with a tristate control or two rows - one
> with a switch to turn scrolling on and off and a second with a pair of radio
> buttons to control the scrolling mode. For the tristate option I had a play
> at putting three radio buttons in one row but I think they're too wide
> compared to the rest of the controls. Another alternative would be a menu
> button with a popover containing the radio buttons. Have you got any
> opinions/ideas about the best way forward?

Having thought about it some more I think maybe we're better off keeping the edge scrolling switch we've got now and using at as follows:
 - If the trackpad does not support edge scrolling don't show the switch
 - If the trackpad supports two-finger and edge scrolling switch between them
 - If the trackpad supports only edge scrolling toggle it on and off
Hopefully that covers all the major use cases and keeps the UI simpler
Comment 20 Juraj Fiala 2016-05-13 08:39:46 UTC
(In reply to Phillip Wood from comment #19)
> Having thought about it some more I think maybe we're better off keeping the
> edge scrolling switch we've got now and using at as follows:
>  - If the trackpad does not support edge scrolling don't show the switch
>  - If the trackpad supports two-finger and edge scrolling switch between them
>  - If the trackpad supports only edge scrolling toggle it on and off
> Hopefully that covers all the major use cases and keeps the UI simpler

Don't forget that some edge-less touchpads as said above only support two-finger scrolling.
Comment 21 Vasil Yonkov 2016-05-13 08:53:21 UTC
(In reply to Juraj Fiala from comment #20)
> 
> Don't forget that some edge-less touchpads as said above only support
> two-finger scrolling.

This should be covered by:
" - If the trackpad does not support edge scrolling don't show the switch"

Can I propose something a little bit different?
What about an ON/OFF switch, which will toggle the scrolling in any case, plus additional switch, which will only show if both scrolling types are supported and will allow switching between them and will be greyed-out when the 'master' ON/OFF switch has turned the scrolling OFF.
Comment 22 Juraj Fiala 2016-05-13 08:58:47 UTC
(In reply to Vasil Yonkov from comment #21)
> (In reply to Juraj Fiala from comment #20)
> > 
> > Don't forget that some edge-less touchpads as said above only support
> > two-finger scrolling.
> 
> This should be covered by:
> " - If the trackpad does not support edge scrolling don't show the switch"

I think adding a
 - If the trackpad supports only two-finger scrolling toggle it on and off

Would be better.

> Can I propose something a little bit different?
> What about an ON/OFF switch, which will toggle the scrolling in any case,
> plus additional switch, which will only show if both scrolling types are
> supported and will allow switching between them and will be greyed-out when
> the 'master' ON/OFF switch has turned the scrolling OFF.

Not sure how you want to do the scroll switch, that would need a combo-box, I think the first proposal is clearer and more understandable (you can easily add the grey help messages underneath) and fits more into the current design.
Comment 23 Vasil Yonkov 2016-05-13 09:08:09 UTC
(In reply to Juraj Fiala from comment #22)
> 
> Not sure how you want to do the scroll switch, that would need a combo-box,
> I think the first proposal is clearer and more understandable (you can
> easily add the grey help messages underneath) and fits more into the current
> design.

No so much a combo-box, than a thing like this:

https://libuntu.files.wordpress.com/2015/10/nuevo-panel-control-mouse-touchpad-gnome320.png

Imagine the 'Left'/'Right' switch as a 'Edge'/'Two-finger' plus a 'ON'/'OFF' switch like the one below it, which will toggle the track-pad scrolling altogether. Perhaps the 'ON'/'OFF' should be above, as it will disable the other when set to 'OFF'
Comment 24 Phillip Wood 2016-05-13 09:44:32 UTC
I'm not sure why you'd want to turn off two finger scrolling - can you explain when you'd use such a feature please. In any case that would still be possible with dconf-editor or gsettings at the command-line
Comment 25 Vasil Yonkov 2016-05-13 10:24:25 UTC
Some trackpads are very imprecise and make the cursor jump away from the target when I do tap-to-click. This makes clicking with tap rarely useful, so I disable that feature on such laptops to avoid accidental clicks from the trackpad.

Some very poor trackpads detect scrolling (any kind) only when you move your finger(s) fast enough or only when you have covered 1/3 (or other significant portion) of the tackpad's length. I'm not saying it's impossible to work with them. I'm saying it's a very quirky and frustrating experience. It makes you mind your finger movements all-the-time, and some users - especially those with below average finger-coordination ninja training, like my sister for example - prefer to disable scrolling with the trackpad in order to enable more freedom to move the cursor and to avoid accidental scrolling when not desired.

An option in the control center will be help the not-so-tech-savvy users to work around the quirkiness of their trackpads.

For me - a dconf register will be more than enough.
Comment 26 Phillip Wood 2016-05-27 10:03:00 UTC
(In reply to Vasil Yonkov from comment #25)
> Some trackpads are very imprecise and make the cursor jump away from the
> target when I do tap-to-click. This makes clicking with tap rarely useful,
> so I disable that feature on such laptops to avoid accidental clicks from
> the trackpad.
> 
> Some very poor trackpads detect scrolling (any kind) only when you move your
> finger(s) fast enough or only when you have covered 1/3 (or other
> significant portion) of the tackpad's length. I'm not saying it's impossible
> to work with them. I'm saying it's a very quirky and frustrating experience.
> It makes you mind your finger movements all-the-time, and some users -
> especially those with below average finger-coordination ninja training, like
> my sister for example - prefer to disable scrolling with the trackpad in
> order to enable more freedom to move the cursor and to avoid accidental
> scrolling when not desired.
> 
> An option in the control center will be help the not-so-tech-savvy users to
> work around the quirkiness of their trackpads.
> 
> For me - a dconf register will be more than enough.

I wonder if that would be better in gnome-tweak-tool? 
I've got a solution for edge scrolling working locally but it needs a bit more work to properly handle an external touchpad being plugged into a laptop with a touchpad that only supports edge scrolling. Currently if edge scrolling is disabled on the internal touchpad then then two-finger scrolling is also disabled on the external touch pad as well :-( I should have time to get the patches ready to post by the end of June.
Comment 27 Bastien Nocera 2016-06-29 16:11:58 UTC
I started working on this, and it's a major pain of a UI, and it's not any better in the backend (and I really don't want to hear "just put it in gnome-tweak-tool", it's the same amount of work and maintenance doing it properly).

In libinput:
https://wayland.freedesktop.org/libinput/doc/1.2.1/group__config.html#ga482951a2b1faf837e43d30d9c92dc9d3
libinput_device_config_scroll_set_method() only supports one scrolling method per device.

For a single touchpad, this means showing 3 options if all the methods are supported:
- no scrolling
- edge scrolling
- two-finger scrolling

If only 2 options are supported, a switch for each of the options. That's already 2 different UIs for the same option, with only one touchpad.

Next, we have multiple touchpads. They all support the same values, no worries. What if one supports only edge scrolling, and one only supports two-finger-scrolling.

This can easily happen with an older laptop coupled with an external touchpad like the Apple Magic Trackpad, or the wireless Logitech trackpads, or even an older Thinkpad and a newer ThinkPad keyboard/touchpad combo.

Having per-touchpad configuration would simply make the backend *and* the front-end more complicated.

So I'm all ears for possible solutions. It's possible something's going to have to give.
Comment 28 Vasil Yonkov 2016-06-29 17:55:17 UTC
(In reply to Bastien Nocera from comment #27)

If you want to support, through the GUI, configurations with more than
one touchpad, I can see two options:


1.
Have a separate configuration for each touchpad, with options presented
according to its supported capabilities.

The user could be presented with a list (or a grid, or whatever) with
all the touchpads connected to the system. When a touchpad is chosen,
the user can configure its options separately, per device.


2.
A single, global scrolling method is chosen.

This is in case the device configuration can't be separated per-device,
or the implementation will be too hard/complicated.

If a scrolling method is supported by any of the touchpads - it is
available to be chosen.

When the user choses a scrolling method - all the devices which don't
support it will have their scrolling turned off. At least in the GUI.
Since the method is unsupported by the device, the backend won't need
much (any?) special configuration.

It's very important to warn the user when a scrolling method is
unsupported. A greyed-out option will probably not be enough.
Comment 29 Rafael K. Tesser 2016-06-29 20:09:45 UTC
Maybe you could add only two options:

1. Enable touchpad scrolling
2. Choose "preferred" scrolling method: Edge OR two-finger (in case the preferred method is not supported by the device, the other one will be attempted).
Comment 30 Bastien Nocera 2016-06-30 12:36:42 UTC
Created attachment 330651 [details] [review]
mouse: Offer a separate option for edge scrolling

When a touchpad supports it. When the option is set, it will
automatically disable two-finger scrolling.

The scrolling method used by each individual touchpad is implemented in
mutter, not here.
Comment 31 Bastien Nocera 2016-06-30 12:36:50 UTC
Created attachment 330652 [details] [review]
mouse: Don't allow two-finger and edge scrolling at the same time

As done when changing the setting manually.
Comment 32 Phillip Wood 2016-07-01 15:37:40 UTC
Review of attachment 330651 [details] [review]:

I've not tried compiling or running it but it seems like a reasonable approach if we want to support disabling two-finder scrolling as well as toggling between two-finger and edge scrolling

::: panels/mouse/gnome-mouse-properties.ui
@@ +642,3 @@
+                                    <property name="valign">end</property>
+                                    <property name="label" translatable="yes">Two-finger Scrolling</property>
+                                    <property name="use_underline">True</property>

It might be nice to have a mnemonic but non of the other controls do...
Comment 33 Bastien Nocera 2016-07-27 15:40:58 UTC
Attachment 330651 [details] pushed as f01277f - mouse: Offer a separate option for edge scrolling
Attachment 330652 [details] pushed as 61e00d0 - mouse: Don't allow two-finger and edge scrolling at the same time
Comment 34 Bastien Nocera 2016-10-12 14:27:33 UTC
*** Bug 772802 has been marked as a duplicate of this bug. ***
Comment 35 Bastien Nocera 2017-04-25 08:57:39 UTC
*** Bug 781699 has been marked as a duplicate of this bug. ***