GNOME Bugzilla – Bug 768421
Support three-finger drag
Last modified: 2021-07-05 13:53:00 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.
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.
This github project may be useful for the implementation: https://github.com/quadpixels/three-finger-dragging
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?
(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.
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.
(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.
> 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.
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.
(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
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. :-)
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.
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.
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.
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.
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.
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.
How about this? https://github.com/mpiannucci/gnome-shell-extended-gestures
I badly need three-finger-drag. I'd be happy to chip in €100 if someone can make this happen..
(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.
(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.
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.