Image browser and viewer
Go to file
Přemysl Eric Janouch c55500f51a
Support dragging the view
It would also be possible to handle this through press/motion/release
event handlers, though GtkGestureDrag is more convenient for hacking in
support for dragging to widgets not supporting GtkScrollable (yet).

There may be some undesired interactions lurking, besides the jarring
movements when dragging native GdkWindows (these are a pain).
2022-07-15 14:00:31 +02:00
docs Implement wide thumbnail cache invalidation 2022-02-20 15:44:42 +01:00
resources Add an unnecessarily fancy about dialog 2022-01-09 19:11:36 +01:00
subprojects Get rid of our spng dependency 2022-06-04 23:14:15 +02:00
tools Generate TIFF structs/enums from a text file 2022-06-10 02:18:14 +02:00
wuffs-mirror-release-c@123a5c6ede Bump Wuffs, support partial PNGs through it 2022-06-04 19:19:16 +02:00
.clang-format Add clang-format configuration 2021-11-01 05:17:26 +01:00
.gitignore Mesonize JPEG Quant Smooth 2022-01-19 01:11:47 +01:00
.gitmodules Mesonize JPEG Quant Smooth 2022-01-19 01:11:47 +01:00
LICENSE Use a unified filesystem model 2022-01-05 03:48:22 +01:00
README.adoc Get rid of our spng dependency 2022-06-04 23:14:15 +02:00
fiv-browse.desktop Use the X-GNOME-FullName desktop file key 2022-02-21 22:29:14 +01:00
fiv-browser.c Make the browser scroll with touchpad on Wayland 2022-07-15 07:35:33 +02:00
fiv-browser.h Fully support GNOME's inode/directory mechanism 2022-01-12 11:12:32 +01:00
fiv-context-menu.c Move the browser's popup menu to its own file 2022-07-04 20:44:47 +02:00
fiv-context-menu.h Move the browser's popup menu to its own file 2022-07-04 20:44:47 +02:00
fiv-io-benchmark.c Redirect warnings to the info bar 2022-01-24 05:48:13 +01:00
fiv-io.c Use GPatternSpec rather than fnmatch() 2022-07-14 10:08:15 +02:00
fiv-io.h Add flags to the serialization protocol 2022-06-08 02:51:54 +02:00
fiv-jpegcrop.c Clean up 2022-06-05 13:30:53 +02:00
fiv-jpegcrop.desktop Add a lossless JPEG cropper 2022-02-19 20:48:38 +01:00
fiv-sidebar.c Discard the inner sidebar's size request 2022-07-14 12:47:35 +02:00
fiv-sidebar.h Use a unified filesystem model 2022-01-05 03:48:22 +01:00
fiv-thumbnail.c Decode bitmap thumbnails through LibRaw as well 2022-06-10 22:47:00 +02:00
fiv-thumbnail.h Downscale embedded thumbnails within minions 2022-06-08 02:51:55 +02:00
fiv-view.c Support dragging the view 2022-07-15 14:00:31 +02:00
fiv-view.h Clean up 2022-06-05 13:30:53 +02:00
fiv.c Support dragging the view 2022-07-15 14:00:31 +02:00
fiv.desktop Use the X-GNOME-FullName desktop file key 2022-02-21 22:29:14 +01:00
fiv.svg Improve the icon 2022-01-09 09:47:44 +01:00
meson.build Move the browser's popup menu to its own file 2022-07-04 20:44:47 +02:00
meson_options.txt Build tools with Meson as well 2022-06-10 02:08:56 +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 Clean up 2022-06-05 13:30:53 +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.

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.

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 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 dependencies: Meson, pkg-config
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)

$ 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

The lossless JPEG cropper is intended to be invoked from a context menu.

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.