Перейти к содержимому
Главная страница

Feh: просмотр изображений, слайд-шоу и работа из терминала

Feh

Feh решает задачи быстрого просмотра изображений, перебора больших папок, показа слайд-шоу, построения контактных листов, отбора файлов по параметрам и установки обоев в X11. Он особенно полезен тем, кто работает в Linux или BSD из терминала, использует минималистичный оконный менеджер, автоматизирует работу shell-скриптами либо хочет просматривать снимки без тяжёлого каталога и редактора. Вместо панели с десятками кнопок Feh опирается на аргументы командной строки, горячие клавиши, контекстное меню и простые конфигурационные файлы, поэтому его сильная сторона — не художественная обработка, а точный, воспроизводимый просмотр и организация потока файлов.

Варианты загрузок
  • Ретушь и цветокоррекция
  • Замена фона и удаление объектов
  • Пакетная обработка снимков
Feh
  • Нет полноценной ретуши
  • GIF показывается первым кадром
  • Установка обоев только через X11

Содержание:

Установка и начало работы

В большинстве Linux-дистрибутивов Feh устанавливается из штатного репозитория. В Debian и Ubuntu пакет обычно называется feh, в Arch Linux — также feh; FreeBSD предоставляет одноимённый порт и пакет. Для повседневной работы разумнее использовать пакет своего дистрибутива: он уже собран с подходящими зависимостями, интегрирован с системой и обновляется стандартным менеджером пакетов. Сборка из исходников нужна прежде всего тогда, когда требуется явно включить или отключить опциональные возможности — например, поддержку libcurl, встроенное чтение EXIF, inotify или libmagic.

После установки полезно проверить, что оболочка видит исполняемый файл, командой feh --version. Если в ответ выводится номер версии и список возможностей сборки, программа готова к запуску. Здесь важно обращать внимание не столько на номер, сколько на опциональные переключатели: одна сборка может иметь встроенный EXIF и автоматическое отслеживание изменений через inotify, а другая — нет. Из-за этого одна и та же команда на двух системах иногда ведёт себя немного по-разному.

Самый простой запуск — передать путь к изображению: feh photo.jpg. Если вместо файла указать каталог, Feh сформирует список распознанных изображений в нём и откроет первое в режиме слайд-шоу. Когда аргументы вовсе не указаны, программа берёт файлы из текущего каталога. Это удобная модель для терминальной работы: перейти в папку командой cd, набрать feh и листать содержимое без отдельного диалога открытия файла.

Терминал с командой feh image1.jpg и окно Feh с открытой фотографией
Окно Feh в i3 с открытым изображением и строкой заголовка

Первое окно намеренно выглядит аскетично. У Feh нет постоянно видимой ленты инструментов или боковой панели библиотеки: изображение занимает основную площадь, а управление осуществляется клавиатурой, мышью и меню по правой кнопке. В типичной конфигурации в заголовке окна видно имя файла и позицию в списке; дополнительные сведения можно нарисовать поверх картинки через параметры --draw-filename, --draw-exif или --info.

Если картинка больше рабочего стола, стоит сразу попробовать feh --scale-down photo.jpg. Этот режим уменьшает слишком крупное изображение под доступную геометрию окна, не заставляя увеличивать маленькие файлы. Для просмотра в полный экран применяется feh --fullscreen photo.jpg, а для фиксированного окна — feh --geometry 1280x800 photo.jpg. Эти три приёма покрывают большую часть первичной настройки поведения окна.

Запуск из файлового менеджера

Feh можно использовать не только из терминала. При установке с desktop-файлом он появляется среди приложений, которые файловый менеджер предлагает для изображений. Это удобно, если команда нужна только для настройки, а ежедневный запуск выполняется двойным щелчком. При этом логика остаётся прежней: один файл открывается как одиночный элемент списка, а передача каталога или набора файлов даёт слайд-шоу.

Для сценария «открыть выбранный файл, но затем листать соседние изображения из этой же папки» лучше использовать --start-at. Команда feh --start-at /home/user/Pictures/img042.jpg строит список каталога, начинает с указанного файла и сохраняет возможность переходить к предыдущим и следующим снимкам. Это отличается от простого запуска feh img042.jpg, где список может состоять только из одного элемента.

Что проверить, если окно не появляется

Feh — X11-приложение. Если его запускать в сеансе без доступного X-сервера, обычный режим просмотра не сможет создать окно. На удалённой машине необходимо корректно настроить DISPLAY, X11-forwarding или иной способ доступа к X-сессии. Некоторые операции без показа окна всё же работают и без X: например, формирование индексного изображения с --output-only может быть полезно в пакетном скрипте.

Если терминал сообщает, что файл не загружается, проблема нередко находится ниже уровня Feh — в Imlib2 или внешнем конвертере. Поддерживаемые форматы и способы диагностики подробно разобраны ниже; для первого запуска достаточно убедиться, что обычный JPEG или PNG открывается локально.

Логика Feh: список файлов важнее «проекта»

Feh не создаёт каталожную базу и не импортирует фотографии. Почти любая операция начинается с внутреннего списка файлов — filelist. Он может быть собран из аргументов командной строки, каталога, рекурсивного обхода, текстового файла или стандартного ввода. Затем программа сортирует, фильтрует и показывает элементы этого списка. Понимание этой модели объясняет большинство параметров и помогает строить предсказуемые сценарии.

При команде feh ~/Pictures в список попадают изображения из указанного каталога. Ключ --recursive или короткий -r заставляет пройти подкаталоги: feh -r ~/Pictures. Без него вложенные папки не раскрываются. Параметр --no-recursive нужен прежде всего для переопределения темы, где рекурсивный режим мог быть включён по умолчанию.

Если порядок важен, его надо задать явно. --sort filename сортирует по имени файла, --sort dirname группирует по каталогу, --sort mtime учитывает время модификации, а --sort width, height, pixels, size и format опираются на свойства изображений. Для человеческого порядка чисел в именах полезно добавить --version-sort, чтобы «2.jpg» шёл перед «10.jpg».

Сортировки по ширине, высоте, числу пикселей, размеру и формату требуют предварительного анализа файлов. Поэтому Feh сначала выполняет проход по списку, и окно может появиться не мгновенно. Ключ --preload запускает такой проход явно и показывает прогресс при подробном выводе. Это не означает загрузку всех изображений в оперативную память: программа проверяет доступность и собирает характеристики, после чего удаляет из списка элементы, которые не удалось прочитать.

Постоянный filelist

Ключ --filelist (-f) принимает текстовый файл с одним путём на строку. Если файл уже существует, Feh читает его и показывает записи в заданном порядке. Если указанного файла нет, программа создаст его при завершении сеанса из текущего внутреннего списка. Это позволяет один раз подготовить сложную выборку и затем открывать её повторно без повторного обхода всего дерева каталогов.

Filelist особенно удобен при ручном отборе. В режиме просмотра клавиша Delete удаляет текущий элемент только из списка, не стирая сам файл. После завершения можно сохранить изменённый набор. Для физического удаления с диска предусмотрена отдельная команда Ctrl+Delete, и это принципиальное различие: случайно перепутать эти действия в рабочем процессе нежелательно.

Feh умеет читать список и из стандартного ввода: feh -f -. Благодаря этому в него легко передавать результаты find, sort, awk или собственного скрипта. Например, внешняя команда может выбрать только пейзажные кадры, а Feh будет отвечать исключительно за визуальную проверку. Именно такой «unix-конвейер» — одна из причин, по которым программа остаётся полезной рядом с более крупными графическими просмотрщиками.

Просмотр и навигация по изображениям

В режиме слайд-шоу переход к следующему изображению выполняется клавишей n, пробелом или стрелкой вправо. Назад — p, Backspace или стрелкой влево. Home переводит к первому элементу, End — к последнему, Page Up и Page Down прыгают примерно на пять процентов списка. Клавиша z выбирает случайную позицию. Если файлы отсортированы по каталогу, квадратные скобки позволяют быстро перейти к первой картинке предыдущей или следующей группы каталогов.

Feh в режиме слайд-шоу показывает фотографию над окном терминала

По умолчанию после последнего изображения Feh возвращается к первому. Для презентаций такое зацикливание не всегда нужно. Параметр --on-last-slide hold оставляет последний кадр на экране, --on-last-slide quit завершает программу при попытке перейти дальше, а resume сохраняет циклическое поведение. Это аккуратнее старого подхода с отдельным «один цикл»: поведение конца списка становится явной частью команды.

Масштаб и перемещение

Стрелки вверх и вниз увеличивают и уменьшают изображение; на цифровой клавиатуре работают «плюс» и «минус». Символ * возвращает 100%, / вписывает изображение в окно, а ! масштабирует по принципу заполнения — без пустых полей, но с возможной обрезкой краёв. Шаг масштабирования задаётся --zoom-step; стандартное значение — 25 процентов.

При увеличенном изображении его можно перемещать Ctrl+стрелками. Alt+стрелки прокручивают на страницу. Feh сознательно отключает сглаживание во время прокрутки ради скорости; клавиша R повторно отрисовывает текущий кадр со сглаживанием. Это заметно при просмотре больших сканов на масштабе выше 100%.

Мышью левая кнопка выполняет панорамирование. Короткий щелчок без заметного движения в слайд-шоу трактуется как переход вперёд. Средняя кнопка отвечает за масштаб: движение вправо увеличивает, влево уменьшает, одиночный щелчок возвращает 100%. Колесо переключает изображения, а правая кнопка открывает меню. В системах без средней кнопки эти действия можно переназначить в файле buttons.

Размер окна и полноэкранный режим

--fullscreen открывает картинку на весь экран и автоматически ограничивает крупные изображения рамками дисплея. --auto-zoom разрешает увеличивать небольшие изображения до доступной области, а --zoom 100 заставляет придерживаться масштаба 1:1 даже в полноэкранном режиме. Клавиша f переключает полноэкранное состояние уже после запуска.

Для оконного просмотра важны два похожих, но разных механизма. --geometry 1200x800 задаёт фиксированную геометрию и отключает автоматическое изменение размера окна при переходе между файлами. --scale-down уменьшает изображение до этой геометрии или, если она не задана, до размера экрана. В тайлинговых оконных менеджерах этот вариант обычно предсказуемее, чем постоянная попытка подстраивать окно под каждое изображение.

Клавиша g переключает фиксацию геометрии, а w пытается изменить размер окна под текущую картинку с учётом масштаба. Параметр --no-screen-clip снимает ограничение по размеру экрана, из-за чего окно может стать значительно больше монитора. Он нужен лишь в специфических сценариях и не является хорошим режимом по умолчанию.

Сохранение масштаба при переходе

Когда требуется сравнивать одинаковый участок серии кадров, полезен --keep-zoom-vp или клавиша k. Feh переносит уровень масштаба и смещение X/Y на следующий файл. Так удобно проверять резкость серии, совмещение кадров, артефакты возле края или один и тот же объект в последовательности снимков. Без этой функции каждый новый файл обычно открывается со своим расчётным масштабом и положением.

Слайд-шоу и показ презентаций

Автоматическое листание включается параметром --slideshow-delay или коротким -D. Например, feh -F -D 5 -S filename presentation/ показывает каталог на весь экран, сортирует по имени и меняет кадр каждые пять секунд. Клавиша h ставит показ на паузу и возобновляет его. Отрицательное значение задержки задаёт абсолютную величину задержки, но запускает программу в состоянии паузы.

Feh листает изображения каталога в режиме слайд-шоу

Для публичного показа часто добавляют --hide-pointer, чтобы курсор не висел поверх изображения, и --borderless, если используется оконный, а не полноэкранный режим. Случайный порядок задаёт --randomize; при новом цикле список перемешивается снова. Если нужны строго линейные слайды, лучше сочетать сортировку с --on-last-slide hold или quit.

Заголовок окна можно сформировать с --title, используя спецификаторы формата — например, имя файла, номер текущего элемента и общее число элементов. Это полезно для технической презентации, когда оператору важно видеть позицию в последовательности. Само изображение можно оставить чистым: заголовок находится в оформлении окна и не встраивается в файл.

Для экранов, где каталог регулярно обновляется, применяют --reload N. Через заданное число секунд Feh перечитывает список и текущий файл. Такая схема подходит для простых информационных дисплеев, каталогов результатов рендера или снимков с камеры. Она не работает для режима монтажа, индекса и списка миниатюр. Кроме того, сетевые загрузки через libcurl на время чтения файла блокируют реакцию на клавиатуру и мышь, поэтому «живой» экран с медленным сервером лучше проектировать с запасом.

Сигналы для внешнего управления

Слайд-шоу можно переключать не только клавишами. Сигнал SIGUSR1 переводит к следующему изображению, SIGUSR2 — к предыдущему. Если в слайд-шоу только один файл, сигнал заставляет перечитать его. Это даёт простой канал управления из shell-скрипта, медиакнопки, планировщика или внешнего процесса без эмуляции клавиатуры.

В multiwindow-режиме SIGUSR1 и SIGUSR2 не листают окна по очереди: они инициируют перечитывание изображений. Поэтому один и тот же сигнал имеет смысл интерпретировать с учётом режима Feh, особенно если управление вынесено в универсальный скрипт.

Миниатюры, индекс и монтаж

У Feh есть несколько режимов, которые внешне похожи на сетку изображений, но решают разные задачи. --montage формирует единое полотно из миниатюр. --index добавляет под ними подписи. --fullindex выводит расширенную информацию. --thumbnails создаёт кликабельную сетку, из которой отдельный оригинал можно открыть в новом окне. Это не библиотека с базой: сетка каждый раз строится из текущего filelist.

Режим montage Feh с рядом миниатюр изображений

Размер миниатюр задают --thumb-width и --thumb-height. Без --stretch маленькие исходники не увеличиваются сверх собственного размера. Параметр --ignore-aspect принудительно растягивает каждую миниатюру ровно до заданной ширины и высоты, то есть может искажать пропорции; использовать его стоит только когда равномерная сетка важнее геометрической точности.

--limit-width и --limit-height ограничивают размер итогового полотна. Если задать оба значения, результат получает именно указанную ширину и высоту. Фон можно заменить файлом через --bg или сделать прозрачным значением trans. Параметр --alpha управляет прозрачностью миниатюр на фоне.

Index и Fullindex

Обычный --index выводит имя файла под миниатюрой. Через --index-info можно сформировать собственную подпись, используя спецификаторы: %n для имени, %w и %h для размеров, %S для удобочитаемого размера файла, %t для формата. Пустая строка --index-info '' скрывает подписи, превращая индекс в чистую сетку.

Режим index Feh с миниатюрами и именами файлов

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

Индекс Feh с пользовательскими подписями разрешения и имени файла

Индекс можно не только показывать, но и сохранять. --output file.jpg записывает созданное полотно и одновременно открывает его, а --output-only file.jpg лишь сохраняет файл и завершает работу. Последний вариант полезен на сервере без запущенного X-сеанса: contact sheet можно сгенерировать в пакетном процессе и передать дальше как обычное изображение.

Thumbnail mode

--thumbnails внешне похож на индекс, но миниатюры становятся интерактивными. Щелчок открывает выбранный оригинал, а с клавиатуры можно перемещать выделение и открыть выбранную картинку командой render. Параметры --fullscreen и --scale-down не меняют саму сетку миниатюр, зато применяются к окнам оригиналов, открытых из неё.

Кэширование миниатюр включается --cache-thumbnails. Feh сохраняет их в каталоге XDG cache и повторно использует при следующем запуске. Кэш создаётся только для миниатюр не крупнее 256×256 пикселей. На каталоге, к которому пользователь возвращается регулярно, это снижает повторную работу; на одноразовом наборе эффект менее важен.

Опция --thumb-redraw задаёт, как часто окно сетки перерисовывается во время генерации. Значение 1 обновляет после каждой миниатюры, но это дорого; 0 показывает результат только после окончания. На медленной системе или на сотнях файлов редкая перерисовка делает построение ощутимо спокойнее.

Multiwindow

Режим --multiwindow (-w) открывает каждый файл в отдельном окне. Он удобен для небольшого числа изображений, особенно в тайлинговом оконном менеджере, где раскладкой управляет сам WM. Для десятков или сотен файлов этот режим быстро становится непрактичным: окон слишком много, а пользователь теряет контекст списка.

Несколько отдельных окон Feh в режиме multiwindow на рабочем столе Linux
Несколько окон Feh в режиме multiwindow с разными фотографиями

В multiwindow у каждого окна остаются основные клавиши просмотра, поворота, зеркалирования и закрытия. Команда x закрывает текущее окно, а глобальный выход завершает процесс. Если нужно сравнить два–четыре изображения рядом, этот подход часто проще, чем запускать несколько независимых экземпляров Feh вручную.

Сортировка, фильтрация и текстовые списки

Feh полезен не только как окно просмотра. Он умеет анализировать набор файлов и выдавать технический список, который затем легко обработать обычными утилитами оболочки. Режим --list не показывает изображения: он печатает таблицу с номером, форматом, шириной, высотой, количеством пикселей, размером файла, признаком альфа-канала и путём. Такой вывод удобен для аудита папки перед копированием, публикацией или резервным сохранением.

Если стандартного набора полей недостаточно, применяется --customlist или -L. Строка формата собирается из тех же спецификаторов, которые используются для заголовков и подписей. Например, feh -L '%w %h %S %f' photos/ выдаёт ширину, высоту, удобочитаемый размер и путь. Результат можно перенаправить в файл, отсортировать, отфильтровать awk или передать другой программе.

Отбор по габаритам

--max-dimension ШИРИНАxВЫСОТА оставляет только изображения, которые не превышают заданные пределы одновременно. Если одна из координат не интересует, вместо неё задают 0 или отрицательное значение. Этот параметр особенно удобен для поиска маленьких файлов, идущих в папке вместе с оригиналами: превью, иконок или случайных экспортов.

Обратный фильтр выполняет --min-dimension: в список попадают изображения с шириной и высотой не меньше порогов. Так можно быстро исключить миниатюры перед полноэкранным показом. Пороговая фильтрация выполняется до визуального просмотра и экономит время, когда каталог смешивает файлы разных назначений.

Сортировка --sort size учитывает размер файла в байтах, --sort pixels — общее число пикселей, а --sort width и height — конкретное измерение. --reverse разворачивает полученный порядок. Поэтому команда вида feh --list --sort pixels --reverse photos/ даёт список от самых крупных по площади кадров к самым маленьким без дополнительного инструмента.

Loadable и unloadable

Режимы --loadable и --unloadable предназначены для проверки коллекции. Первый печатает имена файлов, которые Imlib2 смог открыть, второй — те, которые открыть не удалось. В рекурсивном каталоге это простой способ выявить повреждённые изображения, неподдерживаемые форматы или файлы с неправильным расширением.

Эти режимы возвращают статус завершения, пригодный для скриптов. У --unloadable ненулевой результат появляется, если нашёлся хотя бы один читаемый файл; у --loadable — если хотя бы один элемент загрузить не удалось. При автоматизации лучше проверять фактическое поведение своей версии и использовать вывод вместе с кодом возврата, а не полагаться только на визуальную строку в терминале.

В связке с --action проверочные режимы позволяют запускать внешнюю команду для каждого совпавшего элемента. Такая возможность мощная, но потенциально опасная: если действие удаляет или перемещает файл, сначала стоит выполнить тестовый прогон без модификации и убедиться, что фильтр отбирает именно то, что ожидалось.

Подписи, EXIF и техническая информация поверх кадра

Feh может рисовать текст прямо в окне просмотра, не изменяя исходный файл. --draw-filename показывает имя в верхнем левом углу. --draw-tinted добавляет полупрозрачный фон под подобные наложения, повышая читаемость на светлых и пёстрых фотографиях. Это удобно для сортировки скриншотов, серий съёмки и папок с похожими кадрами, когда имя — часть рабочего контекста.

Встроенный --draw-exif доступен только в сборках, где Feh скомпилирован с поддержкой libexif. Он выводит набор EXIF-параметров в нижней части окна. Проверить наличие функции можно по строке возможностей feh --version. Если встроенного чтения нет или требуется другой набор тегов, более гибким вариантом становится --info с внешней командой.

Как работает —info

Параметр --info запускает указанную командную строку и помещает её вывод в нижний левый угол изображения. Через спецификатор %F в команду передаётся безопасно экранированный путь к текущему файлу. Поэтому можно вызвать exiftool, exiv2, identify или собственный скрипт и вывести только нужные поля: модель камеры, дату, выдержку, ISO, профиль, контрольную сумму, статус проверки.

Если перед строкой команды поставить специальный флаг ;, результат --info не показывается сразу. Его можно включать и выключать клавишей i. Это хороший режим для чистого просмотра: метаданные остаются доступны по требованию, но не закрывают фотографию постоянно.

Клавиша e отдельно переключает встроенный EXIF, а d — имя файла. Таким образом, имя, EXIF и произвольная информация — три независимых слоя. В техническом контроле можно оставить видимым только имя; при спорном кадре временно включить EXIF; для диагностики — показать вывод внешнего скрипта.

Спецификаторы формата

Наиболее полезные спецификаторы Feh: %n — имя файла, %f — путь, %w/%h — ширина и высота, %S — удобочитаемый размер, %t — формат, %u — номер текущего элемента, %l — общее число элементов, %z — текущий масштаб, %m — режим. Для shell-команд следует предпочитать экранированные варианты %N и %F.

Разница между %f и %F принципиальна. Первый предназначен для визуальных строк и не обеспечивает shell-экранирование. Если подставить его внутрь --action с именем, содержащим пробелы или специальные символы, команда может получить неверные аргументы. %F рассчитан именно на передачу пути оболочке.

Текстовые подписи к отдельным изображениям

Параметр --caption-path задаёт каталог, где рядом с изображениями хранятся текстовые подписи. Для файла images/foo.jpg и пути captions/ Feh ищет images/captions/foo.jpg.txt. Если подпись существует, она накладывается на изображение при просмотре.

Клавиша c включает режим редактирования подписи. Текст становится активным, Enter сохраняет его, Escape отменяет изменения, а Ctrl+Enter вставляет перевод строки. Такой механизм не заменяет XMP или полноценную систему метаданных: это отдельные текстовые файлы. Зато он прост, прозрачен и удобен для временных комментариев к серии, технических заметок или ручного отбора.

Пользовательские действия: Feh как оболочка для скриптов

Одна из самых сильных функций Feh — --action. Она связывает клавишу с произвольной командой shell, которой передаётся текущий файл. Основное действие запускается Enter или клавишей 0; дополнительные --action1 … --action9 назначаются цифрам 1–9. Это позволяет превратить минимальный просмотрщик в персональный инструмент отбора без изменения исходного кода.

Типичный сценарий — сортировка входящей папки. Действие 1 перемещает снимок в «выбрано», действие 2 — в «проверить позже», действие 3 — в «брак». Благодаря %F команда получает корректный путь. Чтобы не перезаписывать существующие файлы, в mv полезно использовать безопасный режим вроде -n, а целевые каталоги создать заранее.

По умолчанию после выполнения action в слайд-шоу Feh переходит к следующему изображению. Если перед действием стоит флаг ;, программа вместо перехода перечитывает текущий файл. Это удобно для внешнего редактора или конвертера: действие изменило картинку, а Feh сразу показывает обновлённую версию.

Отображение названий действий

--draw-actions выводит список назначенных команд в верхнем левом углу. Чтобы вместо длинной shell-команды видеть понятное имя, в параметре можно указать заголовок действия. В таком режиме оператор видит, например, «1 — выбрать», «2 — отклонить», «3 — открыть в редакторе», а не техническую строку с путями и параметрами.

Клавиша a переключает этот список во время работы. Это полезно, когда комбинаций много, но держать подсказку на экране постоянно не хочется. В собственных темах можно сделать действия частью рабочего профиля и включать их только для конкретной задачи.

Пример безопасного отбора

Для ручной сортировки лучше сначала использовать действия, которые не удаляют данные: копирование, создание симлинка, запись имени в текстовый файл или перемещение только в пределах подготовленной структуры. Физическое удаление стоит оставлять на отдельный, очевидный шаг. Feh не показывает сложный диалог подтверждения перед каждой shell-командой — он исполняет то, что пользователь попросил.

Хорошая практика — оборачивать сложное действие в отдельный скрипт. Вместо длинной строки внутри --action1 Feh вызывает, например, ~/bin/photo-accept %F. Скрипт сам проверяет существование файла, создаёт каталоги, журналирует результат и корректно обрабатывает конфликт имён. Так конфигурация Feh остаётся читаемой, а бизнес-логика не смешивается с параметрами просмотрщика.

Actions в thumbnail и list

В thumbnail-режиме наличие --action меняет поведение щелчка по миниатюре: вместо открытия оригинала выполняется действие. Это удобно для визуальной панели запуска, но может удивить, если параметр был включён темой и пользователь ожидал обычного просмотра. В list/loadable/unloadable action выполняется для каждого элемента, поэтому подобный режим нужно применять особенно осторожно.

Поворот, отражение и границы встроенного редактирования

Feh умеет менять отображение текущего кадра без записи на диск. Клавиши < и > поворачивают изображение на 90 градусов, _ отражает по вертикали, | — по горизонтали. Эти операции удобны для временного просмотра неправильно ориентированного файла, но сами по себе не превращают Feh в фоторедактор.

С параметром --edit поворот и отражение применяются к исходному файлу. Для JPEG Feh использует внешние утилиты jpegtran и jpegexiforient, которые обычно входят в пакет libjpeg-progs или аналогичный. При повороте JPEG программа также нормализует EXIF Orientation к значению 1. Если необходимые бинарники не установлены, запись может не работать, хотя визуальный поворот в окне останется доступен.

Документация предупреждает, что даже lossless-поворот JPEG способен оставить артефакты по краям, связанные с границами блоков. Обратный поворот может их убрать, но для важных оригиналов лучше иметь резервную копию. В любом случае --edit стоит включать осознанно: обычный режим просмотра безопаснее, потому что не меняет файлы.

Чего Feh не делает

В Feh нет полноценной коррекции экспозиции и цвета, кривых, уровней, локальной ретуши, слоёв, масок, удаления объектов, замены фона, пакетного экспорта с цветовым управлением или развитого RAW-конвертера. Мышиные действия Ctrl+Button 1 могут временно размывать или повышать резкость отображения, а Ctrl+Button 2 вращает картинку вокруг центра, но это операции просмотра, не рабочий процесс художественной обработки.

Из этого следует практическое разделение ролей: Feh хорош как быстрый просмотрщик и селектор, а сложные изменения лучше отдавать специализированному редактору. Переход можно автоматизировать через action — например, открывать текущий файл в GIMP, Krita, darktable или другом инструменте, не покидая список Feh.

Feh как установщик обоев в X11

Помимо просмотра, Feh умеет устанавливать изображение фоном рабочего стола в X11. --bg-center помещает картинку по центру без растягивания; --bg-fill сохраняет пропорции и заполняет экран, обрезая часть изображения по одной оси; --bg-max вписывает картинку целиком и оставляет поля; --bg-scale растягивает точно под экран без сохранения пропорций; --bg-tile повторяет небольшую картинку плиткой.

Если не указан --no-fehbg, программа записывает команду восстановления фона в файл ~/.fehbg. Этот файл можно запускать при старте X-сессии, например из ~/.xinitrc. В самой записанной команде Feh добавляет --no-fehbg, чтобы повторное восстановление не перезаписывало конфигурацию неожиданным образом.

Цвет области вокруг изображения задаётся --image-bg. Допустимы стандартный режим, шахматный фон для прозрачности или XColor — например, имя цвета либо шестнадцатеричное значение. В shell символ # имеет специальное значение, поэтому такой цвет обычно нужно заключать в кавычки.

Несколько мониторов

Режимы обоев, кроме --bg-tile, умеют работать с Xinerama/XRandR-конфигурациями. Если передать несколько файлов, первый назначается монитору 0, второй — монитору 1 и так далее. Параметр --xinerama-index позволяет выбрать конкретный монитор, а --no-xinerama — трактовать весь X-display как одну область.

Для --bg-center, --bg-fill и --bg-max геометрия может задавать смещение от края монитора. Положительные координаты считаются от левого/верхнего края, отрицательные — от правого/нижнего. Значения +0 и -0 имеют различный смысл, что полезно для точного позиционирования изображения в нестандартной раскладке экранов.

Ограничение GNOME Shell и Wayland

Feh устанавливает фон через механизмы X11 и не управляет обоями GNOME Shell напрямую. В GNOME для этого используется системная настройка рабочего стола, а не --bg-*. В чистом Wayland-сеансе возможность работы Feh зависит от XWayland и конкретного композитора: просмотр окна часто возможен, но функция установки обоев не становится универсальным Wayland-методом.

Поэтому в современных окружениях Feh разумно использовать как просмотрщик, а управление фоном оставить штатному инструменту рабочего стола, если среда не принимает X11-root-window подход.

URL, стандартный ввод и удалённые изображения

При сборке с libcurl Feh может открывать HTTP, HTTPS и другие поддержанные libcurl-адреса. Для пользователя это выглядит почти как локальный файл: URL передаётся позиционным аргументом. Программа загружает содержимое во временный файл, показывает его и обычно удаляет локальную копию после просмотра или при завершении.

Ключ --keep-http сохраняет загруженный файл. Каталог выбирается через --output-dir, а при его отсутствии используется текущая директория. Параметр --insecure отключает проверку TLS-сертификатов и потому должен применяться только для диагностических случаев, когда пользователь осознаёт риск. Он не «чинит» HTTPS, а убирает важную проверку подлинности сервера.

Для сетевых и конвертируемых файлов действует кэш: после первой загрузки или конвертации Feh повторно использует результат на следующих проходах слайд-шоу. --no-conversion-cache отключает такое поведение. Это нужно, если адрес всегда один и тот же, а содержимое меняется; цена — повторная загрузка или преобразование и более высокая задержка.

Чтение изображения из stdin

Одиночное изображение можно передать через стандартный ввод командой feh -. Это удобно в конвейере: генератор, скриншотер или HTTP-клиент отдаёт бинарные данные, а Feh показывает результат. Если стандартный ввод занят изображением или filelist, терминальные клавиши, которые Feh умеет считывать из stdin, естественно, больше не используются как дополнительный канал управления.

Старые версии Imlib2 имели ограничение: GIF, TIFF и WebP без расширения в имени могли не распознаваться, что особенно заметно для stdin и сетевых URL. На актуальных системах с современным Imlib2 проблема обычно не воспроизводится, но при неожиданном отказе именно версия библиотеки остаётся важной частью диагностики.

Темы и конфигурационные файлы

Feh хранит пользовательские настройки в каталоге $XDG_CONFIG_HOME/feh/, а если переменная не задана — в ~/.config/feh/. Есть три основных файла: themes для наборов параметров, keys для клавиатуры и buttons для мыши. Если пользовательских файлов нет, программа также проверяет системный каталог /etc/feh/.

Строки, начинающиеся с #, считаются комментариями. Комментарии в конце рабочей строки не поддерживаются, поэтому пояснение лучше писать отдельной строкой. Это мелочь, но она предотвращает труднообъяснимые ошибки парсинга, когда часть «комментария» неожиданно становится аргументом.

Themes: именованные наборы параметров

Файл themes содержит строки вида имя_темы параметры.... Например, профиль для полноэкранного отбора может включать сортировку, скрытие курсора, уменьшение крупных файлов и отображение имени. Запускается он через feh -Tимя_темы .... Аргументы, указанные непосредственно в командной строке, имеют приоритет над темой.

Парсер темы не является полноценной shell-оболочкой. Он не выполняет glob-развёртывание и не интерпретирует обратный слеш так же, как Bash. Кавычки вокруг аргументов с пробелами поддерживаются, а попытка экранировать пробел обратным слешем может дать неожиданный результат. Если в теме нужна сложная логика, безопаснее вынести её в shell-скрипт и оставить в Feh только стабильные опции.

Длинную тему можно переносить на несколько строк, оставляя обратный слеш в конце незавершённой строки. Однако одна пара «параметр — аргумент» не должна разрываться. Отдельная строка ограничена примерно 1023 символами, но итоговая тема может быть длиннее за счёт переносов.

Keys: переназначение клавиш

Файл keys сопоставляет внутреннее имя действия с одним или несколькими X11 keysyms. Например, действие quit можно привязать к другой клавише, а строка с одним названием действия без клавиш снимает стандартное назначение. Имена keysyms удобно получать утилитой xev.

Поддерживаются модификаторы Control, Shift, Mod1 и Mod4. В конфигурации они обозначаются префиксами C, S, 1 и 4. Feh не проверяет конфликт, когда одна клавиша назначена двум действиям: результат считается неопределённым. Поэтому перед новым назначением старую связь лучше явно снять.

Это позволяет построить vi-подобную схему, медиаклавиши, управление одной рукой или раскладку под фотосортировку. Особенно полезно перенести потенциально опасное delete с привычной комбинации на менее случайную клавишу, оставив обычное удаление из filelist более доступным.

Buttons: мышь

buttons устроен аналогично, только вместо keysym указывается номер кнопки. Левая — 1, средняя — 2, правая — 3, колесо обычно представлено 4 и 5. Можно добавить модификатор, например C-1. Как и с клавиатурой, конфликтующие привязки Feh не валидирует.

На ноутбуке без средней кнопки полезно переназначить zoom на дополнительную кнопку, колесо с модификатором или вообще на клавиши. В тачпадном окружении иногда проще отказаться от mouse-zoom и оставить только клавиатурный масштаб, чтобы жесты оконной среды не конфликтовали с Feh.

Производительность и работа с большими наборами

Feh спроектирован как лёгкий просмотрщик, однако скорость зависит от типа задачи. Открыть один JPEG и пролистать папку — дешёвая операция. Сортировка по пикселям, fullindex с размерами, построение сотен миниатюр или внешний RAW-конвертер требуют полного анализа и занимают заметно больше времени. Поэтому оценивать производительность лучше по конкретному режиму, а не одной абстрактной характеристике «быстрый».

Внутренний Imlib2-кэш настраивается параметром --cache-size в мегабайтах. Увеличение кэша может ускорить повторное листание небольшой серии, но напрямую увеличивает потребление памяти. Значение допустимо в диапазоне от 0 до 2048 МБ; стандартный кэш невелик. Для гигантской папки бессмысленно пытаться держать всё в памяти: кэш полезнее там, где пользователь ходит вперёд-назад по ограниченному набору.

Preload не равен предварительной загрузке в RAM

Название --preload легко понять неправильно. Feh не сохраняет весь набор кадров в оперативной памяти. Он заранее проходит список, исключает неоткрываемые элементы и собирает данные, необходимые для сортировки и некоторых подписей. Поэтому preload сокращает сюрпризы при листании, но не превращает программу в RAM-кэш всей коллекции.

Сортировки по name, filename, dirname, mtime и none не требуют анализа содержимого каждого изображения, тогда как width, height, pixels, size и format требуют. Если задача — лишь стабильный порядок кадров, сортировка по имени почти всегда стартует быстрее, чем сортировка по визуальным характеристикам.

Кэш миниатюр

--cache-thumbnails имеет смысл для каталога, который регулярно открывается в thumbnail-режиме. При повторном запуске готовые миниатюры снимают часть вычислительной нагрузки. Но кэш ограничен размером до 256×256; крупные превью генерируются заново. Если изображения часто меняются, важно также учитывать механизм инвалидирования кэша и не ожидать, что старая миниатюра будет вечной.

Сама реализация thumbnail-режима в документации прямо названа не очень эффективной. Поэтому при десятках тысяч файлов Feh не следует считать полноценной DAM-системой. Лучше предварительно сузить набор средствами оболочки, использовать filelist или разбить архив на логические каталоги, чем строить одну огромную интерактивную сетку.

Сетевые файлы и внешние конвертеры

HTTP-загрузка и преобразование через ImageMagick или dcraw имеют отдельный кэш. Повторное использование результата ускоряет циклическое слайд-шоу, а --reload фактически заставляет получать актуальные данные и отключает часть этого преимущества. Если сеть медленная, во время libcurl-загрузки интерфейс может не реагировать на ввод — это известное ограничение архитектуры.

При работе с RAW Feh может показывать встроенную миниатюру через внешний dcraw, если он доступен. Это не равно полноценному RAW-развитию: цвет, демозаика и параметры проявки не становятся инструментами Feh. Такой режим годится для быстрой визуальной идентификации файла, но окончательное качество нужно оценивать в RAW-конвертере.

Поддерживаемые форматы и роль Imlib2

Feh делегирует основную декодировку библиотеке Imlib2. В документации среди типичных форматов указаны JPEG, PNG, PNM, TIFF и BMP. Поддержка конкретного дополнительного формата зависит от сборки Imlib2 в системе, поэтому универсальный список «Feh открывает всё» был бы неверным. При диагностике всегда нужно разделять возможности самого Feh, Imlib2 и внешних конвертеров.

GIF поддерживается как статическое изображение: анимация не воспроизводится, показывается первый кадр. Это существенное ограничение для тех, кто сравнивает Feh с современными просмотрщиками анимированных изображений. Если нужны полноценные GIF или APNG-анимации, стоит выбрать другой инструмент.

Параметр --conversion-timeout включает попытку внешнего преобразования форматов, которые Imlib2 напрямую не загрузил. При доступном ImageMagick Feh может получить растр из SVG, XCF, OTF и других типов; при доступном dcraw — использовать встроенные превью RAW. Значение тайм-аута задаёт предел ожидания, 0 позволяет ждать неограниченно, отрицательное значение отключает внешний conversion-путь.

Почему расширение файла всё ещё имеет значение

Современные библиотеки часто распознают содержимое по сигнатуре, но старые Imlib2 имели проблемы с GIF, TIFF и WebP, если имя не оканчивалось соответствующим расширением. Это проявлялось при stdin и URL, где «имени файла» в привычном смысле нет. На актуальной системе такое поведение встречается реже, однако при переносе старого киоска или embedded-системы версия Imlib2 критична.

Опциональная сборка Feh с libmagic может заранее отфильтровывать явно неподходящие файлы. Это особенно полезно в каталогах с большим количеством не-изображений. Если libmagic по ошибке отсек файл, который Imlib2 всё же умеет читать, переменная FEH_SKIP_MAGIC заставляет обойти проверку и передать содержимое напрямую.

Типичные ошибки и способы их устранения

«No loadable images specified»

Это сообщение означает, что после обработки аргументов Feh не получил ни одного изображения, которое удалось загрузить. Сначала проверьте путь и права доступа. Затем попробуйте конкретный известный JPEG или PNG. Если он открывается, проблема в выбранном наборе: неверная маска shell, пустой каталог, неподдерживаемые файлы или фильтр --min-dimension/--max-dimension, отсекающий всё.

Если не открывается даже простой файл, запустите feh --version и уточните сборку Imlib2, а для спорного каталога используйте feh --unloadable -r путь. Это быстрее, чем последовательно открывать файлы вручную.

Изображение ориентировано неправильно

Современный Imlib2 сам учитывает EXIF Orientation. Старый параметр --auto-rotate в таких системах может привести к двойному повороту. Если снимок внезапно разворачивается дважды, уберите --auto-rotate из команды или темы. Сам Feh не всегда способен определить в рантайме, что библиотека уже выполнила ориентацию.

Не работает встроенный EXIF

Проверьте, доступен ли libexif в конкретной сборке. Если нет, это не ошибка файла. Используйте --info с exiftool, exiv2 или другим внешним читателем. Такой подход часто даже гибче, потому что можно выбрать точный набор тегов и формат строки.

Клик правой кнопкой ведёт себя не так, как ожидается

Правая кнопка по умолчанию открывает меню. Если меню не появляется, посмотрите ~/.config/feh/buttons и системный конфиг: привязка могла быть снята. В старых пакетах некоторых дистрибутивов встречались ошибки контекстного меню, поэтому при падении программы на правом клике имеет смысл обновить пакет до исправленной версии, а не перестраивать весь конфиг.

Окно слишком большое в тайлинговом WM

Используйте --scale-down и при необходимости фиксированную --geometry. Параметр --no-screen-clip, наоборот, снимает ограничение и почти наверняка усугубит проблему. Нужно учитывать, что --scale-down не всегда принимает во внимание декоративные рамки окна, поэтому геометрия может превышать экран на небольшую величину.

Миниатюры строятся долго

Уменьшите --thumb-width и --thumb-height, включите --cache-thumbnails для повторных запусков, увеличьте --thumb-redraw или установите его в 0, чтобы не перерисовывать сетку в процессе. Если в --index-info используются размеры и другие характеристики изображения, Feh должен анализировать весь набор до расчёта окна; удалить лишние поля бывает эффективнее, чем менять кэш.

Обои не меняются в GNOME

Это ожидаемое ограничение. Feh работает как X11-background setter и не управляет настройками GNOME Shell. Используйте штатный механизм среды. Аналогично в Wayland-композиторе функция обоев может быть неприменима даже тогда, когда само окно Feh запускается через XWayland.

GIF не анимируется

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

Поворот с —edit не записывается

Для JPEG проверьте наличие jpegtran и jpegexiforient. Они являются внешними зависимостями редактирующего режима. Без них отображаемый поворот может работать, а запись — нет. Для ценных файлов сначала сделайте копию и проверьте результат на одном тестовом снимке.

Практические сценарии работы

Быстрый отбор фотографий после копирования

Пусть свежая серия лежит в ~/Incoming/2026-09. Для первичного просмотра достаточно feh -rSfilename --version-sort --scale-down ~/Incoming/2026-09. Рекурсивный режим собирает вложенные папки, natural sort правильно располагает числовые последовательности, scale-down удерживает крупные кадры в пределах экрана.

Если нужно проверить резкость одной и той же области серии, включите k, приблизьте объект стрелкой вверх и переместите viewport. При переходе к следующему снимку масштаб и координаты сохранятся. Так можно быстро обнаружить кадры со смазом или промахом автофокуса без каталожной базы.

Для отбора добавьте actions, которые создают симлинки в папки selects и rejects. Симлинки безопаснее немедленного перемещения оригиналов: итоговый список легко пересмотреть, а исходная структура остаётся нетронутой. После решения можно выполнить отдельный скрипт для реального копирования.

Контактный лист для передачи заказчику

Для технического contact sheet используйте индекс с фиксированной шириной миниатюр, подписью имени и размеров и --output-only. Например, сетка 200×150 с шириной полотна 1600 пикселей даёт компактный лист, который можно отправить как одно изображение. Если подписи слишком длинные, лучше формировать короткое имя через подготовленный filelist, а не растягивать сетку.

Если лист строится регулярно для одной и той же структуры, профиль параметров удобно вынести в theme. Shell-скрипт может принять каталог и имя результата, а Feh заниматься только отрисовкой. Такой процесс воспроизводим: при одинаковых входных данных параметры сетки не зависят от ручных кликов.

Киоск или информационный экран

Для локальной папки, куда внешний процесс складывает новые изображения, применяют fullscreen, hide-pointer, slideshow-delay и reload. Сортировка по имени или mtime определяет порядок. --on-last-slide hold подходит для конечной презентации, а циклический resume — для постоянного экрана.

Если источник обновляет один и тот же файл, можно оставить в слайд-шоу единственный путь и посылать SIGUSR1 после записи. Feh перечитает текущий файл. Такая схема легче полноценного web-киоска, но требует X11 и не содержит встроенного расписания, мониторинга сети или системы восстановления после падения.

Поиск слишком маленьких изображений в архиве

Сначала выполните безопасный список: feh -r --list --max-dimension 1000x800 архив. Проверьте, что найденные элементы действительно относятся к миниатюрам. Затем можно сформировать filelist и просмотреть его отдельно. Лишь после ручной проверки имеет смысл подключать action на перемещение или удаление.

Такой порядок важен: пример из справки, где action сразу удаляет файлы по размеру, технически работает, но в реальном архиве способен удалить значимые небольшие изображения. Feh не понимает смысл содержимого, он видит только численные условия.

Просмотр результатов рендера

Если программа рендера каждые несколько секунд перезаписывает PNG, запустите Feh с --reload на один файл или включите автоматическое отслеживание, если сборка поддерживает inotify. Клавиша r всегда позволяет перечитать изображение вручную. Для теста пикселей отключите масштаб 100% и используйте панорамирование вместо автоматического вписывания.

Если файл обновляется частично и Feh иногда пытается прочитать его во время записи, лучше менять файл атомарно: рендерить во временное имя и после завершения переименовывать. Это не функция Feh, а свойство надёжного producer-consumer процесса.

Сравнение с аналогами

Feh, ФотоМАСТЕР, nsxiv и Geeqie пересекаются только в базовой операции «открыть изображение», но дальше предназначены для разных типов работы. Feh и nsxiv — минималистичные X11-просмотрщики, ориентированные на клавиатуру и интеграцию со скриптами. Geeqie добавляет развитую организацию, метаданные, поиск и сравнение. ФотоМАСТЕР — редактор для коррекции и ретуши, поэтому сравнивать его с Feh по числу инструментов просмотра некорректно: задачи различаются.

Задача Feh ФотоМАСТЕР nsxiv Geeqie
Быстрое листание папки Да, без импорта Открытие и редактирование отдельных фото Да, без импорта Да, с файловой навигацией
Командная строка и скрипты Сильная сторона: actions, filelist, сигналы Не основной сценарий Есть key-handler и вывод списка Есть интеграция с внешними редакторами, но GUI важнее
Миниатюры Thumbnail, index, montage Не центральная функция Отдельный thumbnail mode с кэшем Файловая панель и коллекции
Метаданные Базовый EXIF или внешняя команда Используются в контексте фотообработки Информация через status/script-механизмы EXIF, IPTC, XMP, комментарии и теги
Сравнение нескольких кадров Multiwindow или последовательный просмотр Не основная задача Последовательный просмотр/thumbnail Split View до четырёх изображений
Цветокоррекция и ретушь Нет полноценного редактора Свет, цвет, ретушь, удаление объектов Нет полноценного редактора Ограниченная организация/просмотр, внешний редактор
Замена фона и неба Нет Есть специализированные инструменты Нет Нет как задача просмотра
Пакетная обработка Через shell/actions, не встроенный редактор Есть пакетная обработка Через скрипты Есть файловые операции и внешние команды
RAW Ограниченно через встроенное превью/внешний конвертер Поддерживается открытие RAW для обработки Зависит от библиотек/поддерживаемых форматов Быстрый просмотр многих RAW
Установка обоев Да, X11 Нет как ключевая функция Не основная функция Не основная функция

Feh и ФотоМАСТЕР

ФотоМАСТЕР нужен, когда пользователь хочет изменить сам снимок: скорректировать свет и цвет, повысить резкость, подавить шум, удалить объект, заменить или размыть фон, ретушировать портрет, применить фильтры, добавить текст, рамку или водяной знак. Он также умеет пакетно изменять размер, применять фильтры и добавлять водяные знаки. Feh таких художественных операций не предоставляет.

Feh выгоднее именно в другом классе задач: открыть каталог из терминала, быстро листать, сортировать по техническим признакам, построить индекс, вывести произвольную информацию shell-командой, привязать действия к клавишам, управлять слайд-шоу сигналами, сформировать X11-обои. Пользователь, которому нужен редактор, получит от Feh слишком мало; пользователь, которому нужен автоматизируемый просмотрщик, может считать тяжёлый редактор избыточным.

Feh и nsxiv

nsxiv близок к Feh по философии минимального X11-просмотра и клавиатурного управления. У него есть zoom, pan, rotation, thumbnail mode, кэш миниатюр, автообновление изменённых изображений, настраиваемые клавиши и key-handler для скриптов. Его статусная строка и система скриптов дают другой стиль расширения.

Feh отличается более широким набором командных режимов вокруг filelist: montage, index, list/customlist, встроенные actions, X11-background setter, заголовки и форматные спецификаторы, сигналы. Выбор между ними зависит не от «качества картинки», а от того, какой набор shell-интеграций и клавиш привычнее. Если основной сценарий — thumbnail grid плюс один viewer, nsxiv очень прямолинеен; если нужна генерация индексных листов и разнообразные командные режимы, Feh часто удобнее.

Feh и Geeqie

Geeqie заметно ближе к классическому графическому менеджеру фотографий. Он умеет показывать EXIF/IPTC/XMP, поддерживает теги и комментарии, коллекции, закладки, поиск, поиск похожих и дубликатов, а Split View позволяет сравнивать до четырёх изображений. Есть цветовое управление, гистограмма и информация о пикселе. Для фотографа, который хочет анализировать архив через GUI, это более подходящая среда.

Feh выигрывает простотой и сценарностью: никакой каталожной структуры, минимум постоянного интерфейса, команды легко вставляются в shell. Geeqie предоставляет больше встроенного контекста, но и сам процесс работы становится «внутри приложения». В Feh контекст чаще хранится в файловой системе, списках и внешних скриптах.

Кому подходит Feh

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

Для человека, который ожидает визуальную библиотеку с альбомами, лицами, облачной синхронизацией, неразрушающей проявкой RAW и полноценной ретушью, Feh будет слишком аскетичен. Его интерфейс не скрывает командную природу, а многие сильные функции раскрываются только после чтения man-страницы и настройки themes/actions.

Главное достоинство Feh — прозрачность рабочего процесса. Пути остаются обычными путями, filelist — обычным текстом, actions — обычными shell-командами, конфигурация — простыми файлами. Это делает программу удобной частью Unix-конвейера и одновременно объясняет её ограничения: она не пытается стать редактором, DAM-системой или универсальным медиаплеером.

Контекстное меню и управление без запоминания всех клавиш

Хотя Feh воспринимается как «просмотрщик из командной строки», после открытия изображения у него есть контекстное меню. По умолчанию оно вызывается правой кнопкой мыши или клавишей m. По меню можно перемещаться стрелками, Enter или пробел выбирает пункт, Escape закрывает меню. Для пользователя, который только осваивает программу, это важная страховка: базовые действия не обязательно сразу учить наизусть.

Структура меню зависит от версии и сборки, но логика стабильна: отдельные группы отвечают за файл, сортировку списка, сведения об изображении, параметры просмотра и выход. В части настроек встречаются переключатели auto-zoom, фиксации геометрии окна, fullscreen, сохранения viewport/zoom, показа имени и списка actions. Меню действует на тот же внутренний state, что и горячие клавиши, поэтому можно начать мышью, а затем постепенно перейти к клавиатуре.

Если Feh используется в киоске, публичной презентации или на устройстве с ограниченным вводом, меню можно полностью отключить параметром --no-menus. Тогда правый клик не раскрывает команды, а управление остаётся за разрешёнными клавишами, сигналами или внешним скриптом. Это не механизм безопасности доступа к файловой системе, но он убирает случайное изменение режима зрителем.

Удаление из списка и удаление с диска

В повседневной сортировке особенно важно различать два действия. Delete удаляет текущий элемент только из внутреннего filelist. Файл остаётся на диске и может снова появиться при новом запуске из каталога. Ctrl+Delete физически удаляет файл. Если Feh используется для первоначального отбора семейного архива или рабочих оригиналов, разумно переназначить физическое удаление на менее доступную комбинацию либо полностью убрать его из keys.

После удаления элемента из filelist программа показывает следующий доступный файл либо завершает работу, если список исчерпан. При использовании -f изменённый список может быть сохранён, что позволяет применять Delete как «исключить из подборки», а не как «стереть фотографию». Это простой, но очень полезный семантический разрыв.

Форматирование заголовков и информационных строк

Спецификаторы Feh позволяют собрать информативный заголовок окна без отдельного скрипта. Например, комбинация номера текущего файла, общего числа элементов, имени и масштаба полезна при ревью серии: оператор сразу понимает, где находится и увеличен ли кадр. С другой стороны, для демонстрации клиенту лучше оставить только короткое имя или вообще использовать borderless/fullscreen.

Спецификатор Что показывает Где особенно полезен
%n Имя текущего файла Заголовок, index-info
%F Экранированный полный путь Actions и внешние команды
%w/%h Ширина и высота Технический контроль
%P Количество пикселей с k/M Сравнение разрешения
%S Размер файла в kB/MB Индекс и список
%t Формат изображения Смешанные каталоги
%u/%l Номер и длина списка Презентация, ревью
%z Текущий zoom Проверка масштаба
%m Текущий режим Отладка темы

Для format string, которая только показывается пользователю, допустимы обычные %n и %f. Для передачи в shell нужно использовать экранированные варианты. Это особенно важно, если архив содержит пробелы, скобки, апострофы или другие символы, имеющие смысл для оболочки. Правильный спецификатор — часть безопасности и корректности автоматизации, а не косметика.

%L создаёт временную копию текущего filelist и возвращает путь к ней. Если он встречается несколько раз внутри одной format string, Feh использует одну и ту же копию. Это позволяет передать весь текущий набор внешней программе — например, скрипту пакетной обработки — без предварительного ручного сохранения списка.

Работа с несколькими каталогами и сложным порядком

Feh принимает несколько путей одновременно, поэтому filelist может объединять разные каталоги. Если порядок каталогов должен сохраняться, не стоит без необходимости включать глобальную сортировку по имени: она перемешает записи по общему правилу. Для группировки по источнику подходит --sort dirname, а квадратные скобки затем позволяют прыгать между группами.

Если требуется строго заданная последовательность из разных мест файловой системы, лучший инструмент — явный filelist. Порядок строк в нём становится порядком показа. Такой список можно создать вручную, сгенерировать скриптом или сохранить из текущей сессии. В отличие от базы данных, он прозрачен и переносим: это обычный UTF-8-текст с путями.

Start-at и дубли имён

--start-at ищет указанное изображение в сформированном списке. При абсолютном пути сопоставление однозначнее. Если точного совпадения нет, Feh может сравнивать базовое имя, и при нескольких одинаковых именах в разных папках это создаёт неоднозначность. В больших фотоархивах, где IMG_0001.JPG встречается много раз, лучше передавать абсолютный путь.

Когда список строится рекурсивно и требуется человеческая последовательность кадров, полезна пара --sort filename --version-sort. Без natural sort строковый порядок располагает «10» раньше «2». Для технических серий с нумерацией это легко принять за пропуск или неправильную дату, хотя проблема лишь в сортировке.

Порядок по времени

--sort mtime ориентируется на время модификации файла, а не EXIF DateTimeOriginal. После копирования, конвертации или синхронизации mtime мог измениться. Поэтому этот режим хорошо отвечает на вопрос «какие файлы изменялись последними», но не всегда на вопрос «в каком порядке были сняты фотографии». Для последнего понадобится внешний извлекатель EXIF и предварительно сформированный filelist.

Интеграция с внешними программами

Actions позволяют связать Feh с редактором, конвертером, файловым менеджером, архиватором, uploader-скриптом или системой аннотаций. При этом Feh не знает семантику внешнего приложения: он лишь запускает команду. Такая слабая связанность удобна, потому что просмотрщик не ограничивает выбор редактора и не требует плагина.

Открытие текущего кадра в редакторе

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

При использовании GUI-приложения action не должна блокировать Feh на всё время редактирования. В shell-обёртке редактор можно запускать в фоне. Но конкретное поведение зависит от программы: некоторые клиенты сразу возвращают управление существующему процессу, другие держат терминальный процесс до закрытия окна. Проверять это лучше на копии изображения.

Внешняя оценка качества

Скрипт action может вычислить хэш, проверить профиль ICC, запустить OCR, определить QR-код или посчитать техническую метрику и записать результат рядом с файлом. Затем --info отображает этот результат поверх изображения. Так Feh становится визуальной оболочкой вокруг специализированной утилиты, не пытаясь реализовать её внутри себя.

Похожий подход работает для рендера: action запускает сборку, а после завершения Feh перечитывает текущий PNG. В отличие от тяжёлой IDE, здесь весь цикл состоит из двух независимых компонентов, которые легко заменить.

Автоматизация с SIGUSR1 и SIGUSR2

Сигналы Unix дают Feh необычную возможность управляться из другого процесса без сокета и API. Если PID известен, kill -USR1 PID в слайд-шоу переключает вперёд, kill -USR2 PID — назад. Для одного изображения оба сигнала используются как механизм обновления. Это удобно на Raspberry Pi, информационных панелях и простых инсталляциях, где отдельный контроллер решает, когда менять кадр.

PID можно получить при запуске shell или вывести через спецификатор %V в заголовке/информации. В системном сервисе PID обычно отслеживает сам init. Важно не посылать сигнал случайному процессу после перезапуска: если скрипт хранит устаревший PID, система могла уже выдать этот номер другой программе.

Сигнальное управление не заменяет двусторонний протокол. Внешний процесс не получает подтверждение, какой файл сейчас показан, если не организовать это самостоятельно. Для простых команд «следующий/предыдущий/обновить» оно идеально, а для сложного удалённого пульта лучше написать обёртку, которая хранит состояние и проверяет процесс.

Feh в тайлинговых оконных менеджерах

Минималистичный характер Feh особенно хорошо сочетается с i3, bspwm, dwm и другими WM, где размещением окон занимается менеджер, а не приложение. Однако именно здесь проявляются нюансы геометрии. Без --scale-down крупный файл может пытаться диктовать размеры окна; с --scale-down изображение центрируется в выделенной плитке и подстраивается под неё.

Параметр --geometry задаёт желаемый размер, но тайлинговый WM вправе его изменить. Feh учитывает, что geometry не является жёсткой гарантией. Если окно надо всегда отправлять в конкретный workspace или floating-режим, это обычно настраивается правилами оконного менеджера по классу X11. Класс Feh можно изменить параметром --class, чтобы отделить, например, «обычный просмотр» от «presentation».

--borderless убирает рамку, которую создаёт Feh/X11, но оконный менеджер всё равно может добавлять собственные декорации или границы. В полноэкранном режиме поведение также определяется взаимодействием EWMH и WM. Поэтому нестандартная конфигурация требует теста именно в используемой среде.

Keep viewport при сравнении

В тайлинге удобно поставить рядом Feh и терминал, увеличить участок до 200–400% и включить keep viewport. Тогда клавиши листания проверяют один и тот же фрагмент последовательности, а терминал остаётся доступным для команд. Это простой рабочий стол для проверки спрайтов, кадров анимации, результатов рендера или серий фотографий.

Отображение прозрачности и пиксельный контроль

Для PNG с альфа-каналом по умолчанию в оконном режиме Feh показывает шахматный фон. Он помогает отличить прозрачность от белого или чёрного цвета. Через --image-bg можно выбрать другой фон и проверить, как полупрозрачные края выглядят на светлой и тёмной подложке.

При пиксельном контроле стоит вернуть zoom к 100% клавишей *. Fit или fill интерполируют изображение и могут скрыть отдельные пиксели либо, наоборот, создать визуальные артефакты масштабирования. Если сглаживание мешает проверке pixel art, клавиша A переключает anti-aliasing, а --force-aliasing отключает сглаживание на старте.

После прокрутки увеличенного кадра Feh временно рисует без сглаживания для скорости. Клавиша R выполняет финальный render со сглаживанием. Для сравнения тонких линий важно понимать этот момент, иначе пользователь может принять временно «жёсткую» картинку за данные файла.

Предварительный просмотр RAW и сложных форматов

Когда в системе доступен dcraw, Feh может использовать встроенные JPEG-превью из некоторых RAW-файлов. Это очень быстрый способ понять содержание кадра и отсортировать набор, но превью не обязано совпадать с тем, что получится при проявке RAW. Камера могла встроить картинку с собственным стилем, балансом белого и шумоподавлением.

При попытке открыть формат через ImageMagick Feh сначала преобразует его во временный растр. --conversion-timeout защищает от зависшего или слишком дорогого преобразования. Для больших SVG, XCF или повреждённых файлов лучше устанавливать конечный тайм-аут, а не 0, особенно в автоматическом процессе.

Если задача — только просмотр таких файлов, внешний conversion-путь полезен. Если нужно редактирование слоёв XCF, векторной структуры SVG или RAW-параметров, конвертация теряет существенную часть семантики. Feh здесь остаётся последним звеном показа, а не редактором исходного формата.

Профили команд для повторяющихся задач

Вместо длинной команды каждый раз удобно создать несколько themes. Хороший профиль содержит только параметры отображения и сортировки, а путь к файлам передаётся при запуске. Так тема остаётся универсальной и не привязана к конкретному каталогу.

Профиль для отбора

Для отбора обычно нужны --scale-down, сортировка по filename с natural sort, отображение имени, keep viewport по требованию и несколько actions. Автоматическое слайд-шоу лучше не включать: кадр должен оставаться на экране, пока пользователь принимает решение. Физическое удаление разумно отвязать.

Профиль для презентации

Для презентации набор противоположный: fullscreen, hide-pointer, сортировка, slideshow-delay, возможно borderless и явный --on-last-slide. Имя и actions лучше скрыть. Если презентация запускается автоматически, предварительно проверьте все файлы через --unloadable, чтобы во время показа не возникла неожиданная пауза на повреждённом элементе.

Профиль для технического контроля

Здесь полезны draw-filename, info с внешними метаданными, фиксированная geometry, zoom 100% и сохранение viewport. Нередко удобнее отключить anti-aliasing, если оцениваются пиксельные артефакты. Для фото, наоборот, сглаживание лучше оставить, а гистограмму и цветовые инструменты получить во внешнем приложении.

Безопасность пользовательских actions

--action выполняется через /bin/sh. Это означает, что строка команды обладает теми же правами, что и запущенный Feh. Ошибка в кавычках, подстановка неэкранированного имени или слишком широкая маска может привести к перемещению и удалению данных. Минималистичный интерфейс не добавляет слой подтверждения поверх shell.

Никогда не подставляйте %f в потенциально разрушительную shell-команду там, где нужен %F. Не используйте eval для обработки имени изображения. Если команда сложнее простого запуска редактора, вынесите её в скрипт с set -u, проверками путей и кавычками вокруг переменных.

Для операций удаления сначала реализуйте dry-run: action печатает или записывает список, не меняя файлов. После ручной проверки список можно обработать отдельной командой. Такой двухэтапный процесс лучше соответствует роли Feh как средства визуальной проверки.

Сетевые URL тоже требуют осторожности. --insecure отключает проверку сертификата, а --keep-http сохраняет полученный файл в локальный каталог. Не стоит направлять такие загрузки в место, откуда файлы автоматически исполняются или публикуются без дополнительной проверки.

Что означает «лёгкий» применительно к Feh

Лёгкость Feh — прежде всего архитектурная: нет каталожной базы, фонового индексатора, встроенной системы облачной синхронизации, сложного редактора и постоянного набора панелей. Но это не означает, что любая операция мгновенна или потребляет фиксированно мало памяти. Декодирование гигантского TIFF, генерация тысяч миниатюр и сортировка по пикселям объективно требуют ресурсов.

Кэш Imlib2 можно увеличить до гигабайтного уровня, и тогда «лёгкий» процесс сознательно станет использовать больше памяти ради повторного просмотра. Внешний ImageMagick при конвертации сложного формата способен потребить гораздо больше ресурсов, чем сам Feh. Поэтому правильнее говорить о небольшом базовом слое и отсутствии тяжёлой инфраструктуры, а не о гарантированном минимальном расходе в любой задаче.

Для слабого компьютера наибольший эффект дают правильный размер задачи и отказ от лишних режимов: не строить fullindex из десяти тысяч файлов, не включать данные, требующие preload, если они не нужны, ограничить размер thumbnail, не увеличивать cache без причины и использовать заранее подготовленные filelists.

Диагностика производительности без выдуманных замеров

Feh не имеет смысла оценивать абстрактными цифрами «открывает за X миллисекунд» без конкретного железа, диска, библиотеки, формата и размера файлов. Вместо этого можно наблюдать структурные причины задержки. Если окно появляется сразу при --sort filename, но долго при --sort pixels, причина — обязательный анализ изображений. Если повторный thumbnail быстрее первого с --cache-thumbnails, работает кэш.

Для диагностики включите --verbose. Он показывает полезный вывод и progress bar в тех режимах, где выполняется предварительная обработка. --quiet скрывает нефатальные ошибки загрузки, поэтому при поиске причины тормозов его лучше временно убрать: иначе проблемные файлы будут молча пропускаться или повторно обрабатываться.

Сетевой сценарий проверяется отдельно от локального. Если локальная копия открывается быстро, а URL «замораживает» ввод, проблема находится в загрузке libcurl или сервере. Если обычный JPEG быстр, а SVG медленный — смотрите внешний conversion-процесс. Такой раздельный тест надёжнее субъективного сравнения интерфейсов.

Работа без графического сеанса

Обычный просмотр Feh требует X11-окна, однако часть функций генерации можно использовать headless. Самый практичный пример — индекс с --output-only. Feh читает изображения, строит результирующее полотно и сохраняет его, не пытаясь открыть viewer. Это полезно в CI, cron-задаче или серверном скрипте.

Списочные режимы --list, --customlist, --loadable и --unloadable тоже не требуют визуального окна. Поэтому один и тот же инструмент может сначала работать на сервере как анализатор, а затем тот же filelist открываться на рабочей станции для ручной проверки.

Не следует, однако, считать Feh терминальным графическим viewer в смысле вывода картинки прямо внутри текстовой консоли. Он запускается из терминала, но изображение показывается в X11-окне. Это отличает его от sixel/kitty-просмотрщиков, которые рисуют графику в самом эмуляторе терминала.

Проверка коллекции перед архивированием

Перед созданием долгосрочного архива Feh можно использовать как первый слой контроля. --unloadable -r выявляет файлы, которые не читаются через текущий стек Imlib2. --list помогает обнаружить неожиданно маленькие размеры и странные форматы. Затем filelist подозрительных элементов открывается визуально.

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

Сильная сторона в том, что текстовый вывод легко включить в существующий скрипт. Например, cron формирует отчёт о новых unreadable-файлах, а оператор открывает только этот список. Так GUI используется там, где нужен человек, а машинная фильтрация выполняется заранее.

Ограничения, которые важно учитывать заранее

Первое ограничение — зависимость от X11. Даже если Feh запускается в Wayland-сеансе через XWayland, его специфические функции вроде background setter остаются X11-ориентированными. Если инфраструктура полностью Wayland-native и XWayland отключён, понадобится другой просмотрщик.

Второе — отсутствие развитой анимации. GIF показывается статически первым кадром. Для анимированных WebP/APNG возможности зависят от декодирующих библиотек, но Feh сам не позиционируется как медиаплеер с таймлайном. Пользователю, работающему с анимацией, лучше сразу выбрать специализированный viewer.

Третье — thumbnail mode не рассчитан на огромные каталоги как DAM. Он полезен для десятков и сотен файлов, но десятки тысяч требуют предварительной организации. Нет базы, интеллектуального поиска по лицам, рейтингов, альбомов, геокарты и облачных коллекций.

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

Пятое — часть функций зависит от compile-time switches. Встроенный EXIF, libcurl, inotify, libmagic и Xinerama могут присутствовать или отсутствовать. Поэтому перенос готовой команды на другую машину иногда требует проверить feh --version и зависимости, а не просто скопировать конфиг.

Итоговый рабочий подход

Практичнее всего осваивать Feh не через запоминание всей man-страницы, а от базового сценария. Сначала научиться открывать файл и каталог, листать, менять масштаб, включать fullscreen и scale-down. Затем добавить сортировку и filelist. После этого освоить thumbnail/index, а actions и themes подключать только тогда, когда появилась повторяемая задача.

В хорошо настроенной среде Feh становится маленьким интерфейсом к файловой системе: пользователь видит изображение, а решения выражаются клавишами и shell-командами. Это делает работу очень быстрой для человека, привыкшего к терминалу, но требует дисциплины с destructive actions и понимания, какие функции относятся к самому Feh, а какие предоставляет Imlib2 или внешний инструмент.

Если нужны визуальные панели и сложная ретушь, лучше сразу использовать приложение другого класса. Если же задача — без лишней инфраструктуры просматривать, сортировать, проверять и автоматизировать изображения в X11-среде, Feh предоставляет необычно широкий набор средств при очень компактной модели работы.

Краткий справочник по выбору режима

Режим Feh лучше выбирать от результата, который нужен на выходе. Если требуется последовательно просмотреть набор — используйте обычный slideshow. Если нужно видеть много файлов одновременно и кликать по ним — thumbnail. Для статичного контактного листа подходит index или fullindex, а для чистой композиции без подписей — montage. Multiwindow нужен только когда несколько оригиналов должны одновременно оставаться отдельными окнами. List и customlist предназначены уже не для визуального просмотра, а для машинного анализа.

Нужно сделать Режим/ключ Что важно помнить
Листать папку Обычный запуск Каталоги не рекурсивны без -r
Показать автоматически -D + slideshow Конец задаёт --on-last-slide
Открыть сетку -t Миниатюры кликабельны
Сохранить contact sheet -i -O Может работать без X-окна
Сделать коллаж миниатюр -m Подписи не обязательны
Сравнить несколько окон -w Не подходит для сотен файлов
Получить техническую таблицу -l Изображения не показываются
Сформировать свой вывод -L Используются format specifiers

Практическая ошибка новичка — пытаться «включить всё»: рекурсию, preload, fullindex, большие миниатюры и подробные подписи на огромной папке. Feh действительно выполнит многие из этих операций, но время до появления окна увеличится. Лучше сначала определить, нужна ли визуальная сетка, техническая таблица или последовательный просмотр, и дать программе ровно одну основную задачу.

Проверка настроек после переноса на другую систему

Конфигурация Feh переносится легко, потому что themes, keys и buttons — обычные текстовые файлы. Но абсолютные пути к шрифтам, внешним скриптам и редакторам могут отличаться. После копирования профиля на новый компьютер сначала запустите Feh без темы, затем поочерёдно подключите theme, keys и actions. Так проще понять, какая часть вызывает ошибку.

Проверьте compile-time функции через feh --version, наличие внешних утилит через shell и доступность используемых шрифтов. Если тема содержит --info с exiftool, а exiftool не установлен, проблема будет выглядеть как пустой или ошибочный информационный слой, хотя сам viewer работает. Если action вызывает скрипт по пути из старого домашнего каталога, клавиша тоже будет «не работать» без очевидного GUI-предупреждения.

При переносе между разными оконными менеджерами отдельно проверьте geometry, fullscreen, class и borderless. То, что аккуратно плавает в Openbox, может автоматически тайлиться в i3. Feh не должен обходить политику WM; адаптация делается либо его параметрами, либо правилами самого оконного менеджера.

Как не перепутать Feh с программами другого класса

Название Feh иногда встречается в списках «фоторедакторов», но функционально это неточно. Его основа — viewer/cataloguer в смысле списков, индексов и миниатюр. В нём есть ограниченные изменения ориентации файла и визуальные mouse-эффекты, однако нет рабочего пространства для художественной правки. Поэтому ожидать от него замены Photoshop, GIMP, darktable или ФотоМАСТЕР не стоит.

Точно так же Feh не является DAM-каталогизатором. Он может «каталогизировать» в историческом смысле: создавать index print, list и работать с filelist. Но он не ведёт базу метаданных, не хранит виртуальные альбомы, не распознаёт лица и не синхронизирует библиотеку. Если такая терминология встречается в документации, её нужно понимать через реальные режимы Feh, а не через современный класс фотоорганайзеров.

Наконец, Feh не является терминальным ASCII-viewer. Команда запускается из shell, но картинка выводится в X11-окно. Это важно для серверов без DISPLAY и для пользователей, которые ожидают увидеть изображение непосредственно в tty.

Минимальный набор команд, который действительно стоит запомнить

Для регулярной работы достаточно нескольких шаблонов. feh файл открывает один снимок. feh каталог листает папку. feh -r каталог добавляет вложенные папки. feh -F -D 5 каталог запускает полноэкранное слайд-шоу. feh -t каталог строит кликабельные миниатюры. feh -i -O index.jpg каталог сохраняет индекс. feh -l каталог печатает технический список.

Из клавиш достаточно помнить стрелки влево/вправо для навигации, вверх/вниз для zoom, f для fullscreen, m для меню, d для имени, i для info, k для keep viewport, r для reload и q/Escape для выхода. Остальные функции можно освоить позже, когда появляется конкретная потребность.

Такой подход соответствует философии инструмента: базовый viewer остаётся простым, а сложность добавляется только параметрами, которые решают реальную задачу. Feh не требует «настроить библиотеку» перед первым просмотром и не навязывает единый workflow; пользователь строит его из небольших независимых механизмов.

Вывод

Feh — специализированный инструмент для тех, кому важны скорость запуска, командная воспроизводимость и контроль над filelist. Его режимы slideshow, thumbnail, index, montage, multiwindow и list закрывают практически все варианты «быстро увидеть набор файлов» без каталожной базы. Сортировка, фильтры размеров, format specifiers и actions делают его полезным не только как viewer, но и как интерфейс к shell-процессам.

При этом ограничения нужно принимать буквально: полноценного редактирования, DAM-функций, современной анимации и универсальной Wayland-интеграции здесь нет. Поддержка EXIF, HTTP, inotify и некоторых форматов зависит от сборки и библиотек. Если эти границы совпадают с задачей, Feh получается очень эффективным; если требуется визуальное управление архивом или глубокая обработка снимка, лучше использовать его как вспомогательный просмотрщик рядом с более функциональной программой.

Встраивание в существующее X11-окно

Параметр --window-id позволяет рисовать изображение не в новом окне Feh, а в уже существующем X11-окне по его идентификатору. Функция предназначена для программ вроде xsecurelock или экранных заставок, которые специально предоставляют окно внешнему приложению. Это не универсальный способ «встроить Feh куда угодно»: если передать ID окна, владелец которого не ожидает посторонней отрисовки, поведение будет непредсказуемым.

В таком режиме следует избегать команд, меняющих свойства окна, например fullscreen, потому что жизненным циклом и геометрией управляет программа-хозяин. Если нужен простой фон или показ одного изображения внутри подготовленного контейнера X11, --window-id полезен; для обычной интеграции с GUI лучше запускать Feh отдельным процессом либо использовать библиотеку отображения напрямую.

0 0 голоса
Рейтинг статьи

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные