Swayimg: image viewer for Wayland and DRM

June 14, 2026 ยท View on GitHub

Swayimg is a fully customizable image viewer with Lua scripting support.

  • Support for the most popular image formats:
  • Native support for Wayland and DRM output;
  • Gallery and viewer modes with slideshow;
  • Image animation support;
  • EXIF, XMP and IPTC tags support;
  • Loading images from files, pipes and external programs;
  • Preload images in a separate thread;
  • Support for the Sway and Hyprland window managers, including an overlay feature that simulates displaying an image in the currently active window (e.g. a terminal);
  • Fully customizable keyboard bindings, colors, and many other parameters via Lua bindings.

Viewer mode Gallery mode

Usage

swayimg [OPTIONS]... [FILE]...

Examples:

  • View multiple files:
    swayimg photo.jpg logo.png
    
  • View using pipes:
    wget -qO- https://www.kernel.org/theme/images/logos/tux.png | swayimg -
    
  • Loading stdout from external commands:
    swayimg "exec://wget -qO- https://www.kernel.org/theme/images/logos/tux.png" \
            "exec://curl -so- https://www.kernel.org/theme/images/logos/tux.png"
    

See full documentation for details.

Configuration

The Swayimg configuration file is a Lua script. The full list of available functions is described in the documentation and in the Lua source file.

Example of the configuration file is available after installation in /usr/share/swayimg/example.lua.

Install

Packaging status

List of supported distributives can be found on the Repology page.

Arch users can install the program from the extra repository or from AUR package.

Build

The project uses Meson build system:

meson setup my_build_dir
meson compile -C my_build_dir
meson install -C my_build_dir