Image browser and viewer
Go to file
Přemysl Eric Janouch a5ebc697ad
Do not restart all thumbnailers on new entries
This had the potential to create tons of unnecessary processes
doing the same job.

The change only covers moving or linking, not copying.
2024-01-30 02:34:05 +01:00
docs Add a --collection toggle 2024-01-26 16:57:36 +01:00
resources Distinguish removed files more prettily 2023-06-01 19:11:20 +02:00
submodules Move git submodules to a subdirectory 2023-06-04 12:57:47 +02:00
subprojects Bump JPEG Quant Smooth 2023-12-05 00:28:28 +01:00
tools info: optionally recurse into certain MakerNotes 2024-01-23 19:12:11 +01: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 Move git submodules to a subdirectory 2023-06-04 12:57:47 +02:00
LICENSE Load AdobeRGB Nikon JPEGs correctly 2024-01-23 22:18:17 +01:00
README.adoc README.adoc: update package information 2023-07-01 21:30:20 +02:00
fiv-browse.desktop Use the X-GNOME-FullName desktop file key 2022-02-21 22:29:14 +01:00
fiv-browser.c Do not restart all thumbnailers on new entries 2024-01-30 02:34:05 +01:00
fiv-browser.h Move FivIoModel to its own compilation unit 2023-05-28 09:33:03 +02:00
fiv-collection.c Resolve warnings resulting from GLib #2907 2024-01-22 12:45:26 +01:00
fiv-collection.h Support opening collections of files 2022-08-08 18:06:50 +02:00
fiv-context-menu.c Make the Delete key move files to trash in browser 2024-01-26 16:37:29 +01:00
fiv-context-menu.h Make the Delete key move files to trash in browser 2024-01-26 16:37:29 +01:00
fiv-io-cmm.c Prepare for parallelized colour management 2024-01-28 01:48:28 +01:00
fiv-io-model.c Prevent a class of crashes in monitoring 2023-08-03 04:42:50 +02:00
fiv-io-model.h Process some GFileMonitor events 2023-05-31 18:39:14 +02:00
fiv-io.c Prepare for parallelized colour management 2024-01-28 01:48:28 +01:00
fiv-io.h Prepare for parallelized colour management 2024-01-28 01:48:28 +01:00
fiv-jpegcrop.c Fix build under Cygwin 2023-07-07 12:01:12 +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 Update sidebar entries on change automatically 2023-06-02 07:44:42 +02:00
fiv-sidebar.h Move FivIoModel to its own compilation unit 2023-05-28 09:33:03 +02:00
fiv-thumbnail.c Prepare for parallelized colour management 2024-01-28 01:48:28 +01:00
fiv-thumbnail.h Process some GFileMonitor events 2023-05-31 18:39:14 +02:00
fiv-update-desktop-files.in Integrate online reverse image search 2023-03-15 05:52:32 +01:00
fiv-view.c Prepare for parallelized colour management 2024-01-28 01:48:28 +01:00
fiv-view.h Add support for copying to clipboard 2022-08-04 00:35:22 +02:00
fiv.c Prepare for parallelized colour management 2024-01-28 01:48:28 +01: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
fiv.wxs.in Centralize the project's URL 2023-06-26 15:46:10 +02:00
meson.build Prepare for parallelized colour management 2024-01-28 01:48:28 +01:00
meson_options.txt Add support for the Little CMS fast float plugin 2023-06-04 16:16:52 +02:00
msys2-configure.sh Add libjxl to Windows packages 2023-06-26 21:38:59 +02:00
msys2-install.sh msys2-install.sh: don't install the whole MIME DB 2023-06-27 00:36:00 +02:00
msys2-package.sh msys2-package.sh: fix iconv transliteration 2023-06-27 00:36:00 +02:00
tiff-tables.awk Extract some full-size raw previews without LibRaw 2023-05-26 15:32:34 +02:00
tiff-tables.db Move MPF constants and table to tiff-tables.db 2023-05-28 08:12:36 +02:00
tiffer.h Fix 32-bit build warnings 2023-06-23 13:56:32 +02:00
xdg.c Fix build under Cygwin 2023-07-07 12:01:12 +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 and Windows (macOS still has major issues).

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 using Arch Linuxs AUR, or as a Nix derivation.

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, librsvg-2.0 (for icons)
Optional dependencies: lcms2, Little CMS fast float plugin, 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
$ cd fiv
$ meson setup builddir
$ cd builddir
$ meson compile
$ meson devenv fiv

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

For proper integration, you will need to install the application. On Debian, you can get a quick and dirty installation package for testing purposes using:

$ meson compile deb
# dpkg -i fiv-*.deb

Windows

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

$ sh -e msys2-configure.sh builddir
$ meson compile package -C builddir

If everything succeeds, you will find a portable build of the application in the builddir/package subdirectory, and a very basic MSI installation package in builddir.

Faster colour management

To get the Little CMS fast float plugin, youll have to enter MSYS2 and rebuild mingw-w64-lcms2 with the following change:

sed -i 's/meson setup /&-Dfastfloat=true /' PKGCONFIG

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.