# Feh (Русский)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Перевод этой статьи или раздела не отражает оригинальное содержание.

Причина: Last updated in 2015 (Discuss)

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

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

Состояние перевода: На этой странице представлен перевод статьи GnuPG. Дата последней синхронизации: 13 декабря 2015‎‎. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Feh это лёгкий и мощный просмотрщик изображений, который также может управлять фоном рабочего стола для оконных менеджеров, не умеющих делать это самостоятельно.

## Установка

Установите пакет feh

## Использование

Feh имеет множество настроек. Для получения полного списка опций, выполните `feh --help`.

### Как просмотрщик изображений

Чтобы быстро просматривать изображения в определенном каталоге, вы можете запустить feh со следующими параметрами:

    $ feh -g 640x480 -d -S filename /path/to/directory

- Ключ `-g` используется для просмотра изображений в разрешении 640x480
- Ключ `-d` отображает имя файла
- Ключ `-S filename` сортирует изображения по их названию

Это всего лишь один пример; есть много других вариантов для большей гибкости.

#### Более удобный просмотр изображений

Если открывать изображение с помощью feh из файлового менеджера, то, чтобы просмотреть все изображения в каталоге вам прийдется или открывать непосредственно каждый файл по очереди, или выделить все файлы, а затем открыть их. Это очень некомфортно.

Данный скрипт способен обойти эти неудобства.

    feh_browser.sh

    #!/bin/bash

    shopt -s nullglob

    if [[ ! -f $1 ]]; then
    	echo "$0: first argument is not a file" >&2
    	exit 1
    fi

    file=$(basename -- "$1")
    dir=$(dirname -- "$1")
    arr=()
    shift

    cd -- "$dir"

    for i in *; do
    	[[ -f $i ]] || continue
    	arr+=("$i")
    	[[ $i == $file ]] && c=$((${#arr[@]} - 1))
    done

    exec feh "$@" -- "${arr[@]:c}" "${arr[@]:0:c}"

Скрипт принимает первый аргумент, как имя файла.

Запустите скрипт с путем до выбранного изображения с любыми дополнительными параметрами. Пример запуска, который вы можете использовать в своем файловом менеджере:

    $ /path/to/script/feh_browser.sh %f -F -Z

`-F` и `-Z` аргументы feh. `-F` открывает изображения в полноэкранном режиме, а `-Z` автоматически масштабирует. Добавление ключа `-q` (quiet) предотвращает спам сообщениями об ошибках, когда feh пытается открыть не изображения из текущего каталога.

Простая, но менее функциональная альтернатива:

    feh_browser.sh

    #! /bin/sh
    feh -. "$(dirname "$1")" --start-at "$1"

Этот скрипт не имеет возможности принимать какие-либо дополнительные параметры.

### Как менеджер фона рабочего стола

Эта статья или раздел нуждается в переводе

Примечания: GNOME Files больше не управляет рабочим столом (его обрабатыает GNOME Shell) и Files больше не используют GConf. Информация о Gnome требует переработки или удаления. (обсуждение: Talk:Feh (Русский)#)

Feh может управлять обоями рабочего стола для оконных менеджеров, не имеющих такой функции, таких как Openbox и Fluxbox.

При использовании GNOME, Вы должны отключить управление рабочим столом в GNOME Files. Самый быстрый способ сделать это:

    $ gconftool-2 --set /apps/nautilus/preferences/show_desktop --type boolean false

Эта команда является примером для установки фона рабочего стола:

    $ feh --bg-scale /path/to/image.file

Другие варианты опций:

    --bg-tile FILE
    --bg-center FILE
    --bg-seamless FILE

Для сохранения фона в следующих сессиях, добавьте команду в автозагрузку (например `~/.xinitrc`, `~/.config/openbox/autostart.sh`, и т.д.):

    sh ~/.fehbg &

Чтобы изменить фоновое изображение, измените `~/.fehbg`, который будет создан после выполнения команды `feh --bg-scale /path/to/image.file` упомянутой выше.

## Советы и рекомендации

#### Просмотр SVG изображений

    $ feh --magick-timeout 1 file.svg

Обратите внимание, что вам нужен imagemagick

### Случайный фон рабочего стола

Вы можете заставить feh ставить случайные обои используя опцию `--randomize` с одной из `--bg-foo` опцией, пример:

    $ feh --randomize --bg-fill ~/.wallpaper/*

Команда выше говорит feh'у перемешать список файлов в каталоге `~/.wallpaper/` и установить фоны для всех доступных рабочих столов. В этом случае берется первое изображение из перемешанного списка (одно уникальное изображение на каждый рабочий стол). Вы также можете сделать это рекурсивно, если ваш каталог с обоями содержит подкаталоги:

    $ feh --recursive --randomize --bg-fill ~/.wallpaper

Чтобы получать для каждой сессии разные случайные обои из `~/.wallpaper`, добавьте следующее в ваш `.xinitrc`:

    $ feh --bg-max --randomize ~/.wallpaper/* &

Другой способ устанавливать случайные обои для каждой x.org сессии - отредактируйте ваш `.fehbg`, как показано ниже:

    $HOME/.fehbg

     feh --bg-max --randomize --no-fehbg ~/.wallpaper/*

Для периодической смены обоев используйте скрипт, cron или systemd для выполнения команды с желаемым интервалом.

#### Использование скрипта

Для случайного изменения обоев, создайте скрипт на примере приведённого кода (например `wallpaper.sh`). Сделайте скрипт исполняемым и вызывайте его из `~/.xinitrc`. Вы можете поместить код непосредственно в `~/.xinitrc`, а не отдельным файлом.

Измените каталог `~/.wallpaper` в соответствии с вашими настройками, также можно указать задержку `15m`, по вашему желанию (смотрите sleep(1) для опций).

    wallpaper.sh

    #!/bin/sh

    while true; do
    	find ~/.wallpaper -type f \( -name '*.jpg' -o -name '*.png' \) -print0 |
    		shuf -n1 -z | xargs -0 feh --bg-max
    	sleep 15m
    done

Замените `find ~/.wallpaper` на `find ~/.wallpaper/`, если код выше не работает.

Эта версия не создает так много форков, но она не работает рекурсивно по каталогам:

    wallpaper.sh

    #!/bin/bash

    shopt -s nullglob
    cd ~/.wallpaper

    while true; do
    	files=()
    	for i in *.jpg *.png; do
    		[[ -f $i ]] && files+=("$i")
    	done
    	range=${#files[@]}

    	((range)) && feh --bg-scale "${files[RANDOM % range]}"

    	sleep 15m
    done

##### Для двух экранов no-xinerama

Этот скрипт заменяет вызов feh для добавления обоев на системах с двумя экранами nvidia twinview (для например):

    wallpaper.sh

    #!/bin/sh
    exec feh --bg-max --no-xinerama "$@"

#### Используя cron

Используя cron, вы получите схожий результат и это не требует все время держать скрипт, который большее время спит.

Выполните `$ crontab -e` и добавьте:

    * * * * *  DISPLAY=:0.0 feh --bg-max "$(find ~/.wallpaper/|shuf -n1)"

#### Используя пользовательсую сессию systemd

Примечание: Это пригодно только если вы используете пользовательскую сессию systemd. Прочитайте Systemd/Пользователь для дополнительной информации.

Создайте юнит service:

    $HOME/.config/systemd/user/feh-wallpaper.service

    [Unit]
    Description=Random wallpaper with feh

    [Service]
    Type=oneshot
    EnvironmentFile=%h/.wallpaper
    ExecStart=/bin/bash -c '/usr/bin/feh --bg-max "$(find ${WALLPATH}|shuf|head -n 1)"'

    [Install]
    WantedBy=default.target

Теперь создайте юнит таймера. При необходимости измените время. В это примере `15 секунд`:

    $HOME/.config/systemd/user/feh-wallpaper.timer

    [Unit]
    Description=Random wallpaper with feh

    [Timer]
    OnUnitActiveSec=15s
    Unit=feh-wallpaper.service

    [Install]
    WantedBy=default.target

В этом примере файл конфигурации является скрым файлом в домашнем каталоге и содержит в себе путь к каталогу с вашими изображениями

    $HOME/.wallpaper

    WALLPATH=/home/user/.wallpaper/

Активируйте `feh-wallpaper.timer` и `feh-wallpaper.service`. Читайте Daemons (Русский) для дополнительной информации.

## Смотрите также

- Пост на форуме с оригинальным скриптом feh_browser (англ.)

Category:

- Image (Русский)

Hidden categories:

- Pages or sections flagged with Template:Bad translation (Русский)
- Pages or sections flagged with Template:Translateme (Русский)