canido.dev
Projects/VirtCode / hypr-dynamic-cursors

hypr-dynamic-cursors

A Hyprland plugin that tilts, rotates or stretches the cursor

Get it on GitHub
Unclaimed

Built by @VirtCode on GitHub. This page was written by @iluxav from public sources, last updated for b9739b1 (2026-09-04), and may lag behind new releases.

Maintain hypr-dynamic-cursors? Claim it
b9739b1 / 2026-09-047 things you can do3 changes to know before upgradingFollow (Atom feed)

Make the mouse cursor tilt, rotate or stretch as it moves, and enlarge it when you shake the mouse so you can find it.

What you can do with it

Shake the mouse to temporarily enlarge the cursor so you can find it.

Good to know

Hyprland switches to software cursors while the cursor is magnified; x86_64 only.

Present at d195ab3

Use a different effect or setting for specific cursor shapes, such as the text cursor.

Good to know

Only applies to server-side cursor shapes, so not in apps that draw their own cursor, mainly XWayland apps.

Present at d195ab3

Keep the enlarged cursor sharp by loading a high-resolution image from an SVG hyprcursor theme.

Good to know

Needs an SVG-based hyprcursor theme and cursor:enable_hyprcursor; clientside and XWayland cursors stay pixelated; the theme is loaded in the background, so CPU use spikes briefly on load.

Present at d195ab3

Enlarge the cursor from a keybind instead of by shaking.

Present at d195ab3

Receive shakestart, shakeupdate and shakeend events on Hyprland's event socket to script your own reaction to a shake.

Good to know

Off by default because it sends many events during a shake; enable shake:ipc.

Present at d195ab3

Configure cursor effects, shake to find and shape rules from a Lua Hyprland config.

Good to know

Hyprland 0.55.1 or newer; wrap the settings in if hl.plugin.dynamic_cursors then ... end to avoid errors when the plugin is not loaded.

Since 39fe4ab

Make the cursor tilt, rotate toward the movement direction or stretch with speed as you move it.

Good to know

Function hooks only work on x86_64; on other architectures the plugin loads but does nothing. On Nvidia GPUs it forces software cursors. Hardware cursors cost about as much as an animated cursor while moving.

PreviewPresent at d195ab3

Before you upgrade

Newest first
Release history 3
b9739b12026-09-04

Keep using the plugin on current Hyprland, which is configured only with Lua.

Details

The hyprlang configuration (plugin:dynamic-cursors section, shaperule keyword, plugin:dynamic-cursors:magnify) was removed, following Hyprland; only the Lua configuration remains. The cursor is now drawn in toplevel screen captures, and pins were added for newer Hyprland releases.

Current main branch, tracking Hyprland's main branch; pins for Hyprland up to v0.56.2.

Action required: Configure cursor effects, shake to find and shape r…Now works / inferred: Make the cursor tilt, rotate toward the movement di…

Seeded by @iluxav with Claude Code (canido)

Read the evidence
39fe4ab2026-05-17

Configure the plugin from a Lua Hyprland config.

Details

Settings now live under plugin.dynamic_cursors in hl.config, shape rules use hl.plugin.dynamic_cursors.shape_rule, and the dispatcher is hl.plugin.dynamic_cursors.dsp_magnify. hyprlang configuration still worked in this version. Several options were renamed.

Lua configuration needs Hyprland 0.55.1 or newer.

Added: Configure cursor effects, shake to find and shape r…Action required: Make the cursor tilt, rotate toward the movement di…Action required / inferred: Keep the enlarged cursor sharp by loading a high-re…

Seeded by @iluxav with Claude Code (canido)

Read the evidence
d195ab32026-05-17
Starting point

Shake the mouse to make the cursor grow so you can find it on a large or busy screen.

Details

State of the plugin before Lua configuration support: configured in the plugin:dynamic-cursors section of hyprland.conf with mode = tilt, rotate, stretch or none, plus shake, hyprcursor and shaperule settings and a plugin:dynamic-cursors:magnify dispatcher.

Install with hyprpm add https://github.com/virtcode/hypr-dynamic-cursors and hyprpm enable dynamic-cursors; Hyprland v0.41.2 or newer on x86_64; did not load when Hyprland was configured with Lua.

Added: Shake the mouse to temporarily enlarge the cursor s…Added: Make the cursor tilt, rotate toward the movement di…Added: Use a different effect or setting for specific curs…Added: Keep the enlarged cursor sharp by loading a high-re…Added: Enlarge the cursor from a keybind instead of by sha…Added: Receive shakestart, shakeupdate and shakeend events…

Seeded by @iluxav with Claude Code (canido)

Read the evidence