瀏覽代碼

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

master
Bert Münnich 9 年之前
父節點
當前提交
aabc2bddbd
共有 3 個檔案被更改,包括 12 行新增5 行删除
  1. +6
    -3
      exec/image-info
  2. +4
    -1
      main.c
  3. +2
    -1
      sxiv.1

+ 6
- 3
exec/image-info 查看文件

@@ -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}"


+ 4
- 1
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]);


+ 2
- 1
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…
取消
儲存