diff options
Diffstat (limited to 'volume-osd')
| l---------[-rw-r--r--] | volume-osd/Theme.qml | 61 |
1 files changed, 1 insertions, 60 deletions
diff --git a/volume-osd/Theme.qml b/volume-osd/Theme.qml index bee17b4..3d2e40f 100644..120000 --- a/volume-osd/Theme.qml +++ b/volume-osd/Theme.qml @@ -1,60 +1 @@ -// Copyright (C) 2026 Danilo M. <danix@danix.xyz> -// -// 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. - -pragma Singleton - -import Quickshell -import Quickshell.Io -import QtQuick - -// The palette comes from unified-desktop-theme: udt-accent writes -// ~/.cache/wal/udt-palette.qml on every wallpaper change, holding the -// Macchiato colours from its palette.rasi plus the accent snapped from the -// wallpaper. Watching that file is what makes a theme edit show up here. -// -// The defaults below are only what renders before the file is read, or on a -// machine where unified-desktop-theme is not installed. -Singleton { - id: root - - property color base: "#24273a" - property color surface: "#363a4f" - property color text: "#cad3f5" - property color subtext: "#a5adcb" - property color red: "#ed8796" - property color overlay: "#6e738d" - property color accent: "#b7bdf8" - - readonly property string fontFamily: "Noto Sans" - readonly property int fontSize: 16 - - // Parsed rather than imported: a generated file cannot be a QML import - // without a qmldir next to it, and the cache directory has no reason to - // carry one. The format is fixed and machine-written, so a regex is enough. - FileView { - path: `${Quickshell.env("HOME")}/.cache/wal/udt-palette.qml` - watchChanges: true - onFileChanged: reload() - onLoaded: { - const pick = key => { - const m = text().match(new RegExp(`property color ${key}: "(#[0-9a-fA-F]{6})"`)); - return m ? m[1] : null; - }; - root.base = pick("base") ?? root.base; - root.surface = pick("surface0") ?? root.surface; - root.text = pick("text") ?? root.text; - root.subtext = pick("subtext0") ?? root.subtext; - root.red = pick("red") ?? root.red; - root.overlay = pick("overlay0") ?? root.overlay; - root.accent = pick("accent") ?? root.accent; - } - } -} +../shared/Theme.qml
\ No newline at end of file |
