Phase 1 - Application scaffolding: - GTK4/libadwaita application window with AdwNavigationView - GSettings-backed window state persistence - GResource-compiled CSS and schema - Library view with grid/list toggle, search, sorting, filtering - Detail view with file info, desktop integration controls - Preferences window with scan directories, theme, behavior settings - CLI with list, scan, integrate, remove, clean, inspect commands - AppImage discovery, metadata extraction, desktop integration - Orphaned desktop entry detection and cleanup - AppImage packaging script Phase 2 - Intelligence layer: - Database schema v2 with migration for status tracking columns - FUSE detection engine (libfuse2/3, fusermount, /dev/fuse, AppImageLauncher) - Wayland awareness engine (session type, toolkit detection, XWayland) - Update info parsing from AppImage ELF sections (.upd_info) - GitHub/GitLab Releases API integration for update checking - Update download with progress tracking and atomic apply - Launch wrapper with FUSE auto-detection and usage tracking - Duplicate and multi-version detection with recommendations - Dashboard with system health, library stats, disk usage - Update check dialog (single and batch) - Duplicate resolution dialog - Status badges on library cards and detail view - Extended CLI: status, check-updates, duplicates, launch commands 49 tests passing across all modules.
47 lines
855 B
TOML
47 lines
855 B
TOML
[package]
|
|
name = "driftwood"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
license = "GPL-3.0-or-later"
|
|
|
|
[dependencies]
|
|
gtk = { version = "0.11", package = "gtk4", features = ["v4_16"] }
|
|
adw = { version = "0.9", package = "libadwaita", features = ["v1_6"] }
|
|
glib = "0.22"
|
|
gio = "0.22"
|
|
|
|
# Database
|
|
rusqlite = { version = "0.33", features = ["bundled"] }
|
|
|
|
# CLI
|
|
clap = { version = "4", features = ["derive"] }
|
|
|
|
# File hashing
|
|
sha2 = "0.10"
|
|
|
|
# Time
|
|
chrono = "0.4"
|
|
|
|
# XDG directories
|
|
dirs = "6"
|
|
|
|
# Human-readable sizes
|
|
humansize = "2"
|
|
|
|
# HTTP client (sync, lightweight - for update checks)
|
|
ureq = { version = "3", features = ["json"] }
|
|
|
|
# JSON parsing
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
|
|
# Logging
|
|
log = "0.4"
|
|
env_logger = "0.11"
|
|
|
|
# Temp directories (for AppImage extraction)
|
|
tempfile = "3"
|
|
|
|
[build-dependencies]
|
|
glib-build-tools = "0.22"
|