Алексей Корельский aka snake
Версия 2, 2006.11.27 (версия 1 - 2006.02.21)
Допустим у нас имеется некоторое количество графических файлов на примонтированных файловых системах. Очевидно, что рано или поздно нам захочется посмотреть эти картинки. Однако, ввиду того, что это бинарные файлы (т.е. нетекстовые), то традиционные для *nix систем средства — cat, less, more — нам не помогут. Нам нужны программы просмотра графики, в просторечии — вьюверы. Таких программ не мало, но особенно хотелось бы отметить qiv.
qiv (очевидно, абривиатура от Quick Image Viewer) — это быстрый и компактный просмотрщик изображений для оконной системы X. Но этим его достоинства не исчерпываются — дело в том, что кроме библиотеки gdk/imlib, с использованием которой он разработан, никаких других специфических зависимостей за этим инструментом не числиться. Следовательно, qiv независим от какой-либо интегрированной среды.
Можно сказать, что программа обладает двумя интерфейсами пользователя. Во-первых, это традиционный для всех юниксовых программ интерфейс командной строки:
$ qiv [options] file ...
Во-вторых, программой можно управлять при помощи горячих клавиш («хоткеев»). Функции некоторых клавиш клавиатуры дублируются мышью. Так что, вспоминая старую шутку, можно сказать, что интерфейс у приложения вполне дружественный1. Причем, в версии 2.0 дружественность резко возросла — теперь в полно-экранном режиме картинки можно запросто перемещать («таскать») мышкой, да и сам скролинг изображения стал плавным и приятным для глаза.
Не смотря на то, что обсуждаемая программа работает с графикой в графической среде, такие традиционные элементы графического интерфейса, как меню, статус-, тул- и прочие бары полностью отсутствуют. Да-да, qiv, будучи запущенным, не отображает на экране абсолютно ничего, кроме окна с изображением, которое ему приказали отобразить. Впрочем, и этого окна может не быть, если запустить просмотр в полноэкранном режиме: ключ -f командной строки, либо горячей клавишей «f» на клавиатуре.
Полный список ключей и горячих клавиш можно посмотреть в ман-странице, либо запустив qiv с опцией -help. Есть и еще один способ — нажать клавишу «?» — во время работы в полноэкранном режиме. Здесь же я упомяну лишь некоторые основные опции (в скобках указаны ключи командной строки):
Кроме того, отображаемые картинки можно увеличивать (уменьшать) с шагом 10%, зеркально отражать, вращать по (против) часовой стрелке с шагом 90o, изменять яркость/контрастность/гамму, помещать в качестве обоев на рабочий стол. Можно непонравившуюся картинку и удалить (клавиша «d»), правда, настоящего удаления не происходит — «удаленная» картинка помещается в подкаталог .qiv-trash. Оттуда ее можно извлечь, либо позже, либо прямо в текущем сеансе qiv, при помощи горячей клавиши «u»
Кстати, благодаря отсутствию лишних элементов интерфейса, а также очень быстрой загрузке, qiv прекрасно подходит в качестве внешней программы просмотра изображений вызываемой из других приложений. Я лично применял его в таком качестве вместе с файловыми менеджерами konqueror, mc, xwc, а также вместе с gftp.
В заключение упомяну еще об одной интересной особенности этой программы: Нажатие цифровых клавиш клавиатуры («0»—«9») вызывает команду qiv-command с номером нажатой цифровой клавиши в качестве первого аргумента и именем файла, отображаемого в данный момент, в качестве второго аргумента. qiv-command не поставляется вместе с qiv; программа с таким именем создается пользователем и помещается в любой каталог перечисленный в переменной окружения $PATH, например, ~/bin. (или в /usr/local/bin, если нужно, чтобы это работало для всех пользователей системы) Это, например, может быть скрипт на sh, perl или любом другом скриптовом языке, в котором можно запрограммировать какие-либо действия над указанным файлом. Пример такого скрипта из ман-страницы:
#!/bin/sh #Argument sanity checking eliminated for brevity case $1 in 0|1|2|3|4|5|6|7|8|9) mkdir -f dir$1; mv "$fname&" dir$1 ;; *) echo "unrecognized command"; exit ;; esac
Таким образом, qiv-command можно рассматривать как аналог пользовательских
макросов с помощью которых можно значительно расширить функциональность программы.
Например, можно запрограммировать запуск Gimp для редактирования просматриваемого
изображения или же запуск почтового клиента для отправки его по почте. В общем,
возможности ограничиваются только фантазией.
Примечания
- ...1
- шутка времен ДОС'а: дружественный интерфейс тот, который поддерживает мышь.