Provide image width and height to image-info script; fixes issue #159
This commit is contained in:
parent
f32771a647
commit
aabc2bddbd
|
@ -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,
|
# Called by sxiv(1) whenever an image gets loaded.
|
||||||
# with the name of the image file as its first argument.
|
|
||||||
# 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}"
|
||||||
|
|
5
main.c
5
main.c
|
@ -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]);
|
||||||
|
|
3
sxiv.1
3
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
|
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 .
|
||||||
|
|
Loading…
Reference in a new issue