catppuccin / cursors

🐁 Soothing pastel cursors for GTK/Plasma/Hyprland
GNU General Public License v2.0
462 stars 16 forks source link

feat: build hyprcursor with svgs #55

Open Covkie opened 3 days ago

Covkie commented 3 days ago

fixes #53

Effectively rewrite the hyprcursor build system to be data driven, reflecting the other formats. As a result dependency on hyprcursor-util & xcur2png is gone.

some discussion might be had about the build scripts and legacy stuff.

sgoudham commented 3 days ago

I'd like to confirm that this does fix recent (potentially all?) issues raised with regards to Hyprland.

The artifacts have been built as part of this PR and I'd greatly appreciate if @kerichdev / @arminius-smh / @JonathanSteininger / @jinliu could test it out and confirm that it fixes some or all issues.

Thanks!

jinliu commented 3 days ago

I haven't tested this. But a note to fellow testers: Hyprcursor specifies actual image size instead of nominal size, so for this theme, a Hyprcursor size 32 corresponds to XCURSOR_SIZE 24. If you set Hyprcursor size to 24, the cursor would be smaller and blurry.

Covkie commented 3 days ago

Arminius over on the Discord has confirmed the cursors work and dont have any obvious issues

jinliu commented 3 days ago

Can confirm this works. Tested in Hyprland with Qt/KDE apps and Kitty, which uses Hyprcursor through the Wayland cursor_shape_v1 protocol.

Covkie commented 3 days ago

I haven't tested this. But a note to fellow testers: Hyprcursor specifies actual image size instead of nominal size, so for this theme, a Hyprcursor size 32 corresponds to XCURSOR_SIZE 24. If you set Hyprcursor size to 24, the cursor would be smaller and blurry.

Catppuccin has a 1.333... ratio nominal:actual size. maybe a note should be added to the README for hyprcursor users to do this conversion when setting their size. Something like: "hyprcursor has no concept of nominal size which we rely on. when running hyprctl setcursor multiply your target size by 1.333..." (maybe an issue should be opened for hyprctl to do this automatically if nominal size usage is detected in the xcursor OR hyprcursor should implement nominal size)