lashman 830c3cad9d Fix second audit findings and restore crash detection dialog
Address 29 issues found in comprehensive API/spec audit:
- Fix .desktop Exec key path escaping per Desktop Entry spec
- Fix update dialog double-dispatch with connect_response
- Fix version comparison total ordering with lexicographic fallback
- Use RETURNING id for reliable upsert in database
- Replace tilde-based path fallbacks with proper XDG helpers
- Fix backup create/restore path asymmetry for non-home paths
- HTML-escape severity class in security reports
- Use AppStream <custom> element instead of <metadata>
- Fix has_appimage_update_tool to check .is_ok() not .success()
- Use ListBoxRow instead of ActionRow::set_child in ExpanderRow
- Add ELF magic validation to architecture detection
- Add timeout to extract_update_info_runtime
- Skip symlinks in dir_size calculation
- Use Condvar instead of busy-wait in analysis thread pool
- Restore crash detection to single blocking call architecture
2026-02-27 22:48:43 +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%