summaryrefslogtreecommitdiff
path: root/scheme
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-05-05 13:36:01 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-05-05 13:36:01 +1000
commit7fa09fa52f180192979344329c06ca6436213273 (patch)
tree6f0021a05598f9aab4ffa3e73f3a38bdfb6da59a /scheme
parentscheme: migrate to material (diff)
downloadcaelestia-cli-7fa09fa52f180192979344329c06ca6436213273.tar.gz
caelestia-cli-7fa09fa52f180192979344329c06ca6436213273.tar.bz2
caelestia-cli-7fa09fa52f180192979344329c06ca6436213273.zip
feat: print scheme command
Generates and prints a scheme for an image (or the current wallpaper if not given) Also record use hevc codec
Diffstat (limited to 'scheme')
-rwxr-xr-xscheme/gen-print-scheme.fish36
1 files changed, 36 insertions, 0 deletions
diff --git a/scheme/gen-print-scheme.fish b/scheme/gen-print-scheme.fish
new file mode 100755
index 0000000..75328e1
--- /dev/null
+++ b/scheme/gen-print-scheme.fish
@@ -0,0 +1,36 @@
+#!/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
+
+# 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