Swayimg is a lightweight Wayland-native image viewer optimized for the Sway and Hyprland window managers, featuring an overlay mode that simulates terminal image display. The application supports slideshow and gallery modes, reads from stdin and external commands, and is highly customizable via Lua scripting.
- Support for the most popular image formats:
- JPEG (via libjpeg),
- JPEG XL (via libjxl);
- PNG (via libpng);
- GIF (via giflib);
- SVG (via librsvg);
- WebP (via libwebp);
- HEIF/HEIC (via libheif);
- AV1F/AVIFS (via libavif);
- TIFF (via libtiff);
- Sixel (via libsixel);
- Raw: CRW/CR2, NEF, RAF, etc (via libraw);
- EXR (via OpenEXR);
- BMP (built-in);
- PNM (built-in);
- TGA (built-in);
- QOI (built-in);
- DICOM (built-in);
- Farbfeld (built-in).
- Gallery and viewer modes with slideshow and animation support;
- Loading images from files and pipes;
- Preload images in a separate thread;
- Fully customizable keyboard bindings, colors, and many other parameters via Lua bindings.
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.
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.
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.
The project uses Meson build system:
meson setup my_build_dir
meson compile -C my_build_dir
meson install -C my_build_dir

