sxiv

simple X image viewer
git clone git://git.suckless.org/sxiv
Log | Files | Refs | LICENSE

commit aabc2bddbdeecdb2651394d90b10a9290a69b527
parent f32771a6479ea028e7fc851c3a8869db95c8e05c
Author: Bert M√ľnnich <ber.t@posteo.de>
Date:   Sat,  6 Aug 2016 12:22:47 +0200

Provide image width and height to image-info script; fixes issue #159

Diffstat:
exec/image-info | 9++++++---
main.c | 5++++-
sxiv.1 | 3++-
3 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/exec/image-info b/exec/image-info @@ -1,16 +1,19 @@ #!/bin/sh # Example for $XDG_CONFIG_HOME/sxiv/exec/image-info -# Called by sxiv(1) whenever an image gets loaded, -# with the name of the image file as its first argument. +# Called by sxiv(1) whenever an image gets loaded. # The output is displayed in sxiv's status bar. +# Arguments: +# $1: path to image file +# $2: image width +# $3: image height s=" | " # field separator filename=$(basename -- "$1") filesize=$(du -Hh -- "$1" | cut -f 1) -geometry=$(identify -format '%wx%h' ":$1[0]") +geometry="${2}x${3}" tags=$(identify -format '%[IPTC:2:25]' ":$1" | tr ';' ',') echo "${filesize}${s}${geometry}${tags:+$s}${tags}${s}${filename}" diff --git a/main.c b/main.c @@ -224,6 +224,7 @@ void open_info(void) { static pid_t pid; int pfd[2]; + char w[12], h[12]; if (info.f.err != 0 || info.open || win.bar.h == 0) return; @@ -239,7 +240,9 @@ void open_info(void) if ((pid = fork()) == 0) { close(pfd[0]); dup2(pfd[1], 1); - execl(info.f.cmd, info.f.cmd, files[fileidx].name, NULL); + snprintf(w, sizeof(w), "%d", img.w); + snprintf(h, sizeof(h), "%d", img.h); + execl(info.f.cmd, info.f.cmd, files[fileidx].name, w, h, NULL); error(EXIT_FAILURE, errno, "exec: %s", info.f.cmd); } close(pfd[1]); diff --git a/sxiv.1 b/sxiv.1 @@ -366,7 +366,8 @@ The information displayed on the left side of the status bar can be replaced with the output of a user-provided script, which is called by sxiv whenever an image gets loaded. The path of this script is .I $XDG_CONFIG_HOME/sxiv/exec/image-info -and the first argument to this script is the path of the loaded image. +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 sxiv as .IR PREFIX/share/sxiv/exec/image-info .