sxiv (Українська)

Повʼязані статті
feh
sxiv
, це простий переглядач зображень для
X
написаний на мові
C
. Він невибагливий до ресурсів, а також дозволяє писати до нього скрипти.
Як встановити?
Встановіть
пакунок
sxiv
або
sxiv-git
AUR
для версії в розробці.
Використання
Як задати гарячі клавіші?
Ви можете використовувати сторонній скрипт для обробки комбінацій клавіш в
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
Порада
Краще буде скористатися однією із загальноприйнятих
програм смітників
[
broken link
: invalid section]
(на кшталт
trash-cli
чи
bashtrash
AUR
[
пакет відсутній
: package not found]
) ніж командою
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
Як показати розмір зображення на нижній панелі?
Помістіть нижченаведений скрипт у файл
~/.config/sxiv/exec/image-info
і переконайтеся, що ви встановили пакунок
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)

# 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.
Sxiv для розкладки
bépo
(це розкладка в стилі
Dvorak
, але для французької) :
Sxiv bépo
.