+
+(define-public imv
+ (package
+ (name "imv")
+ (version "4.1.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/eXeC64/imv")
+ (commit (string-append "v" version))))
+ (sha256
+ (base32
+ "0gk8g178i961nn3bls75a8qpv6wvfvav6hd9lxca1skaikd33zdx"))
+ (file-name (git-file-name name version))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'install 'record-absolute-file-names
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; 'imv' is a script that execs 'imv-x11' or 'imv-wayland'.
+ ;; Record their absolute file name.
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (substitute* (string-append bin "/imv")
+ (("imv-")
+ (string-append bin "/imv-")))
+ #t))))
+ #:make-flags
+ (list "CC=gcc"
+ (string-append "PREFIX=" (assoc-ref %outputs "out"))
+ (string-append "CONFIGPREFIX="
+ (assoc-ref %outputs "out") "/etc"))))
+ (inputs
+ `(("asciidoc" ,asciidoc)
+ ("freeimage" ,freeimage)
+ ("glu" ,glu)
+ ("librsvg" ,librsvg)
+ ("libxkbcommon" ,libxkbcommon)
+ ("pango" ,pango)
+ ("wayland" ,wayland)))
+ (native-inputs
+ `(("cmocka" ,cmocka)
+ ("pkg-config" ,pkg-config)))
+ (synopsis "Image viewer for tiling window managers")
+ (description "@code{imv} is a command line image viewer intended for use
+with tiling window managers. Features include:
+
+@itemize
+@item Native Wayland and X11 support.
+@item Support for dozens of image formats including:
+@itemize
+@item PNG
+@item JPEG
+@item Animated GIFs
+@item SVG
+@item TIFF
+@item Various RAW formats
+@item Photoshop PSD files
+@end itemize
+@item Configurable key bindings and behavior.
+@item Highly scriptable with IPC via imv-msg.
+@end itemize\n")
+ (home-page "https://github.com/eXeC64/imv")
+ (license license:expat)))
+
+(define-public qiv
+ (package
+ (name "qiv")
+ (version "2.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://spiegl.de/qiv/download/qiv-"
+ version ".tgz"))
+ (sha256
+ (base32 "1rlf5h67vhj7n1y7jqkm9k115nfnzpwngj3kzqsi2lg676srclv7"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ;; That is required for testing.
+ ("xorg-server" ,xorg-server-for-tests)))
+ (inputs
+ `(("imlib2" ,imlib2)
+ ("glib" ,glib)
+ ("gtk+" ,gtk+-2)
+ ("lcms" ,lcms)
+ ("libjpeg" ,libjpeg-turbo)
+ ("libtiff" ,libtiff)
+ ("libexif" ,libexif)
+ ("libx11" ,libx11)
+ ("libxext" ,libxext)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ; no configure script
+ (add-before 'install 'patch-file-start-xserver
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; patch the file so that qiv runs and exits by itself
+ (substitute* "Makefile"
+ (("./qiv -f ./intro.jpg") "./qiv -f -C -s ./intro.jpg")
+ ;; Fail the build when test fails.
+ (("echo \"-- Test Failed --\"")
+ "(echo \"-- Test Failed --\" ; false)"))
+ ;; There must be a running X server and make install doesn't start one.
+ ;; Therefore we must do it.
+ (system "Xvfb :1 &")
+ (setenv "DISPLAY" ":1")
+ #t)))
+ #:tests? #f ; there is no check target
+ #:make-flags
+ (list
+ (string-append "PREFIX=" (assoc-ref %outputs "out")))))
+ (home-page "http://spiegl.de/qiv/")
+ (synopsis "Graphical image viewer for X")
+ (description
+ "Quick Image Viewer is a small and fast GDK/Imlib2 image viewer.
+Features include zoom, maxpect, scale down, fullscreen, slideshow, delete,
+brightness/contrast/gamma correction, pan with keyboard and mouse, flip,
+rotate left/right, jump/forward/backward images, filename filter and use it
+to set X desktop background.")
+ (license license:gpl2)))