20

The one feature I really miss from OSX is multitouch gestures for changing desktops. Three-finger-swipe in either direction let me go to next/prev fullscreen app or desktop. I would very much like to have the same feature in linux with a tiling window manager. I am currently using i3wm, but I'm willing to switch if someone can provide a compelling reason.

In my .config/i3/config file I have the following lines:

# multitouch gestures
bindsym --whole-window $mod+button10 workspace prev_on_output
bindsym --whole-window $mod+button11 workspace next_on_output

According to xev I have button10/button11 set up correctly with my touchpad. The --whole-window flag (according to the docs) and as far as I can tell, should allow me to use this binding anywhere on the screen. But the binding only works when my mouse is hovering over the title-bars of windows.

Did I do something wrong in my config? Or is there another way to get this feature?

Edit: I'm running v 4.10.3

$ i3 -v
> i3 version 4.10.3 (2015-07-30, branch "4.10.3") © 2009-2014 Michael Stapelberg and contributors
Sethish
  • 303

2 Answers2

7

i3-wm doesn't support multitouch gestures by default, so an external tool which can detect them and then fire off commands is needed.

I did some quick reading of the archwiki for libinput: https://wiki.archlinux.org/index.php/Libinput

  1. Install libinput-gestures from the aur
  2. Add yourself as a member of the input group to have permission to read the touchpad device: sudo gpasswd -a $USER input
  3. Add these two lines or a variation of them to the ~/.config/libinput-gestures.conf file:
gesture swipe up 3 i3-msg workspace prev
gesture swipe down 3 i3-msg workspace next
  1. Log out of your session completely or simply reboot.
  2. Start the libinput daemon:
libinput-gestures-setup autostart
libinput-gestures-setup start
Gabriel Ziegler
  • 193
  • 1
  • 6
Enetheru
  • 326
  • 3
  • 7
2

For me step 5 of @enetheru didn't work as intended and libinput-gestures-setup didn't start up automatically on reboot. But I fixed it by simply activating the gestures in i3 config file as follows:

exec --no-startup-id libinput-gestures-setup start
jalovisko
  • 121