Skip to content

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) before falling back to the first root-level .svg and then .png inside the AppImage.
  • Streams archive data directly from 7z into librsvg/GdkPixbuf without temporary files.
  • Preserves aspect ratio while scaling toward the requested size (upscales when the source is smaller) within the safe 1–4096 range (default 256).
  • Ships appimage-thumbnailer.thumbnailer so file managers can dispatch the helper automatically once installed.

Prerequisites

  • Tooling: meson (>=1.1) and ninja for builds.
  • Runtime (at least one required):
    • 7z/p7zip-full for SquashFS AppImages (traditional format).
    • dwarfs tools (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-devel

Ubuntu / Debian:

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

Arch Linux:

sudo pacman -S meson ninja p7zip glib2 gdk-pixbuf2 librsvg cairo

DwarFS Support

DwarFS 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

Build & Install

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.

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. 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