2021-03-10

State of Built-in 3 Finger Drag on Linux

 Will we ever get built-in 3 Finger Drag (3FD) on Linux?  At this point, likely not.

Non-libinput desktop Linux

For older desktop Linux not using libinput for trackpad support, you can look into mtrack (no 3FD but...) and the p2rkw's mtrack fork which provides 3FD.  Marty's article [1] is older but explains it well for non-libinput desktop Linux.

But non-libinput is on the way out.

Libinput is basically standard in 2021

Everyone's using libinput now, pretty much.  If you're on a desktop Linux machine using Wayland, you're using libinput.

If you're using X11 still, you still could be using libinput.  Or synaptics or xf86-input-* or...  but at least on Debian buster LXDE as I am, turns out it's using libinput.

Libinput sits between your input drivers in the linux kernel and the display server.  Libinput is the present and future of gesture, event, and pointer support for trackpads on Linux.

So if you want 3FD into the future, we have to look at libinput.

Configuring libinput

If you're using Wayland on Linux, there's no way to configure libinput.  This is by design.  You should use your desktop environment's configuration to configure the trackpad.  Your desktop environment will configure libinput as needed.

Using X11 on Linux, you can still configure libinput.  Like most things X11 related, you have to change configuration files here and there.  See libinput's FAQ on this point to start.  But ArchWiki's libinput page is great with plenty of details.

There is, however, no configuration for 3FD for libinput anyway.

State of 3FD support in libinput via patches

There's two patched versions of libinput with 3FD added you could try!

  1.  jafd's libinput 
  2. aakside's libinput --- this is an updated version of complyue's libinput which had 3FD enabled but was based on an older libinput version

See Dakshin Karthikeyan's article for the Linux specific instructions on how to install.  But Dakshin references jafd's libinput instead of complyue / aakside's patch.

 If you go through the whole Request for three fingers click+movement in libinput's repository, you'll see that jafd's 3FD is possibly less featureful than complyue's.  But complyue's version was based on an older libinput.

That Request discussion thread also seems to point at the difficulty and possibly impossibility of libinput ever having 3FD enabled by default.

Fortunately, aakside updated complyue's patch to the latest libinput!

3FD via libinput-gestures

There is another route to 3FD via libinput-gestures via this patched fork of libinput-gestures with basic 3FD support.

3FD via libinput-3FD

There is another route to 3FD based on top of libinput like libinput-gestures called libinput-three-finger-drag (marsqing).  It can work alongside libinput-gestures.  However, it's stopped working as of 2021 Oct 28.


References

[1] 3-finger-drag on Linux

1 comment:

Anonymous said...

Thank you!