2021-11-06 09:02:02 +01:00
|
|
|
[![nsxiv](https://raw.githubusercontent.com/nsxiv/nsxiv/gh-pages/img/logo.png)](https://github.com/nsxiv/nsxiv)
|
|
|
|
|
2021-12-12 13:14:33 +01:00
|
|
|
[![tags](https://img.shields.io/github/v/tag/nsxiv/nsxiv?style=flat-square)](https://github.com/nsxiv/nsxiv/tags)
|
2021-11-06 09:02:02 +01:00
|
|
|
[![license](https://img.shields.io/badge/license-GPL--2.0-lightgreen?style=flat-square)](https://github.com/nsxiv/nsxiv/blob/master/LICENSE)
|
|
|
|
[![loc](https://img.shields.io/tokei/lines/github/nsxiv/nsxiv?color=red&style=flat-square)](https://github.com/nsxiv/nsxiv)
|
2012-12-21 23:36:59 +01:00
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
**Neo (or New or Not) Simple (or Small or Suckless) X Image Viewer**
|
|
|
|
--------------------------------------------------------------------
|
2011-01-21 15:27:06 +01:00
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
nsxiv is a fork of now unmaintained [sxiv](https://github.com/muennich/sxiv)
|
2021-12-01 13:24:45 +01:00
|
|
|
with the purpose of being a drop-in replacement of sxiv, maintaining it and
|
|
|
|
adding simple, sensible features. nsxiv is free software licensed under GPLv2
|
|
|
|
and aims to be easy to modify and customize.
|
2021-09-16 11:32:59 +02:00
|
|
|
|
|
|
|
Please file a bug report if something does not work as documented or
|
|
|
|
expected in *this* repository, after making sure you are using the latest
|
2021-10-02 07:29:38 +02:00
|
|
|
release of nsxiv. Contributions are welcome, see
|
|
|
|
[CONTRIBUTING.md](CONTRIBUTING.md#Contribution-Guideline) for details.
|
2011-01-21 15:27:06 +01:00
|
|
|
|
2012-12-21 23:36:59 +01:00
|
|
|
|
2011-09-08 16:48:55 +02:00
|
|
|
Features
|
2011-09-12 19:28:02 +02:00
|
|
|
--------
|
2011-09-08 16:48:55 +02:00
|
|
|
|
|
|
|
* Basic image operations, e.g. zooming, panning, rotating
|
|
|
|
* Customizable key and mouse button mappings (in *config.h*)
|
2021-11-23 08:27:14 +01:00
|
|
|
* Script-ability via `key-handler`
|
2011-09-08 16:48:55 +02:00
|
|
|
* Thumbnail mode: grid of selectable previews of all images
|
|
|
|
* Ability to cache thumbnails for fast re-loading
|
2021-11-23 08:27:14 +01:00
|
|
|
* Basic support for animated/multi-frame images (GIF/WebP)
|
2013-01-27 18:03:01 +01:00
|
|
|
* Display image information in status bar
|
2022-04-28 03:11:27 +02:00
|
|
|
* Customizable window title
|
2011-09-08 16:48:55 +02:00
|
|
|
|
2012-12-21 23:36:59 +01:00
|
|
|
|
2011-09-08 17:31:37 +02:00
|
|
|
Screenshots
|
2011-09-12 19:28:02 +02:00
|
|
|
-----------
|
2011-09-08 17:31:37 +02:00
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
**Image mode: (Default colors)**
|
2011-09-08 17:31:37 +02:00
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
![Image](https://raw.githubusercontent.com/nsxiv/nsxiv/gh-pages/img/image.png "Image mode")
|
2011-09-08 17:31:37 +02:00
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
**Thumbnail mode: (Custom colors)**
|
2012-12-21 23:36:59 +01:00
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
![Thumb](https://raw.githubusercontent.com/nsxiv/nsxiv/gh-pages/img/thumb.png "Thumb mode")
|
2011-09-08 17:31:37 +02:00
|
|
|
|
|
|
|
|
2021-10-19 15:00:23 +02:00
|
|
|
Installing via package manager
|
|
|
|
------------------------------
|
|
|
|
|
2022-04-28 03:11:27 +02:00
|
|
|
<a href="https://repology.org/project/nsxiv/versions">
|
|
|
|
<img align="right" width="192" src="https://repology.org/badge/vertical-allrepos/nsxiv.svg">
|
|
|
|
</a>
|
|
|
|
|
2021-10-19 15:00:23 +02:00
|
|
|
nsxiv is available on the following distributions/repositories. If you don't see
|
|
|
|
your distro listed here, either contact your distro's package maintainer or
|
|
|
|
consider packaging it yourself and adding it to the respective community repo.
|
|
|
|
|
|
|
|
Repos not tracked by repology:
|
|
|
|
|
|
|
|
* Fedora: Enable the copr repo via `dnf copr enable mamg22/nsxiv`.
|
|
|
|
|
|
|
|
|
2020-01-16 12:16:33 +01:00
|
|
|
Dependencies
|
2011-09-12 19:28:02 +02:00
|
|
|
------------
|
2012-12-21 23:36:59 +01:00
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
nsxiv requires the following software to be installed:
|
2020-01-16 12:16:33 +01:00
|
|
|
|
|
|
|
* Imlib2
|
|
|
|
* X11
|
2021-09-21 08:24:28 +02:00
|
|
|
|
2021-10-03 18:52:12 +02:00
|
|
|
The following dependencies are optional.
|
2021-09-21 08:24:28 +02:00
|
|
|
|
2021-10-03 18:52:12 +02:00
|
|
|
* inotify : Used for auto-reloading images on change.
|
|
|
|
Disabled via `HAVE_INOTIFY=0`
|
2021-09-19 10:49:56 +02:00
|
|
|
* libXft, freetype2, fontconfig : Used for the status bar.
|
|
|
|
Disabled via `HAVE_LIBFONTS=0`
|
2021-09-21 08:24:28 +02:00
|
|
|
* giflib : Used for animated gif playback.
|
2021-10-03 18:52:12 +02:00
|
|
|
Disabled via `HAVE_LIBGIF=0`.
|
2021-09-21 08:24:28 +02:00
|
|
|
* libexif : Used for auto-orientation and exif thumbnails.
|
2021-10-03 18:52:12 +02:00
|
|
|
Disable via `HAVE_LIBEXIF=0`
|
2021-09-24 13:20:55 +02:00
|
|
|
* libwebp : Used for animated webp playback.
|
2021-11-06 15:58:50 +01:00
|
|
|
(NOTE: animated webp also requires Imlib2 v1.7.5 or above)
|
2021-10-03 18:52:12 +02:00
|
|
|
Disabled via `HAVE_LIBWEBP=0`.
|
2020-01-16 12:16:33 +01:00
|
|
|
|
|
|
|
Please make sure to install the corresponding development packages in case that
|
2021-09-16 11:32:59 +02:00
|
|
|
you want to build nsxiv on a distribution with separate runtime and development
|
|
|
|
packages (e.g. \*-dev on Debian).
|
2020-01-16 12:16:33 +01:00
|
|
|
|
|
|
|
|
|
|
|
Building
|
|
|
|
--------
|
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
nsxiv is built using the commands:
|
2011-01-21 15:27:06 +01:00
|
|
|
|
|
|
|
$ make
|
|
|
|
|
2021-10-03 18:52:12 +02:00
|
|
|
You can pass `HAVE_X=0` to `make` to disable an optional dependency.
|
2021-09-14 16:42:57 +02:00
|
|
|
For example:
|
|
|
|
|
2021-10-03 18:52:12 +02:00
|
|
|
$ make HAVE_LIBEXIF=0
|
2021-09-14 16:42:57 +02:00
|
|
|
|
2021-10-03 18:52:12 +02:00
|
|
|
will disable `libexif` support. Alternatively they can be disabled via editing
|
2022-04-21 23:14:03 +02:00
|
|
|
`config.mk`. `OPT_DEP_DEFAULT=0` can be used to disable all optional
|
|
|
|
dependencies.
|
2021-09-14 16:42:57 +02:00
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
Installing nsxiv:
|
|
|
|
|
|
|
|
# make install
|
|
|
|
|
2021-09-23 04:17:52 +02:00
|
|
|
Installing desktop entry:
|
|
|
|
|
2021-09-25 07:00:21 +02:00
|
|
|
# make install-desktop
|
2021-09-23 04:17:52 +02:00
|
|
|
|
|
|
|
Installing icons:
|
|
|
|
|
2021-09-25 07:00:21 +02:00
|
|
|
# make install-icon
|
|
|
|
|
|
|
|
Installing all of the above:
|
|
|
|
|
|
|
|
# make install-all
|
2021-09-23 04:17:52 +02:00
|
|
|
|
|
|
|
Please note, that these requires root privileges.
|
2021-09-24 07:07:27 +02:00
|
|
|
By default, nsxiv is installed using the prefix `/usr/local`, so the full path
|
|
|
|
of the executable will be `/usr/local/bin/nsxiv`, the `.desktop` entry will be
|
|
|
|
`/usr/local/share/applications/nsxiv.desktop` and the icon path will be
|
|
|
|
`/usr/local/share/icons/hicolor/{size}/apps/nsxiv.png`.
|
2021-09-16 11:32:59 +02:00
|
|
|
|
|
|
|
You can install nsxiv into a directory of your choice by changing this command to:
|
2011-01-21 15:27:06 +01:00
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
$ make PREFIX="/your/dir" install
|
2011-01-21 15:27:06 +01:00
|
|
|
|
2021-10-03 18:52:12 +02:00
|
|
|
Example scripts are installed using `EGPREFIX` which defaults to
|
|
|
|
`/usr/local/share/doc/nsxiv/examples`. You can change `EGPREFIX` the same way
|
|
|
|
you can change `PREFIX` shown above.
|
2021-09-22 20:36:55 +02:00
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
The build-time specific settings of nsxiv can be found in the file *config.h*.
|
2011-09-12 19:28:02 +02:00
|
|
|
Please check and change them, so that they fit your needs.
|
2011-09-13 10:08:55 +02:00
|
|
|
If the file *config.h* does not already exist, then you have to create it with
|
|
|
|
the following command:
|
|
|
|
|
|
|
|
$ make config.h
|
2011-09-08 16:02:46 +02:00
|
|
|
|
2012-12-21 23:36:59 +01:00
|
|
|
|
2011-01-21 15:27:06 +01:00
|
|
|
Usage
|
2011-09-12 19:28:02 +02:00
|
|
|
-----
|
2013-04-02 19:43:55 +02:00
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
Please see man page for information on how to use nsxiv. To do so, execute the
|
|
|
|
following after the installation:
|
2014-10-24 12:25:18 +02:00
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
$ man nsxiv
|
2014-04-24 20:40:26 +02:00
|
|
|
|
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
F.A.Q
|
|
|
|
-----
|
2012-12-21 23:36:59 +01:00
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
* Can I open remote urls with nsxiv? <br>
|
2021-10-02 07:29:38 +02:00
|
|
|
Yes, see [nsxiv-url](https://github.com/nsxiv/nsxiv-extra/tree/master/scripts/nsxiv-url)
|
2012-12-21 23:36:59 +01:00
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
* Can I open all the images in a directory? <br>
|
2021-10-02 07:29:38 +02:00
|
|
|
Yes, see [nsxiv-rifle](https://github.com/nsxiv/nsxiv-extra/tree/master/scripts/nsxiv-rifle)
|
2012-12-21 23:36:59 +01:00
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
* Can I set default arguments for nsxiv? <br>
|
2021-10-02 07:29:38 +02:00
|
|
|
Yes, see [nsxiv-env](https://github.com/nsxiv/nsxiv-extra/tree/master/scripts/nsxiv-env)
|
2012-12-21 23:36:59 +01:00
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
* Can I pipe images into nsxiv? <br>
|
2021-11-05 05:17:08 +01:00
|
|
|
Yes, see [nsxiv-pipe](https://github.com/nsxiv/nsxiv-extra/tree/master/scripts/nsxiv-pipe)
|
2012-12-21 23:36:59 +01:00
|
|
|
|
2022-03-08 08:23:35 +01:00
|
|
|
You may also wish to see the [known issues](https://github.com/nsxiv/nsxiv/issues/242).
|
2022-02-24 23:36:58 +01:00
|
|
|
|
2012-12-21 23:36:59 +01:00
|
|
|
|
2021-11-26 15:38:00 +01:00
|
|
|
Customization
|
|
|
|
-------------
|
|
|
|
|
|
|
|
The main method of customizing nsxiv is by setting values for the variables in *config.h*,
|
|
|
|
or by using Xresources as explained in the manual. If these options are not sufficient,
|
|
|
|
you may implement your own features by following
|
|
|
|
[this guide](https://github.com/nsxiv/nsxiv-extra/blob/master/CUSTOMIZATION.md).
|
2021-10-02 07:29:38 +02:00
|
|
|
|
|
|
|
Due to our limited [project scope](CONTRIBUTING.md#Project-Scope), certain features or
|
2021-11-26 15:38:00 +01:00
|
|
|
customization cannot be merged into nsxiv mainline. Following the spirit of suckless
|
|
|
|
software, we host the [nsxiv-extra](https://github.com/nsxiv/nsxiv-extra) repo where users
|
|
|
|
are free to submit whatever patches or scripts they wish.
|
|
|
|
|
|
|
|
If you think your custom features can be beneficial for the general user base and is within
|
|
|
|
our project scope, please submit it as a pull request on this repository, then we *may*
|
|
|
|
merge it to mainline.
|
2021-10-02 07:29:38 +02:00
|
|
|
|
|
|
|
Description on how to use or submit patches can be found on
|
2021-11-26 15:38:00 +01:00
|
|
|
nsxiv-extra's [README](https://github.com/nsxiv/nsxiv-extra).
|
2021-10-02 07:29:38 +02:00
|
|
|
|
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
Download
|
|
|
|
--------
|
2012-12-21 23:36:59 +01:00
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
You can [browse](https://github.com/nsxiv/nsxiv) the source code repository
|
|
|
|
on GitHub or get a copy using git with the following command:
|
2012-12-21 23:36:59 +01:00
|
|
|
|
2021-09-16 11:32:59 +02:00
|
|
|
$ git clone https://github.com/nsxiv/nsxiv.git
|
2021-09-16 22:15:28 +02:00
|
|
|
|
|
|
|
You can view the changelog [here](CHANGELOG.md)
|
2021-11-23 08:27:14 +01:00
|
|
|
|
2022-04-28 03:11:27 +02:00
|
|
|
Similar projects
|
2021-11-23 08:27:14 +01:00
|
|
|
----------------
|
|
|
|
|
|
|
|
If nsxiv isn't able to fit your needs, check out the image viewer section of
|
2022-04-28 03:11:27 +02:00
|
|
|
**[suckless rocks](https://suckless.org/rocks)** to find other minimal image
|
|
|
|
viewers to try out.
|
2021-11-23 08:27:14 +01:00
|
|
|
|
|
|
|
Below are a couple other lesser known projects not listed in suckless rocks.
|
|
|
|
|
|
|
|
* [MAGE](https://github.com/explosion-mental/mage) :
|
2021-11-26 15:38:00 +01:00
|
|
|
A smaller/more-suckless version of sxiv.
|
2021-11-23 08:27:14 +01:00
|
|
|
* [div](https://github.com/TAAPArthur/div) :
|
|
|
|
Minimal and extensive, aimed at C devs willing to build their own features.
|
|
|
|
* [mpv-image-viewer](https://github.com/occivink/mpv-image-viewer) :
|
|
|
|
Lua script to turn mpv into an image viewer. Supports thumbnails via
|
|
|
|
[mpv-gallery-view](https://github.com/occivink/mpv-gallery-view).
|