diff --git a/CHANGELOG.md b/CHANGELOG.md index aa4fd66..3b143e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,10 +11,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - The 'bitmaps' directory has been removed from the git repository. You can now generate the PNG files using `yarn render` or download them from the release assets. +- The `build.toml` file has been removed. Instead, the cursor build configurations are now distributed according to platforms within the `configs` directory: + - `configs/x.build.toml`: Used to build XCursor. + - `configs/win_rg.build.toml`: Used to build regular size Windows cursors. + - `configs/win_lg.build.toml`: Used to build large size Windows cursors. + - `configs/win_xxl.build.toml`: Used to build extra large size Windows cursors. + ### What's New? - Banana cursor is now customizable - Support `256px` cursors +- Official Distributing `16` and `20` XCursors +- Multi Resolution Windows Cursors +- Attach version meta-data inside cursor packages +- Using [cbmp v1.1.1](https://github.com/ful1e5/cbmp/tree/v1.1.1) for rendering cursor bitmaps. ### Changes diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..7ebea92 --- /dev/null +++ b/build.sh @@ -0,0 +1,88 @@ +#!/bin/bash +# A script for preparing binaries of Banana Cursors, created by Abdulkaiz Khatri. + +version="v2.0.1" + +error() ( + set -o pipefail + "$@" 2> >(sed $'s,.*,\e[31m&\e[m,' >&2) +) + +get_config_file() { + local key="${1}" + local cfg_file="build.toml" + + if [[ $key == *"Right"* ]]; then + cfg_file="build.right.toml" + fi + + echo $cfg_file +} + +with_version() { + local comment="${1}" + echo "$comment ($version)" +} + +if ! type -p ctgen >/dev/null; then + error ctgen + exit 127 # exit program with "command not found" error code +fi + +declare -A names +names["Banana"]=$(with_version "The Banana") +names["Banana-Green"]=$(with_version "The Green Banana") + +# Cleanup old builds +rm -rf themes bin + +# Building Banana XCursor binaries +for key in "${!names[@]}"; do + comment="${names[$key]}" + cfg=$(get_config_file key) + + ctgen "configs/x.$cfg" -p x11 -d "bitmaps/$key" -n "$key" -c "$comment XCursors" & + PID=$! + wait $PID +done + +# Building Banana Windows binaries +for key in "${!names[@]}"; do + comment="${names[$key]}" + cfg=$(get_config_file key) + + ctgen "configs/win_rg.$cfg" -d "bitmaps/$key" -n "$key-Regular" -c "$comment Regular Windows Cursors" & + ctgen "configs/win_lg.$cfg" -d "bitmaps/$key" -n "$key-Large" -c "$comment Large Windows Cursors" & + ctgen "configs/win_xl.$cfg" -d "bitmaps/$key" -n "$key-Extra-Large" -c "$comment Extra Large Windows Cursors" & + PID=$! + wait $PID +done + +# Compressing Binaries +mkdir -p bin +cd themes || exit + +for key in "${!names[@]}"; do + tar -cJvf "../bin/${key}.tar.xz" "${key}" & + PID=$! + wait $PID +done + +# Compressing banana-all.tar.xz +cp ../LICENSE . +tar -cJvf "../bin/banana-all.tar.xz" --exclude="*-Windows" . & +PID=$! +wait $PID + +# Compressing Banana-*-Windows +for key in "${!names[@]}"; do + zip -rv "../bin/${key}-Windows.zip" "${key}-Regular-Windows" "${key}-Large-Windows" "${key}-Extra-Large-Windows" & + PID=$! + wait $PID +done + +cd .. + +# Copying License File for 'bitmaps' +cp LICENSE bitmaps/ +zip -rv bin/bitmaps.zip bitmaps diff --git a/build.toml b/build.toml deleted file mode 100644 index 7a13a74..0000000 --- a/build.toml +++ /dev/null @@ -1,374 +0,0 @@ -[theme] -name = 'Banana' -comment = 'The Banana Cursor' -website = 'https://www.github.com/ful1e5/banana-cursor' - -[config] -bitmaps_dir = 'bitmaps/Banana' -out_dir = 'themes' -platforms = ['x11', 'windows'] -x11_sizes = [22, 24, 28, 32, 40, 48, 56, 64, 72, 80, 88, 96] -win_size = 32 - -[cursors] - -[cursors.fallback_settings] -x_hotspot = 100 -y_hotspot = 100 -x11_delay = 10 -win_delay = 1 - -[cursors.all-scroll] -png = 'all-scroll.png' -x11_name = 'all-scroll' -x11_symlinks = ['fleur', 'size_all'] - -[cursors.bd_double_arrow] -png = 'bd_double_arrow.png' -x11_name = 'bd_double_arrow' -win_name = 'Diagonal_1' -x11_symlinks = [ - 'c7088f0f3e6c8088236ef8e1e3e70000', - 'nw-resize', - 'nwse-resize', - 'size_fdiag', - 'se-resize', -] - -[cursors.bottom_left_corner] -png = 'bottom_left_corner.png' -x_hotspot = 40 -y_hotspot = 156 -x11_name = 'bottom_left_corner' - -[cursors.bottom_right_corner] -png = 'bottom_right_corner.png' -x_hotspot = 159 -y_hotspot = 155 -x11_name = 'bottom_right_corner' - -[cursors.bottom_side] -png = 'bottom_side.png' -x_hotspot = 101 -y_hotspot = 170 -x11_name = 'bottom_side' - -[cursors.center_ptr] -png = 'center_ptr.png' -x_hotspot = 24 -y_hotspot = 21 -x11_name = 'center_ptr' - -[cursors.color-picker] -png = 'color-picker.png' -x_hotspot = 51 -y_hotspot = 148 -x11_name = 'color-picker' - -[cursors.col-resize] -png = 'col-resize.png' -x11_name = 'col-resize' -x11_symlinks = ['split_h'] - -[cursors.context-menu] -png = 'context-menu.png' -x_hotspot = 6 -y_hotspot = 28 -x11_name = 'context-menu' - -[cursors.copy] -png = 'copy.png' -x_hotspot = 6 -y_hotspot = 28 -x11_name = 'copy' -x11_symlinks = [ - '1081e37283d90000800003c07f3ef6bf', - '6407b0e94181790501fd1e167b474872', - 'b66166c04f8c3109214a4fbd64a50fc8', - 'dnd-copy', -] - -[cursors.cross] -png = 'cross.png' -x11_name = 'cross' -win_name = 'Cross' -x11_symlinks = ['cross_reverse', 'diamond_cross', 'tcross', 'crosshair'] - -[cursors.crossed_circle] -png = 'crossed_circle.png' -x_hotspot = 6 -y_hotspot = 28 -x11_name = 'crossed_circle' -x11_symlinks = ['forbidden', 'not-allowed'] - -[cursors.dnd_no_drop] -png = 'dnd_no_drop.png' -x11_name = 'dnd_no_drop' -win_name = 'Unavailiable' -x11_symlinks = [ - '03b6e0fcb3499374a867c041f52298f0', - 'circle', - 'dnd-no-drop', - 'no-drop', -] - -[cursors.dotbox] -png = 'dotbox.png' -x11_name = 'dotbox' -x11_symlinks = ['dot_box_mask', 'draped_box', 'icon', 'target'] - -[cursors.fd_double_arrow] -png = 'fd_double_arrow.png' -x11_name = 'fd_double_arrow' -win_name = 'Diagonal_2' -x11_symlinks = [ - 'fcf1c3c7cd4491d801f1e1c78f100000', - 'ne-resize', - 'nesw-resize', - 'sw-resize', - 'size_bdiag', -] - -[cursors.hand1] -png = 'hand1.png' -x_hotspot = 108 -y_hotspot = 93 -x11_name = 'hand1' -win_name = 'Move' -x11_symlinks = ['grab', 'openhand'] - -[cursors.hand2] -png = 'hand2.png' -x_hotspot = 28 -y_hotspot = 13 -x11_name = 'hand2' -win_name = 'Link' -x11_symlinks = [ - '9d800788f1b08800ae810202380a0822', - 'e29285e634086352946a0e7090d73106', - 'pointer', - 'pointing_hand', -] - -[cursors.left_ptr] -png = 'left_ptr.png' -x_hotspot = 24 -y_hotspot = 21 -x11_name = 'left_ptr' -win_name = 'Default' -x11_symlinks = ['arrow', 'default', 'top_left_arrow'] - -[cursors.left_ptr_watch] -png = 'left_ptr_watch-*.png' -x_hotspot = 28 -y_hotspot = 21 -x11_name = 'left_ptr_watch' -win_name = 'Work' -x11_symlinks = [ - '00000000000000020006000e7e9ffc3f', - '08e8e1c95fe2fc01f976f1e063a24ccd', - '3ecb610c1bf2410f44200f48c40d3599', - 'progress', -] - -[cursors.left_side] -png = 'left_side.png' -x_hotspot = 27 -y_hotspot = 98 -x11_name = 'left_side' - -[cursors.link] -png = 'link.png' -x_hotspot = 6 -y_hotspot = 28 -x11_name = 'link' -x11_symlinks = [ - '3085a0e285430894940527032f8b26df', - '640fb0e74195791501fd1ed57b41487f', - 'a2a266d0498c3104214a47bd64ab0fc8', - 'alias', - 'dnd-link', -] - -[cursors.move] -png = 'move.png' -x_hotspot = 108 -y_hotspot = 106 -x11_name = 'move' -x11_symlinks = [ - '4498f0e0c1937ffe01fd06f973665830', - '9081237383d90e509aa00f00170e968f', - 'fcf21c00b30f7e3f83fe0dfd12e71cff', - 'grabbing', - 'pointer_move', - 'dnd-move', - 'closedhand', - 'dnd-none', -] - -[cursors.pencil] -png = 'pencil.png' -x_hotspot = 40 -y_hotspot = 160 -x11_name = 'pencil' -win_name = 'Handwriting' -x11_symlinks = ['draft'] - -[cursors.pirate] -png = 'pirate.png' -x11_name = 'pirate' - -[cursors.plus] -png = 'plus.png' -x11_name = 'plus' -x11_symlinks = ['cell'] - -[cursors.question_arrow] -png = 'question_arrow.png' -x_hotspot = 6 -y_hotspot = 28 -x11_name = 'question_arrow' -win_name = 'Help' -x11_symlinks = [ - '5c6cd98b3f3ebcb1f9c7f1c204630408', - 'd9ce0ab605698f320427677b458ad60b', - 'help', - 'left_ptr_help', - 'whats_this', - 'dnd-ask', -] - -[cursors.right_ptr] -png = 'right_ptr.png' -x_hotspot = 173 -y_hotspot = 23 -x11_name = 'right_ptr' -win_name = 'Alternate' -x11_symlinks = ['draft_large', 'draft_small'] - -[cursors.right_side] -png = 'right_side.png' -x_hotspot = 172 -y_hotspot = 98 -x11_name = 'right_side' - -[cursors.row-resize] -png = 'row-resize.png' -x11_name = 'row-resize' -x11_symlinks = ['split_v'] - -[cursors.sb_down_arrow] -png = 'sb_down_arrow.png' -x_hotspot = 99 -y_hotspot = 165 -x11_name = 'sb_down_arrow' -x11_symlinks = ['down-arrow'] - -[cursors.sb_h_double_arrow] -png = 'sb_h_double_arrow.png' -x11_name = 'sb_h_double_arrow' -win_name = 'Horizontal' -x11_symlinks = [ - '028006030e0e7ebffc7f7070c0600140', - '14fef782d02440884392942c1120523', - 'e-resize', - 'ew-resize', - 'h_double_arrow', - 'size-hor', - 'size_hor', - 'w-resize', -] - -[cursors.sb_left_arrow] -png = 'sb_left_arrow.png' -x_hotspot = 35 -y_hotspot = 99 -x11_name = 'sb_left_arrow' -x11_symlinks = ['left-arrow'] - -[cursors.sb_right_arrow] -png = 'sb_right_arrow.png' -x_hotspot = 163 -y_hotspot = 99 -x11_name = 'sb_right_arrow' -x11_symlinks = ['right-arrow'] - -[cursors.sb_up_arrow] -png = 'sb_up_arrow.png' -x_hotspot = 100 -y_hotspot = 35 -x11_name = 'sb_up_arrow' -x11_symlinks = ['up-arrow'] - -[cursors.sb_v_double_arrow] -png = 'sb_v_double_arrow.png' -x11_name = 'sb_v_double_arrow' -win_name = 'Vertical' -x11_symlinks = [ - '00008160000006810000408080010102', - '2870a09082c103050810ffdffffe0204', - 'double_arrow', - 'n-resize', - 'ns-resize', - 'size-ver', - 'size_ver', - 's-resize', - 'v_double_arrow', -] - -[cursors.top_left_corner] -png = 'top_left_corner.png' -x_hotspot = 41 -y_hotspot = 42 -x11_name = 'top_left_corner' - -[cursors.top_right_corner] -png = 'top_right_corner.png' -x_hotspot = 159 -y_hotspot = 40 -x11_name = 'top_right_corner' - -[cursors.top_side] -png = 'top_side.png' -x_hotspot = 99 -y_hotspot = 27 -x11_name = 'top_side' - -[cursors.vertical-text] -png = 'vertical-text.png' -x11_name = 'vertical-text' - -[cursors.wait] -png = 'wait-*.png' -x_hotspot = 42 -y_hotspot = 36 -x11_name = 'wait' -win_name = 'Busy' -x11_symlinks = ['watch'] - -[cursors.wayland-cursor] -png = 'wayland-cursor.png' -x11_name = 'wayland-cursor' - -[cursors.X_cursor] -png = 'X_cursor.png' -x11_name = 'X_cursor' -x11_symlinks = ['x-cursor'] - -[cursors.xterm] -png = 'xterm.png' -x11_name = 'xterm' -win_name = 'IBeam' -x11_symlinks = ['ibeam', 'text'] - -[cursors.zoom-in] -png = 'zoom-in.png' -x_hotspot = 93 -y_hotspot = 93 -x11_name = 'zoom-in' - -[cursors.zoom-out] -png = 'zoom-out.png' -x_hotspot = 93 -y_hotspot = 93 -x11_name = 'zoom-out' diff --git a/configs/win_lg.build.toml b/configs/win_lg.build.toml new file mode 100644 index 0000000..4143b26 --- /dev/null +++ b/configs/win_lg.build.toml @@ -0,0 +1,133 @@ +[theme] +name = "Banana-Large" +comment = "The Banana Large Windows Cursor" +website = "https://www.github.com/ful1e5/banana-cursor" + +[config] +bitmaps_dir = '' # This config will assigned with `ctgen -d ` +out_dir = '../themes' +platforms = 'windows' + + +[cursors] +[cursors.fallback_settings] +win_sizes = ["26:32", "39:48", "52:64", "78:96", "103:128"] +x_hotspot = 128 +y_hotspot = 128 +win_delay = 1 + +[cursors.all-scroll] +png = 'all-scroll.png' +win_name = 'Move' + +[cursors.bd_double_arrow] +png = 'bd_double_arrow.png' +x_hotspot = 128 +y_hotspot = 130 +win_name = 'Dng1' + +[cursors.cross] +png = 'cross.png' +win_name = 'Cross' + +[cursors.dnd_no_drop] +png = 'dnd_no_drop.png' +win_name = 'Unavailable' + +[cursors.fd_double_arrow] +png = 'fd_double_arrow.png' +x_hotspot = 127 +y_hotspot = 129 +win_name = 'Dng2' + +[cursors.hand1] +png = 'hand1.png' +x_hotspot = 63 +y_hotspot = 45 +win_name = 'Pan' + +[cursors.hand2] +png = 'hand2.png' +x_hotspot = 39 +y_hotspot = 45 +win_name = 'Link' + +[cursors.left_ptr] +png = 'left_ptr.png' +x_hotspot = 52 +y_hotspot = 50 +win_name = 'Pointer' + +[cursors.move] +png = 'move.png' +x_hotspot = 52 +y_hotspot = 50 +win_name = 'Grabbing' + +[cursors.left_ptr_watch] +png = 'left_ptr_watch-*.png' +x_hotspot = 52 +y_hotspot = 50 +win_sizes = "78:96" +win_name = 'Work' + +[cursors.pencil] +png = 'pencil.png' +x_hotspot = 51 +y_hotspot = 205 +win_name = 'Handwriting' + +[cursors.question_arrow] +png = 'question_arrow.png' +x_hotspot = 34 +y_hotspot = 47 +win_name = 'Help' + +[cursors.right_ptr] +png = 'right_ptr.png' +x_hotspot = 204 +y_hotspot = 49 +win_name = 'Alternate' + +[cursors.sb_h_double_arrow] +png = 'sb_h_double_arrow.png' +win_name = 'Horz' + +[cursors.sb_v_double_arrow] +png = 'sb_v_double_arrow.png' +win_name = 'Vert' + +[cursors.wait] +png = 'wait-*.png' +x_hotspot = 50 +y_hotspot = 52 +win_sizes = "78:96" +win_name = 'Busy' + +[cursors.xterm] +png = 'xterm.png' +win_name = 'Text' + +[cursors.zoom-in] +png = 'zoom-in.png' +x_hotspot = 119 +y_hotspot = 117 +win_name = 'Zoom-in' + +[cursors.zoom-out] +png = 'zoom-out.png' +x_hotspot = 119 +y_hotspot = 119 +win_name = 'zoom-out' + +[cursors.person] +png = "person.png" +x_hotspot = 34 +y_hotspot = 47 +win_name = "Person" + +[cursors.pin] +png = "pin.png" +x_hotspot = 34 +y_hotspot = 47 +win_name = "Pin" diff --git a/configs/win_rg.build.toml b/configs/win_rg.build.toml new file mode 100644 index 0000000..8e20025 --- /dev/null +++ b/configs/win_rg.build.toml @@ -0,0 +1,133 @@ +[theme] +name = "Banana-Regular" +comment = "The Banana Regular Windows Cursor" +website = "https://www.github.com/ful1e5/banana-cursor" + +[config] +bitmaps_dir = '' # This config will assigned with `ctgen -d ` +out_dir = '../themes' +platforms = 'windows' + + +[cursors] +[cursors.fallback_settings] +win_sizes = ["22:32", "32:48", "43:64", "64:96", "86:128"] +x_hotspot = 128 +y_hotspot = 128 +win_delay = 1 + +[cursors.all-scroll] +png = 'all-scroll.png' +win_name = 'Move' + +[cursors.bd_double_arrow] +png = 'bd_double_arrow.png' +x_hotspot = 128 +y_hotspot = 130 +win_name = 'Dng1' + +[cursors.cross] +png = 'cross.png' +win_name = 'Cross' + +[cursors.dnd_no_drop] +png = 'dnd_no_drop.png' +win_name = 'Unavailable' + +[cursors.fd_double_arrow] +png = 'fd_double_arrow.png' +x_hotspot = 127 +y_hotspot = 129 +win_name = 'Dng2' + +[cursors.hand1] +png = 'hand1.png' +x_hotspot = 63 +y_hotspot = 45 +win_name = 'Pan' + +[cursors.hand2] +png = 'hand2.png' +x_hotspot = 39 +y_hotspot = 45 +win_name = 'Link' + +[cursors.left_ptr] +png = 'left_ptr.png' +x_hotspot = 52 +y_hotspot = 50 +win_name = 'Pointer' + +[cursors.move] +png = 'move.png' +x_hotspot = 52 +y_hotspot = 50 +win_name = 'Grabbing' + +[cursors.left_ptr_watch] +png = 'left_ptr_watch-*.png' +x_hotspot = 52 +y_hotspot = 50 +win_sizes = "64:96" +win_name = 'Work' + +[cursors.pencil] +png = 'pencil.png' +x_hotspot = 51 +y_hotspot = 205 +win_name = 'Handwriting' + +[cursors.question_arrow] +png = 'question_arrow.png' +x_hotspot = 34 +y_hotspot = 47 +win_name = 'Help' + +[cursors.right_ptr] +png = 'right_ptr.png' +x_hotspot = 204 +y_hotspot = 49 +win_name = 'Alternate' + +[cursors.sb_h_double_arrow] +png = 'sb_h_double_arrow.png' +win_name = 'Horz' + +[cursors.sb_v_double_arrow] +png = 'sb_v_double_arrow.png' +win_name = 'Vert' + +[cursors.wait] +png = 'wait-*.png' +x_hotspot = 50 +y_hotspot = 52 +win_sizes = "64:96" +win_name = 'Busy' + +[cursors.xterm] +png = 'xterm.png' +win_name = 'Text' + +[cursors.zoom-in] +png = 'zoom-in.png' +x_hotspot = 119 +y_hotspot = 117 +win_name = 'Zoom-in' + +[cursors.zoom-out] +png = 'zoom-out.png' +x_hotspot = 119 +y_hotspot = 119 +win_name = 'zoom-out' + +[cursors.person] +png = "person.png" +x_hotspot = 34 +y_hotspot = 47 +win_name = "Person" + +[cursors.pin] +png = "pin.png" +x_hotspot = 34 +y_hotspot = 47 +win_name = "Pin" diff --git a/configs/win_xl.build.toml b/configs/win_xl.build.toml new file mode 100644 index 0000000..201f45f --- /dev/null +++ b/configs/win_xl.build.toml @@ -0,0 +1,133 @@ +[theme] +name = "Banana-Extra-Large" +comment = "The Banana Extra Large Windows Cursor" +website = "https://www.github.com/ful1e5/banana-cursor" + +[config] +bitmaps_dir = '' # This config will assigned with `ctgen -d ` +out_dir = '../themes' +platforms = 'windows' + + +[cursors] +[cursors.fallback_settings] +win_sizes = [32, 48, 64, 96, 128] +x_hotspot = 128 +y_hotspot = 128 +win_delay = 1 + +[cursors.all-scroll] +png = 'all-scroll.png' +win_name = 'Move' + +[cursors.bd_double_arrow] +png = 'bd_double_arrow.png' +x_hotspot = 128 +y_hotspot = 130 +win_name = 'Dng1' + +[cursors.cross] +png = 'cross.png' +win_name = 'Cross' + +[cursors.dnd_no_drop] +png = 'dnd_no_drop.png' +win_name = 'Unavailable' + +[cursors.fd_double_arrow] +png = 'fd_double_arrow.png' +x_hotspot = 127 +y_hotspot = 129 +win_name = 'Dng2' + +[cursors.hand1] +png = 'hand1.png' +x_hotspot = 63 +y_hotspot = 45 +win_name = 'Pan' + +[cursors.hand2] +png = 'hand2.png' +x_hotspot = 39 +y_hotspot = 45 +win_name = 'Link' + +[cursors.left_ptr] +png = 'left_ptr.png' +x_hotspot = 52 +y_hotspot = 50 +win_name = 'Pointer' + +[cursors.move] +png = 'move.png' +x_hotspot = 52 +y_hotspot = 50 +win_name = 'Grabbing' + +[cursors.left_ptr_watch] +png = 'left_ptr_watch-*.png' +x_hotspot = 52 +y_hotspot = 50 +win_sizes = 96 +win_name = 'Work' + +[cursors.pencil] +png = 'pencil.png' +x_hotspot = 51 +y_hotspot = 205 +win_name = 'Handwriting' + +[cursors.question_arrow] +png = 'question_arrow.png' +x_hotspot = 34 +y_hotspot = 47 +win_name = 'Help' + +[cursors.right_ptr] +png = 'right_ptr.png' +x_hotspot = 204 +y_hotspot = 49 +win_name = 'Alternate' + +[cursors.sb_h_double_arrow] +png = 'sb_h_double_arrow.png' +win_name = 'Horz' + +[cursors.sb_v_double_arrow] +png = 'sb_v_double_arrow.png' +win_name = 'Vert' + +[cursors.wait] +png = 'wait-*.png' +x_hotspot = 50 +y_hotspot = 52 +win_sizes = 96 +win_name = 'Busy' + +[cursors.xterm] +png = 'xterm.png' +win_name = 'Text' + +[cursors.zoom-in] +png = 'zoom-in.png' +x_hotspot = 119 +y_hotspot = 117 +win_name = 'Zoom-in' + +[cursors.zoom-out] +png = 'zoom-out.png' +x_hotspot = 119 +y_hotspot = 119 +win_name = 'zoom-out' + +[cursors.person] +png = "person.png" +x_hotspot = 34 +y_hotspot = 47 +win_name = "Person" + +[cursors.pin] +png = "pin.png" +x_hotspot = 34 +y_hotspot = 47 +win_name = "Pin" diff --git a/configs/x.build.toml b/configs/x.build.toml new file mode 100644 index 0000000..0b40075 --- /dev/null +++ b/configs/x.build.toml @@ -0,0 +1,362 @@ +[theme] +name = "Banana" +comment = "The Banana Cursor" +website = "https://www.github.com/ful1e5/banana-cursor" + +[config] +bitmaps_dir = "" # This config will assigned with `ctgen -d ` +out_dir = "../themes" +platforms = "x11" + + +[cursors] +[cursors.fallback_settings] +x11_sizes = [16, 20, 22, 24, 28, 32, 40, 48, 56, 64, 72, 80, 88, 96] +x_hotspot = 128 +y_hotspot = 128 +x11_delay = 10 + +[cursors.all-scroll] +png = "all-scroll.png" +x11_name = "all-scroll" +x11_symlinks = ["fleur", "size_all"] + +[cursors.bd_double_arrow] +png = "bd_double_arrow.png" +x11_name = "bd_double_arrow" +x_hotspot = 128 +y_hotspot = 130 +x11_symlinks = [ + "c7088f0f3e6c8088236ef8e1e3e70000", + "nw-resize", + "ul_angle", + "lr_angle", + "nwse-resize", + "size_fdiag", + "se-resize", +] + +[cursors.bottom_left_corner] +png = "bottom_left_corner.png" +x_hotspot = 65 +y_hotspot = 188 +x11_name = "bottom_left_corner" + +[cursors.bottom_right_corner] +png = "bottom_right_corner.png" +x_hotspot = 190 +y_hotspot = 187 +x11_name = "bottom_right_corner" + +[cursors.bottom_side] +png = "bottom_side.png" +x_hotspot = 130 +y_hotspot = 196 +x11_name = "bottom_side" + +[cursors.center_ptr] +png = "center_ptr.png" +x_hotspot = 52 +y_hotspot = 50 +x11_name = "center_ptr" + +[cursors.col-resize] +png = "col-resize.png" +x11_name = "col-resize" +x11_symlinks = ["split_h", "right_tee", "left_tee"] + +[cursors.color-picker] +png = "color-picker.png" +x_hotspot = 65 +y_hotspot = 189 +x11_name = "color-picker" + +[cursors.context-menu] +png = "context-menu.png" +x_hotspot = 34 +y_hotspot = 47 +x11_name = "context-menu" + +[cursors.copy] +png = "copy.png" +x_hotspot = 34 +y_hotspot = 47 +x11_name = "copy" +x11_symlinks = [ + "1081e37283d90000800003c07f3ef6bf", + "6407b0e94181790501fd1e167b474872", + "b66166c04f8c3109214a4fbd64a50fc8", + "dnd-copy", +] + +[cursors.cross] +png = "cross.png" +x11_name = "cross" +x11_symlinks = ["cross_reverse", "diamond_cross", "tcross", "crosshair"] + +[cursors.crossed_circle] +png = "crossed_circle.png" +x_hotspot = 34 +y_hotspot = 47 +x11_name = "crossed_circle" +x11_symlinks = ["forbidden", "not-allowed"] + +[cursors.dnd_no_drop] +png = "dnd_no_drop.png" +x11_name = "dnd_no_drop" +x11_symlinks = ["03b6e0fcb3499374a867c041f52298f0", "circle", "no-drop"] + +[cursors.dotbox] +png = "dotbox.png" +x11_name = "dotbox" +x11_symlinks = ["dot_box_mask", "draped_box", "icon", "target"] + +[cursors.fd_double_arrow] +png = "fd_double_arrow.png" +x11_name = "fd_double_arrow" +x_hotspot = 127 +y_hotspot = 129 +x11_symlinks = [ + "fcf1c3c7cd4491d801f1e1c78f100000", + "ne-resize", + "nesw-resize", + "ll_angle", + "ur_angle", + "sw-resize", + "size_bdiag", +] + +[cursors.hand1] +png = "hand1.png" +x_hotspot = 63 +y_hotspot = 45 +x11_name = "hand1" +x11_symlinks = ["grab", "openhand"] + +[cursors.hand2] +png = "hand2.png" +x_hotspot = 39 +y_hotspot = 45 +x11_name = "hand2" +x11_symlinks = [ + "9d800788f1b08800ae810202380a0822", + "e29285e634086352946a0e7090d73106", + "pointer", + "pointing_hand", +] + +[cursors.left_ptr] +png = "left_ptr.png" +x_hotspot = 52 +y_hotspot = 50 +x11_name = "left_ptr" +x11_symlinks = ["arrow", "default", "top_left_arrow"] + +[cursors.left_ptr_watch] +png = "left_ptr_watch-*.png" +x_hotspot = 52 +y_hotspot = 50 +x11_name = "left_ptr_watch" +x11_symlinks = [ + "00000000000000020006000e7e9ffc3f", + "08e8e1c95fe2fc01f976f1e063a24ccd", + "3ecb610c1bf2410f44200f48c40d3599", + "progress", +] + +[cursors.left_side] +png = "left_side.png" +x_hotspot = 66 +y_hotspot = 127 +x11_name = "left_side" + +[cursors.link] +png = "link.png" +x_hotspot = 34 +y_hotspot = 47 +x11_name = "link" +x11_symlinks = [ + "3085a0e285430894940527032f8b26df", + "640fb0e74195791501fd1ed57b41487f", + "a2a266d0498c3104214a47bd64ab0fc8", + "alias", + "dnd-link", +] + +[cursors.move] +png = "move.png" +x_hotspot = 52 +y_hotspot = 50 +x11_name = "move" +x11_symlinks = [ + "4498f0e0c1937ffe01fd06f973665830", + "9081237383d90e509aa00f00170e968f", + "fcf21c00b30f7e3f83fe0dfd12e71cff", + "grabbing", + "pointer_move", + "dnd-move", + "closedhand", + "dnd-none", +] + +[cursors.pencil] +png = "pencil.png" +x_hotspot = 51 +y_hotspot = 205 +x11_name = "pencil" +x11_symlinks = ["draft"] + +[cursors.pirate] +png = "pirate.png" +x11_name = "pirate" + +[cursors.plus] +png = "plus.png" +x11_name = "plus" +x11_symlinks = ["cell"] + +[cursors.question_arrow] +png = "question_arrow.png" +x_hotspot = 34 +y_hotspot = 47 +x11_name = "question_arrow" +x11_symlinks = [ + "5c6cd98b3f3ebcb1f9c7f1c204630408", + "d9ce0ab605698f320427677b458ad60b", + "help", + "left_ptr_help", + "whats_this", + "dnd-ask", +] + +[cursors.right_ptr] +png = "right_ptr.png" +x_hotspot = 204 +y_hotspot = 49 +x11_name = "right_ptr" +x11_symlinks = ["draft_large", "draft_small"] + +[cursors.right_side] +png = "right_side.png" +x_hotspot = 189 +y_hotspot = 126 +x11_name = "right_side" + +[cursors.row-resize] +png = "row-resize.png" +x11_name = "row-resize" +x11_symlinks = ["split_v", "top_tee", "bottom_tee"] + +[cursors.sb_down_arrow] +png = "sb_down_arrow.png" +x_hotspot = 127 +y_hotspot = 219 +x11_name = "sb_down_arrow" +x11_symlinks = ["down-arrow"] + +[cursors.sb_h_double_arrow] +png = "sb_h_double_arrow.png" +x11_name = "sb_h_double_arrow" +x11_symlinks = [ + "028006030e0e7ebffc7f7070c0600140", + "14fef782d02440884392942c1120523", + "e-resize", + "ew-resize", + "h_double_arrow", + "size-hor", + "size_hor", + "w-resize", +] + +[cursors.sb_left_arrow] +png = "sb_left_arrow.png" +x_hotspot = 34 +y_hotspot = 127 +x11_name = "sb_left_arrow" +x11_symlinks = ["left-arrow"] + +[cursors.sb_right_arrow] +png = "sb_right_arrow.png" +x_hotspot = 220 +y_hotspot = 127 +x11_name = "sb_right_arrow" +x11_symlinks = ["right-arrow"] + +[cursors.sb_up_arrow] +png = "sb_up_arrow.png" +x_hotspot = 127 +y_hotspot = 34 +x11_name = "sb_up_arrow" +x11_symlinks = ["up-arrow"] + +[cursors.sb_v_double_arrow] +png = "sb_v_double_arrow.png" +x11_name = "sb_v_double_arrow" +x11_symlinks = [ + "00008160000006810000408080010102", + "2870a09082c103050810ffdffffe0204", + "double_arrow", + "n-resize", + "ns-resize", + "size-ver", + "size_ver", + "s-resize", + "v_double_arrow", +] + +[cursors.top_left_corner] +png = "top_left_corner.png" +x_hotspot = 65 +y_hotspot = 67 +x11_name = "top_left_corner" + +[cursors.top_right_corner] +png = "top_right_corner.png" +x_hotspot = 190 +y_hotspot = 67 +x11_name = "top_right_corner" + +[cursors.top_side] +png = "top_side.png" +x_hotspot = 129 +y_hotspot = 68 +x11_name = "top_side" + +[cursors.vertical-text] +png = "vertical-text.png" +x_hotspot = 128 +y_hotspot = 127 +x11_name = "vertical-text" + +[cursors.wait] +png = "wait-*.png" +x_hotspot = 50 +y_hotspot = 52 +x11_name = "wait" +x11_symlinks = ["watch"] + +[cursors.wayland-cursor] +png = "wayland-cursor.png" +x11_name = "wayland-cursor" + +[cursors.X_cursor] +png = "X_cursor.png" +x11_name = "X_cursor" +x11_symlinks = ["x-cursor"] + +[cursors.xterm] +png = "xterm.png" +x11_name = "xterm" +x11_symlinks = ["ibeam", "text"] + +[cursors.zoom-in] +png = "zoom-in.png" +x_hotspot = 119 +y_hotspot = 117 +x11_name = "zoom-in" + +[cursors.zoom-out] +png = "zoom-out.png" +x_hotspot = 119 +y_hotspot = 119 +x11_name = "zoom-out" diff --git a/release.sh b/release.sh deleted file mode 100755 index d4b914a..0000000 --- a/release.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -# A script for preparing binaries for version release of Banana Cursors, by Abdulkaiz Khatri - -key="Banana" -comment="The banana cursors." - -# Cleanup old builds -rm -rf themes bin && -ctgen build.toml -p x11 && - -# Building Banana Windows binaries -ctgen build.toml -p windows -s 16 -d "bitmaps/${key}" -n "${key}-Small" -c "$comment" && -ctgen build.toml -p windows -s 24 -d "bitmaps/${key}" -n "${key}-Regular" -c "$comment" && -ctgen build.toml -p windows -s 32 -d "bitmaps/${key}" -n "${key}-Large" -c "$comment" && -ctgen build.toml -p windows -s 48 -d "bitmaps/${key}" -n "${key}-Extra-Large" -c "$comment" && - - -# Compressing Binaries -mkdir -p bin && -cd themes && - -tar -czvf "../bin/${key}.tar.gz" "${key}" && -zip -rv "../bin/${key}-Windows.zip" "${key}-Small-Windows" "${key}-Regular-Windows" "${key}-Large-Windows" "${key}-Extra-Large-Windows" && - -cd .. diff --git a/render.json b/render.json index 7cd08a4..917bfc2 100644 --- a/render.json +++ b/render.json @@ -3,12 +3,12 @@ "dir": "svg", "out": "bitmaps/Banana" }, - "Banana-Red": { + "Banana-Green": { "dir": "svg", - "out": "bitmaps/Banana-Red", + "out": "bitmaps/Banana-Green", "colors": [ - { "match": "#FCD900", "replace": "#FF0000" }, - { "match": "#6D3C1B", "replace": "#000000" } + { "match": "#FCD900", "replace": "#00FF00" }, + { "match": "#6D3C1B", "replace": "#002211" } ] } } diff --git a/svg/person.svg b/svg/person.svg new file mode 100644 index 0000000..5653f7c --- /dev/null +++ b/svg/person.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/svg/pin.svg b/svg/pin.svg new file mode 100644 index 0000000..bcd12af --- /dev/null +++ b/svg/pin.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +