Skip to content

Instantly share code, notes, and snippets.

@theodric
Last active February 1, 2026 23:57
Show Gist options
  • Select an option

  • Save theodric/5780dede11e5385a3daf94d63eec9475 to your computer and use it in GitHub Desktop.

Select an option

Save theodric/5780dede11e5385a3daf94d63eec9475 to your computer and use it in GitHub Desktop.
fusuma - gestures for KDE desktop control (on kwin_wayland with gestures disabled) plus c.2008 Mac browser navigation gestures
You must rebuild kwin_wayland with gestures patched out!
You must install fusuma (https://github.com/iberianpig/fusuma) *and* fusuma-plugin-sendkey (https://github.com/iberianpig/fusuma-plugin-sendkey)!
FIRST FILE
<~/.config/autostart/fusuma.desktop>
`
[Desktop Entry]
Type=Application
Exec=fusuma.ruby4.0 -d
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=Fusuma
Comment=Start Fusuma gesture recognizer
`
SECOND FILE
<~/.config/fusuma/config.yaml>
`
# Global settings (approximate Touchegg's action_execute_threshold and animation_delay)
threshold:
swipe: 0.5 # Lower = easier to trigger (similar to 10% threshold)
pinch: 0.5
interval:
swipe: 0.8 # Delay between gestures
pinch: 0.8
#swipe:
# 3:
# left:
# sendkey: "LEFTALT+LEFT"
# right:
# sendkey: "LEFTALT+RIGHT"
# Default context (equivalent to Touchegg's <application name="All">)
swipe:
3:
left:
sendkey: "LEFTALT+LEFT" # History back
right:
sendkey: "LEFTALT+RIGHT" # History forward
# up:
# sendkey: "LEFTCTRL+T" # Open a new tab
# down:
# sendkey: "LEFTCTRL+W" # Close a tab
4:
up:
begin:
command: "qdbus org.kde.kglobalaccel /component/kwin invokeShortcut 'Overview'"
down:
command: "qdbus org.kde.kglobalaccel /component/kwin invokeShortcut 'Show Desktop'"
# right:
# command: "qdbus org.kde.KWin /KWin previousDesktop"
# left:
# command: "qdbus org.kde.KWin /KWin nextDesktop"
right:
sendkey: "LEFTCTRL+LEFTMETA+LEFT"
left:
sendkey: "LEFTCTRL+LEFTMETA+RIGHT"
---
# App-specific context (equivalent to Touchegg's <application name="Google-chrome,Chromium,Firefox,Brave-browser,brave-browser,zen,dolphin">)
# Check exact app names with `fusuma-appmatcher -l` and adjust the list.
context:
application:
- Google-chrome
- Chromium
- Firefox
- Brave-browser
- zen
- Dolphin # May need to be 'org.kde.dolphin' or similar
pinch:
2:
in:
sendkey: 'KP_SUBTRACT' # Zoom out; decrease sends KP_ADD if gesture reverses (handled by Fusuma direction)
out:
sendkey: 'KP_ADD' # Zoom in; decrease sends KP_SUBTRACT if gesture reverses
`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment