forked from Shinonome/caelestia-cli
34 lines
1.2 KiB
Fish
Executable File
34 lines
1.2 KiB
Fish
Executable File
#!/usr/bin/env 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
|