110 lines
2.8 KiB
QML
110 lines
2.8 KiB
QML
pragma Singleton
|
|
|
|
import Quickshell // for PanelWindow
|
|
import QtQuick // for Text
|
|
import QtQuick.Shapes
|
|
import QtQuick.Controls
|
|
import QtQuick.Layouts
|
|
import Quickshell.Io
|
|
import Quickshell.Widgets
|
|
import Quickshell.Wayland
|
|
import Quickshell.Hyprland
|
|
|
|
|
|
Singleton {
|
|
|
|
property bool launcherOpen: false
|
|
|
|
property string colorsDir: s_json.colorsDir
|
|
|
|
property string wallpaperDir: s_json.wallpaperDir
|
|
|
|
property string settingsDir: Quickshell.env("SETTINGS")
|
|
onSettingsDirChanged: reload()
|
|
|
|
function reload() {
|
|
settings.reload()
|
|
root.wallpaperDir = Qt.binding(() => s_json.wallpaperDir)
|
|
root.colorsDir = Qt.binding(() => s_json.colorsDir)
|
|
root.wallpaper = Qt.binding(() => c_json.wallpaper)
|
|
root.colors = Qt.binding(() => c_json.colors)
|
|
}
|
|
|
|
id: root
|
|
|
|
FileView {
|
|
|
|
id: settings
|
|
|
|
path: root.settingsDir
|
|
|
|
watchChanges: true
|
|
|
|
onFileChanged: reload()
|
|
|
|
JsonAdapter {
|
|
id: s_json
|
|
property string wallpaperDir
|
|
|
|
property string colorsDir
|
|
}
|
|
}
|
|
|
|
property string wallpaper: c_json.wallpaper
|
|
|
|
property string alpha: Math.round(parseInt(c_json.alpha, 10) * 0xFF / 100).toString(16)
|
|
|
|
property JsonObject special: c_json.special
|
|
property JsonObject colors: c_json.colors
|
|
|
|
function argb(c) {
|
|
return c.slice(0, 1) + Settings.alpha + c.slice(1)
|
|
}
|
|
|
|
FileView {
|
|
|
|
id: pywal
|
|
|
|
path: root.colorsDir
|
|
|
|
watchChanges: true
|
|
|
|
onFileChanged: reload()
|
|
|
|
JsonAdapter {
|
|
id: c_json
|
|
property string wallpaper
|
|
|
|
property string alpha: "100"
|
|
|
|
property JsonObject special: JsonObject {
|
|
property string background: "transparent"
|
|
property string foreground: "transparent"
|
|
property string cursor: "transparent"
|
|
}
|
|
|
|
property JsonObject colors: JsonObject {
|
|
property string color0: "transparent"
|
|
property string color1: "transparent"
|
|
property string color2: "transparent"
|
|
property string color3: "transparent"
|
|
|
|
property string color4: "transparent"
|
|
property string color5: "transparent"
|
|
property string color6: "transparent"
|
|
property string color7: "transparent"
|
|
|
|
property string color8: "transparent"
|
|
property string color9: "transparent"
|
|
property string color10: "transparent"
|
|
property string color11: "transparent"
|
|
|
|
property string color12: "transparent"
|
|
property string color13: "transparent"
|
|
property string color14: "transparent"
|
|
property string color15: "transparent"
|
|
}
|
|
}
|
|
}
|
|
}
|