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 768421 - Support three-finger drag
Support three-finger drag
Status: RESOLVED OBSOLETE
Product: mutter
Classification: Core
Component: general
git master
Other Linux
: Normal normal
: ---
Assigned To: mutter-maint
mutter-maint
Depends on:
Blocks:
 
 
Reported: 2016-07-05 00:33 UTC by Peter Hutterer
Modified: 2021-07-05 13:53 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Peter Hutterer 2016-07-05 00:33:22 UTC
Moving to mutter from libinput: https://bugs.freedesktop.org/show_bug.cgi?id=89999

Goal: three finger drag (without physical click) should be a drag-n-drop operation. This is available on macs with their touchpads and could/should be available on all devices that support three fingers.

Select comments: 
Carlos: 
If this gesture is meant to only start DnD (as in the user-visible distinct operation), I've got the feeling it will be better to get the compositor/client involved. Otherwise, it will be really hard to tell whether DnD can be started from the pointer position, you might as well be selecting text, clicking a button, doing nothing... 

Peter:
After some more discussion with carlos over email we decided to push this into the compositor. This way gesture support is controlled in one place and a bit more flexible.
Comment 1 Severo Raz 2016-07-05 05:27:13 UTC
Thanks for submitting this bug Peter, I will follow it :)
Is there a way we can have access to such discussion? I am interested in seeing the arguments.
Comment 2 Severo Raz 2016-07-08 21:30:48 UTC
This github project may be useful for the implementation: https://github.com/quadpixels/three-finger-dragging
Comment 3 Jehan 2016-10-12 14:01:53 UTC
For information, some programs make use of middle-click drags, for instance GIMP: we use middle-click + drag for panning around the canvas and shift + middle-click + drag for rotating the canvas.

Since 3-finger click is usually an equivalent to a middle-click, one would expect 3-finger drag to be a middle-click drag (well that's what we expected when we tried and it indeed failed). So this gesture is not only meant to start a DnD.

If that was the sine-qua-non reason to move this to mutter, maybe it should be considered moving this back to libinput. Or can this still work as a generic middle-click + drag when handled by mutter too?
Comment 4 Peter Hutterer 2016-10-13 00:20:31 UTC
(In reply to Jehan from comment #3)
> If that was the sine-qua-non reason to move this to mutter, maybe it should
> be considered moving this back to libinput. Or can this still work as a
> generic middle-click + drag when handled by mutter too?

mutter knows the button state, so it can differentiate between a middle click is down + three finger drag and a non-button three finger drag and thus adjust the actions accordingly.
Comment 5 Ricky 2016-12-14 14:40:25 UTC
Gentlemen,

So will this feature be added or not? 

I followed the long discussion in (https://bugs.freedesktop.org/show_bug.cgi?id=89999). I feel frustrated after reading this because in the end nothing seems to happen.

The way open source community handles new features just like your calling to AT&T customer service. You will be pushed back/transferred to here and there. After hours calling time, people just give up.

Now either I, who have zero knowledge of libinput, need to hack your code to fix it by myself or give it up like a disgruntled AT&T customer.
Comment 6 Severo Raz 2016-12-14 19:38:52 UTC
(In reply to Ricky from comment #5)
> ...
> The way open source community handles new features just like your calling to
> AT&T customer service. You will be pushed back/transferred to here and
> there. After hours calling time, people just give up.
> 
> Now either I, who have zero knowledge of libinput, need to hack your code to
> fix it by myself or give it up like a disgruntled AT&T customer.

Well yes mate, this is how things seem on the OSS communities :-/ but at least developers are not paid, unlike AT&T. It is hard to convince an unmotivated developer to solve an issue for us in exchange for kudos or something of the like.

However, there are several ways/platforms to add bounties to bugs, which compensate the lack of genuine motivation :) This would be a third option.
Comment 7 Jehan 2016-12-14 19:51:31 UTC
> Now either I, who have zero knowledge of libinput, need to hack your code to fix it by myself or give it up like a disgruntled AT&T customer.

I had no knowledge on any software I contributed to for the first time. Same as any other contributor, by definition.

And yes indeed, if you can hack mutter code to add the support, you are more than welcome to do so and provide a patch.
And no, this is not a customer service here.
Comment 8 Ricky 2016-12-15 20:24:30 UTC
I totally agree with you that unpaid/unfunded development model won't work.

TBH, I don't mind to pay for your hard work. Name a price and post it in gofundme.com

I can distribute your funding goal in Fedora/Dell XPS 13 Reddit site.
Comment 9 Severo Raz 2016-12-16 13:31:08 UTC
(In reply to Ricky from comment #8)
> I totally agree with you that unpaid/unfunded development model won't work.
> 
> TBH, I don't mind to pay for your hard work. Name a price and post it in
> gofundme.com
> 
> I can distribute your funding goal in Fedora/Dell XPS 13 Reddit site.

Well actually it does work, which is why we have FOSS in the first place. Now I am not the developer, I'm just another user lurking.

But if you want to lure people in with a bounty its better to use something like this: https://www.bountysource.com/issues/38423871-support-three-finger-drag
Comment 10 Severo Raz 2016-12-16 13:33:45 UTC
(In reply to Ricky from comment #8)
> I totally agree with you that unpaid/unfunded development model won't work.
> 
> TBH, I don't mind to pay for your hard work. Name a price and post it in
> gofundme.com
> 
> I can distribute your funding goal in Fedora/Dell XPS 13 Reddit site.

Well actually it does work, which is why we have FOSS in the first place. Now I am not the developer, I'm just another user lurking.

But if you want to lure people in with a bounty its better to use something like this: https://www.bountysource.com/issues/38423871-support-three-finger-drag
Comment 11 Jehan 2016-12-16 13:43:56 UTC
Please, this is not the place to discuss about organizing FLOSS. There are forums or mailing lists if you want to discuss this.
Write down here only technical considerations related to this bug if you really want development to ever happen. Let my message be the last off-topic one.
Thanks. :-)
Comment 12 Ricky 2016-12-16 15:58:31 UTC
Please don't take it as an insult even it is very small amount of money. I always believe that FOSS is not communism in software development and smart people in FOSS community deserve a decent financial support from end users regardless of corporate support. After all, we all have bills to pay. Nothing is free of charge.

Back to the subject, I want to explain my story as a non-technical user:

1. 3-Finger click on the object like File/Windows title bar/Text

2. 3-Finger move with the object
   a. If file/window title bar, they are dragged as you move
   b. If text, only take X axis movement delta to select text from left to right or from right to left depends on locale.

3. Release 3 Finger. 
   a. If file/window title bar, they are dropped to the place where you release. 
   b. If text, selection stop.

I know libinput can capture gesture from touchpad. I will confirm that with their debug. But the gesture on the object such as file requires context from somewhere else. Correct me if I'm wrong. I think it may be from Window Manager. I will first figure it out those libinput gesture event and then post my research here.
Comment 13 Ricky 2016-12-18 05:08:20 UTC
I confirmed that libinput supports 1/2/3/4 fingers gesture. They provide a detailed and nice documentation on their API. I can see my gestures from its debug program.

I reviewed its event-debug.c sample program. If my guess is right, Wayland compositor must have a similar poll to handle libinput event loop. I have trouble to find any documentation on Wayland compositor. I found several Wayland compositors in wikipedia. But they only provides code. I don't know where/how to start to contribute.

So my questions are:

1. Which component in Wayland handle libinput event and trigger action? Is it handled by a common module in Wayland, instead of different Wayland compositors implementation? I don't think it is great to implement this in every single Wayland compositors.

2. Can we make this configurable between gestures and actions? The one shipped from Gnome setting is bad. I was quite surprised that libinput support so many gestures. What we are missing now is to create action and make it configurable. Otherwise, there is no usability. No wonder Linux never dominates desktop. We need more money funding and more smart/passionate people to change it.
Comment 14 davidawad64 2017-06-23 16:55:04 UTC
Any information for someone who's uninformed that's willing to jump in to help? 

My (again completely uninformed guess) just by reading on the wayland site: "The compositor sends input events to the clients. " so I'd imagine there is a single client that handles input events from libinput? 

So I'm digging around to find in the wayland source code where that compositor would be. 




Anyone have advice for how to get started on how to write this I'm happy to help out.
Comment 15 Ricky 2017-06-24 01:05:23 UTC
Well, I gave it up. I will stick to my Mac OS X. 

There is no hope to improve usabilities in any open source software. That can explain why Linux never succeeded in Desktop OS. 

As they suggest, if you want to contribute, RTFM.
Comment 16 Jiri Masek 2017-08-16 16:35:34 UTC
Hi,

any chance of progress on this feature? Seems this feature will never be part of gnome.

Functionality is pretty simple from mine user view. When I am swiping with three fingers on my touchpad it behaves like I am moving a mouse with button 1 (left button) pressed. So I can select text, do image selection, moving map. That is how it works in OSX.

Similar feature is already present in Gnome (mutter), doubletab with single finger and then dragging does same thing. But is not as much comfortable, and is less accurate (when you are double tapping you often move cursou a little bit, which can result in selecting something different from that you wanted). It is not possible to map three finger drag to same action?

Also in OSX is little improvement - a short pause when you release three fingers - waiting few miliseconds (maybe a second). If I put a three fingers on touchpad again in that pause, it continues like I never interrupt that move. I think that Gnome doubleclick and drag has that short "pause" too, but not sure now.

Would like to help somehow, but I don't know how. Not a programmer, not familiar how Gnome/mutter internal works. :(

It is not a crucial thing. But this is one of the little things why OSX users usualy do not need mouse on laptop most of the time.
Comment 17 satartic 2017-12-29 11:23:51 UTC
Adding OSX-like gestures to Gnome would be great. If there is no work on this, is there any other project about this? Any other DE? Having a Macbook using osx-like gestures can take more users to Gnome, leaving OSX behind.
Comment 18 dannymrt1 2017-12-29 13:02:57 UTC
How about this?
https://github.com/mpiannucci/gnome-shell-extended-gestures
Comment 19 Peter 2018-01-03 13:21:33 UTC
I badly need three-finger-drag. I'd be happy to chip in €100 if someone can make this happen..
Comment 20 satartic 2018-01-04 09:03:35 UTC
(In reply to dannymrt1 from comment #18)
> How about this?
> https://github.com/mpiannucci/gnome-shell-extended-gestures

Thanks for the reply, I installed it and it does not work on my Macbook. This Mac's trackpad can detect even 4 finger moves under High Sierra, so its not a hardware issue. Its very unconfortable to use Gnome for a used macOS user for years, this really pushes to use a mouse, just the thing I dont want to do.
Comment 21 Severo Raz 2019-02-09 12:32:05 UTC
(In reply to Peter from comment #19)
> I badly need three-finger-drag. I'd be happy to chip in €100 if someone can
> make this happen..

Maybe we should setup a bug bounty, I would also chip in some money for a solution to this problem.
Comment 22 GNOME Infrastructure Team 2021-07-05 13:53:00 UTC
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org.
As part of that, we are mass-closing older open tickets in bugzilla.gnome.org
which have not seen updates for a longer time (resources are unfortunately
quite limited so not every ticket can get handled).

If you can still reproduce the situation described in this ticket in a recent
and supported software version, then please follow
  https://wiki.gnome.org/GettingInTouch/BugReportingGuidelines
and create a new ticket at
  https://gitlab.gnome.org/GNOME/mutter/-/issues/

Thank you for your understanding and your help.