feat: print scheme command

Generates and prints a scheme for an image (or the current wallpaper if not given)
Also record use hevc codec
This commit is contained in:
2 * r + 2 * t
2025-05-05 13:36:01 +10:00
parent bb83c57308
commit 7fa09fa52f
4 changed files with 53 additions and 11 deletions
+36
View File
@@ -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