diff options
| author | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-06-08 20:25:54 +1000 |
|---|---|---|
| committer | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-06-08 20:25:54 +1000 |
| commit | c214b3c5d6cf48ed719e9c13a4f5bda4dc7ad107 (patch) | |
| tree | dd8078ebde032078ccab26f02350c0d7ae50bfb3 /modules | |
| parent | colours: fix switching (diff) | |
| download | caelestia-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.qml | 19 |
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"); + } + } } |