Built by @horriblename on GitHub. This page was written by @iluxav from public sources, last updated for hl-0.55.4 (2026-06-11), and may lag behind new releases.
Use your touch screen in Hyprland: swipe between workspaces, swipe from screen edges, tap, pinch and long-press to run commands or move windows.
What you can do with it
Switch workspaces by swiping with several fingers or from a screen edge on a touch screen.
Good to know
The README calls the plugin alpha and says earlier bugs left touch input unusable until the plugin was unloaded; keep a keyboard at hand the first time.
PreviewPresent at hl-0.52.2
Run any Hyprland dispatcher from a touch swipe, edge swipe, tap, pinch or long-press.
PreviewPresent at hl-0.52.2
Move and resize windows with a long-press, including resizing by long-pressing a border or gap.
Good to know
The move action of hyprgrass-gesture works poorly; the docs recommend hyprgrass-bindm with movewindow.
PreviewPresent at hl-0.52.2
Change volume or screen brightness by sliding along a screen edge.
Good to know
Bound as touchpad gestures; from a touch screen they need hyprgrass-gesture with emulate_touchpad. gestures:workspace_swipe_distance sets the distance for 0 to 100.
PreviewPresent at hl-0.52.2
Make a touch screen gesture act as a touchpad gesture with a set finger count and direction.
PreviewSince hl-0.54.3
Configure hyprgrass and bind gestures from Hyprland's Lua config.
PreviewSince hl-0.55.4
Before you upgrade
Newest first
hl-0.55.42026-06-11
When moving to Lua: rename the plugin namespace touch_gestures to hyprgrass, and replace workspace_swipe_fingers and workspace_swipe_edge with hl.plugin.hyprgrass.gesture({pattern = {...}, action = "workspace"}); without that, workspace swipes are off.
Action requiredAffects: Users moving their hyprgrass config to Hyprland's Lua config
Let other Hyprland plugins react to hyprgrass gesture events through hook events.
Removedhl-0.52.2 → hl-0.54.1
Release history 5
hl-0.55.42026-06-11
Configure touch gestures from Hyprland's Lua config.
Details
Lua API: hl.config({plugin = {hyprgrass = {...}}}), hl.plugin.hyprgrass.bind and hl.plugin.hyprgrass.gesture with pattern tables such as {kind = "swipe", fingers = 3, direction = "down"}. In Lua, workspace_swipe_fingers and workspace_swipe_edge are gone and workspace swipes are off unless bound with hyprgrass.gesture. Groups hl-0.55.3 and hl-0.55.4.
Tag hl-0.55.4, for Hyprland 0.55.4 with the Lua config; docs/lua_migration.md covers the move.
Added: Configure hyprgrass and bind gestures from Hyprland…Action required: Switch workspaces by swiping with several fingers o…
Change volume and brightness with gestures again, now bound like Hyprland touchpad gestures.
Details
hyprgrass-pulse and hyprgrass-backlight return as touchpad gestures with new keywords pulse-gesture = 3, vertical, volume and backlight-gesture = 3, vertical, backlight; combine with hyprgrass-gesture ... emulate_touchpad to drive them from the touch screen. Groups hl-0.55.0 to hl-0.55.2.
Tag hl-0.55.2, for Hyprland 0.55.2.
Now works: Change volume or screen brightness by sliding along…Action required / inferred: Change volume or screen brightness by sliding along…
Turn a touch screen gesture into a touchpad gesture, so Hyprland's touchpad gesture actions work from the screen.
Details
New emulate_touchpad action for hyprgrass-gesture, taking fingers and a direction, for example hyprgrass-gesture = edge, up, down, emulate_touchpad, 4, down.
Tag hl-0.54.3, for Hyprland 0.54.3.
Added: Make a touch screen gesture act as a touchpad gestu…
Run hyprgrass on Hyprland 0.54.1, where gestures honor the disableInhibit parameter.
Details
hyprgrass dropped its custom hook events to follow Hyprland's new event bus. As a result hyprgrass-pulse and hyprgrass-backlight stopped working and show a notification saying so. Groups hl-0.54.0 and hl-0.54.1.
Tag hl-0.54.1, for Hyprland 0.54.1.
Removed / inferred: Let other Hyprland plugins react to hyprgrass gestu…Behavior changed: Change volume or screen brightness by sliding along…
Switch Hyprland workspaces by swiping on a touch screen with three or more fingers or from a screen edge.
Details
State as of hl-0.52.2: options under plugin:touch_gestures (sensitivity, workspace_swipe_fingers, workspace_swipe_edge, long_press_delay, resize_on_border_long_press, edge_margin, emulate_touchpad_swipe), the hyprgrass-bind and hyprgrass-gesture keywords, and the optional hyprgrass-pulse and hyprgrass-backlight plugins.
Tag hl-0.52.2, for Hyprland 0.52.2; install with hyprpm add https://github.com/horriblename/hyprgrass, or Nix.
Added: Switch workspaces by swiping with several fingers o…Added: Run any Hyprland dispatcher from a touch swipe, edg…Added: Move and resize windows with a long-press, includin…Added: Change volume or screen brightness by sliding along…Added: Let other Hyprland plugins react to hyprgrass gestu…