diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-07 18:58:11 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-07 18:58:11 +0200 |
| commit | f54639e3bee6803fc884135783c0633318a161a2 (patch) | |
| tree | 9ee4a0f5cac51ceaf71bf4f232ec300336d0eadb /desktop/shell.qml | |
| parent | b324ff0fb5cbc13a038ce2e5a2a4af69598bb91a (diff) | |
| download | quickshell-f54639e3bee6803fc884135783c0633318a161a2.tar.gz quickshell-f54639e3bee6803fc884135783c0633318a161a2.zip | |
feat(island): the island window on DP-1
A fixed overlay strip that never resizes: the pills animate inside it and
the input mask follows their rectangles, so resizing a layer surface during
a morph never happens. Hidden behind a sliver that also carries the privacy
colours; the clock pill drops alone for a workspace or app-open flick.
shell.qml gains the UseQApplication pragma, which tray menus need, and the
island holds itself shown while a tray menu is open, since the menu is a
separate popup that would otherwise un-hover the pills and let the hide
timer fire. The hold ends at the next hover.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'desktop/shell.qml')
| -rw-r--r-- | desktop/shell.qml | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/desktop/shell.qml b/desktop/shell.qml index c559385..eac0ddd 100644 --- a/desktop/shell.qml +++ b/desktop/shell.qml @@ -1,3 +1,4 @@ +//@ pragma UseQApplication // Copyright (C) 2026 Danilo M. <danix@danix.xyz> // // This program is free software; you can redistribute it and/or modify @@ -9,6 +10,9 @@ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. +// UseQApplication (line 1) is for the island's tray menus: SystemTrayItem +// display() fails without it. Pragmas are read only at launch, so changing +// it needs a restart, not a hot reload. import Quickshell import Quickshell.Io import Quickshell.Wayland @@ -22,6 +26,7 @@ import "modules/network" import "modules/sound" import "modules/status" import "modules/vm" +import "island" ShellRoot { // Quickshell exits once no window is visible, and the drawer is closed @@ -47,7 +52,7 @@ ShellRoot { Drawer { id: drawer modules: [ - SoundModule {}, + SoundModule { id: soundModule }, NetworkModule {}, BluetoothModule {}, KdeConnectModule {}, @@ -59,6 +64,13 @@ ShellRoot { ] } + // The island on DP-1. It reads the sound module's service rather than + // binding PipeWire a second time. + Island { + sound: soundModule.service + drawer: drawer + } + // The waybar launcher and the deep-link keybinds all reach this: // qs -p <this dir> ipc call drawer toggle -> the grid // qs -p <this dir> ipc call drawer open mail -> the mail page |
