Image browser and viewer
Go to file
Přemysl Eric Janouch 544722f8e0
Try not to thumbnail FIFOs
Unless there is a writer, this may block forever.

And if there is one, we're somewhat likely to break something.
2023-05-21 23:31:41 +02:00
docs Revise documentation and help output 2023-04-17 07:20:07 +02:00
liberty@0e86ffe7c3 Don't require asciidoctor or a2x, import liberty 2022-10-09 01:24:03 +02:00
resources Move and extend the browser toolbar 2023-04-11 06:33:22 +02:00
subprojects Make the jpeg-quantsmooth wrap work on Debian 2022-07-23 15:23:44 +02:00
tools Generate TIFF structs/enums from a text file 2022-06-10 02:18:14 +02:00
wuffs-mirror-release-c@c63c4a9348 Bump Wuffs 2023-04-07 16:23:31 +02:00
.clang-format Add clang-format configuration 2021-11-01 05:17:26 +01:00
.gitignore Update .gitignore 2022-08-24 05:24:00 +02:00
.gitmodules Don't require asciidoctor or a2x, import liberty 2022-10-09 01:24:03 +02:00
LICENSE Bump copyright years 2023-03-30 20:46:08 +02:00
README.adoc Integrate online reverse image search 2023-03-15 05:52:32 +01:00
fiv-browse.desktop Use the X-GNOME-FullName desktop file key 2022-02-21 22:29:14 +01:00
fiv-browser.c Deduplicate file information structures 2023-04-14 07:31:03 +02:00
fiv-browser.h Fully support GNOME's inode/directory mechanism 2022-01-12 11:12:32 +01:00
fiv-collection.c Support opening collections of files 2022-08-08 18:06:50 +02:00
fiv-collection.h Support opening collections of files 2022-08-08 18:06:50 +02:00
fiv-context-menu.c Add a note about default applications 2023-03-15 05:52:32 +01:00
fiv-context-menu.h Add the information dialog to context menus 2022-08-05 11:38:12 +02:00
fiv-io-benchmark.c Redirect warnings to the info bar 2022-01-24 05:48:13 +01:00
fiv-io.c Mildly optimize raw image handling 2023-05-21 22:56:29 +02:00
fiv-io.h Deduplicate file information structures 2023-04-14 07:31:03 +02:00
fiv-jpegcrop.c Make binaries say what git commit they come from 2022-08-13 12:42:21 +02:00
fiv-jpegcrop.desktop Add a lossless JPEG cropper 2022-02-19 20:48:38 +01:00
fiv-reverse-search Integrate online reverse image search 2023-03-15 05:52:32 +01:00
fiv-reverse-search.desktop.in Integrate online reverse image search 2023-03-15 05:52:32 +01:00
fiv-sidebar.c Deduplicate file information structures 2023-04-14 07:31:03 +02:00
fiv-sidebar.h Move and extend the browser toolbar 2023-04-11 06:33:22 +02:00
fiv-thumbnail.c Try not to thumbnail FIFOs 2023-05-21 23:31:41 +02:00
fiv-thumbnail.h Check filesize when retrieving thumbnails 2023-04-14 05:24:57 +02:00
fiv-update-desktop-files.in Integrate online reverse image search 2023-03-15 05:52:32 +01:00
fiv-view.c Make the mirror command intuitive 2023-03-25 11:52:33 +01:00
fiv-view.h Add support for copying to clipboard 2022-08-04 00:35:22 +02:00
fiv.c Revise documentation and help output 2023-04-17 07:20:07 +02:00
fiv.desktop Support opening collections of files 2022-08-08 18:06:50 +02:00
fiv.gschema.xml Move and extend the browser toolbar 2023-04-11 06:33:22 +02:00
fiv.manifest Automate Windows builds, add icons to executables 2022-08-11 00:19:59 +02:00
fiv.rc Automate Windows builds, add icons to executables 2022-08-11 00:19:59 +02:00
fiv.svg Improve the icon 2022-01-09 09:47:44 +01:00
meson.build Integrate online reverse image search 2023-03-15 05:52:32 +01:00
meson_options.txt Build tools with Meson as well 2022-06-10 02:08:56 +02:00
msys2-cross-configure.sh Bundle a fuller installation of Perl/ExifTool 2022-08-11 16:11:07 +02:00
msys2-cross-install.sh Bundle a fuller installation of Perl/ExifTool 2022-08-11 16:11:07 +02:00
tiff-tables.awk Generate TIFF structs/enums from a text file 2022-06-10 02:18:14 +02:00
tiff-tables.db Generate TIFF structs/enums from a text file 2022-06-10 02:18:14 +02:00
xdg.c Improve XDG path handling on Windows 2022-08-09 17:29:42 +02:00
xdg.h Split out xdg.{c,h} 2021-11-01 05:17:26 +01:00

README.adoc

fiv

fiv is a slightly unconventional, general-purpose image browser and viewer for Linux (that said, macOS and Windows ports are possible).

Screenshot of both the browser and the viewer

Features

  • Uses a compact thumbnail view, helping you browse collections comfortably.

  • Supports BMP, (A)PNG, GIF, TGA, JPEG, WebP directly, plus optionally raw photos, HEIC, AVIF, SVG, X11 cursors and TIFF, or whatever your gdk-pixbuf modules manage to load.

  • Employs high-performance file format libraries: Wuffs and libjpeg-turbo.

  • Makes use of 30-bit X.org visuals, whenever its possible and appropriate.

  • Has a notion of pages, and tries to load all included content within files.

  • Can keep the zoom and position when browsing, to help with comparing zoomed-in images.

Explicit non-goals

  • Editing—thats what editors are for, be it GIMP or Rawtherapee; nothing beyond the most basic of adjustments is desired.

  • Following the latest GNOME HIG to the letter—header bars are deliberately avoided, for their general user hostility.

  • Memory efficiency is secondary to both performance and development effort.

Aspirations

Show colours as accurately as hardware allows. Open everything. Be fast. Not necessarily in this order.

Packages

Regular releases are sporadic. git master should be stable enough. You can get a package with the latest development version from Archlinuxs AUR.

Building and Running

Build-only dependencies: Meson, pkg-config, asciidoctor or asciidoc (recommended but optional)
Runtime dependencies: gtk+-3.0, glib>=2.64, pixman-1, shared-mime-info, libturbojpeg, libwebp
Optional dependencies: lcms2, LibRaw, librsvg-2.0, xcursor, libheif, libtiff, ExifTool, resvg (unstable API, needs to be requested explicitly)
Runtime dependencies for reverse image search: xdg-utils, cURL, jq

$ git clone --recursive https://git.janouch.name/p/fiv.git
$ meson builddir
$ cd builddir
$ meson compile

Considering the vast amount of dynamically-linked dependencies, do not attempt direct installations via ninja install. To test the program:

$ meson devenv fiv

The lossless JPEG cropper and reverse image search are intended to be invoked from a context menu.

Windows

fiv can be cross-compiled for Windows, provided that you install a bunch of dependencies listed at the beginning of msys2-cross-configure.sh, plus rsvg-convert from librsvg2, and icotool from icoutils. Beware that the build will take up about a gigabyte of disk space.

$ sh -e msys2-cross-configure.sh builddir
$ meson install -C builddir

If everything succeeds, you will find a portable build of the application in the builddir/package subdirectory. Keep your expectations low.

Documentation

For information concerning usage, refer to the user guide, which can be invoked from within the program by pressing F1.

Contributing and Support

Use https://git.janouch.name/p/fiv to report any bugs, request features, or submit pull requests. git send-email is tolerated. If you want to discuss the project, feel free to join me at ircs://irc.janouch.name, channel #dev.

Bitcoin donations are accepted at: 12r5uEWEgcHC46xd64tt3hHt9EUvYYDHe9

License

This software is released under the terms of the 0BSD license, the text of which is included within the package along with the list of authors.