This post is based on my Dell M3800 with Linux Neon.
KDE already does a good job with touchpad gestures (e.g., two fingers for scrolling, 3 finger tap for pasting, etc.) but it does not support 3 finger swype gestures like in MacOs, e.g., for displaying all the windows or for showing the desktop.
Today I tried this utility, Libinput-gestures, which works like magic! The utility comes with good default for typical gestures (including pinch) but I configured that to fit my needs (in particular, I wanted to mimic MacOs behavior for 3 finger swypes: up = display all windows, down = display all windows of the same class and for pinch out = show desktop.
The installation of Linput-gestures is really easy (just follow the instructions at its web page).
Remember that, first of all, your user must be in the input group, so first run
1 |
sudo gpasswd -a $USER input |
Then logout from your current session, and login again.
Then, in Ubuntu, it’s just a matter of running
1 |
sudo apt-get install xdotool wmctrl libinput-tools |
and install the software like this (you need git):
1 2 3 |
git clone http://github.com/bulletmark/libinput-gestures cd libinput-gestures sudo ./libinput-gestures-setup install |
You can already start the program like this
1 |
libinput-gestures-setup start |
and if you want it to be started at login time, then run
1 |
libinput-gestures-setup autostart |
The default gestures are in /etc/libinput-gestures.conf. If you want to create your own custom gestures then copy that file to ~/.config/libinput-gestures.conf and edit it.
These are the lines I changed in my configuration (remember that each time you modify the configuration you need to restart libinput-gestures, i.e., instead of start in the command line above, just use restart):
1 2 3 4 5 6 7 8 |
# KDE: Present Windows (current desktop) gesture swipe up xdotool key ctrl+F9 # KDE: Present Windows (Window class) gesture swipe down xdotool key ctrl+F7 # KDE: Show desktop gesture pinch out xdotool key ctrl+F12 |
You only need to know the keyboard shortcuts of the actions you want to associate to mouse gestures. With that respect, you might want to have a look at the current shortcuts in KDE Settings (the interesting components are “KWin” and “Plasma”):
This is a video demoing the gestures:
Happy gestures! 🙂
I prefer having these actions executed when the mouse enters a screen corner. This is also possible to configure in KDE at desktop behaviour > active screen borders 😉
That’s what I’ve been using for a long time as well… but in the long run, I found screen borders quite annoying: it’s really easy to end up there by mistake… that’s why I came to prefer touchpad gestures 🙂
Thank you for the helpful post! — I am disappointed to find that the various gesture recognition layers (touchegg, libinput-gestures) only do “one-shot” gestures, so if I pinch in or out, it only sends a single event, which is useless e.g. for zooming in and out in GIMP by pinching. Are you aware of any way to do that?
Touchegg recognizes that the pinch is ongoing, and sees many events itself (judging by its stdout), but only sends one final action to the window (and is buggy at that: in and out map to the same resultant action, etc). libinput-gestures doesn’t seem to pay attention to the pinch as it is happening, and just sends the final xdotool event.
I’m glad you enjoyed the post 🙂
That’s only my first experience with touchpad gestures so I haven’t tried any other solution. Have you tried asking libinput-gestures developers about that? I’ve also heard that wayland should bring some further support for gestures…
Thanks for the reply — I’ll check with the libinput folks.
Heard from the libinput folks — it’s not possible currently, and we’ll just have to wait for implementation by the desktop environment and/or GIMP. Oh well. 🙂
Thanks for the post, it was very useful! I am using Manjaro and I am trying to set up your same config but with 3 fingers swipe.
It does not work for me because after:
$ libinput-gestures-setup start
libinput-gestures started.
I still get
$ libinput-gestures-setup status
libinput-gestures is installed.
libinput-gestures is set to autostart.
libinput-gestures is not running.
libinput-gestures is using default configuration.
and I cannot find anything in journalctl and i cannot find any log
mh… I haven’t tried this configuration for some time now… I’ll do that in the near future after bionic is released… in the meantime, you may want to check the official site for troubleshooting… please keep me posted
Pingback: Touchpad-Gesten per GUI einrichten | linuxnews.de linuxnews.de
I have been trying to do this on Linux Mint Cinnamon. However, I cant see how to use the Present Windows (Window class) function. Do you know how I can?
I’m afraid I don’t use Cinnamon…
By the way, I guess it all depends on whether Cinnamon itself provides such a functionality “Present Windows (Window class)”: you can only map a gesture to something provided by your window manager.
How could I use the home key or end key in the config file?
It says whenever I use that gesture:
(symbol) No such key name ‘home’. Ignoring it.
(symbol) No such key name ‘home’. Ignoring it.
Hi, I’m afraid I don’t know… I guess you have to look for the right code for those keys
Pingback: Libinput-gestures: Actions gestures on your touchpad using libinput - My Blog
How do you uninstall it?
As It is standard: remove the configuration file and uninstall the programs