aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkatherine <ageha@airen-no-jikken.icu>2026-07-23 17:08:37 +1000
committerkatherine <ageha@airen-no-jikken.icu>2026-07-23 17:08:37 +1000
commitcd25808c26c23539bee780ed9c5f312174b9c47f (patch)
treeda85fe7fb474dd94f30c3981db2f82187af9533d
parentecb94b607113a8787c6abf0319a43f1158c06e59 (diff)
downloaddotfiles-cd25808c26c23539bee780ed9c5f312174b9c47f.tar.gz
update sxiv handlers
-rwxr-xr-x.config/sxiv/exec/image-info24
-rwxr-xr-x.config/sxiv/exec/key-handler8
-rwxr-xr-x.config/sxiv/exec/thumb-info20
-rwxr-xr-x.config/sxiv/exec/win-title27
4 files changed, 64 insertions, 15 deletions
diff --git a/.config/sxiv/exec/image-info b/.config/sxiv/exec/image-info
index 690ec17..f1c6298 100755
--- a/.config/sxiv/exec/image-info
+++ b/.config/sxiv/exec/image-info
@@ -1,19 +1,21 @@
#!/bin/zsh
-# 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.
+# Example for $XDG_CONFIG_HOME/nsxiv/exec/image-info
+# Called by nsxiv(1) whenever an image gets loaded.
+# The output is displayed in nsxiv's status bar.
+# Arguments:
+# $1: path to image file (as provided by the user)
+# $2: image width
+# $3: image height
+# $4: fully resolved path to the image file
s=" | " # field separator
-filename=$(basename "$1")
-filesize=$(du -Hh "$1" | cut -f 1)
+exec 2>/dev/null
-geometry=$(identify -format '%wx%h' "$1[0]")
+filename=$(basename -- "$1")
+filesize=$(du -Hh -- "$1" | cut -f 1)
+geometry="${2}x${3}"
-tags=$(exiv2 -q pr -pi "$1" | awk '$1~"Keywords" { printf("%s,", $4); }')
-tags=${tags%,}
-
-echo "${filesize}${s}${geometry}${tags:+$s}${tags}${s}${filename}"
+echo "${filesize}${s}${geometry}${s}${filename}"
diff --git a/.config/sxiv/exec/key-handler b/.config/sxiv/exec/key-handler
index 927ca03..6f456fc 100755
--- a/.config/sxiv/exec/key-handler
+++ b/.config/sxiv/exec/key-handler
@@ -34,15 +34,15 @@ case "$1" in
"s")
send "${files[@]}"
if [[ $? -ne 0 ]]; then
- notify-send "sxiv: send to /tmp/ failed"
+ notify-send "nsxiv: send to /tmp/ failed"
else
if [[ ${#files} -eq 1 ]]; then
- notify-send "sxiv: sent ${files:t} to /tmp/"
+ notify-send "nsxiv: sent ${files:t} to /tmp/"
else
- notify-send "sxiv: sent ${#files} images to /tmp/"
+ notify-send "nsxiv: sent ${#files} images to /tmp/"
fi
fi
;;
*)
- notify-send "sxiv: command not recognised" ;;
+ notify-send "nsxiv: command not recognised" ;;
esac
diff --git a/.config/sxiv/exec/thumb-info b/.config/sxiv/exec/thumb-info
new file mode 100755
index 0000000..584c890
--- /dev/null
+++ b/.config/sxiv/exec/thumb-info
@@ -0,0 +1,20 @@
+#!/bin/zsh
+
+# Example for $XDG_CONFIG_HOME/nsxiv/exec/thumb-info
+# Called by nsxiv(1) whenever the selected thumbnail changes.
+# The output is displayed in nsxiv's status bar.
+# Arguments:
+# $1: path to image file (as provided by the user)
+# $2: empty
+# $3: empty
+# $4: fully resolved path to the image file
+
+s=" | " # field separator
+
+exec 2>/dev/null
+
+filename=$(basename -- "$4")
+filesize=$(du -Hh -- "$4" | cut -f 1)
+
+echo "${filesize}${s}${filename}"
+
diff --git a/.config/sxiv/exec/win-title b/.config/sxiv/exec/win-title
new file mode 100755
index 0000000..be0f4b4
--- /dev/null
+++ b/.config/sxiv/exec/win-title
@@ -0,0 +1,27 @@
+#!/bin/zsh
+
+# Example for $XDG_CONFIG_HOME/nsxiv/exec/win-title
+# Called by nsxiv(1) whenever any of the relevant information changes.
+# The output is set as nsxiv's window title.
+#
+# Arguments, "Optional" arguments might be empty:
+# $1: resolved absolute path of the current file
+# $2: current file number
+# $3: total file number
+# $4: image width (Optional: Disabled on thumbnails mode)
+# $5: image height (Optional: Disabled on thumbnails mode)
+# $6: current zoom (Optional: Disabled on thumbnails mode)
+#
+# The term file is used rather than image as nsxiv does not
+# precheck that the input files are valid images. Total file
+# count may be different from the actual count of valid images.
+
+exec 2>/dev/null
+
+filename="${1##*/}"
+
+if [ -n "$4" ]; then # image mode
+ printf "%s" "nsxiv - ${filename} | ${4}x${5} ${6}% [${2}/${3}]"
+else
+ printf "%s" "nsxiv - ${filename} [${2}/${3}]"
+fi