diff options
Diffstat (limited to 'dotfiles/.config/nsxiv/exec/key-handler')
-rwxr-xr-x | dotfiles/.config/nsxiv/exec/key-handler | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/dotfiles/.config/nsxiv/exec/key-handler b/dotfiles/.config/nsxiv/exec/key-handler new file mode 100755 index 0000000..f20a143 --- /dev/null +++ b/dotfiles/.config/nsxiv/exec/key-handler @@ -0,0 +1,55 @@ +#!/bin/sh + +rotate() { + degree="$1" + file="$2" + case "$(file -b -i "$file")" in + image/jpeg*) jpegtran -rotate "$degree" -copy all -outfile "$file" "$file" ;; + *) mogrify -rotate "$degree" "$file" ;; + esac +} + +if [ "$1" = "t" ]; then + while read file; do + files="$(printf "%s\n%s" "$files" "$file")" + done + dragon-drag-and-drop -a $files + exit 0 +fi + +while read file; do + case "$1" in + "C-a" | "C-1") + setbg "$file" + exit ;; + "C-2") + setbg "$file" "2" + exit ;; + "C-s") + setbglblur "$file" + exit ;; + "C-d") + setbglsimple "$file" + exit ;; + "C-c") + wl-copy < "$file" + exit ;; + "C-f") + wl-copy "$file" + exit ;; + "C-r") + # Move file to 'trash' directory, if the current directory's name is + # JPEG, remove the NEF file as well + dir="$(dirname "$file")" + name="$(basename "$file")" + base="${name%.*}" + mv "$file" ~/.local/trash/ + if [ "JPEG" = "$(basename $dir)" ]; then + mv $(dirname "$dir")/"$base".NEF ~/.local/trash/ + fi + exit ;; + "C-comma") rotate 270 $file ;; + "C-period") rotate 90 $file ;; + "C-slash") rotate 180 $file ;; + esac +done |