Skip to content

Generates AppImage thumbnails for Linux desktops

License

Notifications You must be signed in to change notification settings

kem-a/appimage-thumbnailer

Repository files navigation

Download Release License C Stars

AppImage Thumbnailer

An in-process thumbnailer that extracts AppImage icons and writes ready-to-use PNG thumbnails for desktop environments implementing the freedesktop.org spec.

Screenshot From 2025-12-05 00-38-50

Features

  • Supports both SquashFS (traditional) and DwarFS AppImage formats.
  • Resolves .DirIcon pointers (with bounded symlink depth).

Prerequisites

  • Tooling: meson (>=1.1) and ninja for builds.
  • Runtime requirements:
    • unsquashfs from squashfs-tools for SquashFS AppImages (traditional format). Available in all major distro repos. Optionally bundled at build time with -Dbundle_squashfs=true.
    • dwarfsextract from dwarfs for DwarFS AppImages — bundled automatically during build.
  • Linked system libraries (usually present on major distros): GLib/GIO (>=2.56), GdkPixbuf (>=2.42), librsvg (>=2.54), Cairo, and libm (optional but detected).
  • Platform: a freedesktop.org-compliant thumbnail cache (GNOME, KDE, etc.).

Build & Install

Installing Dependencies (click to open)

Fedora / RHEL / CentOS:

sudo dnf install meson ninja-build squashfs-tools glib2-devel gdk-pixbuf2-devel librsvg2-devel cairo-devel

Additional packages required when bundling unsquashfs (-Dbundle_squashfs=true) or dwarfsextract (-Dbundle_dwarfs=true, enabled by default):

sudo dnf install curl zlib-devel libzstd-devel xz-devel

Ubuntu / Debian:

sudo apt install meson ninja-build squashfs-tools libglib2.0-dev libgdk-pixbuf-2.0-dev librsvg2-dev libcairo2-dev

Additional packages required when bundling unsquashfs or dwarfsextract:

sudo apt install curl zlib1g-dev libzstd-dev liblzma-dev

Arch Linux:

sudo pacman -S meson ninja squashfs-tools glib2 gdk-pixbuf2 librsvg cairo

Additional packages required when bundling unsquashfs or dwarfsextract:

sudo pacman -S curl zlib zstd xz
git clone https://github.com/kem-a/appimage-thumbnailer.git
cd appimage-thumbnailer
meson setup build
ninja -C build
sudo ninja -C build install

Installation drops the appimage-thumbnailer binary and appimage-thumbnailer.thumbnailer descriptor under your Meson prefix (default /usr/local).

Uninstall with sudo ninja -C build uninstall using the same build directory.

(Optional) Remove thumbnail background

Remove checkered alpha channel drawing around thumbnails and icons in Nautilus. Creates more cleaner look.

Edit ~/.config/gtk-4.0/gtk.css file and add CSS code snippet to it:

/*Clear Nautilus thumbnail background*/
.thumbnail,
.icon .thumbnail,
.grid-view .thumbnail {
  background: none;
  box-shadow: none;
}

More help

Type appimage-thumbnailer --help for more info

Troubleshooting

  1. If icons do not refresh immediately, clear cached entries and reopen your file manager:
rm -rf ~/.cache/thumbnails/*
  1. SELinux blocking unsquashfs and appimage-thumbnailer. This can happen on distros like Fedora that uses selinux.

    • Error: SELinux is preventing unsquashfs from create access on the lnk_file .DirIcon. Allow this access for now by executing:
    sudo su
    ausearch -c 'unsquashfs' --raw | audit2allow -M my-unsquashfs
    semodule -X 300 -i my-unsquashfs.pp
    • Error: SELinux is preventing appimage-thumbn from unlink access on the lnk_file .DirIcon. Allow this access for now by executing:
    sudo su
    ausearch -c 'appimage-thumbn' --raw | audit2allow -M my-appimagethumbn
    semodule -X 300 -i my-appimagethumbn.pp
  2. Run thumbnailer manually to test if icon is extracted

appimage-thumbnailer sample.AppImage icon.png 256

License

This project is licensed under the MIT License. See LICENSE for details.

About

Generates AppImage thumbnails for Linux desktops

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •