diff options
| author | katherine <ageha@airen-no-jikken.icu> | 2026-07-23 17:08:37 +1000 |
|---|---|---|
| committer | katherine <ageha@airen-no-jikken.icu> | 2026-07-23 17:08:37 +1000 |
| commit | cd25808c26c23539bee780ed9c5f312174b9c47f (patch) | |
| tree | da85fe7fb474dd94f30c3981db2f82187af9533d /.config/sxiv/exec | |
| parent | ecb94b607113a8787c6abf0319a43f1158c06e59 (diff) | |
| download | dotfiles-cd25808c26c23539bee780ed9c5f312174b9c47f.tar.gz | |
update sxiv handlers
Diffstat (limited to '.config/sxiv/exec')
| -rwxr-xr-x | .config/sxiv/exec/image-info | 24 | ||||
| -rwxr-xr-x | .config/sxiv/exec/key-handler | 8 | ||||
| -rwxr-xr-x | .config/sxiv/exec/thumb-info | 20 | ||||
| -rwxr-xr-x | .config/sxiv/exec/win-title | 27 |
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 |
