Commit Graph
25 Commits
Author SHA1 Message Date
sankalp beab79a405 refactor: extract shared mixins, fix cpu waste, resolve browser icons
- Extract CloseButtonRevealerMixin, PullToRefreshMixin, BasePlayerBoxStack
- Replace mpris.py 2s+5s D-Bus polling with Seeked signal subscription
- Remove redundant desktop/main.py os.listdir() poll (FileMonitor covers)
- Remove switcher/main.py 200ms capture timer, chain from frame-ready
- Resolve browser MPRIS icons via desktop file lookup, fallback to app name
- Fix CodeQL py/clear-text-storage by rounding lat/lon and stripping from cache
2026-07-31 01:35:25 +05:45
sankalp 87b093eabb fix(bluetooth): UI not updating when devices auto-connect externally 2026-07-22 15:08:02 +05:45
sankalp fcd2952d29 fix: some issue in bluetooth widget 2026-07-22 14:07:44 +05:45
sankalp e940883592 fix(bluetooth-ui): SVG battery icon and back button
- Replace GTK theme battery icons with SVG from assets/icons/battery/
- Replace back button icon with misc/chevron-left.svg
- Remove unused get_battery_theme_icon function
2026-07-22 10:24:41 +05:45
sankalp d97477b2b9 refactor(network): replace nmcli with native D-Bus for Wi-Fi management
This commit fully migrates the Python network service away from external wlan0: connected to Amar 2GNet
	"MEDIATEK MT7921 802.11ax"
	wifi (mt7921e), 2C:98:11:76:9B:2B, hw, mtu 1500
	ip4 default, ip6 default
	inet4 192.168.18.70/24
	route4 192.168.18.0/24 metric 600
	route4 default via 192.168.18.1 metric 600
	inet6 2405:acc0:1306:351c:ac94:2135:f9a8:5c89/64
	inet6 fe80::4057:8edd:a684:5e33/64
	route6 fe80::/64 metric 1024
	route6 2405:acc0:1306:351c::/64 metric 600
	route6 default via fe80::1 metric 600

lo: connected (externally) to lo
	"lo"
	loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
	inet4 127.0.0.1/8
	inet6 ::1/128

docker0: connected (externally) to docker0
	"docker0"
	bridge, 0A:89:72:7F:4D:75, sw, mtu 1500
	inet4 172.17.0.1/16
	route4 172.17.0.0/16 metric 0

p2p-dev-wlan0: disconnected
	"p2p-dev-wlan0"
	wifi-p2p, hw

enp2s0: unavailable
	"Realtek RTL8111/8168/8211/8411"
	ethernet (r8169), 40:C2:BA:53:D5:E4, hw, mtu 1500

DNS configuration:
	servers: 192.168.18.1
	interface: wlan0

	servers: fe80::1
	interface: wlan0

Use "nmcli device show" to get complete information about known devices and
"nmcli connection show" to get an overview on active connection profiles.

Consult nmcli(1) and nmcli-examples(7) manual pages for complete usage details.
subprocess calls, implementing native D-Bus communication for a more robust and
integrated architecture.

Key changes:
- :
  - Implemented native D-Bus methods for , , and .
  - Updated  to track , , and  state.
  - Fixed a bug where D-Bus  returned a tuple, preventing known networks from being parsed correctly.
- :
  - Wired UI events to the new D-Bus connection methods.
  - Fixed a race condition in  initialization where it missed the synchronous  signal, leaving the UI permanently disabled.
  - Removed the  early-return optimization in  that was preventing the active CSS state from applying to already-known networks.
  - Cleaned up unused variables to satisfy  linting and removed redundant  blocks.
- :
  - Removed the 5-second timeout hack, as the new D-Bus service properly fires callbacks upon connection success/failure.
  - Removed hardcoded WPA2 text to make the dialog security-type agnostic.
- :
  - Cleaned up active state styling so only the SVG icon box highlights (using ) when a network is connected.
2026-07-21 14:33:35 +05:45
sankalp 4f36ada1c5 fix(controlcenter): flush stale-cache races in toggle UI
- Drop rfkill from bluetooth toggle (redundant with D-Bus Powered,
  was causing stale cache on next read)
- Force toggle switch and icon to target state immediately after
  setting, don't wait for D-Bus callback
- Fix nightlight icon race: flip local is_active instead of
  re-querying async kill state
- Guard wifi on_network_ready against ethernet-first device loop
  (emits device-ready per device; wifi_device None on first)
- Share single NetworkClient between main panel and wifi popup
  (eliminates async-init race of two independent instances)
- Strip connected: prefix from wlan label initial display
- Add _pending_toggle pattern to wifi notify handler to
  suppress stale-cache revert; same for bluetooth switch lock
2026-07-17 11:23:42 +05:45
sankalp ddacdea3eb refactor(src/window/controlcenter): replace svg_file imports with Image and simplify battery icon handling 2026-07-14 23:26:21 +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 01aac24f7e refactor(bluetooth): resolve device icons from GTK icon theme
_check_icon_to_type now queries Gtk.IconTheme for the icon name
(with -symbolic suffix) before falling back to a hardcoded mapping.
_get_icon_for_device simplified since type property now returns
GTK icon names directly.
2026-07-12 19:07:41 +05:45
sankalp 5b8d6a62aa refactor! : drop subprocess usage and centralize brightness service initialization 2026-07-08 12:25:02 +05:45
sankalp 2d0cc2d270 feat(src/window/controlcenter): add right‑click context menu for Bluetooth device slot with pair/trust/remove actions
- Implement _on_button_press to show Gtk.Menu on right‑click.
- Provide Pair, Trust/Untrust, and Remove commands.
- Connect notify::connected-devices signal to refresh device list.
- Ensure graceful cleanup when device is removed.
2026-07-05 22:07:40 +05:45
sankalp 901731711f refactor(src/window/controlcenter): refactor UI layout and battery icon handling in BluetoothDeviceSlot 2026-07-04 05:00:36 +05:45
sankalp 6171577ecc refactor(controlcenter): remove animation effects and adjust visibility logic 2026-07-03 20:53:18 +05:45
sankalp 2d6fd6c84b refactor(controlcenter): simplify refresh handling and add cancellation hooks
The changes replace timeout‑based refreshes with animation‑aware callbacks, improving responsiveness and preventing stale pending operations.
2026-06-24 12:53:30 +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 9cbde2c58f refactor(src/window):improve error handling with logging 2026-06-17 05:21:36 +05:45
sankalp 260d215b6b refactor(src/window/controlcenter): simplify bluetooth status handling and UI updates
Cleanup duplicated UI updates and improve signal handling logic for better stability.
2026-06-17 05:15:03 +05:45
sankalp a382f73795 feat(src/window/controlcenter): enhance bluetooth handle with fallback and enum
Introduce BTState enum, use rfkill fallback for enable/disable, and preserve network slots to avoid UI jitter.
2026-06-17 04:52:44 +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 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 e4813f35a0 feat(root): implement dynamic todo list refresh and UI enhancements
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.
2026-04-10 17:11:32 +05:45