An in-process thumbnailer that extracts AppImage icons and writes ready-to-use PNG thumbnails for desktop environments implementing the freedesktop.org spec.
- Supports both SquashFS (traditional) and DwarFS AppImage formats.
- Resolves
.DirIconpointers (with bounded symlink depth) before falling back to the first root-level.svgand then.pnginside the AppImage. - Streams archive data directly from
7zinto librsvg/GdkPixbuf without temporary files. - Preserves aspect ratio while scaling toward the requested size (upscales when the source is smaller) within the safe
1–4096range (default256). - Ships
appimage-thumbnailer.thumbnailerso file managers can dispatch the helper automatically once installed.
- Tooling:
meson(>=1.1) andninjafor builds. - Runtime (at least one required):
7z/p7zip-fullfor SquashFS AppImages (traditional format).dwarfstools (dwarfsextract,dwarfsck) 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.).
Installing Dependencies (click to open)
Fedora / RHEL / CentOS:
sudo dnf install meson ninja-build p7zip glib2-devel gdk-pixbuf2-devel librsvg2-devel cairo-develUbuntu / Debian:
sudo apt install meson ninja-build p7zip-full libglib2.0-dev libgdk-pixbuf-2.0-dev librsvg2-dev libcairo2-devArch Linux:
sudo pacman -S meson ninja p7zip glib2 gdk-pixbuf2 librsvg cairoDwarFS is a high-compression read-only filesystem that offers significantly better compression ratios than SquashFS. Some modern AppImages (e.g., those created with uruntime or PELF) use DwarFS instead of SquashFS.
DwarFS tools are bundled automatically during the build process — static binaries (dwarfsextract, dwarfsck) are downloaded from the official releases and installed alongside the thumbnailer. No additional installation is required.
To disable bundling (e.g., for distro packaging where you want to use system-provided dwarfs) use meson setup build -Dbundle_dwarfs=false
git clone https://github.com/kem-a/appimage-thumbnailer.git
cd appimage-thumbnailer
meson setup build
ninja -C build
sudo ninja -C build installInstallation 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.
Type appimage-thumbnailer --help for more info
- If icons do not refresh immediately, clear cached entries and reopen your file manager:
rm -rf ~/.cache/thumbnails/*- Run thumbnailer manually to test if icon is extracted
appimage-thumbnailer sample.AppImage icon.png 256This project is licensed under the MIT License. See LICENSE for details.