Files
caelestia-cli/scheme/gen-scheme.fish
T
2 * r + 2 * t ce6fdf0ab9 feat: up to 3 options for dynamic scheme
Have up to 3 options for base colour for dynamic scheme
Variants moved to new command
Also remove parallel dependency
2025-04-22 17:49:44 +10:00

34 lines
1.2 KiB
Fish
Executable File

#!/bin/fish
set -l src (dirname (status filename))
. $src/../util.fish
test -f "$argv[1]" && set -l img (realpath "$argv[1]") || set -l img $C_STATE/wallpaper/thumbnail.jpg
set -l variants vibrant tonalspot expressive fidelity fruitsalad rainbow neutral content monochrome
contains -- "$argv[2]" $variants && set -l variant $argv[2] || set -l variant (cat $C_STATE/scheme/current-variant.txt 2> /dev/null)
contains -- "$variant" $variants || set -l variant tonalspot
set -l hash (sha1sum $img | cut -d ' ' -f 1)
# Cache scheme
if ! test -d $C_CACHE/schemes/$hash/$variant
set -l colours ($src/score.py $img)
$src/autoadjust.py dark $variant $colours $C_CACHE/schemes/$hash
$src/autoadjust.py light $variant $colours $C_CACHE/schemes/$hash
end
# Copy scheme from cache
rm -rf $src/../data/schemes/dynamic
cp -r $C_CACHE/schemes/$hash/$variant $src/../data/schemes/dynamic
# Update if current
set -l variant (string match -gr 'dynamic-(.*)' (cat $C_STATE/scheme/current-name.txt 2> /dev/null))
if test -n "$variant"
# If variant doesn't exist, use default
test -d $src/../data/schemes/dynamic/$variant || set -l variant default
# Apply scheme
$src/main.fish dynamic $variant $MODE > /dev/null
end