lashman 582344ad48 Fix catalog refresh: handle null fields in AppImageHub feed JSON
The AppImageHub feed.json contains null values where arrays/strings are
expected (296 items with null links, 6 items with null inside categories
arrays). Changed AppImageHubItem deserialization to use Option types and
flatten nulls. Also fixed refresh handler to dynamically look up the
catalog source from DB instead of hardcoding id.
2026-02-28 00:46:39 +02:00

Driftwood

A modern GTK4/libadwaita AppImage manager for GNOME desktops.

Driftwood discovers, inspects, integrates, updates, and audits AppImage files with a clean GNOME-native interface built for the Wayland era.

Features

  • Library management - Scan directories to discover AppImages, view them in grid or list mode with status badges for FUSE, Wayland, and update status
  • Desktop integration - Create .desktop files and install icons with one click
  • FUSE and Wayland detection - Automatically detect compatibility and suggest launch methods (direct, extract-and-run, or sandboxed)
  • Update checking - Read embedded update information (GitHub Releases, GitLab, zsync) and check for newer versions
  • Security scanning - Extract bundled shared libraries and check them against the OSV.dev vulnerability database
  • Duplicate detection - Find AppImages that are different versions of the same app or identical files in different locations
  • Disk footprint analysis - Discover config, data, and cache files associated with each AppImage
  • Sandboxing - Optional Firejail sandbox support per-app
  • Orphan cleanup - Detect and remove .desktop files for AppImages that no longer exist
  • CLI interface - Full command-line access to all core features

Requirements

  • GTK 4.16+
  • libadwaita 1.6+
  • SQLite 3
  • gettext

Optional:

  • firejail (for sandboxed launches)
  • fuse2/fuse3 (for AppImage FUSE mounting)
  • appimageupdate (for delta updates)

Building from source

# Development build (uses cargo directly)
cargo build
cargo run

# System installation (uses meson)
meson setup build --prefix=/usr
meson compile -C build
sudo meson install -C build

CLI usage

# Scan configured directories for AppImages
driftwood scan

# List all known AppImages
driftwood list
driftwood list --format json

# Inspect a specific AppImage
driftwood inspect ~/Applications/Firefox.AppImage

# Integrate into desktop menu
driftwood integrate ~/Applications/Firefox.AppImage

# Check for updates
driftwood check-updates

# Run a security scan
driftwood security
driftwood security ~/Applications/Firefox.AppImage

# Launch with tracking
driftwood launch ~/Applications/Firefox.AppImage
driftwood launch --sandbox ~/Applications/Firefox.AppImage

# Find duplicates
driftwood duplicates

# Show disk footprint
driftwood footprint ~/Applications/Firefox.AppImage

# System status
driftwood status

# Clean orphaned entries
driftwood clean-orphans

Packaging

  • Flatpak: See build-aux/app.driftwood.Driftwood.json
  • Arch Linux (AUR): See packaging/PKGBUILD

License

GPL-3.0-or-later

Description
A modern GTK4/libadwaita AppImage manager for GNOME desktops
Readme CC0-1.0 2 MiB
2026-03-01 14:56:21 +02:00
Languages
Rust 98%
CSS 1.4%
Shell 0.4%
Meson 0.2%