101 lines
2.6 KiB
Markdown
101 lines
2.6 KiB
Markdown
# 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
|
|
|
|
```sh
|
|
# 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
|
|
|
|
```sh
|
|
# 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
|
|
|
|
CC0-1.0 (Public Domain)
|