Skip to content
Snippets Groups Projects
user avatar
orbea authored
This fixes many warnings shown by mandoc lint feature and should also respect
the 80 col limit.

  man -Tlint feh

  WARNING: new sentence, new line

  new sentence, new line
    (mdoc) A new sentence starts in the middle of a text line. Start it on a new
    input line to help formatters produce correct spacing.

man: /usr/man/man1/feh.1.gz:35:32: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:78:33: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:90:50: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:95:53: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:97:23: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:108:17: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:112:36: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:115:24: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:122:20: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:129:21: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:130:9: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:135:19: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:146:64: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:148:43: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:149:58: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:167:2: WARNING: skipping empty macro: No
man: /usr/man/man1/feh.1.gz:175:21: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:177:30: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:178:19: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:186:42: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:189:15: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:199:49: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:213:6: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:227:47: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:231:19: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:242:11: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:274:66: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:285:19: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:297:9: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:311:19: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:340:21: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:351:14: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:360:69: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:365:44: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:372:35: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:395:21: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:396:16: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:397:31: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:406:65: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:407:53: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:430:11: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:440:24: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:442:11: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:447:24: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:455:10: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:458:22: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:491:23: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:492:44: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:493:42: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:498:26: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:511:59: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:512:55: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:530:18: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:531:46: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:532:24: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:533:41: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:538:50: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:545:13: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:562:11: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:569:41: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:576:26: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:584:23: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:607:49: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:616:61: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:617:76: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:623:61: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:635:23: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:638:27: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:640:37: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:650:17: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:666:37: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:677:42: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:682:20: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:683:8: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:688:24: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:703:51: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:714:37: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:728:23: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:729:44: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:738:61: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:775:34: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:778:42: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:787:36: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:822:19: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:823:22: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:852:46: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:868:26: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:881:10: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:889:10: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:902:43: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:920:65: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:934:23: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:954:69: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:965:37: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:973:65: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:987:17: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1027:29: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1056:17: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1143:28: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1164:38: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1171:49: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1240:54: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1271:58: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1289:22: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1291:57: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1292:59: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1293:53: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1318:32: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1329:35: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1335:13: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1341:18: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1349:22: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1358:24: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1391:44: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1398:25: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1399:8: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1405:67: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1408:23: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1569:22: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1680:21: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1681:70: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1683:22: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1708:55: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1723:36: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1742:54: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1743:45: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1771:67: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1816:35: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1822:14: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1845:47: WARNING: new sentence, new line
man: /usr/man/man1/feh.1.gz:1902:56: WARNING: new sentence, new line
1d0ba2fc
History

feh

Imlib2 based image viewer

Dependencies

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

If built with exif=1:

  • libexif-dev
  • libexif12

Recommended

  • jpegtran (supplied by the jpeg library, for lossless image rotation)
  • convert (supplied by ImageMagick, can be used to load unsupported formats)

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 reliable in all cases. 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 available here

Make flags

Flags can be used to control the build and installation process.

e.g.

make flag=bool
make install flag=bool

or

export flag=bool
make && make install

For example, make xinerama=0 debug=1 will disable Xinerama support and produce a debug build.

Available flags are:

Flag Default value Description
app 0 install icons to /usr/share, regardless of DESTDIR and `PREFIX, and call gtk-update-icon-cache afterwards
cam 0 install deprecated feh-cam und gen-cam-menu scripts
curl 1 use libcurl to view http:// 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)
stat64 0 Support CIFS shares from 64bit hosts on 32bit machines
verscmp 1 Support naturing sorting (--version-sort). Requires a GNU-compatible libc exposing strverscmp
xinerama 1 Support Xinerama/XRandR multiscreen setups

So, by default libcurl and Xinerama are enabled, the rest is disabled.

Additionally, the standard variables PREFIX and DESTDIR are supported.

PREFIX (default: /usr) 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: config.mk 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)

$ make test

Requires perl >= 5.10 with Test::Command. The tests are non-interactive and work without X, so they can safely be run even on a headless buildserver.

Testing (X)

Requires

  • import (usually supplied by imagemagick)
  • perl >= 5.10 with GD, Test::More and X11::GUITest
  • twm
  • Xephyr
$ make test-x11

Be aware that this is quite experimental, so far the X-tests have only been run on one machine. So they may or may not work for you.