summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x.config/sxiv/exec/key-handler8
-rwxr-xr-x.local/bin/convwall14
2 files changed, 13 insertions, 9 deletions
diff --git a/.config/sxiv/exec/key-handler b/.config/sxiv/exec/key-handler
index 00f6fa23..bfad867f 100755
--- a/.config/sxiv/exec/key-handler
+++ b/.config/sxiv/exec/key-handler
@@ -38,12 +38,12 @@ flip() {
linkwall() {
tr '\n' '\0' | xargs -0 realpath | sort | uniq | while read -r file; do
- walldir="${HOME}/pictures/wallpapers/"
+ walldir="$HOME/pictures/wallpapers/"
name=$(basename "$file")
- if [ ! -e "${walldir}${name}" ]; then
- convwall "$file" "${walldir}${name}" || ln -s "$file" "${walldir}"
+ if [ ! -e "$walldir$name" ]; then
+ convwall "$file" "$walldir$name" || ln -s "$file" "$walldir"
else
- notify-send 'error' "${name} exist"
+ notify-send 'error' "$name exist"
fi
done
}
diff --git a/.local/bin/convwall b/.local/bin/convwall
index 326a3de9..5249aead 100755
--- a/.local/bin/convwall
+++ b/.local/bin/convwall
@@ -1,6 +1,7 @@
#!/bin/sh
# 16:9 screen resolution ratio
+# 16*100/9 == 177
wratio=16
hratio=9
chopnum=99%
@@ -8,19 +9,22 @@ chopnum=99%
width=$(identify -format '%w' "$1")
height=$(identify -format '%h' "$1")
+ratio=$(echo "$wratio*100/$hratio" | bc)
dim=$(echo "$width*100/$height" | bc)
-if [ "$dim" -ne 177 ]; then
- if [ "$dim" -lt 177 ]; then
+if [ "$dim" -ne "$ratio" ]; then
+ if [ "$dim" -lt "$ratio" ]; then
chopgeom="${chopnum}x0"
width=$(echo "$height*$wratio/$hratio" | bc)
else
- chopgeom="0x${chopnum}"
+ chopgeom="0x$chopnum"
height=$(echo "$width*$hratio/$wratio" | bc)
fi
- extgeom="${width}x${height}"
+ # may throw error sort: write failed: 'standard output': Broken pipe \n sort: write error
+ # caused by head exit (or close stdin) before sort output complete, can ignore
+ # https://stackoverflow.com/questions/46202653/bash-error-in-sort-sort-write-failed-standard-output-broken-pipe
bgcolor=$(convert "$1" -gravity center -chop "$chopgeom" -define histogram:unique-colors=true -format %c histogram:info:- | sort -rn | head -n1 | awk \{print\ \$3\} | cut -c1-7)
- convert "$1" -gravity center -background "$bgcolor" -extent "$extgeom" "$2"
+ convert "$1" -gravity center -background "$bgcolor" -extent "${width}x$height" "$2"
else
echo 'same resolution ratio, no need to convert' >&2
exit 1