sxiv
sxiv,Simple X Image Viewer(簡單的 X 圖像查看器)是一個用 C 實現的輕量且可腳本的圖像查看器。
安裝
安裝以下其中一個軟體包:
用法
配置快捷鍵
sxiv 支持外部按鍵事件。首先您需要按下 Ctrl-x 才能發送下一個按鍵給外部按鍵處理器。外部按鍵處理器需要一個可執行文件 ~/.config/sxiv/exec/key-handler 並通過參數傳入按下的按鍵組合,以及當前標記的圖像名稱作為標準輸入(或者當前選擇的圖片,如果沒有標記的圖片)。一個示例的按鍵處理器當安裝 sxiv 後存在於:/usr/share/sxiv/exec/key-handler。這個示例是一個作為自定義快捷鍵的絕佳開始。
$ mkdir -p ~/.config/sxiv/exec/ $ cp /usr/share/sxiv/exec/key-handler ~/.config/sxiv/exec/key-handler
確保標記腳本為可執行。
在接下來的例子中,我們將會添加一個按鍵綁定 Ctrl+d 來執行 mv filename ~/.trash,Ctrl+c 來複製當前圖片的名字到剪切板通過 xclip包,以及 Ctrl+w 通過 nitrogen 來設定當前壁紙。顯然,一些命令可能只能傳遞單個圖片作為參數才行,所以您可能想修改一下來處理那些傳遞不止一個的情況。
~/.config/sxiv/exec/key-handler
#!/bin/sh
while read file
do
case "$1" in
"C-d")
mv "$file" ~/.trash ;;
"C-r")
convert -rotate 90 "$file" "$file" ;;
"C-c")
echo -n "$file" | xclip -selection clipboard ;;
"C-w")
nitrogen --save --set-zoom-fill "$file" ;;
esac
done
創建 .trash 文件夾如果它不存在:
$ mkdir ~/.trash
mv "$2" ~/.trash.提示和技巧
在打開單個文件之後瀏覽目錄中的圖片
sxiv 的開發者曾多次被請求讓他的程序可以瀏覽一個目錄下的所有的圖片當給出一個文件名作為參數(參見 [1] 和 [2])。有一些分支已添加此功能:doronbehar 的分支,qsmodo 的分支 以及 sammoth 的分支。
除此之外,您可以使用官方版的 sxiv包 並將 此腳本 置於 /usr/local/bin 然後像這樣使用它:
$ scriptname a_single_image.jpg
如腳本中的注釋所述,當從 ranger 內打開圖片時,它可能會被用於此模式。
此 Shell 腳本來自 [3] sxiv 只有當傳遞的文件參數是一個目錄時才啟動略縮圖模式:
~/bin/sxiv.sh
#!/bin/sh
if command -v sxiv >/dev/null 2>&1; then
if [ -d "${@: -1}" ] || [ -h "${@: -1}" ]; then
sxiv -t "$@"
else
sxiv "$@"
fi
elif command -v feh >/dev/null 2>&1; then
feh "$@"
else
echo "Please install SXIV or FEH!"
fi
在狀態欄中顯示圖片大小
請將以下可執行腳本置於 ~/.config/sxiv/exec/image-info 並確保您安裝了 exiv2包 軟體包:
~/.config/sxiv/exec/image-info
#!/bin/sh
# Example for ~/.config/sxiv/exec/image-info
# 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.
s=" | " # field separator
filename=$(basename "$1")
filesize=$(du -Hh "$1" | cut -f 1)
# The '[0]' stands for the first frame of a multi-frame file, e.g. gif.
geometry=$(identify -format '%wx%h' "$1[0]")
tags=$(exiv2 -q pr -pi "$1" | awk '$1~"Keywords" { printf("%s,", $4); }')
tags=${tags%,}
echo "${filesize}${s}${geometry}${tags:+$s}${tags}${s}${filename}"
另請參閱
- Arch Linux forum thread.
- Sxiv for keyboard layout bépo (keyboard layout in the spirit of Dvorak for French speakers) : Sxiv bépo.