sankalp
b8e1162743
refactor(dock): add cached icon surface fields
2026-08-02 13:37:10 +05:45
sankalp
86b8ad51ad
perf(dock): cache icon surfaces, coalesce title fetches
2026-08-02 13:37:10 +05:45
sankalp
456545e6a6
perf: break animator and popup ref cycles, suspend idle timers
...
Break self -> animator -> lambda cycles in smooth switch and flat scale
by stopping animators and disconnecting value handlers on destroy. Drop
mutual OSD window/osd refs and clear the applet active-popup class ref.
Suspend the dock animation loop when nothing animates, pause the desktop
system info poller while unmapped, replace the OSD watchdog polling with
a single shot at expiry, lower the notch visualizer tick rate, and
cancel outstanding dock occlusion/rebuild timers on teardown.
2026-08-01 19:53:15 +05:45
sankalp
3c93ac1c20
fix: disconnect signals and config callbacks on destroy
...
- dock/main.py: off_config_change in destroy()
- switcher/main.py: add destroy() for capture signals + config
- panel/main.py: disconnect fullscreen-changed signal
- notification_center.py: add destroy() for 4 notification signals
2026-07-31 01:37:16 +05:45
sankalp
92c2b92333
refactor: remove redundant Box wrappers
...
- dock/main.py: canvas_box eliminated, Revealer wraps canvas directly
- desktop/system.py: two single-child Box wrappers removed
- controlcenter/player.py: redundant album_cover wrapper removed
- controlcenter/expanded_player.py: same pattern as player.py
2026-07-31 00:39:53 +05:45
sankalp
f93f5f8942
feat(dock): add hover_scale config change handler
2026-07-30 22:52:00 +05:45
sankalp
3ad4221a9a
feat(dock): use max_scale() for icon cache size and drop custom cairo filter
2026-07-30 22:52:00 +05:45
sankalp
c94dbff55e
feat(dock): call max_scale() instead of MAX_SCALE constant in layout
2026-07-30 22:51:59 +05:45
sankalp
1f24c5c3e8
feat(dock): replace MAX_SCALE constant with config-backed max_scale() function
2026-07-30 22:51:54 +05:45
sankalp
f4689b8076
refactor(config): reorganize config.toml into sections
...
- Move all settings into [general], [dock], [panel], [switcher], [notification]
- Remove [desktop_widgets] section, move items to panel/general
- Add dot notation support to config service for nested keys
- Update all config references across codebase
2026-07-28 13:34:23 +05:45
sankalp
8f6a040bb7
refactor(dock): replace 300ms occlusion poll with Hyprland events
...
- Subscribe to openwindow, closewindow, movewindow, workspace, fullscreen
- 50ms debounce to batch rapid successive events
- Event-driven check instead of continuous polling
- Proper cleanup with _disconnect_occlusion_signals()
2026-07-18 21:43:36 +05:45
sankalp
c00236fc69
fix(dock): remove pointless del svg_w, add warning on trash SVG failure
...
The del was a no-op (GC handles scope exit). The bare except Exception
hid real rendering errors — now logs at warning level.
2026-07-18 14:13:36 +05:45
sankalp
83af1829c4
refactor(src/window/dock/canvas): reorganize client lookup and tooltip generation to prevent stale references
2026-07-16 12:13:01 +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
04ac938dd2
refactor(src/window/dock): replace manual drawing of shadows, borders, and backgrounds with Gtk.render_background and Gtk.render_frame
2026-07-14 21:58:35 +05:45
sankalp
6f2d0bf444
chore: refactor imports and adopt new utils utilities
2026-07-14 18:45:52 +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
c0a4b1b792
refactor(src/window/dock): improve desktop file search matching logic
...
Check exact desktop file name first and enhance matching algorithm to prioritize exact matches, compute relevance scores, and return the best match.
2026-07-14 02:36:20 +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
3142d70279
refactor(dock): extract DockItem into items.py, remove TYPE_CHECKING
...
DockItem, DockModel, DockHitTest moved to items.py.
layout.py and animator.py now import directly — no circular deps.
2026-07-12 19:25:06 +05:45
sankalp
980734f465
fix(dock): quote TYPE_CHECKING annotations for runtime safety
...
DockItem and DockCanvas are only imported under TYPE_CHECKING.
String-annotate their usage so they aren't evaluated at runtime.
2026-07-12 19:21:58 +05:45
sankalp
07d35d8fdf
fix(dock): restore TYPE_CHECKING guards to break circular imports
...
animator.py and layout.py both circular-import from canvas.py.
Restore the TYPE_CHECKING blocks and suppress TC004 globally.
2026-07-12 19:20:24 +05:45
sankalp
c9f3f27e18
refactor: remove occlusion.py wrapper, import check_occlusion from services.modus directly
2026-07-12 18:59:18 +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
0d83f2a129
refactor: remove unused signal parameters from event handlers
2026-07-09 18:57:19 +05:45
sankalp
5b8d6a62aa
refactor! : drop subprocess usage and centralize brightness service initialization
2026-07-08 12:25:02 +05:45