In software there's a saying that the last 20% of a project take as much time as the first 80%. Knowing this we're very happy to announce that a number of projects we were working on have been successfully completed since our previous update in February. The most exciting update is that the touchpad gestures have been accepted to the X server which means that we will get uniform touchpad gesture support in applications regardless of what desktop environment is being used! 🚀 A full accountability report of our progress has been prepared by our developer Povilas 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 133 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. 📈
🎩 We would like to give a huge thanks Dynamist, our first corporate Platinum-level supporter. 🎩
If you run a company where employees use Linux and you'd like to sponsor better touchpads, get in touch?
There has been quite a lot of progress polishing and integrating the touchpad gestures code into the upstream projects since the last update 3 months ago. The following is a list of features that have been implemented or delivered since the last status update:
📯 Touchpad gesture support has landed in X server! The code will be released as a new major release of the X server this year.
Touchpad gesture support for Wayland has landed in the Qt framework. This will be released as Qt 6.2.
Touchpad gesture support for X server on Qt framework has been submitted for review.
Touchpad gesture support for zooming in/out of the canvas has been released in GIMP 2.99.6 development version. This turned out to work fine even on Windows 10 🙂
Touchpad gesture support for X server on Gtk has been synchronized to the latest Gtk development version and submitted to the developers for review.
If you're interested in all the gory details of the code that made these features happen we're tracking all development effort in this spreadsheet.
We prioritize the upcoming work according to a poll that we've ran on October 2020 to gather information on what applications are the most important. There 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).
During the next couple of months one of the primary priorities will be to finish touchpad gesture support in the Gtk and Qt frameworks so that it works both on X server and Wayland equally well. To illustrate why this is important a good example is our contribution to GIMP. It took maybe a week to implement, a week to get reviews from the developers and additional 10 weeks for it to be merged. This extra delay was because the primary reviewers did not have Wayland on their development machines and couldn't test the feature. This sequence of events is completely normal: most developers are extremely busy and if code contribution has any additional testing requirements it just means the contribution is likely to be severely delayed. So by having uniform touchpad gesture support across environments we will make our life contributing to the applications much easier.
We describe the current status and our plans for each of the applications that were most voted for below:
The touchpad gesture support for Wayland has already been released as part of Firefox 88. Thanks to Mozilla for working on this. The touchpad gesture support on X will unfortunately not be automatic, because the XInput 2 API is disabled on Firefox. We will work on investigating and fixing the issues that prevent Firefox from being able to use XInput 2 API and thus automatically benefitting from touchpad gesture support on X server once it's released.
We don't have any updates here. Touchpad gestures already work on Wayland. For X server we will start investigating what needs to be done to support touchpad gestures equally well once the new X server is released.
We don't have any updates here. However, since touchpad gestures on Wayland have already landed to Qt, we will be able to start investigating implementing support for it.
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. We will revisit this decision once we have good progress on other applications and frameworks and this is the top application by votes.
There were some discussions with the GIMP developers on expanding our initial work on canvas zooming to e.g. canvas rotation. We will work on this as time allows.
The list below shows the top 30 applications from the poll we've organized in the October 2020 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.
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. Soon, we'll publish another poll to recalibrate on some of the other biggest frustrations with Linux touchpads and we'll continue to work through the problems that we hear from our supporters.
Thanks so much to our supporters and anyone else helping to make touchpads on Linux a better experience! 🙏