Skip to content

feat(bar): add applets dropdown, active window pill, weather, battery, and fix auto-hide exclusion zone - #146

Merged
berlin-566 merged 1 commit into
mainfrom
feat/bar-autohide-pill-fix
Oct 15, 2026
Merged

berlin-566 merged 1 commit into
mainfrom
feat/bar-autohide-pill-fix

Conversation

@berlin-566

Copy link
Copy Markdown
Member

Summary

This PR addresses auto-hide screen space reclamation and introduces a new expandable Applets dropdown and configuration engine in the Settings UI with 5 key applets and bar glassmorphism controls.

1. Auto-Hide Window Area Reclamation

  • Configured layer-shell exclusion mode dynamically: when SettingsService.barAutoHide is enabled for Pill/Island bar modes, barSurface sets WlrLayershell.exclusionMode: ExclusionMode.Ignore.
  • Windows now utilize the complete screen height to the top monitor bezel instead of leaving an empty unused gap.
  • When revealed on mouse hover, the bar glides smoothly over the window as a true floating overlay with exact capsule input masking, preventing layout bounce or window resizing stutter.

2. Settings Sidebar "Applets" Dropdown Submenu

  • Updated SettingsSidebar.qml to turn Desktop Bar into an expandable parent row featuring a smooth rotate chevron.
  • Clicking Desktop Bar expands an indented child nav item named Applets (tab: 9) with fluid slide animations.
  • Added full metadata, navigation order, and shortcut support in Settings.qml.

3. Comprehensive Bar Applets & Features

  • Active Window Title & Icon Pill (ActiveWindowPill.qml):
    • Compositor-agnostic focused application tracking (Niri IPC focused-window & Hyprland).
    • Displays application icon with truncated title ([App] Title).
    • Left-click: toggles maximize / restore (maximize-column / fullscreen 1).
    • Right-click / double-click: invokes application switcher (launcher overview).
  • Dynamic Audio Visualizer & Mini Media Pill (MediaButton.qml):
    • 4-bar bouncing Cava audio visualizer synchronized to system sound output.
    • Spring-scale expansion animation whenever songs change.
    • Hover playback controls (previous, play/pause, next) directly in the pill.
  • Weather Pill & 3-Day Forecast Card (WeatherPill.qml, WeatherCard.qml, WeatherService.qml):
    • Displays condition icon + temperature (e.g., ☀ 33°C / 91°F) beside the clock.
    • Clicking opens an anchored floating popout card showing current humidity, wind speed, feels-like, and 3-day forecast with duotone weather icons.
    • Powered by Open-Meteo with local disk caching and 15-minute polling.
  • Battery Health & Charge Estimator (BatteryPill.qml):
    • Dynamic battery capsule with level percentage and charge/discharge time estimation (e.g. ⚡ 85% • 3h 15m).
    • Subtle breathing pulse animation when actively charging.
  • Network Traffic Monitor & Do Not Disturb Pills (NetworkPill.qml, DndPill.qml):
    • Real-time download/upload speed indicator (e.g. ↓ 1.2M ↑ 85K) from /proc/net/dev.
    • 1-click Do Not Disturb bell toggle that silences notification banners.
  • Bar Translucency & Glassmorphism:
    • Segmented style selector: Solid Background, Frosted Glass (blur), Translucent Gradient, or Wallpaper-adaptive tint.
    • Opacity & blur strength slider (20%–100%) in Bar Applets settings.

…, and fix auto-hide exclusion zone

- Fix layer-shell exclusion zone when bar auto-hide is active so windows use the full top screen space
- Add expandable Applets dropdown submenu under Desktop Bar in Settings sidebar
- Implement BarAppletsSettings page with comprehensive customization controls
- Add ActiveWindowPill applet with compositor-agnostic window tracking (Niri & Hyprland), maximize/minimize, and launcher switcher actions
- Add WeatherPill applet with live Open-Meteo conditions and interactive 3-day forecast floating card
- Add BatteryPill applet with pulse charging glow animation, level percentage, and charge/discharge time estimation
- Enhance Dynamic Media pill with track-change spring expansion, live Cava visualizer toggle, and hover playback controls
- Add Network traffic monitor applet and 1-click Do Not Disturb pill
- Add Bar Translucency and Glassmorphism customization (Solid, Frosted Glass, Gradient, Wallpaper-adaptive tint + opacity slider)
@berlin-566
berlin-566 merged commit d84248e into main Oct 15, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant