From aabc2bddbdeecdb2651394d90b10a9290a69b527 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bert=20M=C3=BCnnich?= Date: Sat, 6 Aug 2016 12:22:47 +0200 Subject: [PATCH] Provide image width and height to image-info script; fixes issue #159 --- 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 index a14ee7a..8e1b805 100644 --- 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 index 00a3ffc..361477e 100644 --- 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 index 51ba9f2..0e1485b 100644 --- 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 .