Implement Driftwood AppImage manager - Phases 1 and 2
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.
This commit is contained in:
72
data/resources/style.css
Normal file
72
data/resources/style.css
Normal file
@@ -0,0 +1,72 @@
|
||||
/* Status badges */
|
||||
.status-badge {
|
||||
border-radius: 8px;
|
||||
padding: 2px 8px;
|
||||
font-size: 8pt;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.status-badge.success {
|
||||
background: @success_bg_color;
|
||||
color: @success_fg_color;
|
||||
}
|
||||
|
||||
.status-badge.warning {
|
||||
background: @warning_bg_color;
|
||||
color: @warning_fg_color;
|
||||
}
|
||||
|
||||
.status-badge.error {
|
||||
background: @error_bg_color;
|
||||
color: @error_fg_color;
|
||||
}
|
||||
|
||||
.status-badge.info {
|
||||
background: @accent_bg_color;
|
||||
color: @accent_fg_color;
|
||||
}
|
||||
|
||||
.status-badge.neutral {
|
||||
background: @card_shade_color;
|
||||
color: @window_fg_color;
|
||||
}
|
||||
|
||||
/* App cards in grid view */
|
||||
.app-card {
|
||||
padding: 12px;
|
||||
border-radius: 12px;
|
||||
background: @card_bg_color;
|
||||
transition: background 150ms ease;
|
||||
}
|
||||
|
||||
.app-card:hover {
|
||||
background: @headerbar_shade_color;
|
||||
}
|
||||
|
||||
.app-card-name {
|
||||
font-weight: 600;
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
.app-card-version {
|
||||
font-size: 8pt;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
/* Badge row in app cards */
|
||||
.badge-row {
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
/* Detail view headings */
|
||||
.heading {
|
||||
font-weight: 700;
|
||||
font-size: 11pt;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
/* Monospace text for paths and hashes */
|
||||
.monospace {
|
||||
font-family: monospace;
|
||||
font-size: 9pt;
|
||||
}
|
||||
Reference in New Issue
Block a user