summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-06-08 20:25:54 +1000
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-06-08 20:25:54 +1000
commitc214b3c5d6cf48ed719e9c13a4f5bda4dc7ad107 (patch)
treedd8078ebde032078ccab26f02350c0d7ae50bfb3 /modules
parentcolours: fix switching (diff)
downloadcaelestia-shell-c214b3c5d6cf48ed719e9c13a4f5bda4dc7ad107.tar.gz
caelestia-shell-c214b3c5d6cf48ed719e9c13a4f5bda4dc7ad107.tar.bz2
caelestia-shell-c214b3c5d6cf48ed719e9c13a4f5bda4dc7ad107.zip
feat: add ipc commands for stuff
Diffstat (limited to 'modules')
-rw-r--r--modules/Shortcuts.qml19
1 files changed, 19 insertions, 0 deletions
diff --git a/modules/Shortcuts.qml b/modules/Shortcuts.qml
index f6cc9e3..bed620c 100644
--- a/modules/Shortcuts.qml
+++ b/modules/Shortcuts.qml
@@ -1,6 +1,7 @@
import "root:/widgets"
import "root:/services"
import Quickshell
+import Quickshell.Io
Scope {
id: root
@@ -34,4 +35,22 @@ Scope {
description: "Interrupt launcher keybind"
onPressed: root.launcherInterrupted = true
}
+
+ IpcHandler {
+ target: "drawers"
+
+ function toggle(drawer: string): void {
+ if (list().split("\n").includes(drawer)) {
+ const visibilities = Visibilities.getForActive();
+ visibilities[drawer] = !visibilities[drawer];
+ } else {
+ console.warn(`[IPC] Drawer "${drawer}" does not exist`);
+ }
+ }
+
+ function list(): string {
+ const visibilities = Visibilities.getForActive();
+ return Object.keys(visibilities).filter(k => typeof visibilities[k] === "boolean").join("\n");
+ }
+ }
}