New Features
- Added uv as the primary package manager and introduced new system packages awww, apple-fonts, swappy, and wl-clipboard.
- Removed many redundant Python packages from the install script.
Enhancements
- Replaced Pillow-based QR code detection with GdkPixbuf, eliminating the python-pillow dependency.
- Fixed a typo in the import (`ConfigServic` → `ConfigService`) and corrected service imports.
- Updated the application launch to use `uwsm app -- uv run main.py` for uv-managed execution.
Bug Fixes
- Resolved import typo that prevented proper ConfigService initialization.
- Adjusted QR-code decoding logic to correctly handle image pixel channels, improving robustness.
Introduce a new OSDWindow implementation, expose keyboard layout configuration, and modernize dependency handling and helper utilities.
- **New Features**
- Added `keyboard_layouts` list (`us`, `np`) to `config.json`
- Created `OSDWindow` class and updated `main.py` to use it
- Introduced new service modules (`battery`, `brightness`, `capslock`, `network`, `mpris`, `todo`, `modus`) and expanded `services/__init__.py`
- Added `CommandResult` and `run_command` helper in `utils/functions.py`
- **Enhancements**
- Upgraded numerous dependencies to newer versions and switched `fabric` to a git source
- Replaced bare `except:` with `except Exception:` in `WiFiPasswordDialog`
- Improved type hints (`NamedTuple`, `TypeVar`) and refactored JSON file helpers
- Added property notifications for battery percentage, state, and presence
- **Bug Fixes**
- Fixed incorrect return type annotation in `read_json_file`
- Corrected tick‑handler logic to avoid double registration
- Properly notify listeners on battery property changes
- Ensured proper exception handling and cleanup in utility functions