26 lines
1.8 KiB
Markdown
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
|