sankalp
2482078a3f
style: simplify section comments to plain # style in notch.py and keyboard_layout.py
2026-07-18 19:06:32 +05:45
sankalp
476ed7e4fb
fix(workspace): replace broken _config_handlers import with off_config_change
...
Same silent ImportError leak as panel/main.py — callbacks were never
unregistered on widget destroy.
2026-07-18 14:12:44 +05:45
sankalp
6ef48af963
fix(panel): replace broken _config_handlers import with off_config_change
...
Panel destroy was importing nonexistent _config_handlers from config,
causing silent ImportError and leaked reload callbacks.
2026-07-18 14:12:37 +05:45
sankalp
a47abda55a
fix: resolve wifi crashes, shell injections, race conditions, and add debug mode
...
- Remove transient NEED_AUTH/DISCONNECTED error paths from wifi connect
- Guard double-callback in connect_wifi_bssid/connect_wifi_with_password
- Shell-quote user paths in wallpaper, screenshot, screenrecorder services
- Fix OSD hide-timer use-after-free and applet_window stale source ID
- Fix brightness poll timer leak on read failure
- Fix spotlight search stale idle source removal
- Lock dbusmenu _cache mutation under _registry_lock
- Fix entry.revision written outside _registry_lock scope
- Add fabric-cli exec wrapper for lock screen (lock_screen.lock())
- Replace hyprlock with lock screen in power menu and dropdown
- Add debug mode toggle in settings (controls log verbosity)
- Add diagnostic logging to globalmenu click chain
2026-07-16 11:47:53 +05:45
sankalp
e63a2c04a5
refactor: extract reusable utils, remove screencapture facade
...
- Add ManagedTimer to replace repeated source_remove/timeout_add boilerplate
- Add EvdevLockService base class for numlock/capslock (cut 154→28 lines)
- Add BaseNotchIndicator for 5 near-identical indicator classes (cut 404→171 lines)
- Add load_pixbuf_thumbnail and resolve_monitor to utils
- Delete screencapture.py facade; callers use Screenshot/ScreenRecorder directly
2026-07-15 10:01:40 +05:45
sankalp
4df8b93e6c
fix(src/window/panel/components/globalmenu): correct active window detection to exclude Modus
2026-07-14 22:00:10 +05:45
sankalp
6f2d0bf444
chore: refactor imports and adopt new utils utilities
2026-07-14 18:45:52 +05:45
sankalp
2d22df94ca
refactor: drive UI from service signals, drop redundant polling
...
- bluetooth.py / wifi.py: remove 5s periodic refresh timers; rely on
service `changed`/`device-added`/`device-removed`/`notify` signals
- expanded_player.py: remove 500ms metadata poll; rely on
`meta-change`/`artwork-change` signals
- player.py (notch): connect previously dangling `artwork-change` handler
- popup_win.py: silence harmless "nothing connected" warning on destroy()
No behaviour change; eliminates dead timers and log spam.
2026-07-14 13:46:21 +05:45
sankalp
f72542a231
refactor: log swallowed exceptions across src/
...
Replace silent swallow-excepts (pass/return/continue) with
logger.warning recording the caught error, preserving behaviour.
2026-07-14 13:02:21 +05:45
sankalp
54ff85ffc9
fix(services/spotlight): improve MPRIS artwork handling and scope keyword searches to single plugin
...
- mpris: native MediaArt cache lookup, dedupe play/pause emission, safe
cleanup, artwork polling for already-playing browser players, drop
os.system seek fallback
- spotlight: scope plugin keyword and detect() matches to a single plugin
via search_single instead of global search; register clipboard keywords
(clip/clipboard)
2026-07-13 22:20:19 +05:45
sankalp
795e259e16
fix(panel): wire search button to toggle spotlight
...
- Add on_clicked handler to search button in panel
- Add set_spotlight_toggle() method on Panel
- Connect spotlight.toggle in main.py after both are created
2026-07-12 20:16:23 +05:45
sankalp
096231bc44
style: enforce consistent codestyle via ruff config and auto-fixes
...
- Configure ruff: isort, pyupgrade, bugbear, flake8 rules
- Auto-fix import sorting, redundant parens, exception chaining
- Remove from __future__ import annotations (Python 3.13+)
- Convert debug print() to logger calls
- Fix typo applicaiton → application in icon_resolver
- Remove bare returns in animator setters
- Move TYPE_CHECKING imports to runtime where used at runtime
2026-07-12 18:38:13 +05:45
sankalp
4637799e11
feat(src/window/pomodoro): implement Pomodoro timer widget and integrate it into the panel
...
Add Pomodoro component with UI controls and state management,
modify Panel to instantiate and cache Pomodoro and TodoList widgets,
hook datetime button to toggle Pomodoro and handle right‑click on todo list,
extend destroy logic to cleanly close Pomodoro and Todo instances.
2026-07-12 09:32:47 +05:45
sankalp
ccfd1aecc1
feat(cache): implement icon theme aware caching for notification icons and cleanup on theme change
2026-07-12 02:44:56 +05:45
sankalp
1dd99cf79d
refactor(src/window): remove unused ApplicationSwitcher component
2026-07-09 22:33:14 +05:45
sankalp
0d83f2a129
refactor: remove unused signal parameters from event handlers
2026-07-09 18:57:19 +05:45
sankalp
822a0eadcc
feat(src/window/panel): connect fullscreen state change handler
...
Add handler for fullscreen changes to automatically toggle panel visibility, improving user experience.
2026-07-08 13:22:09 +05:45
sankalp
d1e1e68da5
refactor: remove unused UI components and add quit functionality
2026-07-08 13:02:22 +05:45
sankalp
5b8d6a62aa
refactor! : drop subprocess usage and centralize brightness service initialization
2026-07-08 12:25:02 +05:45
sankalp
a4b38e3b14
fix(src/window/panel/notch): cancel transient indicator so scroll can navigate
2026-07-06 20:52:34 +05:45
sankalp
eaaf9645a2
feat(src/window/panel/notch/indicators): add MicrophoneIndicator class and integrate into Notch
...
Add MicrophoneIndicator to monitor microphone presence and mute state, updating UI via show/hide callbacks.
2026-07-06 20:35:21 +05:45
sankalp
fced1a0723
feat(src/window/panel): replace hardcoded config path with dynamic toml_file lookup
2026-07-06 17:39:23 +05:45
sankalp
967503d0b7
fix(src/window/panel/notch): fix typo in charging.svg filename
2026-07-06 00:34:26 +05:45
sankalp
56f1a338b7
refactor(src/window/panel/notch): move icons to notch/ path and adjust sizes
...
Update icon paths to use notch/ prefix and increase size of charging indicator to 24px.
2026-07-05 23:11:38 +05:45
sankalp
ec65d8ead4
feat(src/window/panel/panel): add NumLockIndicator and ChargingIndicator, improve battery service initialization
2026-07-05 23:05:49 +05:45
sankalp
f0c67c0483
fix(src/window/panel/notch): ensure monitoring started on indicator access
2026-07-05 22:27:20 +05:45
sankalp
43d8306454
feat(src/window/panel/notch): add CapsLockIndicator and KeyboardLayoutIndicator
...
Add transient indicator pages for caps lock and keyboard layout, update stack children and handling to show/hide after timeout.
2026-07-05 22:25:32 +05:45
sankalp
99654a7c07
refactor(indicators): switch Bluetooth import to services.bluetooth
2026-07-05 22:07:57 +05:45
sankalp
59376608dd
feat(src/window/panel/notch): reduce visualizer bar count and integrate artwork image
...
Reduce bar count from 10 to 8 and adjust height limits, add CustomImage widget for artwork, update visibility handling to show/hide fallback and artwork
2026-07-05 21:14:56 +05:45
sankalp
86b02989e4
refactor(src/window/panel/notch): improve visualizer implementation and add static tunables
...
Replace random-based bar generation with deterministic sine animation, rename internal state and constants, split visualizer logic into explicit methods, update drawing to use style colors, consolidate signal and timer handling, and streamline idle/reset behavior.
2026-07-05 20:56:52 +05:45
sankalp
829693af00
refactor(src/window/panel/notch): simplify recording logic and add idle widget handling
2026-07-05 00:06:07 +05:45
sankalp
d8b9903b45
feat: add notch panel implementation
2026-07-04 22:27:52 +05:45
sankalp
1dc4a286c4
refactor: replace RecordingIndicator with Notch in panel UI
2026-07-04 22:27:35 +05:45
sankalp
5ba8f0e4d5
refactor(src/window/panel/components): remove recording_indicator module
2026-07-04 22:27:18 +05:45
sankalp
f55db03235
refactor(panel): remove redundant hide_dropdowns and changed_dropdown implementations
...
These methods were relocated to central handling via _get_all_buttons and manage_button_style_classes, simplifying the class.
2026-07-04 21:23:06 +05:45
sankalp
76f4650409
refactor(src/window/panel/components): drop google_lens_indicator and simplify command handling
...
Refactor ModPopup to use shell -c for commands, adjust icon size default, and improve button click handling. Remove unused GoogleLensIndicator component and related import/usage.
2026-07-04 06:47:59 +05:45
sankalp
0d11b68add
feat(src/window): switch configuration from JSON to TOML and refactor pinned apps handling
2026-07-04 06:29:01 +05:45
sankalp
09a01a7f41
fix(src/window/panel): handle missing label gracefully when updating dropdown
2026-07-04 05:00:54 +05:45
sankalp
6d5d8cce88
feat(src/window/panel): rename panel title and update imports
...
Change title of create_control_window to "modus-controlcenter" and adjust Panel title to "mdous-bar". Update import ordering and remove redundant imports for clarity.
2026-07-04 01:24:41 +05:45
sankalp
bc07920f1a
refactor(src/window/panel/components): adjust top-level menu filtering to respect visibility
...
Ensure only visible top-level items are considered
Prevent hidden items from appearing in the menu hierarchy
2026-06-23 14:29:06 +05:45
sankalp
6707e1e830
feat(src/window): migrate device monitoring to map/unmap events
...
Ensure monitoring starts only when the widget is shown and stops on hide, preventing timer leaks and unnecessary refreshes
2026-06-23 14:11:25 +05:45
sankalp
ef0b9f0b68
feat(deps): lock fabric to specific commit and add required dependencies
...
Align with latest stable API and ensure reproducible builds
2026-06-22 17:46:34 +05:45
sankalp
2a15d71c33
feat(globalmenu): got a prototype of working globalmenu for some apps
2026-06-22 15:58:10 +05:45
sankalp
dd9cd58106
refactor(src/window/panel/components): simplify visibility toggle in _on_title_button_clicked
...
Use Toggle for clearer intent
2026-06-17 05:32:42 +05:45
sankalp
9cbde2c58f
refactor(src/window):improve error handling with logging
2026-06-17 05:21:36 +05:45
sankalp
6c478710dc
refactor(src/window/panel/components): remove redundant hide_control_center call in on_network_direct_changed
...
Remove redundant hide_control_center(self.wifi_window) which had no effect after UI redesign; simplifies logic and avoids unnecessary side effects.
2026-06-17 04:53:01 +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
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
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
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