summaryrefslogtreecommitdiff
path: root/scheme/gen-print-scheme.fish
blob: 6dfa482ffbc912328e13d6d364e7cb4de0e07afa (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
34
35
36
#!/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

# Thumbnail image if not already thumbnail
if test $img != $C_STATE/wallpaper/thumbnail.jpg
    set -l thumb_path $C_CACHE/thumbnails/(sha1sum $img | cut -d ' ' -f 1).jpg
    if ! test -f $thumb_path
        magick -define jpeg:size=256x256 $img -thumbnail 128x128\> $thumb_path
    end
    set img $thumb_path
end

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

# Get mode from image
set -l lightness (magick $img -format '%[fx:int(mean*100)]' info:)
test $lightness -ge 60 && set -l mode light || set -l mode dark

# Print scheme
cat $C_CACHE/schemes/$hash/$variant/default/$mode.txt