From 55619e7dc830697d2929b0bd5cf1c6dc7435720c Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Mon, 14 Sep 2026 12:20:23 +0200 Subject: feat(desktop): the appearance tile A tile with no page: appearance stays its own process because a wallpaper picker needs more room than a 600px drawer, so the tile only fires its existing IPC. This is the case the contract's activate() exists for. --- desktop/modules/appearance/AppearanceModule.qml | 35 +++++++++++++++++++++++++ desktop/shell.qml | 5 +++- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 desktop/modules/appearance/AppearanceModule.qml diff --git a/desktop/modules/appearance/AppearanceModule.qml b/desktop/modules/appearance/AppearanceModule.qml new file mode 100644 index 0000000..ca9dc7d --- /dev/null +++ b/desktop/modules/appearance/AppearanceModule.qml @@ -0,0 +1,35 @@ +// Copyright (C) 2026 Danilo M. +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License version 2 as +// published by the Free Software Foundation. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +import Quickshell +import Quickshell.Io +import QtQuick +import "../.." + +// Fire and forget. The appearance shell stays a separate process: a wallpaper +// picker needs more room than a 600px drawer, so this tile only opens it. +Module { + id: mod + + name: "appearance" + icon: "" + label: "Appearance" + + function activate() { + proc.running = false; + proc.running = true; + } + + property Process proc: Process { + command: ["qs", "-p", `${Quickshell.env("HOME")}/Programming/GIT/quickshell/appearance`, + "ipc", "call", "appearance", "wallpaper"] + } +} diff --git a/desktop/shell.qml b/desktop/shell.qml index ed219e5..c654cd4 100644 --- a/desktop/shell.qml +++ b/desktop/shell.qml @@ -12,6 +12,7 @@ import Quickshell import Quickshell.Io import Quickshell.Wayland +import "modules/appearance" ShellRoot { // Quickshell exits once no window is visible, and the drawer is closed @@ -28,7 +29,9 @@ ShellRoot { Drawer { id: drawer - modules: [] + modules: [ + AppearanceModule {}, + ] } // The waybar launcher and the deep-link keybinds all reach this: -- cgit v1.2.3