66 lines
2.4 KiB
QML
66 lines
2.4 KiB
QML
pragma ComponentBehavior: Bound
|
|
pragma Singleton
|
|
import Quickshell
|
|
import Quickshell.Io
|
|
|
|
Singleton {
|
|
id: root
|
|
property alias colors: loader
|
|
function reload() {
|
|
loader.reload();
|
|
}
|
|
|
|
FileView {
|
|
id: loader
|
|
watchChanges: true
|
|
onFileChanged: this.reload()
|
|
onAdapterUpdated: this.reload()
|
|
|
|
// 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
|
|
}
|
|
}
|
|
}
|