summaryrefslogtreecommitdiff
path: root/scheme/gen-scheme.fish
blob: ff0058eef1088e8db1fc6e448f530b1c127c37c6 (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
37
38
39
#!/bin/fish

function nl-echo
    # Echo with newlines
    for a in $argv
        echo $a
    end
end

set -l src (dirname (status filename))

. $src/../util.fish

test -f "$argv[1]" && set -l img "$argv[1]" || set -l img $C_STATE/wallpaper/current
set -l img (realpath $img)

# Light theme if background lighter than foreground
set -l bg_fg ($src/getlightness.py (okolors $img -k 2 | string split ' '))
if test "$bg_fg[1]" -gt "$bg_fg[2]"
    set light_vals 40,10,16,22,34,46,59,69,78,85,97,94,90
    set colour_scheme light
else
    set light_vals 70,90,75,63,52,42,32,26,20,16,12,9,6
    set colour_scheme dark
end

test "$(cat $C_STATE/scheme/current.txt)" = dynamic && gsettings set org.gnome.desktop.interface color-scheme \'prefer-$colour_scheme\'

# 2nd line except first element is the palette
# The first element in lines 3+ are the layers
set -l names rosewater flamingo pink mauve red maroon peach yellow green teal sky sapphire blue lavender text subtext1 subtext0 overlay2 overlay1 overlay0 surface2 surface1 surface0 base mantle crust
set -l colours ($src/autoadjust.py $colour_scheme (okolors $img -k 15 -w 0 -l $light_vals))

for i in (seq 1 (count $colours))
    echo "$names[$i] $colours[$i]"
end

set -l accent (okolors $img -k 4 | cut -d ' ' -f 4)
echo -n "accent $accent"