@@ -1,16 +1,19 @@ | |||||
#!/bin/sh | #!/bin/sh | ||||
# Example for $XDG_CONFIG_HOME/sxiv/exec/image-info | # 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. | # The output is displayed in sxiv's status bar. | ||||
# Arguments: | |||||
# $1: path to image file | |||||
# $2: image width | |||||
# $3: image height | |||||
s=" | " # field separator | s=" | " # field separator | ||||
filename=$(basename -- "$1") | filename=$(basename -- "$1") | ||||
filesize=$(du -Hh -- "$1" | cut -f 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 ';' ',') | tags=$(identify -format '%[IPTC:2:25]' ":$1" | tr ';' ',') | ||||
echo "${filesize}${s}${geometry}${tags:+$s}${tags}${s}${filename}" | echo "${filesize}${s}${geometry}${tags:+$s}${tags}${s}${filename}" | ||||
@@ -224,6 +224,7 @@ void open_info(void) | |||||
{ | { | ||||
static pid_t pid; | static pid_t pid; | ||||
int pfd[2]; | int pfd[2]; | ||||
char w[12], h[12]; | |||||
if (info.f.err != 0 || info.open || win.bar.h == 0) | if (info.f.err != 0 || info.open || win.bar.h == 0) | ||||
return; | return; | ||||
@@ -239,7 +240,9 @@ void open_info(void) | |||||
if ((pid = fork()) == 0) { | if ((pid = fork()) == 0) { | ||||
close(pfd[0]); | close(pfd[0]); | ||||
dup2(pfd[1], 1); | 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); | error(EXIT_FAILURE, errno, "exec: %s", info.f.cmd); | ||||
} | } | ||||
close(pfd[1]); | close(pfd[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 | with the output of a user-provided script, which is called by sxiv whenever an | ||||
image gets loaded. The path of this script is | image gets loaded. The path of this script is | ||||
.I $XDG_CONFIG_HOME/sxiv/exec/image-info | .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 | .P | ||||
There is also an example script installed together with sxiv as | There is also an example script installed together with sxiv as | ||||
.IR PREFIX/share/sxiv/exec/image-info . | .IR PREFIX/share/sxiv/exec/image-info . | ||||