sxiv (Русский) - ArchWiki

Jump to content

# sxiv (Русский)

From ArchWiki

Состояние перевода: На этой странице представлен перевод статьи sxiv. Дата последней синхронизации: 7 августа 2025. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Ссылки по теме

- feh (Русский)

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.

Category:

- Image (Русский)

Hidden category:

- Pages with broken section links

sxiv (Русский)
Add topic