Commit Graph
315 Commits
Author SHA1 Message Date
sankalp ad6d35fe46 feat(modules/panel/components): adjust dropdown capture layer and pointer widget assignments
Changed the default layer used by `create_dropdown_with_capture` from `"bottom"` to `"top"` and updated the call site accordingly. Added safety checks to set `_pointing_widget` on indicator windows when they exist, preventing potential errors when the windows are not created.

- Enhancements:
  - Updated default `layer` parameter in `create_dropdown_with_capture` to `"top"`.
- Bug Fixes:
  - Ensured `BluetoothIndicator`, `NetworkIndicator`, and `BatteryIndicator` properly assign `_pointing_widget` to their respective buttons when the associated windows are present.
2026-04-10 01:13:29 +05:45
sankalp 150ec6662c bugfix(modules/panel): ensure pointing widget assignment for interactive elements 2026-04-10 01:12:58 +05:45
sankalp 27c5ee2e36 refactor(modules/notification): consolidate Gtk importMove the Gtk import from gi.repository into the top‑level imports to simplify code and avoid duplicated imports.
Details
- New Features: - Enhancements:
- Bug Fixes:
2026-04-10 00:10:50 +05:45
sankalp adb87456c7 refactor(modules): Clean up imports and centralize utilities- Enhancements:
- Remove redundant gi.repository imports
  - Move common utilities (GLib, GObject, logger, os) into fabric.utils
  - Centralize GLib usage and reduce namespace pollution
2026-04-10 00:10:40 +05:45
sankalp cdc82c4c7f feat(modules): improve application searchmatching logic
- New Features
  - Expand search terms to handle reverse DNS and decorated names, increasing match coverage
  - Introduce priority‑based matching (exact window_class, name, executable) before falling back to fuzzier containment
  - Early exit when no search terms are available

- Enhancements
  - Refactor search term collection and normalization for better readability and performance
  - Add handling for common wrapper executables to prevent false positives
  - Implement fuzzy containment matching for partial name matches

- Bug Fixes
  - Fix return logic when search terms are empty to avoid unintended None returns
  - Correct order of priority checks to prioritize exact matches over fuzzy matches
2026-04-09 23:30:39 +05:45
sankalp b6ecc72af8 feat(modules): improve dock auto-hide logic and refactor pinned app handling
New Features
- Introduce a random ticket mechanism to prevent rapid hide/show cycles.
- Add `_get_dock_config` helper to centralize position‑specific configuration.
- Refactor `_create_pinned_button` and `_populate_pinned_apps` for clarity and reuse.

Enhancements- Replace manual child removal with `clear_children` utility.
- Extract `_get_app_icon` to simplify icon resolution.
- Streamline imports and use explicit imports.

Bug Fixes
- Resolve hover race condition using ticket comparison.
- Ensure occlusion checks respect `DOCK_ALWAYS_OCCLUDED` correctly.
2026-04-09 22:41:12 +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 e7af41805f refactor(modules):simplify UI and drop Glance integration 2026-04-09 18:54:29 +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 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 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 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 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 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 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 129906cb9c feat(root): add application switcher 2026-02-28 19:45:43 +05:45
sankalp 67d37bc9f5 update 2026-02-28 19:40:01 +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 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 55f36c59ca refactor(modules): remove unused about module
The about.py module was deprecated and replaced by newer implementations; its removal cleans up dead code.

New Features
- No new feature introduced

Enhancements
- No functional enhancements

Bug Fixes
- No bug fixes
2026-02-26 06:34:58 +05:45
sankalp e97311e2b0 feat(modules): restructure battery UI and add dynamic layout rebuilding
New Features
- Introduce `get_battery_icon_file` to generate battery icons based on percentage and charging state.
- Add fallback Bluetooth control using `rfkill` when Fabric Bluetooth fails.

Enhancements
- Refactor layout management with `_rebuild_layout_from_config` and dynamic indicator instantiation.
- Replace large `EnergyModeButton` class with lightweight utility functions.
- Simplify notification icon updates using `dynamic_file`.

Bug Fixes
- No explicit bug fixes; changes focus on feature additions and refactoring.
2026-02-26 06:24:44 +05:45
sankalp ffa9188cd1 refactor(modules/notification): streamline imports and simplify cache utilities
- Enhancements: Refactored import section to remove unused modules, added explicit parentheses in hash generation for clarity, and updated debug logging messages for cache cleanup.
- Bug Fixes: Ensured consistent encoding of hash inputs and improved error handling in image dimension hashing.
- Style: Applied consistent formatting and spacing throughout the notification module.
2026-02-26 05:54:51 +05:45
sankalp 02c32a331a feat(panel): add Hyprland workspaces indicator with workspace filtering 2025-09-08 07:59:23 +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 2801412746 🐛 fix(bluetooth): handle bluetooth enable/disable failures with subprocess 2025-08-17 18:44:57 +05:45
tr1x_em fc82bffed7 Dock Tweaks 2025-08-16 16:37:10 +05:30
sankalp 75a87f9134 🐛 fix(bluetooth): use rfkill as fallback to enable/disable bluetooth 2025-08-16 13:38:47 +05:45
sankalp 73f3839d85 ✨ feat(bluetooth): control scanning based on other devices section visibility 2025-08-16 13:20:40 +05:45
sankalp 2eba79b98e 🐛 fix(bluetooth): add fallback to bluetoothctl for enabling/disabling bluetooth 2025-08-16 13:15:21 +05:45
sankalp 1e8c426c99 ♻️ refactor(launcher): remove power management commands from bash scripts plugin 2025-08-16 11:59:41 +05:45
sankalp 0f33293f5e ♻️ refactor(ui): replace SmartScrolledBox with ScrolledWindow for better control 2025-08-15 13:42:04 +05:45
tr1x_em d53341a0c0 Add escape_markup_text() utility function to safely escape special characters 2025-08-14 22:28:34 +05:30
tr1x_em 59fbca04aa Fix Smth 2025-08-14 16:05:29 +05:30
tr1x_em 7f2da4de90 Store 1 Size of appicon to reduce caching 2025-08-14 16:05:29 +05:30
tr1x_em ac484bc682 Fix notification for same attibutes 2025-08-14 16:05:29 +05:30
tr1x_em 1fbbe74520 Show Latest notif on top 2025-08-14 16:05:29 +05:30
tr1x_em 31efb0e03f Style Single Notification As Normal One 2025-08-14 16:05:29 +05:30
tr1x_em d1c0a2d537 New Caching system 2025-08-14 16:05:29 +05:30
tr1x_em 3af502daa8 Caching Fixed 2025-08-14 16:05:29 +05:30
sankalp d0444752e1 ♻️ refactor(dock,workspace,switcher): centralize special workspace detection logic 2025-08-14 14:57:19 +05:45
tr1x_em feec2917f6 Added Todo 2025-08-14 13:26:24 +05:30
tr1x_em c4fb21b284 Initial Hyprconf 2025-08-14 10:15:41 +05:30
sankalp fd71901820 ✨ feat(dock): add trash icon to app bar to open trash in file manager 2025-08-13 17:55:34 +05:45
sankalp 07d0705fd4 ✨ feat(ui): add pomodoro timer and todo list to readme and refine network indicator margin 2025-08-13 16:57:59 +05:45
sankalp 4580e57f3c ✨ feat(dock): implement hover effects and visual feedback for dock items 2025-08-13 16:45:17 +05:45
tr1x_em 3fac357112 Added Night light support with respective icons 2025-08-13 16:18:25 +05:30
sankalp 35c4f9c7ff ✨ feat(ui): display active window title in menu bar and set default app name to Finder 2025-08-13 00:40:13 +05:45
sankalp 88ce59eec7 ♻️ refactor(menubar): Move app name resolution logic to utils for reusability 2025-08-13 00:16:54 +05:45