Commit Graph
615 Commits
Author SHA1 Message Date
sankalp bffedbe3ae feat(src/shared/styles): narrowmin-width to match standard player width
Reduced min-width to align with design specifications and maintain consistent UI across platforms.
2026-06-17 03:17:49 +05:45
sankalp e4d139d541 refactor(src/services): rename MprisPlayer to PlayerService and streamline MPRIS integration
Remove legacy PlayerManager implementation and simplify signal handling for DBus players
2026-06-17 03:17:31 +05:45
sankalp 66af39f247 refactor(src/window/controlcenter): migrate WiFi handling to use │
│ network_service abstraction                                                  │
│                                                                              │
│ Updated logic to delegate network operations through NetworkService, renamed │
│ signal listeners, and simplified connectivity checks focusing on service     │
│ availability rather than session object emission.
2026-06-17 02:01:35 +05:45
sankalp 1ab30f6915 refactor(src/window/controlcenter): migrate WiFi handling to use network_service abstraction
Updated logic to delegate network operations through NetworkService, renamed signal listeners, and simplified connectivity checks focusing on service availability rather than session object emission.
2026-06-17 02:00:44 +05:45
sankalp dc150aee81 refactor(src/services): drop unused NetworkClient and simplify network handling
Prevent unused NetworkClient import and remove extensive network code that was blocking release; streamline to only Wifi service and needed helpers.
2026-06-17 02:00:26 +05:45
sankalp 9907acbce2 refactor(src/services): simplify battery.py imports and drop unused gi dependencies
Remove unused gi imports, streamline dependencies, and align with the updated module structure.
2026-06-17 01:49:16 +05:45
sankalp 87884eef09 feat(src/shared): add flat scale widget and smooth-switch styling
Implement animated flat scale widget with CSS styling and smooth-switch UI enhancements
2026-06-17 01:46:19 +05:45
sankalp 687c5d6bcf refactor(src/window/osd): replace Brightness.get_initial() with Brightness() to drop encapsulationRemove Brightness.get_initial() call and instantiate Brightness directly, simplifying the API and making the service easier to test and extend. 2026-06-17 01:46:02 +05:45
sankalp f78534dce0 refactor(src/window): migrate control center windows to AppletWindow and simplify UI
Replace Window base with AppletWindow for consistency, switch to FlatScale, and streamline mouse capture handling.
2026-06-17 01:45:43 +05:45
sankalp b8d3e74afd feat(src/services): rename BatteryService to Battery and add availability properties
Rename service to Battery, expose availability, charging, discharging properties and simplify interface for clarity
2026-06-17 01:45:24 +05:45
sankalp 400b8db954 feat(root): add ddcutil to install script
Add support for monitor DDC/CI control via ddcutil.
2026-06-17 01:45:06 +05:45
sankalp 850c41cddb Merge branch 'dev' of github.com:S4NKALP/Modus into dev 2026-06-17 01:26:57 +05:45
sankalp 0e41e5bb93 Customize modus.lua 2026-06-17 01:26:53 +05:45
sankalp 2a81a27ace feat(src/window/panel/components): improve Hyprland command dispatch syntax and workspace navigation
Use quoted commands and explicit method calls to avoid shell parsing issues.
2026-06-16 22:24:56 +05:45
sankalp d887e22f0b refactor(src/window/launcher/plugins): migrate subprocess calls to exec_shell_command_asyncUse unified async execution and updated hyprctl dispatch syntax 2026-06-16 22:24:36 +05:45
sankalp 7371b4fcb8 refactor(src/window): replace subprocess.Popen with exec_shell_command_async in dock.py
Use async-friendly API and drop shell=True to enhance safety and performance.
2026-06-16 22:24:19 +05:45
sankalp 0c266e9150 refactor(src/shared/styles): replace var(--radius-*) with apply(radius-*) throughout shared styles
Use apply() to align with the updated CSS variable system and ensure consistent radius theming
2026-06-16 22:24:02 +05:45
sankalp e6a4c48b2f feat(root): add hyprland integration and update dependenciesUpdate Fabric dependency to latest commit, pin versions in requirements.txt, enable Windows Subsystem for Linux support and add monkeypatch for hyprland dispatcher to ensure correct Lua calls 2026-06-16 22:23:44 +05:45
sankalp d45487ff13 Merge branch 'macos' into dev 2026-05-24 22:10:16 +05:45
sankalp f784baacfa migrate to lua for hyprland>=0.55 v1.0.0 2026-05-17 03:39:56 +05:45
sankalp 5502f85dd1 refactor(src/shared/styles): replace hardcoded CSS values with design token variables
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
2026-05-14 15:31:01 +05:45
sankalp 60c63308db feat(root): add Modugen template configuration to install script
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
2026-05-14 15:20:46 +05:45
sankalp 6a23002738 migrate to lua for hyprland>=0.55 2026-05-14 15:20:46 +05:45
sankalp 510e4dce42 Merge branch 'macos' into dev 2026-05-06 19:01:39 +05:45
sankalp 2cc287da64 Merge pull request #32 from S4NKALP/dependabot/pip/pillow-12.2.0 2026-05-06 19:00:59 +05:45
dependabot[bot] 5207c0e602 chore(deps): bump pillow from 12.1.1 to 12.2.0
Bumps [pillow](https://github.com/python-pillow/Pillow) from 12.1.1 to 12.2.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/12.1.1...12.2.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-version: 12.2.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-06 13:14:55 +00:00
sankalp d99f1e87c2 update 2026-05-06 18:55:31 +05:45
sankalp 63f0b046ca feat(src/window):restructure dock UI and application switcher using config‑driven layout 2026-05-03 22:06:48 +05:45
sankalp be308191c5 feat(src/window/panel): add persistent battery, network and bluetooth indicators with visibility handling and improve dropdown and config-driven layout logic
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()`.
2026-05-03 22:06:42 +05:45
sankalp 704c8b229c feat(src/shared): introduce settings window and refine visibility configurationAdd a dedicated settings window with full CSS styling and improve UI consistency
- 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
2026-05-03 22:06:35 +05:45
sankalp ebd50e585c refactor(src/utils): remove unused default settings
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
2026-05-03 22:06:28 +05:45
sankalp 244a913d96 feat(src/services): add config persistence, reload handling and notification pruning on config change
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`
2026-05-03 22:06:23 +05:45
sankalp 791400f437 chore(src/services): remove auth service module- Removed legacy authentication service code.
- Cleaned up unused imports and configuration.
2026-05-03 20:20:05 +05:45
sankalp 27c8bb5151 chore(root): remove unused dependencies
Removed pyotp, pyzbar, and thefuzz from pyproject.toml and requirements.txt to simplify dependencies.

- Enhancements
  - Cleaned up redundant dependencies.
- Bug Fixes
  - None.
2026-05-03 20:20:01 +05:45
sankalp 2c6a75970a refactor(src/utils): replace urllib with httpx and add currency symbol mapping
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.
2026-05-03 20:16:58 +05:45
sankalp 730b7b1446 feat(src/window/controlcenter): migrate artwork caching to use httpx
- 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.
2026-05-03 20:16:52 +05:45
sankalp 746acee1d2 feat(root): add httpx dependency
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.
2026-05-03 20:16:49 +05:45
sankalp ca45348827 refactor(src/window/desktop): replace urllib with httpx in http_get_json
- Replace urllib.request with httpx.get to simplify HTTP handling and improve error resilience
- Update docstring to reflect httpx usage- Remove unused json and urllib.request imports
- Streamline header and timeout configuration
2026-05-03 20:16:44 +05:45
sankalp 3e5552b7f3 fix(src/window/launcher/plugins): refine calculator unit conversion parsing
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.
2026-05-03 20:16:38 +05:45
sankalp d51f30f058 feat(src/window/launcher): trigger search on new text instead of clearing results
- Show applications when query is empty
- Schedule search via GLib timeout
- Improves UI responsiveness and correctness
2026-04-25 08:48:01 +05:45
sankalp f92c42d224 remove bloatware plugins 2026-04-25 08:30:03 +05:45
sankalp 6577c19dcb related to memory leak 2026-04-23 16:09:52 +05:45
sankalp 7eb21daf2f hope it fix memory leak 2026-04-22 21:18:39 +05:45
sankalp 19575b5138 memory fixed :( 2026-04-22 21:17:26 +05:45
sankalp a656eda0ec memory fixed :( 2026-04-22 21:17:09 +05:45
sankalp 30a8ab5510 refactor(src/shared/styles): drop unused color definitionsRemoved the colors.css file that defined unused theme variables, reducing bundle size and eliminating stale style references.
- New Features: —
- Enhancements: removed unused color definitions
- Bug Fixes: —
2026-04-10 18:41:57 +05:45
sankalp 202cc9c6af feat(src):generate colors.css automatically and monitor style changes 2026-04-10 18:40:26 +05:45
sankalp 6449da8c27 feat(root): bump version to 0.2.0 and update dependencies
- 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
2026-04-10 18:40:22 +05:45
sankalp ffb9bc081d fix(root): Remove.py extension from lock command in README
- Corrected lock command reference from `uv run lock.py` to `uv run lock` to match the intended executable, fixing documentation error.
2026-04-10 17:17:03 +05:45
sankalp 89524a9787 chore(root): update .gitignore and regenerate uv.lockUpdated .gitignore to reflect new config locations and removed outdated ignore patterns.
- 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.
2026-04-10 17:14:07 +05:45