* feat(island): add system tray slot and overflow menu to compact home
- Add system tray slot and overflow expander menu in Dynamic Island
- Share tray icon path resolution and DBus context menu fallback in TrayMenuManager
- Support edge-anchored context menu positioning across top, bottom, left, and right
- Lock bottom and edge anchoring in DContextMenu to prevent animation jitter
* fix(island): only instantiate tray menus when tray slot is enabled
* feat(island): expand tray item and caret click area to slot height
* fix(island): use Theme.surfaceTextHover and restore DContextMenu height behavior
* refactor(tray): extract shared TrayMenuContent and TrayOverflowGrid, support tray order and IPC in island
* Revert "refactor(tray): extract shared TrayMenuContent and TrayOverflowGrid, support tray order and IPC in island"
This reverts commit 29888f89cd.
* refactor(tray): use shared TrayMenuManager helpers and TrayItemIcon, support tray order and IPC in island
* refactor(tray): extract shared TrayMenuContent and TrayOverflowGrid
* feat(island): support tray item drag and drop reordering
* fix(island): prevent re-entrant tray drag reordering on model destruction
* fix(tray): remove native submenu anchor hydration to prevent popup stutter
* fix(tray): decouple submenu hydrator from anchor window to avoid stutter
* fix(tray): restore anchor window on submenu hydrator and disable on island
* tray: fix bar overflow surface & reuse max visible items on the island
* fix(frame): make connected mode honor the settings it overrides
Several frame-mode behaviors contradicted what the settings UI shows:
- Frame -> Blur gated blur for every shell surface in connected mode,
including the Settings window, polkit, context menus, OSDs and toasts.
WindowBlur now defaults to Background blur; only surfaces painted
with the frame color (connected popouts, slideouts, Control Center)
follow Frame -> Blur, and frame-owned surfaces are blurred by the
frame as before.
- The notepad slideout painted its own fill at the notepad
transparency. On screens where the frame owns connected chrome it now
claims a frame surface (new connected_arc slot 5), so the frame paints
it flush with the cutout, with fillets, and follows the slide.
- Notification popups painted a card surface on top of the frame body,
stacking fills. That layer is transparent when the frame paints it.
- Connected mode stripped shadow, border and corner styling from every
bar, including bars on displays without a frame, and hid the rows.
Styling is now stripped and restored per bar based on whether it
covers a frame display, re-checked on screen, frame display and
display-name-mode changes.
- Auto popup gaps and Gap size were hidden in separate mode although
they still apply there; they now hide only in connected mode.
- The launcher style picker was hidden in connected mode while Island
still overrode the connected launcher. Connected mode now always uses
the connected launcher; the picker shows Full, disabled, with a note
linking to the Bar layout picker.
- The frame shadow ignored Shadows -> Apply to -> Bars.
* fix(frame): address review feedback on connected mode
- Skip bar style reconciliation while the screen list is empty, so a
hotplug doesn't restore and re-strip every bar.
- Replace the 16 copies of the connector blur anchor and cutout in
FrameWindow with a ConnectorBlurRegion inline component.
- Let connected mode use the island launcher again now that the island
can sit in any bar. The picker offers Full and Island there and hides
Spotlight, which opens the full launcher in that mode anyway; the note
and the SettingsControlledBy bar target are dropped.
* frame: address review findings on connected mode
---------
Co-authored-by: purian23 <[email protected]>
- new blur variants, glow, wobble, motion blur and groupbar support
- new inputs support for mouse, touchpad and keyboard settings
- greeter, cheatsheet and scroll capture dispatch in Lua
- scrolling workspace screenshot focus fix
- fix scrolling screenshots from being cut-off on fractional-scale displays
- workspaces are keyed by address on the beta branch and upcoming stable release where named workspaces have no id
- bind flags, per-device binds, new window-rule keys and effects
- outputs default to preferred/auto/auto and gate HDR/VRR on hardwareDetails
- new dms setup/installer systemd session support on hyprland-session.target
deprecation notice to plugin compatibility shims
- When qml-common became a thing, we left qs.Widgets shims in place for
plugin compatibility
- It's annoying to need to maintain them when qml-common has any change,
add a warning so we can safely deprecate them in the future
- One shot rename the common stuff to D to make it shorter and nicer to
write
- caps lock, power profile, idle inhibitor and charging pulse in the island
- microphone mute and volume as a level transient
- privacy slot while mic, camera or screen share is in use
- duo battery style: arc around the network glyph with signal dots
scrollbar: interface style toggle and no scrollbars in the dash
dash: never allow scrollbars
cc: widget sheet cards, header close button and content-sized dialogs
- The island is now a bar widget so any bar can host one alongside the island layout and dot
- Routing got simpler: pick which shortcuts open here, the rest follow the shared rules
- IPC close/hide take down every surface showing the activity
- Qt 6.11 pointer prune workaround so the expanded island stays clickable