Update: Firefox has announced that gesture support in Linux is now enabled by default in Firefox Nightly, and planned for release as part of Firefox 88. Thanks for your support everyone! 🎉

Time flies when you're crafting open source...looks like it's already been 4 months since our previous update in October, whoops. Thankfully our developer Povilas can report ample progress. The most exciting update is that the team from Firefox reached out to us in November and they've since built a release that improves gesture support! 🚀 Given that Firefox was our most upvoted of all Linux apps, this is big. A full accountability report of our progress, in Firefox and beyond, is provided on a per-project basis in the Project Update section below.

If you're satisfied with the progress we're making, would you consider joining our Github Sponsors Linux Touchpad Like a Mac project? The most affordable tier is just $5/month. The number of people keeping this project going is tiny (currently 129 supporters), but this small group of passionate Linux users are creating meaningful forward progress to improve the touchpad ecosystem for hundreds of thousands of Linux touchpad users. For those who don't want to rely on a future beholden to Apple, we hope that you'll consider supporting us? We could be getting more done if we had 250 supporters. 📈

linkProject update

During the previous project update on October we ran a poll to gather information on what applications are the most important. We got a total of 125 submissions with at least one application and converted that to 317 votes (see the list at the end of the blog post).

The results were very clear on what we need to work on. We describe the current status of touchpad gesture support and our plans for each application below:

linkFirefox (77 votes):

We have great news: the touchpad gesture support is already available in Firefox Nightly behind a hidden preference switch. This would be an extremely challenging task to implement ourselves, so we're very glad that Mozilla has decided to spend resources to on their Linux port. This will currently only work on Wayland as our previous work on X server support in GTK is still in the progress of being merged and released.

linkMutter (30 votes):

We don't have any updates here. Touchpad gestures already work on Wayland and for X server, we are blocked on our existing touchpad-related work being merged the upstream repositories of the X server.

linkKwin/Plasma (26 votes):

Touchpad gesture support in KWin depends on having touchpad gestures available in Qt. Here we also have had great success: initial touchpad gesture support in Qt has been already implemented for Wayland. Currently we are in discussions with the core developers of Qt in how to best expose the new events, as Qt currently does not support full set of the needed touchpad gestures on any of its platforms. It is likely that for some time Linux will have the best touchpad gesture support among all platforms that Qt supports, which would be quite an achievement as usually it's the other way round.

linkChrome/Chromium (22 votes)

Unfortunately we have decided that the benefit versus cost is too small in this case. It would take a lot of time to understand the codebase of such large size in order to meaningfully contribute to it.

linkGimp (17 votes)

Here we also have great news: basic support for touchpad gesture support for zooming in/out has been implemented. Currently it works only on Wayland and will work on X server as soon as our previous work on touchpad gestures in X server is merged and released. This is just the start, we are planning to extend gesture support to more workflows.

linkX server

Touchpad gestures in the X server were basically done already at the time we did the last status update at October last year. Since then, effort has been spent to bring this code into the X server. Previously broken unit test framework has been fixed, so the X server now has working tests for the input subsystem again which allows us to convince the reviewers that our implementation of gestures actually works. 3 bugs in the touch input handling unrelated to gestures have been fixed along the way.

linkThe next steps

Currently our focus is on getting our previous work to be reviewed, merged and released. The focus is split among roughly 3 projects: Qt, Gimp and X server. A lot of code has already been written, but needs to be reviewed and merged. Our current plan is to finish and polish touchpad gesture support in these 3 projects before starting expanding our focus into extra applications.

Just as an illustration of how much development work there has been done and how much remains: 22 pull requests representing 4498 new lines and 2084 deleted lines have been already merged; additionally, 12 pull requests representing 6399 new lines and 177 removed lines are in review. You can see all the details in this spreadsheet.

linkThe application popularity list

The list below shows the top 30 applications from the poll we've organized in the previous status update. Together we specify the toolkit being used which allows us to gauge the amount of effort needed to implement gesture support. If an application uses a widget toolkit then the most complex parts are handled already and the amount of effort is much lower compared than if custom toolkit is being used.

Firefox, 77 votes, Gtk toolkit

Mutter, 30 votes, Gtk toolkit

KWin/Plasma, 26 votes, Qt toolkit

chrome/chromium, 22 votes, Gtk toolkit

Gimp, 17 votes, Gtk toolkit

Evince/gnome document viewer, 12 votes, Gtk toolkit

Sway, 10 votes

Libreoffice, 9 custom toolkit

Inkscape, 7 votes, Gtk toolkit

Nautilus, 6 votes, Gtk toolkit

Okular, 6 votes, Qt toolkit

Blender, 5 votes, custom toolkit

Alacritty, 4 votes, custom toolkit

Digikam, 4 votes, Qt toolkit

Dolphin, 4 votes, Qt toolkit

Emacs, 4 votes, Gtk toolkit

Eog/gnome image viewer, 4 votes, Gtk toolkit

Enome terminal, 4 votes, Gtk toolkit

Krita, 4 votes, Qt toolkit

Thunderbird , 4 votes, Gtk toolkit

Vscode, 4 votes, Gtk toolkit

Compiz, 3 votes, Gtk toolkit

Qutebrowser, 3 votes, Qt toolkit

Brave, 2 votes, Gtk toolkit

Darktabl, 2 votes, Gtk toolkit

Gnome-maps, 2 votes, Gtk toolkit

Gwenview, 2 votes, Qt toolkit

I3wm, 2 votes

Kate, 2 votes, Qt toolkit

Mpv, 2 votes, custom toolkit

The rest of applications got a total of 34 votes.

linkGot more ideas?

As we approach these milestones for better gesture support, we'd like to re-open the discussion for other types of Linux touchpad issues you find problematic? What aspect of the macOS touchpad do you feel is most sorely lacking from your Linux touchpad experience? Drop a line in the comments below, or in the comments for the Hacker News story we'll post for this. Thank you! 🙏