From 94cfa94d7f5b9e044deb2d569d459849fdf5187f Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Tue, 13 Oct 2015 19:27:41 +0200 Subject: [PATCH] sxiv: Show file size and dimension in status bar, Add rotation commands --- .config/sxiv/exec/image-info | 10 ++++++++++ .config/sxiv/exec/key-handler | 29 +++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100755 .config/sxiv/exec/image-info create mode 100755 .config/sxiv/exec/key-handler diff --git a/.config/sxiv/exec/image-info b/.config/sxiv/exec/image-info new file mode 100755 index 00000000..01eb0aa9 --- /dev/null +++ b/.config/sxiv/exec/image-info @@ -0,0 +1,10 @@ +#!/bin/sh + +s=" | " # field separator + +filename=$(basename "$1") +filesize=$(du -Hh "$1" | cut -f 1) + +geometry=$(identify -format '%wx%h' "$1[0]") + +echo "${filename}${s}${filesize}${s}${geometry}" diff --git a/.config/sxiv/exec/key-handler b/.config/sxiv/exec/key-handler new file mode 100755 index 00000000..b1e69da3 --- /dev/null +++ b/.config/sxiv/exec/key-handler @@ -0,0 +1,29 @@ +#!/bin/sh + +readonly KEY="$1"; shift + +orient() { + for file in "$@"; do + mogrify -auto-orient "$file" + done +} + +rotate() { + degree="$1"; shift + for file in "$@"; do + case "$(file -b -i "$file")" in + image/jpeg*) jpegtran -rotate "$degree" -copy all -outfile "$file" "$file" ;; + *) mogrify -rotate "$degree" "$file" ;; + esac + done +} + +case "$KEY" in +"C-c") echo -n "$@" | xsel -i ;; +"C-e") for file in "$@"; do urxvt -bg "#444" -fg "#eee" -sl 0 -title "$file" -e sh -c "exiv2 pr -q -pa '$file' | less" & done ;; +"C-g") gimp "$@" & ;; +"C-o") orient ;; +"C-comma") rotate 270 "$@" ;; +"C-period") rotate 90 "$@" ;; +"C-slash") rotate 180 "$@" ;; +esac