Přemysl Eric Janouch
604594a8f1
This rewrite is more or less necessary for: - colour-managed browser thumbnails, - asynchronous image loading, - turning fiv-io into a reusable library. Little CMS has a fairly terrible API in this regard. |
||
---|---|---|
docs | ||
resources | ||
submodules | ||
subprojects | ||
tools | ||
.clang-format | ||
.gitignore | ||
.gitmodules | ||
fiv-browse.desktop | ||
fiv-browser.c | ||
fiv-browser.h | ||
fiv-collection.c | ||
fiv-collection.h | ||
fiv-context-menu.c | ||
fiv-context-menu.h | ||
fiv-io-cmm.c | ||
fiv-io-model.c | ||
fiv-io-model.h | ||
fiv-io.c | ||
fiv-io.h | ||
fiv-jpegcrop.c | ||
fiv-jpegcrop.desktop | ||
fiv-reverse-search | ||
fiv-reverse-search.desktop.in | ||
fiv-sidebar.c | ||
fiv-sidebar.h | ||
fiv-thumbnail.c | ||
fiv-thumbnail.h | ||
fiv-update-desktop-files.in | ||
fiv-view.c | ||
fiv-view.h | ||
fiv.c | ||
fiv.desktop | ||
fiv.gschema.xml | ||
fiv.manifest | ||
fiv.rc | ||
fiv.svg | ||
fiv.wxs.in | ||
LICENSE | ||
meson_options.txt | ||
meson.build | ||
msys2-configure.sh | ||
msys2-install.sh | ||
msys2-package.sh | ||
README.adoc | ||
tiff-tables.awk | ||
tiff-tables.db | ||
tiffer.h | ||
xdg.c | ||
xdg.h |
fiv
fiv is a slightly unconventional, general-purpose image browser and viewer for Linux and Windows (macOS still has major issues).
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 it’s 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—that’s 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 Linux’s 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, you’ll 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.