Commit Graph
26 Commits
Author SHA1 Message Date
sankalp 38de0c66ed feat(widgets): enhance mouse capture handling and dropdown escape keybinding
Why: Refactor mouse capture logic to use robust input‑region handling, add support for multi‑click events, and align layer usage with the passed layer parameter; update dropdown to use an Escape keybinding instead of a button‑press hide.

New Features:
- Support button‑press, double‑click, and triple‑click events.
- Introduce `_get_child_window_bounds` helper and window‑local coordinate detection for accurate click placement.
- Add cursor‑feedback styling updates on the trigger widget.

Enhancements:
- Make overlay layer configurable via the passed `layer` argument.
- Replace direct `button-press-event` connection with an Escape keybinding in the dropdown.
- Update imports to use `Gdk` and new utilities (`HyprlandWithMonitors`, `modus_service`).

Bug Fixes:
- Resolve race condition that could hide child windows on external clicks.
- Ensure immediate hide when clicking outside the child window to avoid timing issues.
- Correct click‑inside detection logic and properly consume events.
2026-04-10 01:13:23 +05:45
sankalp 8337971e1e feat(widgets): replace custom animationmanager with new Animator-based implementation
Replace legacy animation manager with a unified Animator utility, improving performance and simplifying animation control.

- New Features  - Integrated Animator with custom easing functions (ease_out_quint, ease_in_cubic) for consistent 120 FPS animations.
  - SlideRevealer now uses Animator.play/stop API, exposing simplified control.
- Enhancements
  - Simplified animation lifecycle: start/stop handled via Animator instead of manual timer.
  - Pixel‑accurate positioning using int(round(...)) for smoother motion.
  - Reduced memory usage by removing unused timer and container tracking.
- Bug Fixes  - Fixed stale timer references and redraw queue clearing race conditions.
  - Corrected handling of zero‑size dimensions to properly finalize animations.
  - Removed redundant AnimationManager import and idle_add boilerplate.
2026-04-10 00:14:21 +05:45
sankalp eb12354d00 refactor(widgets): migrateGTK imports to fabric.utils
Migrate GTK-related imports from gi.repository to fabric.utils and remove outdated require_version calls.

- Remove redundant gi.require_version declarations
- Replace gi.repository imports with fabric.utils equivalents
- Align import ordering for consistency
2026-04-10 00:10:02 +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 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 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 a8b7330ec7 feat(root): add configuration and UI style updates
Introduce a new config.json, modernize CSS for dock, battery, and about windows, and clean up obsolete styling.

New Features
- Add `config.json` with wallpaper directory, dock position, and UI flags.
- Create `styles/constant.css` for shared color definitions.
- Rename and style `styles/battery.css` with new visual rules.
- Update hover background in `styles/about.css`.

Enhancements
- Remove deprecated dock CSS to simplify the stylesheet.
- Streamline layer window setup and input handling.

Bug Fixes
- Resolve hover styling conflict in about.css.
- Ensure consistent theming across new style files.
2026-02-26 06:24:09 +05:45
sankalp 158ce6590c Revert "ready for ignis"
This reverts commit 9d404b100f.
2025-09-01 12:39:28 +05:45
sankalp 9d404b100f ready for ignis 2025-09-01 12:36:58 +05:45
sankalp 52cb4362b7 🐛 fix(ui): ensure scroll position is maintained after content updates in SmartScrolled widgets 2025-08-15 13:42:20 +05:45
tr1x_em 0a181b737e Make Wifi dialog use normal window 2025-08-12 15:03:53 +05:30
tr1x_em afd42745d6 feat: LockScreen 2025-08-09 14:44:55 +05:30
sankalp 4852fa01e2 ♻️ refactor(dock): overhaul dock implementation for improved performance and maintainability 2025-08-07 06:08:20 +05:45
sankalp 2a90007987 ✨ feat(launcher): improve launcher experience with mouse tracking, application search, and visual enhancements 2025-08-03 07:48:33 +05:45
sankalp 729eef2d4b Merge branch 'macos' into macos 2025-08-02 22:37:01 +05:45
tr1x_em 09b46affa3 fix: define start_with_dimensions function to resolve NameError 2025-08-02 22:18:47 +05:30
sankalp 7156d33ed2 ✨ feat(widgets): animate SlideRevealer using AnimationManager for consistent timing 2025-08-02 22:19:03 +05:45
tr1x_em 5e2885b67a Merge branch 'macos' into macos 2025-08-02 21:59:08 +05:30
tr1x_em a546971f7b fix: resolve choppy animations during notification transitions 2025-08-02 21:37:31 +05:30
tr1x_em 209f58e75d feat: enhance animations with macOS-like smoothness and easing functions 2025-08-02 21:34:10 +05:30
tr1x_em 84d0f14526 feat: improve notification animation smoothness and duration 2025-08-02 21:30:13 +05:30
tr1x_em 4a906425b3 fix: update animation duration in smooth_revealer_animation and SlideRevealer 2025-08-02 21:30:12 +05:30
sankalp 49a2572fd4 🐛 fix(ui): ensure SlideRevealer animations start after widget realization and layout 2025-08-02 19:45:05 +05:45
sankalp 8dd1656fc2 ♻️ refactor(notification): improve notification animation and limit count 2025-08-01 09:57:52 +05:45
sankalp c3d01b3185 Huge updates: ControlCenter: Wi-Fi, Bluetooth, Password Entry Dialog, Notification, CustomRevealer for notif 2025-08-01 07:54:43 +05:45
sankalp 9540d2913a Huge updates: ControlCenter, DropDown Menu 2025-07-31 20:46:02 +05:45