UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

284 lines (179 loc) 14.4 kB
Ссылки по теме * [Nitrogen (Русский)](/index.php/Nitrogen_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Nitrogen (Русский)") * [sxiv](/index.php/Sxiv "Sxiv") **Состояние перевода:** На этой странице представлен перевод статьи [GnuPG](/index.php/GnuPG "GnuPG"). Дата последней синхронизации: 13 декабря 2015‎‎. Вы можете [помочь](/index.php/ArchWiki_Translation_Team_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "ArchWiki Translation Team (Русский)") синхронизировать перевод, если в английской версии произошли [изменения](https://wiki.archlinux.org/index.php?title=GnuPG&diff=0&oldid=394158). [Feh](https://derf.homelinux.org/~derf/projects/feh/) это лёгкий и мощный просмотрщик изображений, который также может управлять фоном рабочего стола для оконных менеджеров, не умеющих делать это самостоятельно. ## Contents * [1 Установка](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0) * [2 Использование](#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5) * [2.1 Как просмотрщик изображений](#.D0.9A.D0.B0.D0.BA_.D0.BF.D1.80.D0.BE.D1.81.D0.BC.D0.BE.D1.82.D1.80.D1.89.D0.B8.D0.BA_.D0.B8.D0.B7.D0.BE.D0.B1.D1.80.D0.B0.D0.B6.D0.B5.D0.BD.D0.B8.D0.B9) * [2.1.1 Более удобный просмотр изображений](#.D0.91.D0.BE.D0.BB.D0.B5.D0.B5_.D1.83.D0.B4.D0.BE.D0.B1.D0.BD.D1.8B.D0.B9_.D0.BF.D1.80.D0.BE.D1.81.D0.BC.D0.BE.D1.82.D1.80_.D0.B8.D0.B7.D0.BE.D0.B1.D1.80.D0.B0.D0.B6.D0.B5.D0.BD.D0.B8.D0.B9) * [2.2 Как менеджер фона рабочего стола](#.D0.9A.D0.B0.D0.BA_.D0.BC.D0.B5.D0.BD.D0.B5.D0.B4.D0.B6.D0.B5.D1.80_.D1.84.D0.BE.D0.BD.D0.B0_.D1.80.D0.B0.D0.B1.D0.BE.D1.87.D0.B5.D0.B3.D0.BE_.D1.81.D1.82.D0.BE.D0.BB.D0.B0) * [3 Советы и рекомендации](#.D0.A1.D0.BE.D0.B2.D0.B5.D1.82.D1.8B_.D0.B8_.D1.80.D0.B5.D0.BA.D0.BE.D0.BC.D0.B5.D0.BD.D0.B4.D0.B0.D1.86.D0.B8.D0.B8) * [3.1 Просмотр SVG изображений](#.D0.9F.D1.80.D0.BE.D1.81.D0.BC.D0.BE.D1.82.D1.80_SVG_.D0.B8.D0.B7.D0.BE.D0.B1.D1.80.D0.B0.D0.B6.D0.B5.D0.BD.D0.B8.D0.B9) * [3.2 Случайный фон рабочего стола](#.D0.A1.D0.BB.D1.83.D1.87.D0.B0.D0.B9.D0.BD.D1.8B.D0.B9_.D1.84.D0.BE.D0.BD_.D1.80.D0.B0.D0.B1.D0.BE.D1.87.D0.B5.D0.B3.D0.BE_.D1.81.D1.82.D0.BE.D0.BB.D0.B0) * [3.2.1 Использование скрипта](#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D1.81.D0.BA.D1.80.D0.B8.D0.BF.D1.82.D0.B0) * [3.2.1.1 Для двух экранов no-xinerama](#.D0.94.D0.BB.D1.8F_.D0.B4.D0.B2.D1.83.D1.85_.D1.8D.D0.BA.D1.80.D0.B0.D0.BD.D0.BE.D0.B2_no-xinerama) * [3.2.2 Используя cron](#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D1.83.D1.8F_cron) * [3.2.3 Используя пользовательсую сессию systemd](#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D1.83.D1.8F_.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D1.82.D0.B5.D0.BB.D1.8C.D1.81.D1.83.D1.8E_.D1.81.D0.B5.D1.81.D1.81.D0.B8.D1.8E_systemd) * [4 Смотрите также](#.D0.A1.D0.BC.D0.BE.D1.82.D1.80.D0.B8.D1.82.D0.B5_.D1.82.D0.B0.D0.BA.D0.B6.D0.B5) ## Установка [Установите](/index.php/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D0%B5 "Установите") пакет [feh](https://www.archlinux.org/packages/?name=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" ``` Этот скрипт не имеет возможности принимать какие-либо дополнительные параметры. ### Как менеджер фона рабочего стола Feh может управлять обоями рабочего стола для оконных менеджеров, не имеющих такой функции, таких как [Openbox](/index.php/Openbox "Openbox") и [Fluxbox](/index.php/Fluxbox "Fluxbox"). При использовании [GNOME](/index.php/GNOME_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "GNOME (Русский)"), Вы должны отключить управление рабочим столом в [GNOME Files](/index.php/GNOME_Files "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](https://www.archlinux.org/packages/?name=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)](https://jlk.fjfi.cvut.cz/arch/manpages/man/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](/index.php/Cron "Cron"), вы получите схожий результат и это не требует все время держать скрипт, который большее время спит. Выполните `$ crontab -e` и добавьте: ``` * * * * * DISPLAY=:0.0 feh --bg-max "$(find ~/.wallpaper/|shuf -n1)" ``` #### Используя пользовательсую сессию systemd **Примечание:** Это пригодно **только** если вы используете *пользовательскую сессию systemd*. Прочитайте [Systemd/Пользователь](/index.php/Systemd/%D0%9F%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C "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 (Русский)](/index.php/Daemons_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Daemons (Русский)") для дополнительной информации. ## Смотрите также * [Пост на форуме с оригинальным скриптом feh_browser (англ.)](https://bbs.archlinux.org/viewtopic.php?pid=884635#p884635)