Skip to content

Commit

Permalink
breaking-change: De-structured build configs
Browse files Browse the repository at this point in the history
And also support Multi-Resolution Windows Cursors packages.
  • Loading branch information
ful1e5 committed Jul 1, 2024
1 parent 65d81aa commit b9d526d
Show file tree
Hide file tree
Showing 8 changed files with 870 additions and 54 deletions.
89 changes: 89 additions & 0 deletions build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
#!/bin/bash
# A script for preparing binaries of BreezeX 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["BreezeX-Dark"]=$(with_version "Extended KDE Dark")
names["BreezeX-Black"]=$(with_version "Extended KDE Black")
names["BreezeX-Light"]=$(with_version "Extended KDE Light")

# Cleanup old builds
rm -rf themes bin

# Building BreezeX 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 BreezeX 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 BreezeX.tar.xz
cp ../LICENSE .
tar -cJvf "../bin/BreezeX.tar.xz" --exclude="*-Windows" . &
PID=$!
wait $PID

# Compressing BreezeX-*-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
124 changes: 124 additions & 0 deletions configs/win_lg.build.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
[theme]
name = 'BreezeX-Large'
comment = 'Extended KDE Large Windows Cursor'
website = 'https://www.github.com/ful1e5/BreezeX_Cursor'


[config]
bitmaps_dir = '' # This config will assigned with `ctgen -d <path>`
out_dir = '../themes'
platforms = 'windows'


[cursors]
[cursors.fallback_settings]
win_sizes = ["26:32", "39:48", "52:64", "77: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 = 127
y_hotspot = 124
win_name = 'Dng1'

[cursors.cross]
png = 'cross.png'
win_name = 'Cross'

[cursors.dnd_no_drop]
png = 'dnd_no_drop.png'
win_name = 'Unavailiable'

[cursors.fd_double_arrow]
png = 'fd_double_arrow.png'
x_hotspot = 126
y_hotspot = 125
win_name = 'Dng2'

[cursors.hand1]
png = 'hand1.png'
x_hotspot = 144
y_hotspot = 90
win_name = 'Pan'

[cursors.hand2]
png = 'hand2.png'
x_hotspot = 117
y_hotspot = 36
win_name = 'Link'

[cursors.move]
png = 'move.png'
x_hotspot = 141
y_hotspot = 79
win_name = 'Grabbing'

[cursors.left_ptr]
png = 'left_ptr.png'
x_hotspot = 69
y_hotspot = 30
win_name = 'Pointer'

[cursors.left_ptr_watch]
png = 'left_ptr_watch-*.png'
x_hotspot = 69
y_hotspot = 30
win_sizes = "78:96"
win_name = 'Work'

[cursors.pencil]
png = 'pencil.png'
x_hotspot = 40
y_hotspot = 210
win_name = 'Handwriting'

[cursors.question_arrow]
png = 'question_arrow.png'
x_hotspot = 69
y_hotspot = 30
win_name = 'Help'

[cursors.right_ptr]
png = 'right_ptr.png'
x_hotspot = 181
y_hotspot = 30
win_name = 'Alternate'

[cursors.sb_h_double_arrow]
png = 'sb_h_double_arrow.png'
x_hotspot = 127
y_hotspot = 125
win_name = 'Horz'

[cursors.sb_v_double_arrow]
png = 'sb_v_double_arrow.png'
x_hotspot = 126
y_hotspot = 125
win_name = 'Vert'

[cursors.wait]
png = 'wait-*.png'
win_sizes = "78:96"
win_name = 'Busy'

[cursors.xterm]
png = 'xterm.png'
win_name = 'Text'

[cursors.zoom-in]
png = 'zoom-in.png'
x_hotspot = 109
y_hotspot = 103
win_name = 'Zoom-in'

[cursors.zoom-out]
png = 'zoom-out.png'
x_hotspot = 109
y_hotspot = 103
win_name = 'Zoom-out'
124 changes: 124 additions & 0 deletions configs/win_rg.build.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
[theme]
name = 'BreezeX-Regular'
comment = 'Extended KDE Regular Windows Cursor'
website = 'https://www.github.com/ful1e5/BreezeX_Cursor'


[config]
bitmaps_dir = '' # This config will assigned with `ctgen -d <path>`
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 = 127
y_hotspot = 124
win_name = 'Dng1'

[cursors.cross]
png = 'cross.png'
win_name = 'Cross'

[cursors.dnd_no_drop]
png = 'dnd_no_drop.png'
win_name = 'Unavailiable'

[cursors.fd_double_arrow]
png = 'fd_double_arrow.png'
x_hotspot = 126
y_hotspot = 125
win_name = 'Dng2'

[cursors.hand1]
png = 'hand1.png'
x_hotspot = 144
y_hotspot = 90
win_name = 'Pan'

[cursors.hand2]
png = 'hand2.png'
x_hotspot = 117
y_hotspot = 36
win_name = 'Link'

[cursors.move]
png = 'move.png'
x_hotspot = 141
y_hotspot = 79
win_name = 'Grabbing'

[cursors.left_ptr]
png = 'left_ptr.png'
x_hotspot = 69
y_hotspot = 30
win_name = 'Pointer'

[cursors.left_ptr_watch]
png = 'left_ptr_watch-*.png'
x_hotspot = 69
y_hotspot = 30
win_sizes = "64:96"
win_name = 'Work'

[cursors.pencil]
png = 'pencil.png'
x_hotspot = 40
y_hotspot = 210
win_name = 'Handwriting'

[cursors.question_arrow]
png = 'question_arrow.png'
x_hotspot = 69
y_hotspot = 30
win_name = 'Help'

[cursors.right_ptr]
png = 'right_ptr.png'
x_hotspot = 181
y_hotspot = 30
win_name = 'Alternate'

[cursors.sb_h_double_arrow]
png = 'sb_h_double_arrow.png'
x_hotspot = 127
y_hotspot = 125
win_name = 'Horz'

[cursors.sb_v_double_arrow]
png = 'sb_v_double_arrow.png'
x_hotspot = 126
y_hotspot = 125
win_name = 'Vert'

[cursors.wait]
png = 'wait-*.png'
win_sizes = "64:96"
win_name = 'Busy'

[cursors.xterm]
png = 'xterm.png'
win_name = 'Text'

[cursors.zoom-in]
png = 'zoom-in.png'
x_hotspot = 109
y_hotspot = 103
win_name = 'Zoom-in'

[cursors.zoom-out]
png = 'zoom-out.png'
x_hotspot = 109
y_hotspot = 103
win_name = 'Zoom-out'
Loading

0 comments on commit b9d526d

Please sign in to comment.