Commit Graph
536 Commits
Author SHA1 Message Date
sankalp 6b56db0882 feat(styles): add dock CSS with interactive states and transitions
- New Feature: Introduce dock styling with background, padding, and rounded corners- Enhancement: Add smooth transition animations for show/hide states
- Enhancement: Implement interactive hover and activate effects on dock items
2026-04-09 19:33:02 +05:45
sankalp 5e005b1a4e feat(root): AddDock module integration
This change introduces the Dock component to the application, enhancing UI consistency and providing system‑level dock management capabilities.

- **New Features**: Instantiated `Dock` and integrated it into the launcher widget list.
- **Enhancements**: Early initialization of Dock for smoother startup and better configuration flow.
- **Bug Fixes**: None.
2026-04-09 19:32:56 +05:45
sankalp 345ef643e1 refactor(utils): replace requests with urllib and improve error handling
Replace external `requests` calls with `urllib` to eliminate third‑party dependency, add robust timeout handling, and improve error reporting. This also standardises URL fetching across the module and updates the process name configuration.

Enhancements:
- Added default request timeout fallback and ensured proper cleanup of response objects
- Enriched exception messages for better debugging

Bug Fixes:
- Fixed potential timeout‑related crashes in `CurrencyCache` and `Conversion`
- Corrected process name setting via `set_process_name` in the entry point
2026-04-09 19:20:55 +05:45
sankalp 40ddabe7fc refactor(modules/desktop): simplify Deskwidgets to manage windows instead of being a window
- Refactored Deskwidgets to no longer inherit from Window, now managing windows via attributes.
- Removed unnecessary initialization parameters and size settings.
- Updated class comment to reflect the new responsibilities.
2026-04-09 19:20:49 +05:45
sankalp 5b2afe7c9a feat(root): add deskwidget layout options and clean up dependencies
Add UI positioning windows and streamline dependency list to improve maintainability.

- New Features:
  - Added deskwidget.top_left and deskwidget.bottom_left to main.py.
- Enhancements:
  - Updated pyproject.toml and requirements.txt: removed unused packages and pinned pywayland==0.4.18.
  - refreshed uv.lock metadata.
2026-04-09 19:20:41 +05:45
sankalp e1ebc0acce style(styles): refineswitcher button and workspace selection styling
The updates improve visual consistency by increasing padding, adjusting border radii, adding transition effects, and introducing new selection and workspace label styling for clearer UI feedback.

New Features- Added .switcher-selection-label and .switcher-workspace-label selectors with appropriate styling- Introduced .switcher-icon-box with border radius and padding

Enhancements
- Increased #switcher-button padding and border radius
- Adjusted #window-button active background and radius- Added transition effect to #switcher-buttonBug Fixes
- None
2026-04-09 18:54:38 +05:45
sankalp e7af41805f refactor(modules):simplify UI and drop Glance integration 2026-04-09 18:54:29 +05:45
sankalp c214d2fade style(styles): modernize weather widget CSS and add condition gradient themes
- New Features
  - Added gradient background classes for various weather conditions
- Enhancements
  - Updated transition timing and border radius for smoother animations
  - Improved typography spacing and color contrast
- Bug Fixes
  - Fixed missing newline at end of file
  - Corrected background rendering for gradient classes
2026-04-09 18:47:32 +05:45
sankalp f3386ab7a0 feat(modules/desktop): Refactor weather widget layout with header/footer and dynamic gradient styling
The update reorganizes the weather widget UI, adds a header for city and icon, a body for values, adjusts alignment and sizing, and applies a gradient class to the parent container.

- New Features: Structured header/footer layout for weather information
- Enhancements: Realigned text order, increased max_chars_width, resized icon, improved spacing- Bug Fixes: None
2026-04-09 18:47:17 +05:45
sankalp a3edf9c323 fix(utils):ensure current_active_wm_class is set when updating active app 2026-04-09 18:34:05 +05:45
sankalp 92c4f20d79 feat(modules/panel/components): add wmclass parameter to AboutApp creation
- New Feature: Added support for passing `wmclass` to `AboutApp`.
- Enhancements: Safely fetch `current_active_wm_class` using `getattr` with a default empty string.
- Bug Fixes: Prevent potential error when `current_active_wm_class` attribute is absent.
2026-04-09 18:34:00 +05:45
sankalp 0c4a375ff6 feat(widgets): enhance desktopfile discovery and icon loading
New Features
- Introduced StartupWMClass matching and content‑based fallback for .desktop files
- Added ordered search terms with exact, prefix, and contains strategies- Implemented multi‑step icon retrieval: resolver, direct path, emoji fallback

Enhancements
- Replaced list‑based match attempts with priority‑ordered search flow
- Streamlined parsing of desktop entries by section and key handling- Improved error resilience by using continue on exceptionsBug Fixes
- Fixed potential missing icon assignment when pixbuf lookup fails
- Corrected comment fallback logic to use GenericName when Comment is empty
2026-04-09 18:33:50 +05:45
sankalp 8f6042634f feat(services): add current_active_wm_class tracking and signal, fix default active app name
- New Features
  - Added `current_active_wm_class_changed` signal and `current_active_wm_class` read‑write property.
  - Implemented setter that emits the signal when the value changes.
  - Initialized `_current_active_wm_class` and integrated it into active window updates.
- Enhancements
  - Extended active window handling to include window class information.
- Bug Fixes
  - Corrected default active application name from "Hyprland" to "Finder".
2026-04-09 18:33:40 +05:45
sankalp d47537e627 feat(modules/panel/components): addhot-reload support and config‑based visibility filtering to system tray
New Features
- Enable dynamic hiding of tray items using the `systray_ignore` configuration.

Enhancements
- Track tray item instances for hot‑reload and refresh visibility on config changes.
- Improve logging, tooltip handling, and icon lookup for better debugging.

Bug Fixes
- None
2026-04-09 18:29:01 +05:45
sankalp dc7d45d86a feat(root): add systray_ignore and improve notification configuration formatting
New Features
- Add structured `notification_limited_apps_history` entries.
- Introduce `systray_ignore` to filter background applications.

Enhancements
- Refactor `notification_ignored_apps` array layout for clearer presentation.
- Adjust comma and field ordering in the configuration file.

Bug Fixes- None.
2026-04-09 18:28:53 +05:45
sankalp 63862a08da feat(modules/panel): hide tray items when empty and sync visibility on config changes
This update ensures the panel's tray is hidden when there are no visible items and updatesits visibility automatically when the configuration changes or when notifications are added
or removed.

New Features:
- Add `_update_tray_visibility` method that hides the tray when empty and updates UI
  accordingly.
- Connect `tray` "add" and "remove" signals to trigger visibility updates.
- Adjust chevron button visibility, icon, and left margin based on tray state.

Enhancements:
- Invoke visibility update on panel initialization, DND changes, and configuration changes.
- Reset visual elements (chevron icon, margin) when the tray becomes hidden.
- Preserve layout spacing improvements when tray is hidden.

Bug Fixes:
- Prevent stale tray visibility state after configuration updates.
2026-04-09 18:28:43 +05:45
sankalp 70ba69b116 enhancements(modules/controlcenter): Safely access device.connection and device.paired attributes using getattr with default False 2026-04-09 18:28:35 +05:45
sankalp a85513d6a6 revert: use previous icon for now 2026-04-09 18:17:09 +05:45
sankalp 56ad44842e feat(root): migrate to uv‑managed environment
- Updated README to use `uv run lock.py` for lock‑screen binding
- Replaced pip install with `uv sync` and migrated to an uv‑managed Python virtual environment- Marked Installation Script and migration as completed in the TODO checklist
2026-04-02 23:25:42 +05:45
sankalp 7f588bbf47 feat(assets): streamline battery andvolume icons
- Enhancements: Use viewBox, drop inline CSS, and simplify path data
- Enhancements: Ensure consistent white fill and improve scaling behavior
- Bug Fixes: Remove theme‑specific color class references that could cause rendering issues
2026-04-02 23:13:47 +05:45
sankalp 118387aa69 feat(config):Update power mode icons and adjust startup commands 2026-04-02 23:13:47 +05:45
sankalp c22ea5dfda refactor(modules): simplify SVG asset handling across modules
Enhancements:
- Add optimized night‑variant detection for weather icons using a predefined list
- Replace `Svg` usage with direct `svg_file` calls throughout the todo widget, removing redundant relative‑path logic
- Update dock and battery modules to load assets via direct paths, eliminating unnecessary `get_relative_path` calls- Introduce `WEATHER_CACHE_TIMEOUT` constant and tidy up unused imports (`WEATHER_EMOJI_MAP` removed)
- Minor formatting and structural clean‑ups that improve code readability

Bug Fixes:
- Remove dead import of `WEATHER_EMOJI_MAP` and unused constant `WEATHER_EMOJI_MAP`
- Correct syntax of `condition_em` initialization to avoid potential rendering issues

New Features:
- None.
2026-04-02 23:13:47 +05:45
sankalp 017c127a44 chore(root): migrate touv and simplify dependencies
New Features
- Added uv as the primary package manager and introduced new system packages awww, apple-fonts, swappy, and wl-clipboard.
- Removed many redundant Python packages from the install script.

Enhancements
- Replaced Pillow-based QR code detection with GdkPixbuf, eliminating the python-pillow dependency.
- Fixed a typo in the import (`ConfigServic` → `ConfigService`) and corrected service imports.
- Updated the application launch to use `uwsm app -- uv run main.py` for uv-managed execution.

Bug Fixes
- Resolved import typo that prevented proper ConfigService initialization.
- Adjusted QR-code decoding logic to correctly handle image pixel channels, improving robustness.
2026-04-02 23:13:47 +05:45
sankalp f123de9a52 refactor(utils):simplify Wi‑Fi icon path resolution 2026-04-02 23:13:47 +05:45
sankalp f7355765f7 Merge branch 'macos' into dev 2026-04-02 21:10:14 +05:45
sankalp 5fe0d5264a Merge pull request #31 from S4NKALP/dependabot/pip/requests-2.33.0 2026-04-02 14:54:00 +05:45
dependabot[bot] 28ea3305f3 chore(deps): bump requests from 2.32.4 to 2.33.0
Bumps [requests](https://github.com/psf/requests) from 2.32.4 to 2.33.0.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.32.4...v2.33.0)

---
updated-dependencies:
- dependency-name: requests
  dependency-version: 2.33.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-02 09:06:26 +00:00
sankalp 5656609348 feat(modules/desktop): addweather SVG icon mapping and improve condition label handling
Why: replaced emoji-based weather icons with a dynamic SVG mapping, introduced WEATHER_ICON_MAP, updated format_weather_data and Weather class to use icon names and svg_file, removed unused constants and clarified day/night variant handling.

- New Features
  - Added WEATHER_ICON_MAP linking weather codes to SVG identifiers and supporting night variants.
  - Updated format_weather_data to return icon_name and use svg_file for dynamic icon resolution.
  - Modified Weather widget to set condition label via dynamic SVG files instead of emoji.

- Enhancements
  - Implemented day/night icon variant logic using optimistic naming based on known variants.
  - Removed unused constant imports and simplified label update logic.
  - Improved error handling with explicit fallbacks for missing weather fields.

- Bug Fixes
  - Fixed potential missing icon fallback by using .get with default values.
  - Corrected label assignment order to match new data structure.
2026-03-23 23:40:31 +05:45
sankalp c35550d209 feat(assets/icons/weather): add clear, clear-night, and windy weather icons
New Features
- Added `weather-clear.svg`
- Added `weather-clear-night.svg`
- Added `weather-windy.svg`
2026-03-23 23:40:23 +05:45
sankalp 7a21d34680 feat(assets): add caps-lock and keyboard layout icons
Add missing icons for caps lock and keyboard layout to enhance settings UI.

New Features
- Add caps-lock-off.svg, caps-lock.svg, and keyboard-layout.svg.
2026-03-23 23:34:15 +05:45
sankalp 88e53ac9b7 refactor(config): Defer import ofstart_config_service to reduce startup overhead
The import is now performed lazily within load_config to avoid early import errors and unnecessary loading during module initialization.

- Enhancement: Lazy loading of configuration service
- Bug Fix: Prevent ImportError when services.config is unavailable during startup
2026-03-23 23:34:11 +05:45
sankalp 231645d8f9 refactor(styles): rename selectors and add min-width to container
- rename `#osd` selectors to `#osd-container` for better encapsulation
- add `min-width: 180px` to the container definition
- update muted styling rules to use `#osd-container.muted` instead of element‑specific classes
- replace deprecated `#brighntess-icons.muted` with `#osd-image.muted`
- clean up stray braces and whitespace in the stylesheet
2026-03-23 23:34:07 +05:45
sankalp ef4065bc1f refactor(modules): improve exception handling and simplify service usage
Enhancements
- Replace bare `except:` with `except Exception:` in multiple modules- Cast step calculation to `int` for consistent type
- Simplify `get_battery_icon_file` to return a string directly
- Use `get_todo_service()` instead of module-level `todo_service` throughout todo widget
- Remove unused `"zen": "zen-browser"` mapping entry

Bug Fixes
- Prevent bare exception swallowing by catching `Exception` explicitly
- Ensure proper cleanup of timer IDs and other resources
- Delete unused modules/osdd components

New Features
- None
2026-03-23 23:34:03 +05:45
sankalp 34cfb2f49e feat(root): add keyboard layouts, OSDWindow, and update services & utilities
Introduce a new OSDWindow implementation, expose keyboard layout configuration, and modernize dependency handling and helper utilities.

- **New Features**
  - Added `keyboard_layouts` list (`us`, `np`) to `config.json`
  - Created `OSDWindow` class and updated `main.py` to use it
  - Introduced new service modules (`battery`, `brightness`, `capslock`, `network`, `mpris`, `todo`, `modus`) and expanded `services/__init__.py`
  - Added `CommandResult` and `run_command` helper in `utils/functions.py`

- **Enhancements**
  - Upgraded numerous dependencies to newer versions and switched `fabric` to a git source
  - Replaced bare `except:` with `except Exception:` in `WiFiPasswordDialog`
  - Improved type hints (`NamedTuple`, `TypeVar`) and refactored JSON file helpers
  - Added property notifications for battery percentage, state, and presence

- **Bug Fixes**
  - Fixed incorrect return type annotation in `read_json_file`
  - Corrected tick‑handler logic to avoid double registration
  - Properly notify listeners on battery property changes
  - Ensured proper exception handling and cleanup in utility functions
2026-03-23 23:33:53 +05:45
sankalp 129906cb9c feat(root): add application switcher 2026-02-28 19:45:43 +05:45
sankalp b1e8cb4a7a feat(styles): add launcher.css 2026-02-28 19:42:37 +05:45
sankalp 67d37bc9f5 update 2026-02-28 19:40:01 +05:45
sankalp 6762b8395d refactor(styles): Add constant.css import and clean up corner styling
- New Features: (none)
- Enhancements: Added constant.css import and removed launcher.css import
- Bug Fixes: Deleted unused #corner and #corner-container CSS rules
2026-02-26 06:58:08 +05:45
sankalp 26f55df7dc Merge pull request #28 from S4NKALP/dependabot/pip/pillow-12.1.1
chore(deps): bump pillow from 11.3.0 to 12.1.1
2026-02-26 06:56:03 +05:45
dependabot[bot] ddbe0f119d chore(deps): bump pillow from 11.3.0 to 12.1.1
Bumps [pillow](https://github.com/python-pillow/Pillow) from 11.3.0 to 12.1.1.
- [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/11.3.0...12.1.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-26 01:10:30 +00:00
sankalp 49666ef8ef chore(utils): clean up extra blank lines in app_name_resolver.py
Remove superfluous whitespace to improve code readability.
2026-02-26 06:54:55 +05:45
sankalp 5bef139db9 feat(root): add OSD module and clean up CSS imports
New Features
- Introduced OSD functionality integrated into the application.

Enhancements
- Removed unused stylesheet imports from main.css and corrected the stylesheet path to `styles/main.css`.
- Adjusted the lambda in the network service for consistent method invocation.

Bug Fixes
- Ensured `on_access_point_activated` is properly called when the active access point changes.
2026-02-26 06:54:48 +05:45
sankalp 2c1ec69023 feat(styles): restructure UI styles and add main composition
New Features
- Added styles/main.css aggregating imports and global defaults
- Renamed battery.css → battery-widget.css for widget-specific styling

Enhancements
- Added smooth transitions and hover effects in panel.css
- Improved OSD styling with rounded corners, translucent background, and better spacing
- Updated button margins, paddings, and border‑radius for consistency

Bug Fixes
- Fixed missing border‑radius and spacing in panel buttons
- Corrected workspace button active/urgent styling
2026-02-26 06:54:41 +05:45
sankalp 830305c0f3 refactor(widgets): clean up animation timer and easing functions
Remove dead code and redundant blank lines, simplify timer interval selection, and ensure proper realization handling. This improves readability and prevents potential runtime issues.

New Features
-

Enhancements
- Refined timer interval calculation for clarity
- Consolidated easing function stubs for consistency

Bug Fixes
- Fixed missing realize handler connection in SlideRevealer
- Eliminated stray blank line that could affect indentation
2026-02-26 06:54:35 +05:45
sankalp cf7666a8a5 refactor(modules): clean up dock update logic and fix TOTP action closure
- Refactor dock update loop to use explicit parentheses and improve readability
- Fix closure capture in OTP plugin action to correctly pass current code
- Remove redundant lambda wrapper in player label binding
- Update logger messages with full exception context
- Adjust imports and naming for consistency across modules
- Minor code style updates and whitespace cleanup
2026-02-26 06:54:29 +05:45
sankalp 934b62ebff feat(utils): add debounce helper utilities
New Features
- Introduce `debounce` async decorator to delay coroutine execution until a specified delay elapses.
- Add `sync_debounce` wrapper that uses GLib timeout for synchronous functions, supporting immediate execution and repeat counts.
2026-02-26 06:42:00 +05:45
sankalp deb9b1082f feat(modules/desktop): Add weather gradient/emoji mappings and system monitoring widgets
New Features
- Introduce WEATHER_GRADIENT_MAP and WEATHER_EMOJI_MAP for condition‑to‑emoji mapping.
- Add SYSTEM_UPDATE_INTERVAL, WEATHER_UPDATE_INTERVAL, CALENDAR_UPDATE_INTERVAL constants and extend cache timeouts.
- Implement CpuInfo and RamInfo widgets with real‑time CPU percentage, temperature, and RAM usage display.

Enhancements
- Extend LOCATION_CACHE_TIMEOUT to 7 days.
- Integrate progress bar updates for CPU and memory usage.
- Organize desktop widget manager with separate top‑left and bottom‑right windows.

Bug Fixes
- None
2026-02-26 06:41:58 +05:45
sankalp e104359659 feat(root): Enable Deskwidgets widget
The Deskwidgets module is now imported, instantiated, and integrated into the main application, expanding desktop widget capabilities.

New Features
- Added Deskwidgets import and instantiation.
- Integrated Deskwidgets into the Application instance.

Enhancements
- Removed stale comments and activated the component.

Bug Fixes
- None
2026-02-26 06:41:50 +05:45
sankalp 303aeb4815 refactor(config/hypr): tidy up keybinds and layerrules
Commented out deprecated keybinds and removed an unused layerrule to clean up configuration and avoid accidental triggers.

New Features
-

Enhancements
- Streamlined layerrules and removed unused definitions.

Bug Fixes
- Avoided accidental execution of stale keybinds.
2026-02-26 06:35:15 +05:45
sankalp 557f3148f6 feat(root): enable ModusNoti and clean up startup configuration
New Features
- Added ModusNoti instance to application initialization.

Enhancements
- Removed outdated corner visibility configuration and unnecessary comments.
- Streamlined import statements for clarity.

Bug Fixes
- No bug fixes included.
2026-02-26 06:35:05 +05:45