Giter VIP home page Giter VIP logo

feh's Introduction

build status

Feh โ€“ Image viewer and Cataloguer

feh is a light-weight, configurable and versatile image viewer. It is aimed at command line users, but can also be started from graphical file managers. Apart from viewing images, it can compile text and thumbnail listings, show (un)loadable files, set X11 backgrounds, and more.

Features include filelists, various image sorting modes, custom action scripts, and image captions. feh can be controlled by configurable keyboard and mouse shortcuts, terminal input and signals. When no file arguments or filelists are specified, feh displays all files in the current directory.

For more information, please refer to the feh website or read the feh manual.

Dependencies

  • Imlib2
  • libcurl (disable with make curl=0)
  • libpng
  • libX11
  • libXt
  • libXinerama (disable with make xinerama=0)

If built with exif=1:

  • libexif-dev
  • libexif12

If built with magic=1:

  • libmagic

Recommended Binaries

  • convert (supplied by ImageMagick, can be used to load image formats not supported by Imlib2)

Installation

For end users:

$ make
$ sudo make install app=1

For package maintainers and users who do not want feh to install its icons into /usr/share:

$ make
$ sudo make install

Explanation: feh ships some icons and an X11 desktop entry, which allow it to be used from file managers, desktop menus and similar. However, installing icons to /usr/local/share/... does not seem to work reliably. Because of this, when using "make install app=1", feh will install its icons to /usr/share/..., even though they technically belong into /usr/local.

ZSH completion for feh is also available.

Make flags

feh's build process uses make flags to enable/disable optional features and fine-tune the build and installation process. They can be passed as make arguments or set as environment variables, like so:

make flag=bool
make install flag=bool

or

export flag=bool
make && make install

The following flags are respected by the makefile. A default value of 1 indicates that the corresponding feature is enabled by default.

Flag Default value Description
app 0 install icons to /usr/share, regardless of DESTDIR and PREFIX, and call gtk-update-icon-cache afterwards
curl 1 use libcurl to view https:// and similar images
debug 0 debug build, enables --debug
exif 0 Builtin EXIF tag display support
help 0 include help text (refers to the manpage otherwise)
inotify 0 enable inotify, needed for --auto-reload
stat64 0 Support CIFS shares from 64bit hosts on 32bit machines
magic 0 Use libmagic to filter unsupported file formats
mkstemps 1 Whether your libc provides mkstemps(). If set to 0, feh will be unable to load gif images via libcurl
verscmp 1 Whether your libc provides strvercmp(). If set to 0, feh will use an internal implementation.
xinerama 1 Support Xinerama/XRandR multiscreen setups

For example, make xinerama=0 debug=1 will disable Xinerama support and produce a debug build; libcurl and natural sorting support will remain enabled.

Additionally, the standard variables PREFIX and DESTDIR are supported.

PREFIX (default: /usr/local) controls where the application and its data files will be installed. It must be set both during make and make install.

DESTDIR (default: empty) sets the installation root during "make install". It is mostly useful for package maintainers.

Note: Defaults are specified in config.mk. It is designed so that in most cases, you can set environment variables instead of editing it. E.g.:

CFLAGS='-g -Os' make
export DESTDIR=/tmp/feh PREFIX=/usr
make && make install

Builtin EXIF support is maintained by Dennis Real, here.

Testing (non-X)

The non-X11 parts of feh can be automatically tested by running

$ make test

This requires perl >= 5.10 and the perl module Test::Command. Tests are non-interactive and do not require a running X11, so they can safely be run on a headless buildserver.

Contributing

Bugfixes are always welcome, just open a pull request :)

Before proposing a new feature, please consider the scope of feh: It is an image viewer and cataloguer, not an image editor or similar. Also, its option list is already pretty long. Please discuss your ideas in a feature request before opening a pull request in this case.

Please keep in mind that feh's options, key bindings and format specifiers are documented in two different places: The manual (man/feh.pre) and the help text (src/help.raw). Although the help is not compiled in by default, it should be kept up-to-date. On space-constrained embedded systems, it may be more useful than the (significantly larger) man page.

feh's People

Contributors

derf avatar reald avatar ulteq avatar ferada avatar swillner avatar stoeckmann avatar avlec avatar talisein avatar guraga avatar guns avatar giladogit avatar livibetter avatar zeising avatar teleshoes avatar a1346054 avatar reiseb avatar iglosiggio avatar orbea avatar gattschardo avatar shlyakpavel avatar maxcrees avatar cincodenada avatar jdknight avatar erniee5 avatar crackedp0t avatar davidbuchanan314 avatar eworm-de avatar anogin avatar shiponi avatar mbakke avatar

Stargazers

Ryan McQuen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.