aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/island/Island.qml
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-10-13 09:54:18 +0200
committerDanilo M. <danix@danix.xyz>2026-10-13 09:54:18 +0200
commitc635798c7e782af84ba1cf592e93619376a93d8a (patch)
tree82d3e30426a1ce199fc9566de3c01f11947de85c /desktop/island/Island.qml
parent934fdbeb44ff96d86840e20f5d69497556539aa9 (diff)
downloadquickshell-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.qml13
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); }
}
}