Skip to content
Gebaar, A Super Simple WM Independent Touchpad Gesture Daemon for libinput
Branch: master
Clone or download
magnus-gross Exit on config error
We should not ignore config errors, but show the relevant error to the

Note: If the user has no config at all, the program will still run fine
as before.

Fixes #23
Latest commit c18c8bd Apr 5, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea Release v0.0.3 (#5) Feb 23, 2019
cmake/Modules Initial Project Commit Feb 12, 2019
libs Working state commit Feb 14, 2019
src Exit on config error Apr 5, 2019
.gitignore Add the build directory to gitignore (#15) Mar 27, 2019
.gitmodules Fixed submodule URLs Feb 15, 2019
CMakeLists.txt Fix nullptr conversion to std::string (#16) Mar 27, 2019
LICENSE Add LICENSE Feb 12, 2019 Update Mar 27, 2019
gebaar-libinput.desktop Add a desktop file (#14) Mar 27, 2019


WM Independent Touchpad Gesture Daemon for libinput

Gebaar means Gesture in Dutch

Run any command by simply gesturing on your touchpad!

What makes this different over the other implementations?

libinput-gestures and fusuma both parse the output of the shell command libinput debug-events which is an unstable API and the output just keeps coming, so it'll eat (some) RAM.

Gebaar directly interfaces with libinput to receive and react to the events.
This is more stable, faster, and more efficient as it does not parse the output of a program like the aforementioned projects do.

Getting support (or talking about the project's future)

Click to join: Discord

How to build and install

  1. Clone the repository via git clone
  2. Check out the latest version (git checkout v0.0.5)
  3. Run git submodule update --init in the root folder
  4. Run mkdir build && cd build
  5. Run cmake ..
  6. Run make -j$(nproc)
  7. Run sudo make install to install
  8. Run mkdir -p ~/.config/gebaar
  9. Run nano ~/.config/gebaar/gebaard.toml (or vim, if you like it better)
  10. Add the snippet below to gebaard.toml
  11. Configure commands to run per direction
  12. Add yourself to the input group with usermod -a -G input $USER
  13. Run Gebaar via some startup file by adding gebaard -b to it
  14. Reboot and see the magic
left_up = ""
right_up = ""
up = ""
left_down = ""
right_down = ""
down = ""
left = ""
right = ""

left_up = ""
right_up = ""
up = ""
left_down = ""
right_down = ""
down = ""
left = ""
right = ""

Repository versions




left_up = ""
right_up = ""
up = "bspc node -f north"
left_down = ""
right_down = ""
down = "bspc node -f south"
left = "bspc node -f west"
right = "bspc node -f east"

left_up = ""
right_up = ""
up = "rofi -show combi"
left_down = ""
right_down = ""
down = ""
left = "bspc desktop -f prev"
right = "bspc desktop -f next"

Add gebaard -b to ~/.config/bspwm/bspwmrc

State of the project

  • Receiving swipe events from libinput
  • Receiving pinch/zoom events from libinput
  • Receiving rotation events from libinput
  • Converting libinput events to motions
  • Running commands based on motions
  • Refactor code to be up to Release standards, instead of testing-hell
You can’t perform that action at this time.