hyprcursor
hyprcursor is a new cursor theme format that has many advantages over the widely used xcursor.
Hyprcursor themes
You will need to obtain those yourself. If you are on the Discord server, see
#hyprcursor-themes
.
Put your theme(s) in ~/.local/share/icons
or ~/.icons
/usr/share/icons
due
to potential permission issues.You can set your theme with envvars, or with hyprctl setcursor
.
Env:
HYPRCURSOR_THEME
controls the theme.HYPRCURSOR_SIZE
controls the cursor size.
example snippet of hyprland.conf
:
env = HYPRCURSOR_THEME,MyCursor
env = HYPRCURSOR_SIZE,24
Creating / Porting Themes
Go to the hyprcursor repo
See the docs/
and hyprcursor-util/
directories for instructions.
Important notes
Although many apps support server-side cursors (e.g. Qt, Chromium, Electron, Hypr Ecosystem) some apps still don’t (e.g. GTK).
Apps that do not support server-side cursors and hyprcursor will still fall back to XCursor.
For those apps, you need to export XCURSOR_THEME
and XCURSOR_SIZE
to a valid
XCursor theme, and run gsettings set org.gnome.desktop.interface cursor-theme 'THEME_NAME'
for gtk. If gsettings
schemas are not available to you (e.g. on
NixOS you will get No schemas installed
), you can run instead: dconf write /org/gnome/desktop/interface/cursor-theme "'THEME_NAME'"
.
If the app is a flatpak, run flatpak override --filesystem=~/.themes:ro --filesystem=~/.icons:ro --user
and put your themes in both /usr/share/themes
and ~/.themes
, and put your icons and XCursors in both /usr/share/icons
and ~/.icons
.
I don’t want to use hyprcursor
If you don’t have any hyprcursor themes installed, Hyprland will fall back to XCursor, and use
whatever you define with XCURSOR_THEME
and XCURSOR_SIZE
.
My cursor is a hyprland icon?
See FAQ