diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-13 09:54:18 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-13 09:54:18 +0200 |
| commit | c635798c7e782af84ba1cf592e93619376a93d8a (patch) | |
| tree | 82d3e30426a1ce199fc9566de3c01f11947de85c /desktop/island/Island.qml | |
| parent | 934fdbeb44ff96d86840e20f5d69497556539aa9 (diff) | |
| download | quickshell-c635798c7e782af84ba1cf592e93619376a93d8a.tar.gz quickshell-c635798c7e782af84ba1cf592e93619376a93d8a.zip | |
feat(island): controls panel in the status pill, island IPC
A settings icon in the status pill opens the controls panel in the same
capsule the sound panel uses. Right-click on a tile closes the panel and
opens its drawer page. The island IPC target reveals the island and
toggles the panel, for the SUPER release bind.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'desktop/island/Island.qml')
| -rw-r--r-- | desktop/island/Island.qml | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/desktop/island/Island.qml b/desktop/island/Island.qml index 9cee3d5..43422dc 100644 --- a/desktop/island/Island.qml +++ b/desktop/island/Island.qml @@ -36,7 +36,7 @@ PanelWindow { WlrLayershell.namespace: "quickshell-island" WlrLayershell.keyboardFocus: panel !== "" ? WlrKeyboardFocus.OnDemand : WlrKeyboardFocus.None - // "" or "sound". + // "", "sound" or "controls". property string panel: "" // --- reveal and hide ------------------------------------------------- @@ -61,6 +61,15 @@ PanelWindow { else if (!hovered) hideTimer.restart(); } + // The keybind's way in: reveal, and open or close the controls panel. + // Closing goes through onPanelChanged, which starts the hide timer when + // the pointer is elsewhere. + function toggleControls() { + hideTimer.stop(); + shown = true; + panel = panel === "controls" ? "" : "controls"; + } + Timer { id: hideTimer interval: 400 @@ -206,5 +215,7 @@ PanelWindow { onMenuShown: win.menuHeld = true onOpenSound: win.panel = win.panel === "sound" ? "" : "sound" onOpenDrawer: { win.panel = ""; win.drawer.show("sound"); } + onOpenControls: win.toggleControls() + onOpenPage: page => { win.panel = ""; win.drawer.show(page); } } } |
