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.
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.
Move your plugin:dynamic-cursors settings, shaperule lines and magnify binds to the Lua form (hl.config plugin.dynamic_cursors, hl.plugin.dynamic_cursors.shape_rule, hl.plugin.dynamic_cursors.dsp_magnify).
Action requiredAffects: Users still configuring the plugin in hyprlang syntax
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…
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…
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…