When comparing XnView vs sxiv, the Slant community recommends XnView for most people. In the question“What are the best FOSS image viewers for UNIX-like systems?” XnView is ranked 5th while sxiv is ranked 10th.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Supports over 500 image formats
Pro Includes simple editing tools
Typical image editing tools are included. For instance, there are tools for color and size manipulation, several filters and effects.
Pro Available for macOS, Linux and Windows
Pro Easy redate and view configuration
Pro Compare images side-by-side
To delete blurry phone pics, etc.
Pro Multi-lingual
XnView speaks over 30 languages.
Pro Portable version for Windows available
Pro Anti-aliasing can be toggled
Anti-aliasing is usually enabled on startup and can be toggled with 'a'.
Disabling anti-aliasing means faster operation due to less CPU load.
Changing the default is possible by compiling with this setting:
# config.h
static const bool ANTI_ALIAS = false;
Pro Supports embedding into other X windows
Via option -e.
Pro Basic support for multi-frame images (aka animations)
Load all frames from GIF files and play GIF animations.
Pro Acts as a filter for images that interacts with the command line
Option -i (input) takes filenames from stdinput and outputs marked images to stdoutput via option -o (output).
Pro Userscripts can be applied to single images or thumbnail mode selection
Examples of how to use the key-handler are found here:
/usr/share/sxiv/exec/key-handler
Pro Image infobox can be configured
Can be configured in ~/.config/sxiv/exec/image-info. See also here.
Pro Rudimentary viewing manipulation
Images can be rotated (<,>), flipped (|,_) and scaled (w,W,e,E,=).
Pro View mode with marked files
Keys 'N' and 'P' move in list of marked files. This can be useful.
Pro Thumbnail mode
Pro Fast
Cons
Con Very poor quality and very invazive on windows 10
Convert all images to 8bit rgb
[not suport 16bit or 32bit, cmyk, Lab, multichannel] so you never be able to see real original image, you only see the result of conversion...on windows 10 it enforced self promotion to default app for every type/format of image...
Con No Dark mode
Con No custom installation - if you need i.e. a language package, you need to install the full version
Con Free only for private use
For use in a company 1 license starts at 26 EUR.
Con Doesn't show movies on phone in correct position
Some of mp4 files shows in upside down position.
Con Doesn't pan/zoom fluidly with touchscreen
Con Browsing a directory after opening a single file needs fixing
See here
There is a workaround implemented in ranger that works more or less out of the box
# This hook allows image viewers to open all images in the current
# directory, keeping the order of files the same as in ranger.
# The requirements to use it are:
# 1. set open_all_images to true
# 2. ensure no files are marked
# 3. call rifle with a command that starts with "sxiv " or "feh "
def sxiv_workaround_hook(command):
Con Jumping in thumbnail mode possible, but limited
By entering a number, followed by capital G the focus jumps to that image in the list counted from beginning. (G is default key for 'g_n_or_last'-action (see config.h in source).)
It has to be noted that prefixing a motion with a number also works as espected (vim style).
Alas, a jumping mode with lables (like with pqiv) would be an advantage.
Con It doesn't have pong
Con Thumbnail mode only with simple marking
Key 'm' marks files.
Con Keys not configurable except via keyhandler mode or compilation
Keys can be associated with userscripts, which can be defined in ~/.config/sxiv/exec/key-handler. Every associated button needs to be prefixed with the key combination C-x (although that prefix can be configured to another key or key combination in config.h).
It has to be noted that key configuration apart from the key-handler is possible via compilation (Customizable key and mouse button mappings in config.h), which must not be a bad way to configure buttons, but certainly means a barrier for the not so tech-savvy.
Easy instruction for compilation:
1) Enter in terminal: "git clone https://github.com/muennich/sxiv.git"
2) Edit file "config.h" according to this
3) Compile and install, namely enter directory and enter in terminal: "make && sudo make install" (beware of sudo/root unless you know what you do)
( 4) Iterate: 2), then: enter directory and enter in terminal: "make clean && make && sudo make install" )
See an example for remapping the navigation buttons:
// navigate thumbnail+image
{ 0, XK_Left, i_navigate, -1 },
{ 0, XK_Left, t_move_sel, DIR_LEFT },
{ 0, XK_Right, i_navigate, +1 },
{ 0, XK_Right, t_move_sel, DIR_RIGHT },
{ 0, XK_Down, t_move_sel, DIR_DOWN },
{ 0, XK_Up, t_move_sel, DIR_UP },
{ ShiftMask, XK_Right, i_navigate, +10 },
{ ShiftMask, XK_Left, i_navigate, -10 },