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.
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.
- 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
- 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
- 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
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.
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.
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.
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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)
- 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
- 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
- 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
- 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