- Do not edit cursor assets directly (i.e. those in the "Pop" folder)!
- To modify the cursors, edit source SVG file found in this directory and render them with the appropriate script.
- To edit the cursors you will need
inkscapeinstalled and to build and the render the cursor set you'll needpython-pilandx11-appsinstalled.
For simplified development, has various scripts to render and build the cursor set are provided:
-
master-render.pywill render any missing assets in the entire theme. To re-render just cursors, use./master-render.py -cx -
render-cursors.pywill render the cursor PNG assets into bitmaps at the appropriate sizes; run by passing the source filename to it:./render-cursors.py source-cursors.svgInside the Bitmaps folder you'll find folders containing the rendered.pngfiles (24x24, 32x32,...). These must be removed, but the.infiles are needed for the script to run. -
x11-make.shbuilds the cursor assets into a Xcursor set and renders them to/icons/Yaru/cursors/. These files have no extension. -
w32-make.shbuilds the cursor assets into a Windows cursor set and renders them to/icons/Yaru/cursors/. These files have the.curextension.
The source SVG for the cursors is laid out in such a way to make editing/creating cursors simple, with a variety of layers:
hotspotsshows the exact point where the cursor is active within the 24x24 region (hidden by default)slicesis read by the render script and each 24x24 square had an ID that is the cursor file name (hidden by default)cursorspretty self-explanatory, these are the drawn cursorslabelsare just labels
Both the busy cursors (the large and pointer versions) require 60 different assets to achieve a 60 FPS animation when compiled (each variant is a 6° rotation of the busy indicator).
The csscursors.html let's you see your browser's cursor style and where the HOTSPOT is simply by hover over the boxes containing the CSS cursor name. In CURSORNAMES.md you'll find the naming specification and a description of the cursors.