Commit Graph
100 Commits
Author SHA1 Message Date
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 5c936a68da refactor: replace hasattr(self, ...) with direct None-safe access 2026-07-31 00:24:23 +05:45
sankalp 2fb23ca25a chore: pin deps to exact versions, drop unused httpx 2026-07-31 00:18:24 +05:45
sankalp 79176a9635 chore: ignore matugen colors.lua and wallpaper .thumbnails 2026-07-30 23:27:07 +05:45
sankalp c8667994bb Merge pull request #44 from S4NKALP/feat/dock
dock
2026-07-30 23:19:30 +05:45
sankalp a3dc4491cd ci: add CODEOWNERS to auto-request review on PRs 2026-07-30 23:17:53 +05:45
sankalp 7925bf3cfb docs: add LLM assistance note to documentation section 2026-07-30 23:09:29 +05:45
sankalp a258732528 ci: add commitlint config extending @commitlint/config-conventional 2026-07-30 23:05:23 +05:45
sankalp 3bc086596a feat(settings): add hover_scale entry, fix SettingsEntry float handling 2026-07-30 22:59:11 +05:45
sankalp 4285c1a0b8 ci: run workflows on all PRs (drop branch filter) 2026-07-30 22:53:54 +05:45
sankalp 251d924df7 ci: update branch triggers main->macos, drop dev 2026-07-30 22:53:10 +05:45
sankalp 1d7a94f154 chore(clipboard): remove noisy INFO logs from _load_history 2026-07-30 22:52:02 +05:45
sankalp 514868fe51 feat(data): use generate_default_toml() in load_config fallback 2026-07-30 22:52:01 +05:45
sankalp 3aa0d34fea feat(config): set hover_scale default to 1.6 with range comment, add generate_default_toml() 2026-07-30 22:52:01 +05:45
sankalp 4a9f8fc1b8 refactor(config): use generate_default_toml() from constants for initial config 2026-07-30 22:52:00 +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 0195971eba fix(globalmenu): fetch Firefox/Zen bookmarks from SQLite when DBus empty
Zen Browser doesn't expose bookmark submenu children through DBusMenu.
Fall back to reading places.sqlite for Bookmarks Toolbar and
Other Bookmarks folders. Truncate to 25 items to avoid menu overflow.
2026-07-29 10:08:20 +05:45
sankalp 8980e90e39 feat: globalmenu updates 2026-07-29 09:31:05 +05:45
sankalp 47c413b374 Merge pull request #43 from S4NKALP/feat/globalmenu
feat(globalmenu)
2026-07-28 21:20:18 +05:45
sankalp 056a8ace89 refactor(spotlight): replace custom SVGs with themed symbolic icons
Remove _ICON_SVG_MAP and _icon_to_svg. Use Gtk themed icons directly
via fabric Image widget with set_from_icon_name instead of loading
custom SVG files. Fixes crash when plugin icon SVG is missing.
2026-07-28 21:14:13 +05:45
sankalp f3bfb4ec12 chore(spotlight): add debug logging to clipboard plugin
Log query, history state, cliphist output stats, and filter results
to aid debugging prefix search issues.
2026-07-28 21:14:04 +05:45
sankalp 36158ffbbb fix(spotlight): return empty for unrelated caffeine queries
Add had_prefix flag so caffeine.search() returns [] for queries
without 'caffeine' or 'caff' prefix instead of always showing help.
Add debug logging.
2026-07-28 21:13:54 +05:45
sankalp 006a9dc97e chore: remove unused dns.svg icon 2026-07-28 13:43:14 +05:45
sankalp abf831e4ae docs: update documentation for reorganized config.toml
- Update configuration.md with new section-based format
- Update architecture.md with new config key paths
- Update faqs_tips.md with new config key paths
- Update README.md to mention config sections
2026-07-28 13:38:38 +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 1d66b57ad7 feat(wifi): add DNS switcher to WiFi control center panel 2026-07-28 13:03:04 +05:45
sankalp b76ab78415 feat(wifi): add DNS switcher styles 2026-07-28 13:02:31 +05:45
sankalp f887a5c932 feat(wifi): export DNS service from services package 2026-07-28 13:02:22 +05:45
sankalp a6a34f6e69 feat(wifi): add DNS icon 2026-07-28 13:02:17 +05:45
sankalp 260e53aa47 feat(wifi): add DNS service with nmcli backend 2026-07-28 13:02:11 +05:45
sankalp 0a7cd2cf6d refactor(desktop): improve registry API and deduplicate fade animators
- Replace three synced dicts with single WidgetInfo dataclass
- Add type hints, unregister(), is_registered(), keys(), widgets()
- Add DEFAULT_SIZE constant, duplicate-registration warning
- Extract _make_fade_animator() to remove duplicated animator setup
- Use public registry API in main.py instead of accessing _widgets
2026-07-28 10:38:26 +05:45
sankalp 347e15af35 feat: update desktop widgets position 2026-07-28 10:25:35 +05:45
sankalp 34f9f71d62 feat: update date widget 2026-07-28 10:23:04 +05:45
sankalp 98640d82c2 feat: update position of desktop widgets 2026-07-28 10:08:02 +05:45
sankalp 1b4c319fdb style: format app-capture README code examples
Add blank lines between function definitions per PEP 8.
2026-07-28 10:01:18 +05:45
sankalp f0c0e27e82 chore: update dependencies
Downgrade tomlkit to 0.15.0, update certifi to 2026.7.22.
2026-07-28 10:00:55 +05:45
sankalp 88f7f2e125 style: format documentation code examples
Align comments in code examples for readability.
2026-07-28 10:00:41 +05:45
sankalp 3f66c5e55c style: add flat class to imac MenuButton
Ensures consistent styling with other panel buttons.
2026-07-28 10:00:31 +05:45
sankalp 64b4e922d9 docs: add divider option to mods.toml documentation
Document that divider = true can be added before an option to
insert a separator in dropdown menus.
2026-07-28 10:00:12 +05:45
sankalp 3e4bae1a98 perf: cache failed D-Bus introspection paths
Add _dead set to _IntrospectionCache to track paths that timeout.
Failed introspections are skipped on future lookups, reducing
timeout blocks from 300-500ms to near-zero.
2026-07-28 10:00:04 +05:45
sankalp 34de9da0d7 refactor: remove LuaHyprlandWorkspaces monkey patch
Fabric now handles Lua support natively via does_hyprland_support_lua().
Use HyprlandWorkspaces directly.
2026-07-28 10:00:00 +05:45
sankalp d6d736ac7f refactor: use Gtk.MenuButton for custom mods with dropdowns
Use plain Button for simple click-only mods, Gtk.MenuButton only
when dropdown options exist. Adds margin spacing between buttons.
2026-07-28 09:59:56 +05:45
sankalp 925971a258 refactor: rewrite globalmenu with menu factories and GtkMenu
Extract _create_system_menu and _create_title_menu factories.
Use ModusDropdown and dropdown_option for system menu.
Convert _build_gtk_menu_from_children to show_all.
Add _make_click_handler method, remove dead _has_extracted_menu.
Use logger.exception for all error logging.
2026-07-28 09:59:48 +05:45
sankalp 1ddde651dd style: update panel CSS for Gtk.MenuButton
Add #global-menu reset rules, hide indicator, and transparent
:active state for global menu and panel buttons.
2026-07-28 09:59:42 +05:45
sankalp efcf54a6d2 style: update dropdown CSS for native Gtk.Menu approach
Replace ID-based selectors with global menu/menuitem/separator
selectors matching fabric-shell's CSS strategy.
2026-07-28 09:59:38 +05:45
sankalp 8407c9685c refactor: rewrite ModusDropdown to use native Gtk.Menu
Replace layer-shell AppletWindow-based dropdown with Gtk.Menu approach.
Adds hide signal for button state reset, dropdown_option factory,
append/clear methods, and popup_at_widget/popup aliases.
2026-07-28 09:59:31 +05:45
sankalp 7fdeb7beba feat(globalmenu): update 2026-07-28 08:24:53 +05:45
sankalp a989c72ad7 Merge pull request #42 from S4NKALP/feat/desktop
feat(desktop): now move widget with drag to any place of window
2026-07-27 18:23:38 +05:45
sankalp d3ff8e78c2 docs(desktop): add partial input region and keybind compatibility notes 2026-07-27 17:17:45 +05:45
sankalp 21f1e73e6f feat(desktop): hopes 2026-07-27 17:13:54 +05:45
sankalp d7db929255 feat(desktop): updates 2026-07-27 17:11:35 +05:45
sankalp bcd09a8030 feat(desktop): updates 2026-07-27 15:05:03 +05:45
sankalp 29f3519965 feat(desktop): updates 2026-07-27 14:27:13 +05:45
sankalp fc7f2851c9 feat(desktop): improve widget edit mode UX and allow free dragging 2026-07-27 13:25:36 +05:45
sankalp c2a443430a feat(desktop): improve widget edit mode UX and allow free dragging 2026-07-27 12:23:31 +05:45
sankalp e7277e658e feat(desktop): improve widget edit mode UX and allow free dragging
# Conflicts:
#	install.sh
2026-07-26 17:01:26 +05:45
sankalp 81a0198868 fix: fixed name 2026-07-26 17:00:28 +05:45
sankalp d312d7b230 feat(desktop): now move widget with drag to any place of window 2026-07-26 17:00:11 +05:45
sankalp 37b262270c feat(desktop): now move widget with drag to any place of window 2026-07-26 17:00:02 +05:45
sankalp 65db4f75fe feat: updated requirements.txt 2026-07-26 15:52:51 +05:45
sankalp eba5827189 feat: add sysauth service for Polkit authentication
- Add SysauthService with D-Bus agent registration
- Add AuthDialog with centered overlay password prompt
- Add password utils (PAM verification, keyrings.alt caching)
- Integrate sysauth into main app initialization
- Update WiFi dialog to use sysauth for password prompts
- Add sysauth.css with dialog styling
- Remove standalone WiFi password dialog
2026-07-26 15:28:09 +05:45
sankalp 7917eea54b feat(panel): add notch toggle to config.toml
Matches existing pattern for global_menu, systray, etc.
Set notch = false to hide center notch from panel.
2026-07-26 13:48:34 +05:45
sankalp e52ff7c04f fix(osd/brightness): animate one block per key press
Track previous block count and move ±1 block per signal so bar
never jumps 2 blocks. First display jumps to actual value.
Reduce block count to 15.
2026-07-23 14:46:44 +05:45
sankalp 7882106be2 fix(osd/audio): snap values to block boundaries
Floor-snap volume to nearest block size so bar never shows full
early and blocks fill one at a time. Reduce block count to 15.
2026-07-23 14:46:21 +05:45
sankalp 903f11e8be fix(brightness): lower min change threshold to 1
Allows OSD to react to smaller brightness changes instead of
requiring 2% before emitting.
2026-07-23 14:46:09 +05:45
sankalp be5bc93024 fix(wifi): listen for device State changes to refresh active AP 2026-07-23 13:22:21 +05:45
sankalp c136f69a09 fix(indicators): ignore Disconnected SSID from WiFi display 2026-07-23 13:22:15 +05:45
sankalp 0150084aa1 refactor(brightness-osd): switch to BlockProgressBar and fix initial percent fallback 2026-07-23 13:22:10 +05:45
sankalp e326347b28 refactor(audio-osd): switch to BlockProgressBar widget 2026-07-23 13:22:02 +05:45
sankalp 69a5705056 style(osd): replace scale styles with block progress bar styles 2026-07-23 13:21:50 +05:45
sankalp 5701f6c22a feat: add BlockProgressBar widget with animation support 2026-07-23 13:21:40 +05:45
sankalp 38725fb355 style(battery): add charge threshold slider styles
- Style slider trough, highlight, and thumb to 14px height
- Add threshold value label with font-sm and 32px min-width
2026-07-23 11:32:30 +05:45
sankalp 3128456ae9 style(notification): improve header typography and spacing
- Add secondary color and font-sm to app name
- Add font-xs timestamp style
- Add bottom margin to notification header
- Clean up summary and button-label selectors
2026-07-23 11:32:23 +05:45
sankalp 87907f89fc style(notification): add urgency-based border styles for low and critical
- Low urgency: softer border with reduced opacity
- Critical: error-colored border with thicker stroke
2026-07-23 11:32:16 +05:45
sankalp ea68fdab47 feat(battery): add charge threshold slider when sysfs available
- Show FlatScale slider (20-100%) next to charge limit toggle
- Display current threshold value as label
- Only rendered when sysfs charge_control path is detected
2026-07-23 11:32:11 +05:45
sankalp dda54bab19 feat(battery): add sysfs charge limit detection with threshold support
- Read charge_control_end/charge_control from /sys/class/power_supply/BAT*
- Store threshold value and sysfs path in ChargeLimit dataclass
- Fall back to UPower D-Bus when sysfs unavailable
2026-07-23 11:32:03 +05:45
sankalp b8bde92042 style(notification): update close button to match SwayNotificationCenter design
- Remove opacity transition (Revealer handles visibility now)
- Bump min-size from 20px to 24px to match SwayNotificationCenter
- Zero padding for circular button appearance
- Use @glass-hover/@glass-active for consistent theme colors
2026-07-23 11:26:17 +05:45
sankalp 072f77e8cc fix(notification-center): preserve expanded state when closing notifications
- Replace CSS opacity toggle with Gtk.Revealer CROSSFADE for close button
- Add 80ms delayed hide to prevent race condition on boundary crossing
- Fix _refresh_group_widget to sync expanded list in-place instead of
  destroy/recreate when group is expanded
- Scope show_all() to expanded_container only to prevent collapsed state
  from becoming visible alongside expanded state
2026-07-23 11:26:09 +05:45
sankalp 71b20f8a2c feat(notification): add swipe-to-dismiss and close-button popup
- Replace CSS opacity toggle with Gtk.Revealer CROSSFADE for close button
- Wrap close button in EventBox for reliable hover detection
- Add 80ms delayed hide to prevent race condition on boundary crossing
- Implement swipe-right-to-dismiss with _fixed.move() for smooth 60fps
- Skip SlideRevealer.hide() on swipe dismiss to prevent skeleton flash
2026-07-23 11:26:04 +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 ed712b7af1 fix(controlcenter): suppress expected signal disconnect errors
- volume_scale/brightness_scale disconnect_by_func may fail if signals
  were never connected (e.g. on first hide before resources init)
- Downgrade from error to silent pass
2026-07-22 10:38:41 +05:45
sankalp 4bd99e221a Revert "fix(wifi): SVG lock icon for password-protected networks"
This reverts commit 7ce90995f6.
2026-07-22 10:37:33 +05:45
sankalp af44b02a60 Revert "fix(wifi): add alignment to SVG lock icon for visibility"
This reverts commit 43c5392f1c.
2026-07-22 10:37:33 +05:45
sankalp 43c5392f1c fix(wifi): add alignment to SVG lock icon for visibility
- Svg DrawingArea needs h_align/v_align to render in Box layout
2026-07-22 10:35:32 +05:45
sankalp 7ce90995f6 fix(wifi): SVG lock icon for password-protected networks
- Replace changes-prevent-symbolic with notch/lock.svg
2026-07-22 10:29:52 +05:45
sankalp 13ce9ba599 fix: formating 2026-07-22 10:29:32 +05:45
sankalp aea123b2f5 fix(globalmenu): downgrade D-Bus introspect timeout to debug
- Timeouts are expected for services without introspection support
- _dbus_get_pid and _dbus_introspect now log at debug level
- Cache already stores empty results; invalidation on service appear
  causes retries which is correct behavior
2026-07-22 10:27:44 +05:45
sankalp 970bebe84e fix(controlcenter): WiFi icon signal and accessor
- Change notify::wireless-enabled to notify::enabled
- Change .wireless_enabled to .enabled
2026-07-22 10:25:16 +05:45
sankalp 553b1e49d8 fix(spotlight): SVG search icon and import order
- Replace system-search-symbolic with misc/search.svg
- Add _ICON_SVG_MAP for GTK theme to SVG path resolution
- Move all imports to top of file (fix E402)
2026-07-22 10:25:10 +05:45
sankalp caba9fee47 fix(indicators): remove redundant mic signal disconnect
- disconnect_by_func before first connect always fails
- old device check already handles previous mic cleanup
2026-07-22 10:24:58 +05:45
sankalp cda9f629aa fix(notification): SVG fallback icon and theme icon loading
- Replace GTK theme notifications icon with SVG
- Fix load_and_cache_theme_icon to use Gtk.IconTheme directly
  instead of IconResolver (designed for app IDs, not theme names)
- Add suffix fallbacks for theme icon resolution
2026-07-22 10:24:53 +05:45
sankalp 45a3ccbcab fix: SVG icons for wifi password dialog and per-app volume
- Replace network-wireless-symbolic with wifi/network-wireless-100.svg
- Replace back button icon with misc/chevron-left.svg
2026-07-22 10:24:45 +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 be319c4baa fix(battery): DisplayDevice PropertiesChanged unpack error
- parameters.unpack() already returns plain Python values
- Cache values directly instead of calling .unpack() on int/str
2026-07-22 10:24:32 +05:45
sankalp b786d54a08 fix(bluetooth): late Battery1 interface attachment
- Add attach_battery_proxy() for devices where Battery1 appears after Device1
- Handle BLUEZ_BATTERY_IFACE in InterfacesAdded signal
- Search existing devices by object path to attach late battery proxy
2026-07-22 10:24:15 +05:45
sankalp e57d49c813 fix(wifi): has_style_class crash, panel refresh, other networks
- Replace Svg.has_style_class (nonexistent) with _anim_state flag
- Add on_show handler to trigger scan+refresh when wifi widget mapped
- Fix other_networks snap_to_size when section visible with children
- Add destroyed widget guards on connection callbacks
2026-07-22 10:24:08 +05:45