d493516efa2dc4d8664dfc1b2cf9cd343349e974
Detect AppImages that crash immediately after spawning (within 1.5s) by capturing stderr and using try_wait(). Show a full AlertDialog with a plain-text explanation, scrollable error output, and a copy-to-clipboard button. Covers Qt plugin errors, missing libraries, segfaults, permission issues, and display connection failures. Move launch operations to background threads in both the detail view and context menu to avoid blocking the UI during the 1.5s crash detection window. Suppress all 57 compiler warnings across future-use modules (backup, notification, report, watcher) and individual unused fields/variants in other core modules.
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
Releases
1
Driftwood v0.1.0
Latest
Languages
Rust
98%
CSS
1.4%
Shell
0.4%
Meson
0.2%