summaryrefslogtreecommitdiffstats
path: root/exec
diff options
context:
space:
mode:
authorBert Münnich <ber.t@posteo.de>2014-01-02 23:19:31 +0100
committerBert Münnich <ber.t@posteo.de>2014-01-02 23:19:31 +0100
commitf2e0c492bd784a3a927550187e21cfbc6bbb0939 (patch)
treeb5cf82fa59a82598adc4c4ab50b731f50f71a7bf /exec
parentb2eae528ed54c3ee1509e410686fabc1c7ecc0b4 (diff)
downloadnsxiv-f2e0c492bd784a3a927550187e21cfbc6bbb0939.tar.zst
Moved external shell commands into exec/key-handler script
Gets called on all unset key mappings. Arguments are: key combo and current file. Thanks to Francesco Orsenigo (xarvh) for the idea.
Diffstat (limited to 'exec')
-rw-r--r--exec/image-info19
-rw-r--r--exec/key-handler19
2 files changed, 38 insertions, 0 deletions
diff --git a/exec/image-info b/exec/image-info
new file mode 100644
index 0000000..7814c2d
--- /dev/null
+++ b/exec/image-info
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+# Example for ~/.sxiv/exec/image-info
+# Called by sxiv(1) whenever an image gets loaded,
+# with the name of the image file as its first argument.
+# The output is displayed in sxiv's status bar.
+
+s=" | " # field separator
+
+filename=$(basename "$1")
+filesize=$(du -Hh "$1" | cut -f 1)
+
+geometry=$(identify -format '%wx%h' "$1[0]")
+
+tags=$(exiv2 -q pr -pi "$1" | awk '$1~"Keywords" { printf("%s,", $4); }')
+tags=${tags%,}
+
+echo "${filesize}${s}${geometry}${tags:+$s}${tags}${s}${filename}"
+
diff --git a/exec/key-handler b/exec/key-handler
new file mode 100644
index 0000000..d2e8aa2
--- /dev/null
+++ b/exec/key-handler
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+case "$1" in
+"C-g")
+ gimp "$2" & ;;
+"C-comma")
+ exec jpegtran -rotate 270 -copy all -outfile "$2" "$2" ;;
+"C-period")
+ exec jpegtran -rotate 90 -copy all -outfile "$2" "$2" ;;
+"C-slash")
+ exec jpegtran -rotate 180 -copy all -outfile "$2" "$2" ;;
+"C-less")
+ exec mogrify -rotate -90 "$2" ;;
+"C-greater")
+ exec mogrify -rotate +90 "$2" ;;
+"C-question")
+ exec mogrify -rotate 180 "$2" ;;
+esac
+