summaryrefslogtreecommitdiff
path: root/scheme/gen-scheme.fish
blob: 488ee2743012474070705008f5612a94d7dbcbe3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/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