sxiv (Русский)
sxiv (Simple X Image Viewer) — это обозреватель изображений, написанный на языке C. Он нетребователен к ресурсам, а также поддерживает скрипты.
Установка
Установите один из следующих пакетов:
- nsxiv, форк ныне неразвиваемого sxiv, стремящийся быть (почти) прозрачной заменой sxiv, поддерживать его интерфейс и добавлять простые, разумные возможности. Разрабатываемая версия доступа в пакете nsxiv-gitAUR.
- sxiv, исходный пакет.
Использование
Назначение горячих клавиш
Вы можете использовать сторонний скрипт для обработки сочетаний клавиш в sxiv. Для этого нажмите Ctrl-x и еще одну клавишу. Она будет передана в сторонний скрипт. Этот скрипт должен находиться в файле ~/.config/sxiv/exec/key-handler. Он принимает комбинацию нажатых клавиш в качестве аргумента, а имена выделенных изображений — через stdin. Если ни одно изображение не выбрано, то скрипт получит то изображение, что сейчас на экране. Пример такого скрипта-обработчика можно найти в /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 имя_файла ~/.trash, Ctrl+c будет копировать имена выбранных изображений в буфер обмена, а 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 этот скрипт и вызвать его:
$ название_скрипта изображение.jpg
Как сказано в комментарии ко скрипту, его можно использовать внутри файлового обозревателя ranger.
А этот скрипт с [3] запускает sxiv в режиме предпросмотра (thumbnail mode) только в том случае, если переданный аргумент — имя каталога:
~/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
Отображение размера изображения на нижней панели
Установите пакет exiv2, создайте приведённый ниже скрипт и сделайте его исполняемым:
~/.config/sxiv/exec/image-info
#!/bin/sh
# Это пример скрипта ~/.config/sxiv/exec/image-info
# sxiv(1) вызывает его каждый раз, когда загружает какое-либо изображение,
# а его название передаёт как первый аргумент.
# Вывод скрипта отображается на панели статуса.
s=" | " # разделитель между полями
filename=$(basename "$1")
filesize=$(du -Hh "$1" | cut -f 1)
# «[0]» обозначает первый кадр мультикадрового файла, например, 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.
- Sxiv для раскладки bépo (это раскладка в стиле Dvorak, но для французского): Sxiv bépo.