Introduce consistent design tokens for radii and colors, replacing alpha() and hardcoded values with theme variables for easier theming and maintenance.
- New Features: - Add CSS variable usage for radii (var(--radius-*)) and color tokens (@border-subtle, @text-main, @accent)
- Enhancements:
- Replace hardcoded border, radius, and color definitions with variable references
- Align styling with the project's theme system
- Bug Fixes:
- No bug fixes included
This change adds automatic configuration of Matugen templates for Modus themes, ensuring a consistent look‑and‑feel across Hyprland and terminal setups. It introduces checks to prevent duplicate entries and provides user feedback via progress and success messages.
- New Features:
- Added Modus template blocks for Matugen (modus and hyprland)
- Integrated progress and success messaging for template installation
- Enhancements:
- Updated Hyprland Lua path to an absolute location
- Added validation for existing Matugen config file
- Bug Fixes:
- None
The refactor introduces persistent indicator widgets and updates how visibility and layout are managed based on configuration changes.
New Features
- Added BatteryIndicator, NetworkIndicator and BluetoothIndicator as persistent panel children.
- Implemented visibility toggling for each indicator according to configuration and battery presence.
- Added debug prints when an indicator’s visibility changes or a battery is not detected.
Enhancements
- Updated dropdown actions to use `get_about_window()` and `get_settings_window()` for About and System Settings entries.
- Switched layout rebuilding to use `get_config_all()` and now only rebuilds when specific keys actually change.
- Removed manual recreation of indicators; visibility is controlled via `show()`/`set_visible()`.
- Consolidated changed‑key detection and added logging of rebuild reasons.
- Streamlined config key checks to use `config_data.get(..., True)`.
Bug Fixes
- Fixed BatteryIndicator to hide and log when no battery is detected.
- Corrected use of `config_data.get()` with appropriate fallback values.
- Updated layout updates to use `show()` and trigger a resize queue instead of `show_all()`.
- New Settings window implementation with styling and layout
- Updated visibility configuration to use direct configuration keys
- Simplified layer‑shell positioning logic and improved reliability
Enhancements- Refactored MouseCapture geometry calculations for cleaner code
- Integrated size‑allocate handler to maintain input region sync
- Added global About window singleton and improved toggle behavior
Bug Fixes
- Fixed potential index errors in MouseCapture coordinate calculations- Resolved missing imports and path issues for icon assets
Remove several default configuration entries that are no longer required, cleaning up dead code and reducing configuration surface.
- Cleanup: drop unused constants
- Maintenance: simplify DEFAULT dict
Add ability to persist current configuration to disk and trigger reloads, expose set() and save() methods, monitor the config directory for changes, and adjust notification history based on config modifications.
- New Features
- Implement `save()` method to write config to file and trigger reload
- Add `set()` method for in‑memory config updates
- Extend file monitoring to include parent directory
- Rename `get_all_config` to `get_config_all`
- Enhancements
- Refine reload logic to correctly capture previous state via `_last_notified_config`
- Trigger reloads on additional file‑monitor events (CREATED, DELETED)
- Prune cached notifications according to config changes (`notification_ignored_apps`, `notification_limited_apps_history`)
- Bug Fixes
- Resolve race condition where reload‑pending flag could be left set
- Ensure callbacks are notified on every reload request
- Fix stale comparison of config values in `has_changed`
Removed pyotp, pyzbar, and thefuzz from pyproject.toml and requirements.txt to simplify dependencies.
- Enhancements
- Cleaned up redundant dependencies.
- Bug Fixes
- None.
Why: Modernize HTTP client usage and expose currency symbols for conversion.
New Features
- Added `CURRENCY_SYMBOLS` mapping from symbols to currency codes.
- Switched all external requests to `httpx` with custom headers and redirects.
Enhancements
- Increased timeout to 10 seconds and enabled `follow_redirects=True`.
- Centralized error handling with explicit status‑code checks.
Bug Fixes
- Added proper exception handling for JSON parsing to avoid silent failures.
- Improved error messages for non‑200 responses.
- New Feature: Replace urllib.request with httpx for fetching artwork URLs, providing timeout and redirect support.
- Enhancement: Added proper HTTP status code handling and early exit on download cancellation.
- Bug Fix: Gracefully handle non‑200 responses and prevent resource leaks during network operations.
Add httpx>=0.28.1 as a new HTTP client dependency.
New Features- Added httpx>=0.28.1 to pyproject.toml and requirements.txt.
Enhancements
- Updated uv.lock to include httpx package metadata.
Bug Fixes
- None.
The updated regex now matches non‑numeric unit prefixes, and units are normalized before conversion, improving accuracy and preventing mismatches.
- Bug Fixes: Fixed incorrect unit detection that caused failed conversions.
- Enhancements: Added unit cleaning (`converter.clean_type`) to standardize input.
- New Features: None.
- New Features
- Incremented project version to 0.2.0
- Enhancements
- Fixed image reference to use src/assets/modus.png
- Pinned pywayland to exact version 0.4.18
- Added explicit version constraints for new dependencies
- Bug Fixes
- None
- New Features: Added tracking of config/ files and removed stale asset ignores.
- Enhancements: Regenerated uv.lock with updated dependency versions, including cffi and click.
- Bug Fixes: Eliminated ignore rules that could unintentionally exclude new project files.
Introduce helper functions to invoke the primary application and lock entry points, enhancing modularity and testability.
New Features
- run_app(): launches the main application.
- run_lock(): launches the lock module.
Enhancements
- Refactor start.py to isolate command execution logic.
This change adds a mechanism to refresh the todo list dynamically when the underlying service updates, improving UI responsiveness and user experience. It also updates documentation and removes deprecated files.
- New Features:
- Added `_refresh_todos` method to rebuild the todo list when `get_todo_service().todos` changes.
- Introduced `TodoListCapture` class for mouse capture handling of the todo list window.
- Enhancements:
- Updated README with corrected image paths, installation tips, and manual installation commands.
- Introduced `start.py` to launch the application or lock mode.
- Removed deprecated `config.json` and `debug_memory.py`.
- Bug Fixes:
- Fixed lock screen screenshot path in README.
- delete gamemode.sh, hyprpicker.sh, and screen-capture.sh as they are no longer used
- cleanup of dead code simplifies project structure and reduces maintenance overhead
Replace transparent background with theme variable and tidy up CSS.
- New Features
- Enhancements
- Use `@bg` instead of `alpha(#fff, 0.07)`
- Remove unused comment blocks
- Bug Fixes
- Clean up duplicated CSS comments and whitespace