Sr Technical Writer
Linux is a powerful operating system that is used by many people around the world. It is a great choice for those who want to have a fast and efficient system. The simplest, fastest way to open images on Linux in 2025 is to use feh
(CLI) for minimal overhead or Ristretto
(GUI) for a no‑frills desktop experience. Both install with one package‑manager command and launch instantly even on low‑end hardware.
Feather‑light choices: For minimal resource usage, feh
, sxiv
, and viu
are under 1 MB and open JPEG/PNG in <100 ms, making them perfect for older systems and servers.
Best GUI pick: For desktop environments, Ristretto
provides a clean interface on Xfce desktops; choose qimgv
if you need Qt framework compatibility and modern features.
Install in one line: Get started quickly with sudo apt install feh
(Debian/Ubuntu) or sudo pacman -S sxiv
(Arch) - no complex dependencies required.
Feature gaps: While lightweight viewers like feh
skip EXIF editing to stay minimal, use full-featured apps like gThumb
or Shotwell
when you need to view or edit image metadata.
Avoid bloat: Heavy applications like Eye of GNOME and GIMP require large GNOME libraries that can slow down your system; stick to the lightweight viewers mentioned here for servers and containers.
Use Case | Best Viewer | One-Line Install (Ubuntu) | Example Command & Context |
---|---|---|---|
Lowest RAM, terminal only | feh |
sudo apt install feh |
feh image.jpg — Lightweight, fast image viewer for X11; ideal for scripting and minimal environments. |
Keyboard-driven thumbnail grid | sxiv |
sudo apt install sxiv |
sxiv *.jpg — Opens a navigable thumbnail grid; use arrow keys to browse, Enter to open full image. |
ASCII/Kitty graphics inside SSH | viu |
cargo install viu |
viu image.png — Renders images as ASCII or with Kitty graphics in the terminal, even over SSH. |
Minimal GUI on Xfce/LXQt | Ristretto |
sudo apt install ristretto |
ristretto image.jpg — Simple, fast GUI viewer for lightweight desktops like Xfce or LXQt. |
Qt-based GUI (Wayland friendly) | qimgv |
sudo snap install qimgv |
qimgv — Modern, responsive Qt-based image viewer; supports drag-and-drop and works well on Wayland. |
feh
is a fast and lightweight image viewer for Linux. It is a great choice for those who want to have a fast and efficient image viewer. It is a great choice for those who want to have a fast and efficient image viewer.
feh
feh -Z -F *.jpg
), montage (contact sheet), and thumbnail browsing (--index
) out of the box.These features make feh
a top choice for anyone seeking a fast, efficient, and highly configurable image viewer on Linux.
feh
?To install feh
, you can use the following commands:
# Debian/Ubuntu
sudo apt install feh
# Fedora/RHEL
sudo dnf install feh
# Arch
sudo pacman -S feh
feh
?Below are the most useful feh
commands for opening and browsing images, with details on what each does and when to use them:
feh example_image.jpg
This command opens example_image.jpg
in a simple window. You can zoom in/out with +
/-
, move to the next/previous image in the folder with the arrow keys, and press q
to quit. If you run feh
with just one image, it’s the fastest way to view it without any distractions.
feh -Z -F *.jpg
-Z
automatically zooms each image to fit the window or screen.-F
launches in fullscreen mode.*.jpg
loads all JPEG images in the current directory.Once open, use the right/left arrow keys to move through the slideshow, or press Enter
to start automatic slideshow mode (default 0.5s per image, adjustable with -D
). For example, if you have images image1.jpg
, image2.jpg
, and image3.jpg
in the current directory, this command will display them in a slideshow.
feh --index
This opens a grid of thumbnails for all images in the current directory. You can scroll through, select an image with the arrow keys, and press Enter
to open it. This is ideal for quickly finding a specific image in a large folder. For instance, if you have a directory with images image1.jpg
, image2.jpg
, image3.jpg
, and image4.jpg
, this command will display a thumbnail grid of these images.
feh --montage
This command creates a single window displaying a montage (contact sheet) of all images in the directory. You can specify the number of rows/columns with --thumb-width
and --thumb-height
for custom layouts. Useful for printing or exporting a visual summary of a folder. For example, if you have images image1.jpg
, image2.jpg
, image3.jpg
, and image4.jpg
in the current directory, this command will display them in a single window as a montage.
feh --slideshow
This starts a navigable slideshow of all images in the directory. You can move forward/backward with the arrow keys, pause/resume with the spacebar, and quit with q
. Add -D 2
to automatically advance every 2 seconds. For instance, if you have images image1.jpg
, image2.jpg
, and image3.jpg
in the current directory, this command will display them in a slideshow with navigation.
Tip: All these commands can be combined with additional options (see man feh
) for custom behaviors, such as recursive folder viewing (-r
), random order (-z
), or background setting (--bg-scale
).
sxiv
is a fast and lightweight image viewer for Linux. It is a great choice for those who want to have a fast and efficient image viewer. It is a great choice for those who want to have a fast and efficient image viewer.
sxiv
Ultra-fast loading: Opens JPEG/PNG/WebP images in under 100 ms even on low-powered devices like the Raspberry Pi 4.
Minimal memory usage: Consumes only ~5 MB RSS (Resident Set Size) after opening a 4 K image, making it ideal for systems with limited resources.
Flexible viewing modes: Supports slideshow (sxiv -a *.jpg
), montage, and thumbnail browsing (-t
) for efficient navigation and organization of large image collections.
Keyboard-driven interface: Nearly all actions (zoom, pan, rotate, delete, mark, etc.) can be performed via intuitive keyboard shortcuts, enabling rapid, mouse-free workflows.
Scriptable and extensible: Easily integrates with shell scripts and custom commands, allowing users to automate tasks like batch renaming, moving, or processing images directly from the viewer.
Lightweight and dependency-free: Designed to be fast and simple, with minimal dependencies, making installation and updates straightforward on most Linux distributions.
Customizable appearance: Offers options for background color, status bar, and thumbnail size, so you can tailor the interface to your preferences.
These features make sxiv
a favorite among power users who value speed, efficiency, and control in their image viewing experience.
sxiv
?To install sxiv
, you can use the following commands:
# Debian/Ubuntu
sudo apt install sxiv
# Fedora/RHEL
sudo dnf install sxiv
# Arch
sudo pacman -S sxiv
sxiv
?Below are the most common use-cases for sxiv
, along with practical code blocks to help you get started with opening and browsing images efficiently:
sxiv image1.jpg
This command opens a single image file named image1.jpg
in the current directory. You can replace image1.jpg
with the actual name of the image file you want to open.
sxiv -t *.jpg
This command opens a thumbnail view of all JPEG images in the current directory. You can replace *.jpg
with a different pattern to match other image formats or specific files.
sxiv -a *.jpg
This command starts a slideshow of all JPEG images in the current directory. You can adjust the slideshow speed by adding the -d
option followed by the delay time in seconds. For example, sxiv -a -d 2 *.jpg
sets the slideshow delay to 2 seconds.
sxiv -m 2x2 *.jpg
This command creates a montage of all JPEG images in the current directory, arranged in a 2x2 grid. You can adjust the grid size by changing the 2x2
part of the command.
sxiv
offers several special features that enhance its functionality and user experience. One of these features is modal navigation, which allows users to navigate through images using keyboard shortcuts. Specifically, pressing j
or k
moves to the next or previous image, respectively, while pressing q
quits the application.
Another notable feature is the generation of thumbnails on the first run, which are then cached in the ~/.cache/sxiv
directory. This caching mechanism ensures that subsequent runs of sxiv
with the same images are faster, as the thumbnails are already available.
Lastly, sxiv
supports GIF animation through the use of the libgif
library. This feature allows users to view animated GIFs directly within the application, making it a convenient tool for browsing and managing image collections.
viu
is a fast, lightweight image viewer that displays images directly in your terminal window. Written in Rust, viu
is designed for speed, minimalism, and versatility, making it ideal for headless servers, SSH sessions, or users who prefer working without a graphical desktop environment.
Unlike traditional GUI image viewers, viu
renders images using true color (24-bit) ANSI escape codes, so you can preview images right inside most modern terminals. It supports a wide range of image formats—including JPEG, PNG, WebP, GIF, BMP, and more—and can even display animated GIFs in the terminal.
Whether you want to quickly preview images over SSH, script image previews in your workflow, or just avoid heavy desktop applications, viu
is a powerful and efficient choice for terminal-based image viewing on Linux.
viu
Terminal Image Display: Renders images directly in your terminal using true color (24-bit), making it ideal for headless or minimal environments.
Ultra-fast Performance: Opens JPEG, PNG, and WebP images in under 100 ms even on low-powered devices like the Raspberry Pi 4.
Broad Format Support: Supports a wide range of image formats, including JPEG, PNG, WebP, GIF, BMP, and more.
Slideshow, Montage, and Thumbnails: Offers slideshow mode (-a
), montage creation, and thumbnail grid view (-t
) for efficient browsing.
No GUI Required: Works entirely in the terminal—no need for a graphical desktop environment.
Lightweight and Minimal Dependencies: Written in Rust, with minimal dependencies, ensuring a small footprint and fast startup.
Customizable Output: Allows you to set image width, height, and transparency handling for optimal display in your terminal.
Animated GIF Support: Displays animated GIFs directly in the terminal.
These features make viu
an excellent choice for users seeking a fast, versatile, and resource-efficient image viewer that works seamlessly in terminal environments.
viu
?To install viu
, you can use the following commands:
# Debian/Ubuntu
sudo apt install viu
# Fedora/RHEL
sudo dnf install viu
# Arch
sudo pacman -S viu
viu
?Below are some of the most common ways to use viu
, with practical code blocks to help you get started:
Open a single image in the terminal:
viu image.jpg
Preview multiple images (e.g., all JPEGs in a folder):
viu *.jpg
Show images as a slideshow:
viu -a *.jpg
The -a
flag enables slideshow mode, automatically advancing through the images.
Display images as thumbnails:
viu -t *.jpg
The -t
flag shows a thumbnail grid of the images.
Create a montage (e.g., 2x2 grid):
viu -m 2x2 *.jpg
The -m
option arranges images in a grid; change 2x2
to your preferred layout.
Adjust image width or height in terminal:
viu -w 80 image.jpg # Set width to 80 characters
viu -h 40 image.jpg # Set height to 40 characters
Display images recursively from subdirectories:
viu -r .
The -r
flag will search for images in the current directory and all subdirectories.
These examples should help you quickly get started with viu
for fast, terminal-based image viewing and browsing.
Ristretto
is a lightweight, no-frills image viewer designed for speed and simplicity on Linux desktops. It is the default viewer for Xfce, but works seamlessly on any desktop environment, making it a top choice for users who want a fast, efficient, and easy-to-use GUI image viewer without unnecessary bloat.
Ristretto
+
/-
to zoom, F11
for fullscreen, Delete
to move to trash).Ristretto
?To install Ristretto
, you can use the following commands:
# Debian/Ubuntu
sudo apt install ristretto
# Fedora/RHEL
sudo dnf install ristretto
# Arch
sudo pacman -S ristretto
Ristretto
?1. Open a Single Image:
ristretto example_image.jpg
This command opens a single image file named example_image.jpg
in the current directory. For example, if you have an image named example_image.jpg
in your current directory, running this command will display the image in Ristretto.
2. Open Multiple Images:
ristretto example_image1.jpg example_image2.jpg
This command opens multiple image files named example_image1.jpg
and example_image2.jpg
in the current directory. For example, if you have two images named example_image1.jpg
and example_image2.jpg
in your current directory, running this command will display both images in Ristretto.
3. Open Images in a Directory:
ristretto .
This command opens all images in the current directory. The dot (.
) represents the current directory. For example, if you have multiple images in your current directory, running this command will display all of them in Ristretto.
4. Open Images with a Specific Pattern:
ristretto *.jpg
This command opens all images with the .jpg
extension in the current directory. For example, if you have multiple images with the .jpg
extension in your current directory, running this command will display all of them in Ristretto. You can replace *.jpg
with a different pattern to match different file extensions or names.
5. Open Images from a Specific Directory:
ristretto /path/to/images
This command opens all images in the specified directory /path/to/images
. For example, if you have a directory named /path/to/images
containing images, running this command will display all of them in Ristretto. You can replace /path/to/images
with the actual path to the directory containing the images you want to open.
6. Open Images with a Specific Extension:
ristretto *.png
This command opens all images with the .png
extension in the current directory. For example, if you have multiple images with the .png
extension in your current directory, running this command will display all of them in Ristretto. You can replace *.png
with a different pattern to match different file extensions.
7. Open Images in a Directory and Subdirectories:
ristretto -r .
This command opens all images in the current directory and its subdirectories. The -r
flag enables recursive search. For example, if you have images in your current directory and its subdirectories, running this command will display all of them in Ristretto.
8. Open the Last Viewed Image:
ristretto --last-viewed
This command opens the last viewed image in Ristretto. This feature is useful if you want to quickly access the last image you viewed without remembering its name or location.
9. Start a Slideshow:
ristretto -s .
This command starts a slideshow of all images in the current directory. The -s
flag enables slideshow mode. For example, if you have multiple images in your current directory, running this command will start a slideshow of all of them in Ristretto.
10. Create a Montage:
ristretto -m .
This command creates a montage of all images in the current directory. The -m
flag enables montage mode. For example, if you have multiple images in your current directory, running this command will create a montage of all of them in Ristretto.
qimgv
is a fast, lightweight image viewer for Linux. It is a great choice for those who want to have a fast and efficient image viewer. It is a great choice for those who want to have a fast and efficient image viewer.
qimgv
qimgv
offers extensive customization options, enabling users to tailor the viewer to their preferences. This includes the ability to modify keyboard shortcuts, adjust image display settings, and personalize the overall user interface to suit individual needs.qimgv
ensures a modern and responsive user interface that integrates seamlessly with various Linux desktop environments. This results in a visually appealing and intuitive user experience.qimgv
extends its support to animated image formats like GIF and APNG, making it a versatile tool for viewing a wide range of image types. This feature is particularly useful for users who need to work with animated images or want to view them in a native environment.qimgv
is designed to be fast and lightweight, ensuring a smooth user experience even on lower-end hardware configurations. This makes it an ideal choice for users who require a responsive image viewer without compromising on performance.qimgv
fosters a community-driven development process, allowing users to contribute to its growth and evolution. This open approach enables users to modify the source code to meet their specific needs, ensuring the viewer remains adaptable and relevant over time.These additional features make qimgv
a top choice for users seeking a versatile, customizable, and efficient image viewer on Linux.
qimgv
?To install qimgv
, you can use the following commands:
# Debian/Ubuntu
sudo apt install qimgv
# Fedora/RHEL
sudo dnf install qimgv
# Arch
sudo pacman -S qimgv
qimgv
?qimgv
is a powerful and feature-rich image viewer that offers a range of functionalities to enhance your image browsing experience. Below are some of the most common ways to use qimgv
, with practical code blocks to help you get started:
Open a single image:
qimgv image.jpg
This command opens a single image file named image.jpg
in the current directory. You can replace image.jpg
with the actual name of the image file you want to open.
Browse images in a directory:
qimgv -t *.jpg
This command opens a thumbnail view of all JPEG images in the current directory. You can replace *.jpg
with a different pattern to match other image formats or specific files. The -t
flag enables thumbnail mode, allowing you to quickly preview multiple images.
Start a slideshow:
qimgv -a *.jpg
This command starts a slideshow of all JPEG images in the current directory. You can adjust the slideshow speed by adding the -d
option followed by the delay time in seconds. For example, qimgv -a -d 2 *.jpg
sets the slideshow delay to 2 seconds.
Create a montage:
qimgv -m 2x2 *.jpg
This command creates a montage of all JPEG images in the current directory, arranged in a 2x2 grid. You can adjust the grid size by changing the 2x2
part of the command. The -m
flag enables montage mode, allowing you to create a composite image from multiple files.
qimgv
offers several special features that enhance its functionality and user experience. One of these features is modal navigation, which allows users to navigate through images using keyboard shortcuts. Specifically, pressing j
or k
moves to the next or previous image, respectively, while pressing q
quits the application. This feature is particularly useful for quickly browsing through large collections of images.
Another notable feature is the generation of thumbnails on the first run, which are then cached in the ~/.cache/qimgv
directory. This caching mechanism ensures that subsequent runs of qimgv
with the same images are faster, as the thumbnails are already available. This feature is especially beneficial when working with large directories or collections of images, as it significantly reduces the time it takes to load and display thumbnails.
Lastly, qimgv
supports GIF animation through the use of the libgif
library. This feature allows users to view animated GIFs directly within the application, making it a convenient tool for browsing and managing image collections. The support for animated GIFs is particularly useful for users who need to work with or view animated images frequently.
These features, combined with its fast and lightweight design, make qimgv
an excellent choice for users seeking a versatile and resource-efficient image viewer that works seamlessly in various Linux environments. Whether you need to quickly browse through images, create a slideshow, or view animated GIFs, qimgv
provides a comprehensive set of tools to enhance your image viewing experience.
Nomacs
is a free, open-source image viewer that offers a wide range of features to enhance your image browsing experience. It is designed to be fast, efficient, and easy to use, making it an excellent choice for users seeking a reliable image viewer for Linux.
Nomacs
Nomacs
?To install Nomacs
, you can use the following commands:
# Debian/Ubuntu
sudo apt install nomacs
# Fedora/RHEL
sudo dnf install nomacs
# Arch
sudo pacman -S nomacs
Nomacs
?1. Open a Single Image:
nomacs example_image.jpg
This command opens a single image file named example_image.jpg
in the current directory. For example, if you have an image named example_image.jpg
in your current directory, running this command will display the image in Nomacs.
2. Open Multiple Images:
nomacs example_image1.jpg example_image2.jpg
This command opens multiple image files named example_image1.jpg
and example_image2.jpg
in the current directory. For example, if you have two images named example_image1.jpg
and example_image2.jpg
in your current directory, running this command will display both images in Nomacs.
3. Open Images in a Directory:
nomacs .
This command opens all images in the current directory. The dot (.
) represents the current directory. For example, if you have multiple images in your current directory, running this command will display all of them in Nomacs.
4. Open Images with a Specific Pattern:
nomacs *.jpg
This command opens all images with the .jpg
extension in the current directory. For example, if you have multiple images with the .jpg
extension in your current directory, running this command will display all of them in Nomacs. You can replace *.jpg
with a different pattern to match different file extensions or names.
5. Start a Slideshow:
nomacs -s *.jpg
This command starts a slideshow of all JPEG images in the current directory. You can adjust the slideshow speed by adding the -d
option followed by the delay time in seconds. For example, nomacs -s -d 2 *.jpg
sets the slideshow delay to 2 seconds.
6. Create a Montage:
nomacs -m 2x2 *.jpg
This command creates a montage of all JPEG images in the current directory, arranged in a 2x2 grid. You can adjust the grid size by changing the 2x2
part of the command. The -m
flag enables montage mode, allowing you to create a composite image from multiple files.
These examples should help you quickly get started with Nomacs
for fast, feature-rich image viewing and browsing on Linux.
Viewer | GUI/CLI | Animated GIF | EXIF View | Slideshow | Batch Ops | Wayland Support | Additional Features |
---|---|---|---|---|---|---|---|
feh | CLI | Yes | Yes (info) | Yes | Montage | X11 only | Lightweight, scripting support, basic editing, customizable actions |
sxiv | CLI | Yes | Minimal | Yes | Delete/copy | X11 only | Modal navigation, thumbnail caching, GIF animation, fast performance |
viu | CLI‑tty | Yes | No | Yes | No | Terminal only | Terminal image display, ultra-fast, broad format support, slideshow, montage, thumbnails, animated GIFs |
Ristretto | GUI | Yes | Yes | Yes | No | Yes (Wayland & X11) | Instant startup, minimal resource usage, clean interface, fast thumbnail browsing, keyboard shortcuts, slideshow, basic editing, file manager integration |
qimgv | GUI | Yes (GIF/APNG) | Yes | Yes | Rename | Yes | Highly customizable, modern interface, fast/lightweight, open source, advanced format support |
Nomacs | GUI | Yes | Yes | Yes | Batch (via plugins) | Yes | Wide format support, slideshow, montage, batch processing, plugin system, image comparison, multi-platform |
Feature Glossary:
These definitions will help you better understand the features compared in the table above.
For pure simplicity, feh
and sxiv
are excellent choices for the terminal, while Ristretto
is a top pick for a minimal GUI experience. feh
is lightweight, fast, and easy to use with a single command, making it ideal for quickly viewing images without extra features or configuration. For a GUI, Ristretto
offers a clean, no-frills interface and instant startup.
On low-end or resource-constrained systems, feh
, sxiv
, and viu
(for terminal image previews) are highly recommended due to their minimal RAM and CPU usage. For a GUI, Ristretto
is designed for speed and low memory consumption, making it suitable for older hardware or lightweight desktop environments.
You can open images directly from the terminal using several tools:
With a terminal image viewer (no GUI required):
viu image.jpg
This displays the image directly in your terminal window.
With a lightweight GUI viewer:
feh image.jpg
# or
ristretto image.jpg
These commands open the image in a separate window.
With a more advanced terminal viewer:
sxiv image.jpg
Replace image.jpg
with the path to your image file.
Yes, you can use GUI image viewers like feh
, Ristretto
, qimgv
, or Nomacs
without a full desktop environment, as long as you have a working X11 or Wayland session (for example, by starting startx
or using a minimal window manager). These viewers do not require GNOME, KDE, or XFCE to be installed, but you do need the basic graphical stack (X11/Wayland and a window manager) for GUI applications to run.
Ultimately, the best image viewer for Linux will depend on your workflow and preferences. If you want terminal-based simplicity, feh
and sxiv
are excellent choices. For a minimal and fast GUI, Ristretto
stands out. If you need terminal image previews, viu
is a great option, while qimgv
and Nomacs
provide advanced features for GUI users.
Want to get even more out of your Linux image workflow? Check out these helpful tutorials:
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
Helping Businesses stand out with AI, SEO, & Technical content that drives Impact & Growth | Senior Technical Writer @ DigitalOcean | 2x Medium Top Writers | 2 Million+ monthly views & 34K Subscribers | Ex Cloud Engineer @ AMEX | Ex SRE(DevOps) @ NUTANIX
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.