quickshell-rice/dracula-pro-blade-configs/PROJECT.md

26 lines
1.8 KiB
Markdown

# Project: QuickShell & Backend Optimization Project
## Architecture
- **UI Layer**: `quickshell/` - QML components, panels, popups, and widgets running via QuickShell engine on Wayland.
- **Service Layer**: `quickshell/services/` - QML Service wrappers interfacing with system daemons/DBus/CLI tools.
- **Backend Layer**: `scripts/` - Shell and Python utilities providing system data (audio, brightness, network, mpris, weather, power, theme, wm, disks, clipboard).
- **Environment**: KDE Plasma on Wayland.
## Milestones
| # | Name | Scope | Dependencies | Status |
|---|------|-------|-------------|--------|
| 1 | Pre-Flight Dependency Audit & Infra Setup (R4) | Audit missing tools, Python modules, CLI utilities, generate DEPENDENCIES.md | none | DONE |
| 2 | QuickShell QML Performance & Fluidity Optimization (R1) | Eliminate QML micro-stutters, binding bottlenecks, inefficient timers, optimize 60fps animations | M1 | DONE |
| 3 | Backend Script Optimization & Event-Driven Architecture (R2) | Refactor high-frequency shell polling in scripts/ & quickshell/services/ to event-driven/async non-blocking | M1 | DONE |
| 4 | KDE/Wayland Compatibility & Integration Verification (R3) | Verify WirePlumber, brightnessctl, nmcli, playerctl, KWin integration & fallback handling | M2, M3 | DONE |
## Interface Contracts
### QuickShell ↔ Backend Scripts / System Services
- Asynchronous non-blocking subprocess invocation (`Process` / `ProcessManager`).
- DBus signal listeners (`dbus-monitor`, `playerctl --follow`, `pactl subscribe`, `nmcli monitor`) feeding QuickShell signals without polling loop.
- Fallback signals/defaults when CLI tools or services are unavailable.
## Code Layout
- `quickshell/`: QML files, components, services, theme, bar/panel configurations
- `scripts/`: Shell scripts, Python scripts, daemon helpers