diff --git a/build b/build index 8fa85ba0..e4104c46 100755 --- a/build +++ b/build @@ -48,6 +48,29 @@ convert_to_x11cursor() { done } +write_scalable() { + local src_dir="$1" + local out_dir="$2" + local config base_name + + [ -d "$src_dir" ] || return 1 + + if [ -d "$out_dir" ]; then + rm -rf "$out_dir" + fi + + mkdir -p "$out_dir" + + for config in "$CONFIG_DIR"/*.json; do + [ -f "$config" ] || continue + base_name="$(basename "$config" .json)" + cursor_out="$out_dir/$base_name" + mkdir "$cursor_out" + find "$src_dir" -type f \( -name "$base_name-??.svg" -o -name "$base_name.svg" \) ! -name "*_24.svg" -exec cp {} "$cursor_out" \; + cp "$config" "$cursor_out/metadata.json" + done +} + create_aliases() { local out_dir="$1" local symlink target @@ -156,7 +179,9 @@ for accent in $ACCENTS; do theme_png_dir="$PNG_DIR/$theme_name" convert_to_x11cursor "$theme_png_dir" "$theme_out_dir/cursors" + write_scalable "$theme_src_dir" "$theme_out_dir/cursors_scalable" create_aliases "$theme_out_dir/cursors" + create_aliases "$theme_out_dir/cursors_scalable" cp -f "$theme_src_dir/index.theme" "$theme_out_dir" cp -f "$AUTHORS" "$theme_out_dir" diff --git a/src/config/alias.json b/src/config/alias.json new file mode 100644 index 00000000..62650e70 --- /dev/null +++ b/src/config/alias.json @@ -0,0 +1,8 @@ +[ + { + "filename": "alias.svg", + "hotspot_x": 2, + "hotspot_y": 1, + "nominal_size": 24 + } +] diff --git a/src/config/all-scroll.json b/src/config/all-scroll.json new file mode 100644 index 00000000..b1815eeb --- /dev/null +++ b/src/config/all-scroll.json @@ -0,0 +1,8 @@ +[ + { + "filename": "all-scroll.svg", + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/bottom_left_corner.json b/src/config/bottom_left_corner.json new file mode 100644 index 00000000..9dfa8a65 --- /dev/null +++ b/src/config/bottom_left_corner.json @@ -0,0 +1,8 @@ +[ + { + "filename": "bottom_left_corner.svg", + "hotspot_x": 4, + "hotspot_y": 18, + "nominal_size": 24 + } +] diff --git a/src/config/bottom_right_corner.json b/src/config/bottom_right_corner.json new file mode 100644 index 00000000..5f1a890c --- /dev/null +++ b/src/config/bottom_right_corner.json @@ -0,0 +1,8 @@ +[ + { + "filename": "bottom_right_corner.svg", + "hotspot_x": 19, + "hotspot_y": 18, + "nominal_size": 24 + } +] diff --git a/src/config/bottom_side.json b/src/config/bottom_side.json new file mode 100644 index 00000000..c8912132 --- /dev/null +++ b/src/config/bottom_side.json @@ -0,0 +1,8 @@ +[ + { + "filename": "bottom_side.svg", + "hotspot_x": 11, + "hotspot_y": 16, + "nominal_size": 24 + } +] diff --git a/src/config/cell.json b/src/config/cell.json new file mode 100644 index 00000000..e4f59aad --- /dev/null +++ b/src/config/cell.json @@ -0,0 +1,8 @@ +[ + { + "filename": "cell.svg", + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/center_ptr.json b/src/config/center_ptr.json new file mode 100644 index 00000000..a3159b80 --- /dev/null +++ b/src/config/center_ptr.json @@ -0,0 +1,8 @@ +[ + { + "filename": "center_ptr.svg", + "hotspot_x": 11, + "hotspot_y": 5, + "nominal_size": 24 + } +] diff --git a/src/config/col-resize.json b/src/config/col-resize.json new file mode 100644 index 00000000..c68cf82d --- /dev/null +++ b/src/config/col-resize.json @@ -0,0 +1,8 @@ +[ + { + "filename": "col-resize.svg", + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/color-picker.json b/src/config/color-picker.json new file mode 100644 index 00000000..e7ca3ab8 --- /dev/null +++ b/src/config/color-picker.json @@ -0,0 +1,8 @@ +[ + { + "filename": "color-picker.svg", + "hotspot_x": 4, + "hotspot_y": 18, + "nominal_size": 24 + } +] diff --git a/src/config/context-menu.json b/src/config/context-menu.json new file mode 100644 index 00000000..f400b068 --- /dev/null +++ b/src/config/context-menu.json @@ -0,0 +1,8 @@ +[ + { + "filename": "context-menu.svg", + "hotspot_x": 2, + "hotspot_y": 1, + "nominal_size": 24 + } +] diff --git a/src/config/copy.json b/src/config/copy.json new file mode 100644 index 00000000..e460c4f3 --- /dev/null +++ b/src/config/copy.json @@ -0,0 +1,8 @@ +[ + { + "filename": "copy.svg", + "hotspot_x": 2, + "hotspot_y": 1, + "nominal_size": 24 + } +] diff --git a/src/config/crosshair.json b/src/config/crosshair.json new file mode 100644 index 00000000..5ff1b594 --- /dev/null +++ b/src/config/crosshair.json @@ -0,0 +1,8 @@ +[ + { + "filename": "crosshair.svg", + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/default.json b/src/config/default.json new file mode 100644 index 00000000..09bb6a40 --- /dev/null +++ b/src/config/default.json @@ -0,0 +1,8 @@ +[ + { + "filename": "default.svg", + "hotspot_x": 2, + "hotspot_y": 1, + "nominal_size": 24 + } +] diff --git a/src/config/dnd-move.json b/src/config/dnd-move.json new file mode 100644 index 00000000..bea84761 --- /dev/null +++ b/src/config/dnd-move.json @@ -0,0 +1,8 @@ +[ + { + "filename": "dnd-move.svg", + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/dnd-no-drop.json b/src/config/dnd-no-drop.json new file mode 100644 index 00000000..5d80f625 --- /dev/null +++ b/src/config/dnd-no-drop.json @@ -0,0 +1,8 @@ +[ + { + "filename": "dnd-no-drop.svg", + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/down-arrow.json b/src/config/down-arrow.json new file mode 100644 index 00000000..bb4e1711 --- /dev/null +++ b/src/config/down-arrow.json @@ -0,0 +1,8 @@ +[ + { + "filename": "down-arrow.svg", + "hotspot_x": 11, + "hotspot_y": 18, + "nominal_size": 24 + } +] diff --git a/src/config/draft.json b/src/config/draft.json new file mode 100644 index 00000000..33117948 --- /dev/null +++ b/src/config/draft.json @@ -0,0 +1,8 @@ +[ + { + "filename": "draft.svg", + "hotspot_x": 4, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/fleur.json b/src/config/fleur.json new file mode 100644 index 00000000..f0e55a12 --- /dev/null +++ b/src/config/fleur.json @@ -0,0 +1,8 @@ +[ + { + "filename": "fleur.svg", + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/help.json b/src/config/help.json new file mode 100644 index 00000000..a8758bfa --- /dev/null +++ b/src/config/help.json @@ -0,0 +1,8 @@ +[ + { + "filename": "help.svg", + "hotspot_x": 2, + "hotspot_y": 1, + "nominal_size": 24 + } +] diff --git a/src/config/left-arrow.json b/src/config/left-arrow.json new file mode 100644 index 00000000..a5546b64 --- /dev/null +++ b/src/config/left-arrow.json @@ -0,0 +1,8 @@ +[ + { + "filename": "left-arrow.svg", + "hotspot_x": 4, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/left_side.json b/src/config/left_side.json new file mode 100644 index 00000000..36cd6e1a --- /dev/null +++ b/src/config/left_side.json @@ -0,0 +1,8 @@ +[ + { + "filename": "left_side.svg", + "hotspot_x": 7, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/no-drop.json b/src/config/no-drop.json new file mode 100644 index 00000000..50bd5ae3 --- /dev/null +++ b/src/config/no-drop.json @@ -0,0 +1,8 @@ +[ + { + "filename": "no-drop.svg", + "hotspot_x": 2, + "hotspot_y": 1, + "nominal_size": 24 + } +] diff --git a/src/config/not-allowed.json b/src/config/not-allowed.json new file mode 100644 index 00000000..325b842f --- /dev/null +++ b/src/config/not-allowed.json @@ -0,0 +1,8 @@ +[ + { + "filename": "not-allowed.svg", + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/openhand.json b/src/config/openhand.json new file mode 100644 index 00000000..466d392a --- /dev/null +++ b/src/config/openhand.json @@ -0,0 +1,8 @@ +[ + { + "filename": "openhand.svg", + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/pencil.json b/src/config/pencil.json new file mode 100644 index 00000000..174facdf --- /dev/null +++ b/src/config/pencil.json @@ -0,0 +1,8 @@ +[ + { + "filename": "pencil.svg", + "hotspot_x": 5, + "hotspot_y": 18, + "nominal_size": 24 + } +] diff --git a/src/config/pirate.json b/src/config/pirate.json new file mode 100644 index 00000000..0cb87ba9 --- /dev/null +++ b/src/config/pirate.json @@ -0,0 +1,8 @@ +[ + { + "filename": "pirate.svg", + "hotspot_x": 11, + "hotspot_y": 8, + "nominal_size": 24 + } +] diff --git a/src/config/pointer.json b/src/config/pointer.json new file mode 100644 index 00000000..3d6bf3ec --- /dev/null +++ b/src/config/pointer.json @@ -0,0 +1,8 @@ +[ + { + "filename": "pointer.svg", + "hotspot_x": 9, + "hotspot_y": 4, + "nominal_size": 24 + } +] diff --git a/src/config/progress.json b/src/config/progress.json new file mode 100644 index 00000000..2bec222f --- /dev/null +++ b/src/config/progress.json @@ -0,0 +1,86 @@ +[ + { + "filename": "progress-01.svg", + "delay": 30, + "hotspot_x": 2, + "hotspot_y": 1, + "nominal_size": 24 + }, + { + "filename": "progress-02.svg", + "delay": 30, + "hotspot_x": 2, + "hotspot_y": 1, + "nominal_size": 24 + }, + { + "filename": "progress-03.svg", + "delay": 30, + "hotspot_x": 2, + "hotspot_y": 1, + "nominal_size": 24 + }, + { + "filename": "progress-04.svg", + "delay": 30, + "hotspot_x": 2, + "hotspot_y": 1, + "nominal_size": 24 + }, + { + "filename": "progress-05.svg", + "delay": 30, + "hotspot_x": 2, + "hotspot_y": 1, + "nominal_size": 24 + }, + { + "filename": "progress-06.svg", + "delay": 30, + "hotspot_x": 2, + "hotspot_y": 1, + "nominal_size": 24 + }, + { + "filename": "progress-07.svg", + "delay": 30, + "hotspot_x": 2, + "hotspot_y": 1, + "nominal_size": 24 + }, + { + "filename": "progress-08.svg", + "delay": 30, + "hotspot_x": 2, + "hotspot_y": 1, + "nominal_size": 24 + }, + { + "filename": "progress-09.svg", + "delay": 30, + "hotspot_x": 2, + "hotspot_y": 1, + "nominal_size": 24 + }, + { + "filename": "progress-10.svg", + "delay": 30, + "hotspot_x": 2, + "hotspot_y": 1, + "nominal_size": 24 + }, + { + "filename": "progress-11.svg", + "delay": 30, + "hotspot_x": 2, + "hotspot_y": 1, + "nominal_size": 24 + }, + { + "filename": "progress-12.svg", + "delay": 30, + "hotspot_x": 2, + "hotspot_y": 1, + "nominal_size": 24 + } +] diff --git a/src/config/right-arrow.json b/src/config/right-arrow.json new file mode 100644 index 00000000..3161a503 --- /dev/null +++ b/src/config/right-arrow.json @@ -0,0 +1,8 @@ +[ + { + "filename": "right-arrow.svg", + "hotspot_x": 19, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/right_ptr.json b/src/config/right_ptr.json new file mode 100644 index 00000000..3d7d80a9 --- /dev/null +++ b/src/config/right_ptr.json @@ -0,0 +1,8 @@ +[ + { + "filename": "right_ptr.svg", + "hotspot_x": 21, + "hotspot_y": 1, + "nominal_size": 24 + } +] diff --git a/src/config/right_side.json b/src/config/right_side.json new file mode 100644 index 00000000..adbd04bf --- /dev/null +++ b/src/config/right_side.json @@ -0,0 +1,8 @@ +[ + { + "filename": "right_side.svg", + "hotspot_x": 16, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/row-resize.json b/src/config/row-resize.json new file mode 100644 index 00000000..50c038a0 --- /dev/null +++ b/src/config/row-resize.json @@ -0,0 +1,8 @@ +[ + { + "filename": "row-resize.svg", + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/size_bdiag.json b/src/config/size_bdiag.json new file mode 100644 index 00000000..6226d8e3 --- /dev/null +++ b/src/config/size_bdiag.json @@ -0,0 +1,8 @@ +[ + { + "filename": "size_bdiag.svg", + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/size_fdiag.json b/src/config/size_fdiag.json new file mode 100644 index 00000000..4e317335 --- /dev/null +++ b/src/config/size_fdiag.json @@ -0,0 +1,8 @@ +[ + { + "filename": "size_fdiag.svg", + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/size_hor.json b/src/config/size_hor.json new file mode 100644 index 00000000..ba7869ae --- /dev/null +++ b/src/config/size_hor.json @@ -0,0 +1,8 @@ +[ + { + "filename": "size_hor.svg", + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/size_ver.json b/src/config/size_ver.json new file mode 100644 index 00000000..a3e6db12 --- /dev/null +++ b/src/config/size_ver.json @@ -0,0 +1,8 @@ +[ + { + "filename": "size_ver.svg", + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/text.json b/src/config/text.json new file mode 100644 index 00000000..c9d012d8 --- /dev/null +++ b/src/config/text.json @@ -0,0 +1,8 @@ +[ + { + "filename": "text.svg", + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/top_left_corner.json b/src/config/top_left_corner.json new file mode 100644 index 00000000..d8150c10 --- /dev/null +++ b/src/config/top_left_corner.json @@ -0,0 +1,8 @@ +[ + { + "filename": "top_left_corner.svg", + "hotspot_x": 4, + "hotspot_y": 4, + "nominal_size": 24 + } +] diff --git a/src/config/top_right_corner.json b/src/config/top_right_corner.json new file mode 100644 index 00000000..a95af540 --- /dev/null +++ b/src/config/top_right_corner.json @@ -0,0 +1,8 @@ +[ + { + "filename": "top_right_corner.svg", + "hotspot_x": 19, + "hotspot_y": 4, + "nominal_size": 24 + } +] diff --git a/src/config/top_side.json b/src/config/top_side.json new file mode 100644 index 00000000..6eeefb55 --- /dev/null +++ b/src/config/top_side.json @@ -0,0 +1,8 @@ +[ + { + "filename": "top_side.svg", + "hotspot_x": 11, + "hotspot_y": 7, + "nominal_size": 24 + } +] diff --git a/src/config/up-arrow.json b/src/config/up-arrow.json new file mode 100644 index 00000000..c65f12de --- /dev/null +++ b/src/config/up-arrow.json @@ -0,0 +1,8 @@ +[ + { + "filename": "up-arrow.svg", + "hotspot_x": 11, + "hotspot_y": 4, + "nominal_size": 24 + } +] diff --git a/src/config/vertical-text.json b/src/config/vertical-text.json new file mode 100644 index 00000000..591d683f --- /dev/null +++ b/src/config/vertical-text.json @@ -0,0 +1,8 @@ +[ + { + "filename": "vertical-text.svg", + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/wait.json b/src/config/wait.json new file mode 100644 index 00000000..208c271a --- /dev/null +++ b/src/config/wait.json @@ -0,0 +1,86 @@ +[ + { + "filename": "wait-01.svg", + "delay": 30, + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + }, + { + "filename": "wait-02.svg", + "delay": 30, + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + }, + { + "filename": "wait-03.svg", + "delay": 30, + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + }, + { + "filename": "wait-04.svg", + "delay": 30, + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + }, + { + "filename": "wait-05.svg", + "delay": 30, + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + }, + { + "filename": "wait-06.svg", + "delay": 30, + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + }, + { + "filename": "wait-07.svg", + "delay": 30, + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + }, + { + "filename": "wait-08.svg", + "delay": 30, + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + }, + { + "filename": "wait-09.svg", + "delay": 30, + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + }, + { + "filename": "wait-10.svg", + "delay": 30, + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + }, + { + "filename": "wait-11.svg", + "delay": 30, + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + }, + { + "filename": "wait-12.svg", + "delay": 30, + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/wayland-cursor.json b/src/config/wayland-cursor.json new file mode 100644 index 00000000..379d340f --- /dev/null +++ b/src/config/wayland-cursor.json @@ -0,0 +1,8 @@ +[ + { + "filename": "wayland-cursor.svg", + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/x-cursor.json b/src/config/x-cursor.json new file mode 100644 index 00000000..5a535b15 --- /dev/null +++ b/src/config/x-cursor.json @@ -0,0 +1,8 @@ +[ + { + "filename": "x-cursor.svg", + "hotspot_x": 11, + "hotspot_y": 11, + "nominal_size": 24 + } +] diff --git a/src/config/zoom-in.json b/src/config/zoom-in.json new file mode 100644 index 00000000..b2ab5bef --- /dev/null +++ b/src/config/zoom-in.json @@ -0,0 +1,8 @@ +[ + { + "filename": "zoom-in.svg", + "hotspot_x": 10, + "hotspot_y": 9, + "nominal_size": 24 + } +] diff --git a/src/config/zoom-out.json b/src/config/zoom-out.json new file mode 100644 index 00000000..1f937e7d --- /dev/null +++ b/src/config/zoom-out.json @@ -0,0 +1,8 @@ +[ + { + "filename": "zoom-out.svg", + "hotspot_x": 10, + "hotspot_y": 9, + "nominal_size": 24 + } +]