From 9e22f32c07db0b3b2d72fb252872c9f7bc7141e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berke=20Kocao=C4=9Flu?= Date: Wed, 22 Sep 2021 21:36:55 +0300 Subject: Change location of example scripts (#86) * Use DOCPREFIX similar to MANPREFIX Co-authored-by: NRK --- Makefile | 7 ++++--- README.md | 4 ++++ examples/image-info | 20 ++++++++++++++++++++ examples/key-handler | 35 +++++++++++++++++++++++++++++++++++ exec/image-info | 20 -------------------- exec/key-handler | 35 ----------------------------------- nsxiv.1 | 4 ++-- 7 files changed, 65 insertions(+), 60 deletions(-) create mode 100755 examples/image-info create mode 100755 examples/key-handler delete mode 100755 exec/image-info delete mode 100755 exec/key-handler diff --git a/Makefile b/Makefile index 7464323..68068e1 100644 --- a/Makefile +++ b/Makefile @@ -9,6 +9,7 @@ VERSION = 27.1 # PREFIX for install PREFIX ?= /usr/local MANPREFIX = $(PREFIX)/share/man +DOCPREFIX = $(PREFIX)/share/doc/nsxiv # autoreload backend: inotify/nop AUTORELOAD = inotify @@ -82,11 +83,11 @@ install: all install -Dt $(DESTDIR)$(PREFIX)/bin nsxiv @echo "INSTALL nsxiv.1" mkdir -p $(DESTDIR)$(MANPREFIX)/man1 - sed "s!PREFIX!$(PREFIX)!g; s!VERSION!$(VERSION)!g" nsxiv.1 \ + sed "s!DOCPREFIX!$(DOCPREFIX)!g; s!PREFIX!$(PREFIX)!g; s!VERSION!$(VERSION)!g" nsxiv.1 \ >$(DESTDIR)$(MANPREFIX)/man1/nsxiv.1 chmod 644 $(DESTDIR)$(MANPREFIX)/man1/nsxiv.1 @echo "INSTALL share/nsxiv/" - install -Dt $(DESTDIR)$(PREFIX)/share/nsxiv/exec exec/* + install -Dt $(DESTDIR)$(DOCPREFIX)/examples examples/* uninstall: @echo "REMOVE bin/nsxiv" @@ -94,5 +95,5 @@ uninstall: @echo "REMOVE nsxiv.1" rm -f $(DESTDIR)$(MANPREFIX)/man1/nsxiv.1 @echo "REMOVE share/nsxiv/" - rm -rf $(DESTDIR)$(PREFIX)/share/nsxiv + rm -rf $(DESTDIR)$(DOCPREFIX) diff --git a/README.md b/README.md index 2799bf1..69e4632 100644 --- a/README.md +++ b/README.md @@ -87,6 +87,10 @@ You can install nsxiv into a directory of your choice by changing this command t $ make PREFIX="/your/dir" install +Example scripts are installed using `DOCPREFIX` which defaults to +`/usr/local/share/doc/nsxiv`. You can change `DOCPREFIX` the same way you can +change `PREFIX` shown above. + The build-time specific settings of nsxiv can be found in the file *config.h*. Please check and change them, so that they fit your needs. If the file *config.h* does not already exist, then you have to create it with diff --git a/examples/image-info b/examples/image-info new file mode 100755 index 0000000..f608527 --- /dev/null +++ b/examples/image-info @@ -0,0 +1,20 @@ +#!/bin/sh + +# 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 +# $2: image width +# $3: image height + +s=" " # field separator + +exec 2>/dev/null + +filename=$(basename -- "$1") +filesize=$(du -Hh -- "$1" | cut -f 1) +geometry="${2}x${3}" + +echo "${filesize}${s}${geometry}${s}${filename}" + diff --git a/examples/key-handler b/examples/key-handler new file mode 100755 index 0000000..614e1ec --- /dev/null +++ b/examples/key-handler @@ -0,0 +1,35 @@ +#!/bin/sh + +# Example for $XDG_CONFIG_HOME/nsxiv/exec/key-handler +# Called by nsxiv(1) after the external prefix key (C-x by default) is pressed. +# The next key combo is passed as its first argument. Passed via stdin are the +# images to act upon, one path per line: all marked images, if in thumbnail +# mode and at least one image has been marked, otherwise the current image. +# nsxiv(1) blocks until this script terminates. It then checks which images +# have been modified and reloads them. + +# The key combo argument has the following form: "[C-][M-][S-]KEY", +# where C/M/S indicate Ctrl/Meta(Alt)/Shift modifier states and KEY is the X +# keysym as listed in /usr/include/X11/keysymdef.h without the "XK_" prefix. + +rotate() { + degree="$1" + tr '\n' '\0' | xargs -0 realpath | sort | uniq | while read file; do + case "$(file -b -i "$file")" in + image/jpeg*) jpegtran -rotate "$degree" -copy all -outfile "$file" "$file" ;; + *) mogrify -rotate "$degree" "$file" ;; + esac + done +} + +case "$1" in +"C-x") xclip -in -filter | tr '\n' ' ' | xclip -in -selection clipboard ;; +"C-c") while read file; do xclip -selection clipboard -target image/png "$file"; done ;; +"C-e") while read file; do urxvt -bg "#444" -fg "#eee" -sl 0 -title "$file" -e sh -c "exiv2 pr -q -pa '$file' | less" & done ;; +"C-g") tr '\n' '\0' | xargs -0 gimp & ;; +"C-r") while read file; do rawtherapee "$file" & done ;; +"C-comma") rotate 270 ;; +"C-period") rotate 90 ;; +"C-slash") rotate 180 ;; +esac + diff --git a/exec/image-info b/exec/image-info deleted file mode 100755 index f608527..0000000 --- a/exec/image-info +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh - -# 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 -# $2: image width -# $3: image height - -s=" " # field separator - -exec 2>/dev/null - -filename=$(basename -- "$1") -filesize=$(du -Hh -- "$1" | cut -f 1) -geometry="${2}x${3}" - -echo "${filesize}${s}${geometry}${s}${filename}" - diff --git a/exec/key-handler b/exec/key-handler deleted file mode 100755 index 614e1ec..0000000 --- a/exec/key-handler +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh - -# Example for $XDG_CONFIG_HOME/nsxiv/exec/key-handler -# Called by nsxiv(1) after the external prefix key (C-x by default) is pressed. -# The next key combo is passed as its first argument. Passed via stdin are the -# images to act upon, one path per line: all marked images, if in thumbnail -# mode and at least one image has been marked, otherwise the current image. -# nsxiv(1) blocks until this script terminates. It then checks which images -# have been modified and reloads them. - -# The key combo argument has the following form: "[C-][M-][S-]KEY", -# where C/M/S indicate Ctrl/Meta(Alt)/Shift modifier states and KEY is the X -# keysym as listed in /usr/include/X11/keysymdef.h without the "XK_" prefix. - -rotate() { - degree="$1" - tr '\n' '\0' | xargs -0 realpath | sort | uniq | while read file; do - case "$(file -b -i "$file")" in - image/jpeg*) jpegtran -rotate "$degree" -copy all -outfile "$file" "$file" ;; - *) mogrify -rotate "$degree" "$file" ;; - esac - done -} - -case "$1" in -"C-x") xclip -in -filter | tr '\n' ' ' | xclip -in -selection clipboard ;; -"C-c") while read file; do xclip -selection clipboard -target image/png "$file"; done ;; -"C-e") while read file; do urxvt -bg "#444" -fg "#eee" -sl 0 -title "$file" -e sh -c "exiv2 pr -q -pa '$file' | less" & done ;; -"C-g") tr '\n' '\0' | xargs -0 gimp & ;; -"C-r") while read file; do rawtherapee "$file" & done ;; -"C-comma") rotate 270 ;; -"C-period") rotate 90 ;; -"C-slash") rotate 180 ;; -esac - diff --git a/nsxiv.1 b/nsxiv.1 index 98b10a4..2a08c7f 100644 --- a/nsxiv.1 +++ b/nsxiv.1 @@ -428,7 +428,7 @@ and the arguments given to it are: 1) path to image file, 2) image width, 3) image height. .P There is also an example script installed together with nsxiv as -.IR PREFIX/share/nsxiv/exec/image-info . +.IR DOCPREFIX/examples/image-info . .SH EXTERNAL KEY HANDLER Additional external keyboard commands can be defined using a handler program located in @@ -446,7 +446,7 @@ where C/M/S indicate Ctrl/Meta(Alt)/Shift modifier states and KEY is the X keysym as listed in /usr/include/X11/keysymdef.h without the "XK_" prefix. There is also an example script installed together with nsxiv as -.IR PREFIX/share/nsxiv/exec/key-handler . +.IR DOCPREFIX/examples/key-handler . .SH THUMBNAIL CACHING nsxiv stores all thumbnails under .IR $XDG_CACHE_HOME/nsxiv/ . -- cgit v1.2.3