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

hypr-dynamic-cursors

A Hyprland plugin that tilts, rotates or stretches the cursor

Get it on GitHub
Unclaimed

This page was written by @iluxav from public sources, last updated , and may lag behind new releases.

Are you @VirtCode?Claim this page to keep it up to date
Updated 7 things you can do 3 changes to know before upgrading
Follow GitHub

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 hypr-dynamic-cursors

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

Present at commit d195ab3
Good to know

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

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

Present at commit d195ab3
Good to know

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

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

Present at commit d195ab3
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.

Enlarge the cursor from a keybind instead of by shaking.

Present at commit d195ab3

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

1 other tool for Hyprland ipc
Present at commit d195ab3
Good to know

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

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

4 other tools for Hyprland Lua config
Since commit 39fe4ab
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.

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

ExperimentalPresent at commit d195ab3
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.

Before you upgrade hypr-dynamic-cursors

Newest first
hypr-dynamic-cursors release history 3
commit b9739b1

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
commit 39fe4ab

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
commit d195ab3
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