From 9d9e67a14967fe756c357b0ece3d9f339f8afa17 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Thu, 22 Oct 2026 17:25:15 +0200 Subject: settings: a Theme status page for unified-desktop-theme Shows the live scheme, accent and both wallpapers, the scheme and wallpapers linking to their own pages, then every udt consumer in a software and a hardware list, each with a Re-apply button running `install.sh `, and Re-apply all in the header. The list comes from `install.sh --list`, so a consumer added in unified-desktop-theme shows up here with no edit. One run at a time, and none during a scheme switch. QML's JS engine has no Object.fromEntries either: it threw a TypeError that only reached the log and left the page without its list. Noted in AGENTS.md beside String.matchAll. Co-Authored-By: Claude Opus 5.5 --- desktop/modules/appearance/UdtModule.qml | 44 ++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 desktop/modules/appearance/UdtModule.qml (limited to 'desktop/modules/appearance/UdtModule.qml') diff --git a/desktop/modules/appearance/UdtModule.qml b/desktop/modules/appearance/UdtModule.qml new file mode 100644 index 0000000..3b15c77 --- /dev/null +++ b/desktop/modules/appearance/UdtModule.qml @@ -0,0 +1,44 @@ +// 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 QtQuick +import "../.." + +// What unified-desktop-theme has set, and re-applying it to one consumer. +Module { + name: "udt" + label: "Theme status" + // nf-fa-sliders, present in Inconsolata Nerd Font. + icon: "" + settings: true + group: "Appearance" + keywords: ["consumer", "reapply", "install", "udt", "accent", "wallpaper"] + searchItems: Array.from(Udt.consumers).map(n => ({ text: `${n} ${Udt.consumerInfo[n] ?? ""}`, key: n })) + + function refresh() { Udt.refreshStatus(); } + + page: Component { + Page { + id: page + title: "Theme status" + actions: Component { + Button { + // nf-fa-refresh + icon: "\uf021" + text: Udt.reapplying === "*" ? "Applying…" : "Re-apply all" + enabled: Udt.reapplying === "" && !Udt.applying + onClicked: Udt.reapply("*") + } + } + UdtTab { width: parent.width; onGo: name => page.go(name) } + } + } +} -- cgit v1.2.3