quickshell/ThemeLoader.qml
2026-03-08 12:13:35 +01:00

60 lines
2.2 KiB
QML

pragma ComponentBehavior: Bound
pragma Singleton
import Quickshell
import Quickshell.Io
Singleton {
id: root
property alias colors: loader
FileView {
id: loader
// create color properties, initialize them to black and helper color array
property var colors: text().split('\n')
property var base00: "#000000"
property var base01: "#000000"
property var base02: "#000000"
property var base03: "#000000"
property var base04: "#000000"
property var base05: "#000000"
property var base06: "#000000"
property var base07: "#000000"
property var base08: "#000000"
property var base09: "#000000"
property var base0A: "#000000"
property var base0B: "#000000"
property var base0C: "#000000"
property var base0D: "#000000"
property var base0E: "#000000"
property var base0F: "#000000"
property bool ready: false
path: "file:///home/lucy/.config/stylix/palette.json"
onLoaded: {
// assign values to colors after the json file has been loaded to avoid errors
base00 = "#" + colors[1].split(':')[1].slice(2, 8);
base01 = "#" + colors[2].split(':')[1].slice(2, 8);
base02 = "#" + colors[3].split(':')[1].slice(2, 8);
base03 = "#" + colors[4].split(':')[1].slice(2, 8);
base04 = "#" + colors[5].split(':')[1].slice(2, 8);
base05 = "#" + colors[6].split(':')[1].slice(2, 8);
base06 = "#" + colors[7].split(':')[1].slice(2, 8);
base07 = "#" + colors[8].split(':')[1].slice(2, 8);
base08 = "#" + colors[9].split(':')[1].slice(2, 8);
base09 = "#" + colors[10].split(':')[1].slice(2, 8);
base0A = "#" + colors[11].split(':')[1].slice(2, 8);
base0B = "#" + colors[12].split(':')[1].slice(2, 8);
base0C = "#" + colors[13].split(':')[1].slice(2, 8);
base0D = "#" + colors[14].split(':')[1].slice(2, 8);
base0E = "#" + colors[15].split(':')[1].slice(2, 8);
base0F = "#" + colors[16].split(':')[1].slice(2, 8);
ready = true;
}
adapter: JsonAdapter {
id: themeAdapter
}
}
}