Image browser and viewer
Go to file
2022-01-09 07:48:44 +01:00
docs Document our thumbnails 2021-12-29 21:17:30 +01:00
jpeg-quantsmooth@c86c6418ea Integrate jpeg-quantsmooth 2021-12-22 14:20:39 +01:00
resources Make sure our info-symbolic is actually used 2022-01-06 10:13:10 +01:00
subprojects Bump the spng wrap to 0.7.1 2021-11-27 20:21:52 +01:00
tools Add very basic XMP support 2021-12-16 00:29:12 +01:00
wuffs-mirror-release-c@ebbecaa2fb Bump Wuffs, clean up image loading 2022-01-08 08:04:58 +01:00
.clang-format Add clang-format configuration 2021-11-01 05:17:26 +01:00
.gitmodules Integrate jpeg-quantsmooth 2021-12-22 14:20:39 +01:00
fiv-browse.desktop Rename the whole project shorter 2022-01-05 04:45:46 +01:00
fiv-browser.c Parallelize thumbnail production 2022-01-08 07:46:28 +01:00
fiv-browser.h Rename the whole project shorter 2022-01-05 04:45:46 +01:00
fiv-io-benchmark.c Convert all loading to use GFile 2021-12-30 22:32:29 +01:00
fiv-io.c Bump Wuffs, clean up image loading 2022-01-08 08:04:58 +01:00
fiv-io.h Fix SVG thumbnailing 2022-01-07 09:43:28 +01:00
fiv-sidebar.c Show sidebar DnD targets when dragging breadcrumbs 2022-01-07 07:41:05 +01:00
fiv-sidebar.h Use a unified filesystem model 2022-01-05 03:48:22 +01:00
fiv-thumbnail.c Bump more copyright years 2022-01-07 09:53:58 +01:00
fiv-thumbnail.h Bump more copyright years 2022-01-07 09:53:58 +01:00
fiv-view.c Handle view bindings through an action signal 2022-01-09 07:48:44 +01:00
fiv-view.h Handle view bindings through an action signal 2022-01-09 07:48:44 +01:00
fiv.c Swap zoom in/out action buttons 2022-01-09 05:24:57 +01:00
fiv.desktop Rename the whole project shorter 2022-01-05 04:45:46 +01:00
fiv.svg Rename the whole project shorter 2022-01-05 04:45:46 +01:00
fiv.webp Add a screenshot to the README 2022-01-06 12:43:27 +01:00
LICENSE Use a unified filesystem model 2022-01-05 03:48:22 +01:00
meson_options.txt Implement trivial wide thumbnail production 2021-12-27 21:51:01 +01:00
meson.build Don't force sanitizers in debug builds 2022-01-07 08:37:18 +01:00
README.adoc Handle view bindings through an action signal 2022-01-09 07:48:44 +01:00
xdg.c Split out xdg.{c,h} 2021-11-01 05:17:26 +01:00
xdg.h Split out xdg.{c,h} 2021-11-01 05:17:26 +01:00

fiv

fiv is a slightly unconventional, general-purpose image browser and viewer.

Screenshot of both the browser and the viewer

Features

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

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

  • 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.

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.

  • Portability to non-UNIXy systems, although patches are welcome.

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

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 dependencies: Meson, pkg-config
Runtime dependencies: gtk+-3.0, glib>=2.64, pixman-1, shared-mime-info, libturbojpeg, libwebp, spng>=0.7.0
Optional dependencies: lcms2, LibRaw, librsvg-2.0, xcursor, libheif, libtiff, gdk-pixbuf-2.0, ExifTool

$ 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. To test the program, help it find its custom thumbnailer:

$ PATH=$(pwd):$PATH ./fiv

Pressing F1 will give you a convenient list of keyboard shortcuts.

Configuration

The standard means to adjust the looks of the program is through GTK+ 3 CSS. As an example, to tightly pack browser items, put the following in your ~/.config/gtk-3.0/gtk.css:

fiv-browser { -FivBrowser-spacing: 0; padding: 0; border: 0; margin: 0; }

Similarly, you can adjust some of the key bindings, as per the command table in fiv-view.h:

@binding-set ViewBindings { bind 'p' { 'command' (print) }; }
fiv-view { -gtk-key-bindings: ViewBindings; }

Should you want to experiment, you will find the GTK+ inspector very helpful.

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.