Effort spent developing software is useless until it gets to the end users, so we are very happy to announce that our touchpad gesture implementation in X Server has been released. This 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, which is the best price in town on Linux touchpad development 😉
The number of people keeping this project going is tiny (currently just 121 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. 📈
The last half year since last update has been spent on polishing our code so that the maintainers of the projects to which we are contributing will accept our PRs. It took awhile, but we finally started getting good news about quantifiable results of our effort during the past couple months. The following distinct milestones have been reached:
Touchpad gesture implementation in X server has been released in version 21.1
Wayland touchpad gesture implementation in Qt widget framework has been released in version 6.2.0
X11 touchpad gesture implementation in Gtk widget framework has been released in version 4.5.0
X11 touchpad gesture implementation it Qt widget framework will be released in version 6.3.0 (March 2022)
Touchpad gesture implementation for XWayland will be released in version 22.1 (early 2022)
So let's look into how this translates into touchpad gesture support across the Linux ecosystem...
Low-level input driver. Works, handled by libinput ✅
Display server. Works on X Server ✅, Wayland ✅, Mutter ✅ and most other Wayland display servers ✅.
Widget toolkits. Works on Gtk ✅, Qt ✅. Does not work on other less known widget toolkits ❌.
Applications. Works on Firefox ✅, GIMP ✅, GNOME Image Viewer ✅ , does not work on many other applications ❌❌❌...❌.
In the above list we consider X Server window managers as simply yet another type of an application as they don't get any additional privileges from the X Server. Also note, that it takes time for new versions of software to be included into distributions, so touchpad gestures may still not work for many people for now.
Seeing so many green checkmarks we can confidently say that we have finally reached our goal of having uniform low-level touchpad gesture support across most of the Linux ecosystem. Our focus now switches to the applications, which we wanted to improve in the first place.
This also means that the Linux Touchpad project will no longer fund X Server maintenance, as our objectives there have been completed. We invite anyone who would like to support continued development of the X server to contribute to Povilas' personal Patreon , since he remains open and willing to continue to improve support on the underappreciated/underfunded yet essential infrastructure that X server represents for its users.
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).
We describe the current status and our plans for each of the applications that were most voted for below:
✅ Pinch zoom works already, on X server MOZ_USE_XINPUT2=1 environment variable needs to be enabled (some distributions enable this by default).
✅ Works on Wayland, ❌ does not work on X server. We became aware of plans to migrate Mutter to GTK4 which now supports touchpad gestures on X server too. Therefore we have decided to not work on improving mutter as our contribution is likely to be thrown away soon.
We will start investigating gesture support on this compositor.
We will start investigating what's required to implement touchpad gesture functionality in this browser.
We have implemented canvas zooming ✅, we will work on canvas rotation and other places where gestures may be useful.
✅ Works fine already.
🟡 An initial draft implementation already exists.
The list below shows the top 30 applications from the poll we've organized in the October 2020 status update. We mention if an application uses a custom or no GUI toolkit instead of just Gtk or Qt because this means that the application would require significantly more effort.
Firefox, 77 votes
Mutter, 30 votes
KWin/Plasma, 26 votes
chrome/chromium, 22 votes
Gimp, 17 votes
Evince/gnome document viewer, 12 votes
Sway, 10 votes, no toolkit
Libreoffice, 9 votes, custom toolkit
Inkscape, 7 votes
Nautilus, 6 votes
Okular, 6 votes
Blender, 5 votes, custom toolkit
Alacritty, 4 votes, custom toolkit
Digikam, 4 votes
Dolphin, 4 votes
Emacs, 4 votes
Eog/gnome image viewer, 4 votes
Enome terminal, 4 votes
Krita, 4 votes
Thunderbird , 4 votes
Vscode, 4 votes
Compiz, 3 votes
Qutebrowser, 3 votes
Brave, 2 votes
Darktabl, 2 votes
Gnome-maps, 2 votes
Gwenview, 2 votes
I3wm, 2 votes, no toolkit
Kate, 2 votes
Mpv, 2 votes, custom toolkit
The rest of applications got a total of 34 votes.
While gestures were the most popular request among those spoke up during our last poll, Bill believes that the biggest opportunity to improve Linux touchpads is to adapt their acceleration curve to better match the profile of a macOS touchpad. How do you feel about the acceleration and precision that your Linux touchpad offers?
A new contributor in our journey to better touchpad support emerged Duane Johnson created a new web site on which we can have individual discussions about the progress of our touchpad efforts: https://linuxtouchpad.org/. 🙏 Duane went to the effort of setting up both a Discord and forum. It remains TBD how often Povilas and Bill will have the time to check in on these conversations, but we will definitely pop in from time-to-time so long as Duane continues to maintain this site. If you have opinions on which directions would be most valuable upon the completion of our gestures work, drop us a line?