canido.dev
Projects/horriblename / hyprgrass

hyprgrass

Touch screen gestures for Hyprland

Get it on GitHub
Unclaimed

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.

Maintain hyprgrass? Claim it
hl-0.55.4 / 2026-06-116 things you can do3 changes to know before upgradingFollow (Atom feed)

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
Read the evidence
Removed 1

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…

Seeded by @iluxav with Claude Code (canido)

Read the evidence
hl-0.55.22026-05-17

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…

Seeded by @iluxav with Claude Code (canido)

Read the evidence
hl-0.54.32026-03-28

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…

Seeded by @iluxav with Claude Code (canido)

Read the evidence
hl-0.54.12026-03-04

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…

Seeded by @iluxav with Claude Code (canido)

Read the evidence
hl-0.52.22025-12-19
Starting point

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…

Seeded by @iluxav with Claude Code (canido)

Read the evidence