• Stars
    star
    1,541
  • Rank 30,365 (Top 0.6 %)
  • Language
    C
  • License
    Other
  • Created almost 15 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

a fast and light image viewer

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.

More Repositories

1

travelynx

Traewelling-inspired journey logger with realtime data
Perl
118
star
2

db-fakedisplay

App/Infoscreen for Railway Departures in Germany
Perl
65
star
3

Travel-Status-DE-IRIS

(DEPRECATED) Interface to DB IRIS Departure Monitor
Perl
38
star
4

icli

Icinga command line interface
Perl
25
star
5

Travel-Routing-DE-VRR

CLI client for EFA-based itinerary services
Slice
19
star
6

Travel-Status-DE-DeutscheBahn

Commandline Public Transit Departure Monitor
Perl
16
star
7

zlib-deflate-nostdlib

zlib-deflate (RFC 1950/1951) decompressor for microcontrollers
C
15
star
8

vusb-i2c

VUSB based USB → I²C bridge
Assembly
13
star
9

wii-sensors

playing around with Wiimote, MotionPlus and Balance Board
C
12
star
10

Travel-Status-DE-VRR

Interface to EFA-based departure monitors
Perl
9
star
11

vrr-fakedisplay

Show bus/tram departures, LED display-style
Perl
8
star
12

envstore

save and restore environment variables
C
7
star
13

Travel-Status-DE-DBWagenreihung

Inofficial interface to Deutsche Bahn Wagenreihung (wagon order) API
Perl
7
star
14

caretaker

vcs-home implementation
Shell
6
star
15

zsh

personal zsh configuration
Shell
5
star
16

ekgping

electrocardiograph-like graphical and audible ping
Perl
5
star
17

ssh-forcecommand

Simple forcecommand for ssh
Perl
5
star
18

attiny2313

ATtiny 2313 playground
C
4
star
19

dfatool

Python
3
star
20

owi-slave

AVR Onewire slave
Eagle
3
star
21

Travel-Status-DE-DBFahrplan

Playing around with the Deutsche Bahn Open Data Fahrplan API
Perl
3
star
22

ccc.finalrewind.org

CCC-Erfa/Chaostreff Planet
Perl
3
star
23

dthumb

create XHTML index with image thumbnails
Perl
3
star
24

esp8266-nodemcu-ssd1306

ESP8266 Lua/NodeMCU framebuffer + module for SSD1306 OLEDs
Lua
2
star
25

host

minimal DNS/RDNS lookup utility
C
2
star
26

screen

status bar script, used to be for screen, now for dwm.
Perl
2
star
27

db-zugbildung-to-json

Convert wagon order PDFs to JSON
Perl
2
star
28

downloaders

image download scripts for various sites
Perl
2
star
29

nvm

Nahverkehrsmonitor
Python
2
star
30

vulnerable-web

intentionally insecure (and ownable) web services
Perl
2
star
31

esp8266-nodemcu-sds011

ESP8266 Lua/NodeMCU module for SDS011 particle monitor
Lua
2
star
32

Travel-Status-DE-URA

Interface to URA-based realtime departure monitors
Perl
2
star
33

geolocation-to-train

Find train by geolocation, independent of netzradar and similar services
Python
2
star
34

titools

Software related to Texas Instruments TI8x calculators
2
star
35

App-Hashl

hash parts of your files, then leech from slow FTPs without getting duplicates
Perl
2
star
36

debian-utils

Utilities related to the Debian distro
Perl
2
star
37

db-fahrzeuglexikon-parser

Extract images and JSON data from DB Fahrzeuglexikon
Shell
2
star
38

App-Raps2

Password Safe, take two
Perl
1
star
39

Travel-Routing-DE-HAFAS

CLI and API for HAFAS itinerary services
Perl
1
star
40

esp8266-nodemcu-scd4x

ESP8266 Lua/NodeMCU module for Sensirion SCD40/SCD41 COâ‚‚ sensor
Lua
1
star
41

hacklace-utils

Perl
1
star
42

vusb-si2c

VUSB → SI2C (simplified oneway I²C) bridge
Eagle
1
star
43

korad-logger

Data Logger and Viewer for KAxxxxP power supplies
Python
1
star
44

minipart

Very minimal partkeepr clone
Perl
1
star
45

drehgewinnt

Connect Four with extras
Perl
1
star
46

comirror

Generic webcomic mirrorer
Perl
1
star
47

derf-web

personal web services (webfs, pgctl and such)
Perl
1
star
48

devtodo-web

personal CGI for devtodo1
Perl
1
star
49

fuze

Sansa Fuze / Music Player related scripts
1
star
50

blinkencat

ATTiny2313 powered RGB Blinkencat
C++
1
star
51

esp8266-playground

Playing around with ESP8266
C
1
star
52

pyggle

Python Image Gallery for Static Websites
Python
1
star
53

fnordlicht-smd

hacking around in the fnordlicht-20101008 release
C
1
star
54

fdskip

Make floppy drive head seek for various durations
C
1
star
55

randsleep

Execute program after sleeping for a random time
C
1
star
56

blinkdings1

ATTiny2313 thingy with three LED spotlights and speaker
C
1
star
57

tinyrgb

attiny2313 with RGB LED.
C
1
star
58

pgctl

control light and 12V line via parallel port and AVR
C
1
star
59

cocoos-aspectc

AspectC++ port of cocoOS for AOP experiments
C
1
star
60

App-MFM

module-based CUI file manager
Perl
1
star
61

up.finalrewind.org

simple upload webservice
Perl
1
star
62

hacklace-gameoflife

Hacklace patch playing Conway's Game of Life
C
1
star
63

simplestore

Simple storage format for Perl hashes
Perl
1
star
64

tischlicht

ATTiny2313, Analog Comparator experiment
C
1
star
65

App-Slackeria

Project status overview
Perl
1
star
66

is_nighttime

Check whether it is day or night
Perl
1
star
67

Travel-Routing-DE-HAFAS-legacy

HAFAS binary request interface
Perl
1
star
68

multipass

Embedded Library Operating System
C++
1
star
69

visual

Cheap PNG widgets for the lulz
Perl
1
star
70

esp8266-nodemcu-uart-bridge

Lua
1
star
71

dlog-viewer

Viewer and Exporter for Keysight dlog Files
Python
1
star
72

docker-dh-make-perl

Package perl modules for Debian in Docker
Shell
1
star