diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rwxr-xr-x | install/scripts.fish | 2 | ||||
| -rwxr-xr-x | scheme/apply-scheme.fish | 1 | ||||
| -rwxr-xr-x | scheme/gen-scheme.fish | 10 | ||||
| -rwxr-xr-x | scheme/islight.py | 16 | ||||
| -rwxr-xr-x | scheme/resizeimg.py | 29 | ||||
| -rwxr-xr-x | wallpaper.fish | 2 |
7 files changed, 56 insertions, 5 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c18dd8d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +__pycache__/ diff --git a/install/scripts.fish b/install/scripts.fish index adb139e..54b6068 100755 --- a/install/scripts.fish +++ b/install/scripts.fish @@ -2,7 +2,7 @@ . (dirname (status filename))/util.fish -install-deps git hyprland-git hyprpaper-git okolors-git imagemagick wl-clipboard fuzzel-git socat foot jq +install-deps git hyprland-git hyprpaper-git okolors-git imagemagick wl-clipboard fuzzel-git socat foot jq python python-pillow python-materialyoucolor-git install-optional-deps 'vesktop-bin (discord client)' 'btop (system monitor)' 'wf-recorder (screen recorder)' 'grim (screenshot tool)' 'firefox (web browser)' 'spotify-adblock (music player)' set -l dist $CONFIG/scripts diff --git a/scheme/apply-scheme.fish b/scheme/apply-scheme.fish index ecea2d5..462b4d8 100755 --- a/scheme/apply-scheme.fish +++ b/scheme/apply-scheme.fish @@ -79,7 +79,6 @@ end if test -d $CONFIG/gtk log 'Generating GTK+ schemes' gen-gtk $colours - $CONFIG/gtk/update-scheme.fish end # Reload programs if dynamic scheme diff --git a/scheme/gen-scheme.fish b/scheme/gen-scheme.fish index d8e8158..b0608e7 100755 --- a/scheme/gen-scheme.fish +++ b/scheme/gen-scheme.fish @@ -7,13 +7,19 @@ function nl-echo end end -. (dirname (status filename))/../util.fish +set -l src (dirname (status filename)) + +. $src/../util.fish set -l colour_names rosewater flamingo pink mauve red maroon peach yellow green teal sky sapphire blue lavender set -l layer_names text subtext1 subtext0 overlay2 overlay1 overlay0 surface2 surface1 surface0 base mantle crust test -f "$argv[1]" && set -l img "$argv[1]" || set -l img $CACHE/wallpaper/current -set -l colours_raw (okolors (realpath $img) -k 15 -w 0 -l 70,90,75,65,40,35,30,25,20,15,10,8,6) +set -l img ($src/resizeimg.py $img) + +$src/islight.py $img && set -l light_vals 40,6,8,10,45,50,55,60,65,70,75,80,85,90 || set -l light_vals 70,90,75,65,40,35,30,25,20,15,10,8,6 + +set -l colours_raw (okolors (realpath $img) -k 15 -w 0 -l $light_vals) set -l colours (string split ' ' $colours_raw[2])[2..] set -l layers (nl-echo $colours_raw | cut -f 1 -d ' ')[3..] diff --git a/scheme/islight.py b/scheme/islight.py new file mode 100755 index 0000000..1adcf3f --- /dev/null +++ b/scheme/islight.py @@ -0,0 +1,16 @@ +#!/bin/python + +import sys +from PIL import Image +from materialyoucolor.quantize import QuantizeCelebi +from materialyoucolor.score.score import Score +from materialyoucolor.hct import Hct +from resizeimg import resize + + +if __name__ == "__main__": + with Image.open(sys.argv[1]) as img: + img = resize(img)[0] + colours = QuantizeCelebi(list(img.getdata()), 128) + hct = Hct.from_int(Score.score(colours)[0]) + sys.exit(0 if hct.tone > 60 else 1) diff --git a/scheme/resizeimg.py b/scheme/resizeimg.py new file mode 100755 index 0000000..e18ffb8 --- /dev/null +++ b/scheme/resizeimg.py @@ -0,0 +1,29 @@ +#!/bin/python + +import sys +import math +from PIL import Image + + +def calc_size(w, h, b = 128): + ia = w * h + ba = b * b + s = math.sqrt(ba / ia) if ia > ba else 1 + return max(1, round(w * s)), max(1, round(h * s)) + + +def resize(img): + w, h = calc_size(img.width, img.height) + if w < img.width or h < img.height: + return img.resize((w, h), Image.Resampling.BICUBIC), True + return img, False + + +if __name__ == "__main__": + with Image.open(sys.argv[1]) as img: + img, resized = resize(img) + if resized: + img.save("/tmp/caelestia-resize.png") + print("/tmp/caelestia-resize.png") + else: + print(sys.argv[1]) diff --git a/wallpaper.fish b/wallpaper.fish index 95e40a7..0fe0e2c 100755 --- a/wallpaper.fish +++ b/wallpaper.fish @@ -114,5 +114,5 @@ else mkdir -p $cache_dir echo $chosen_wallpaper > $last_wallpaper_path ln -sf $chosen_wallpaper "$cache_dir/current" - magick $chosen_wallpaper -fill black -colorize 10% -blur 0x10 "$cache_dir/blur" + magick $chosen_wallpaper -fill black -colorize 10% -blur 0x10 "$cache_dir/blur" & end |