vinceliuice / WhiteSur-cursors

WhiteSur cursors theme for linux desktops
GNU General Public License v3.0
222 stars 25 forks source link

Adding support for SVG cursor format #12

Open jinliu opened 2 weeks ago

jinliu commented 2 weeks ago

Hi. As you may have heard, the upcoming KDE Plasma 6.2 release will support a new SVG cursor theme format. I'm working on tools to help adapt cursor themes to this new format, so I'd like to ask if you are interested and how you would like it to be done.

The new format is described here: https://invent.kde.org/plasma/breeze/-/blob/master/cursors/svg-cursor-format.md

With a brief introduction: https://pointieststick.com/2024/08/09/this-week-in-kde-svg-breeze-cursors-and-more-thumbnails/

In Plasma 6.2, the only user-visible change will be that the enlarged cursor in the "Shake Cursor" effect won't be blurry anymore, if your theme contains SVG files. We are looking for more improvements in future releases.

So if you are to adapt your cursor theme to the new format, how would you like to do it:

  1. You can restructure your src dir to match the cursors_scalable dir in the new format. I.e., move svg files to a separate dir for each, create corresponding metadata.json files, and create symlinks for aliases. We can provide a script to automate this. You run the script once, drop *.cursor and cursorList files, and commit the changes. To build the theme, copy everything under src to dist/cursors_scalable, then use the kcursorgen program in Plasma 6.2 instead of xcursorgen to generate XCursors in dist/cursors. If you want to modify hotspots or add cursors later, you are to edit or create metadata.json directly.

  2. You can keep the current src structure (i.e., all SVGs in one dir). We can provide a script that you run once to generate a single manifest.json file from your *.cursor and cursorList files, drop these files and commit the changes. To build the theme, you run a script that takes manifest.json as input to generate the cursors_scalable dir, and use kcursorgen to generate XCursors. If you want to modify hotspots or add cursors later, you are to edit manifest.json and rebuild the theme.

  3. You can keep the current src structure and build script (i.e., all SVGs in one dir, *.cursor and cursorList). We can provide a script to generate the cursors_scalable dir from *.cursor and cursorList. To build the theme, you run the script to generate cursors_scalable, then either use your current build script and xcursorgen to generate XCursors, or use kcursorgen to generate them from cursors_scalable. If you want to modify hotspots or add cursors later, you are to edit *.cursor and cursorList and rebuild the theme.

  4. Please tell me if you prefer some other way.

Ramen-LadyHKG commented 2 weeks ago

agree, shaking cursor is blurring in Plasma 6