forked from Shinonome/dots-hyprland
64 lines
1.7 KiB
QML
64 lines
1.7 KiB
QML
pragma Singleton
|
|
pragma ComponentBehavior: Bound
|
|
|
|
import QtQuick
|
|
import Quickshell
|
|
import Quickshell.Hyprland
|
|
|
|
import qs.modules.common
|
|
import qs.modules.common.functions
|
|
|
|
/**
|
|
* Configs Hyprland
|
|
*/
|
|
Singleton {
|
|
id: root
|
|
|
|
signal reloaded()
|
|
|
|
readonly property string configuratorScriptPath: Quickshell.shellPath("scripts/hyprland/hyprconfigurator.py")
|
|
readonly property string shellOverridesPath: FileUtils.trimFileProtocol(`${Directories.config}/hypr/hyprland/shellOverrides/main.conf`)
|
|
|
|
function set(key: string, value: var) {
|
|
Quickshell.execDetached(["bash", "-c", //
|
|
`${root.configuratorScriptPath} --file ${root.shellOverridesPath} --set "${key}" "${value}"` //
|
|
])
|
|
}
|
|
|
|
function setMany(entries: var) {
|
|
let args = ""
|
|
for (let key in entries) {
|
|
args += `--set "${key}" "${entries[key]}" `
|
|
}
|
|
Quickshell.execDetached(["bash", "-c", //
|
|
`${root.configuratorScriptPath} --file ${root.shellOverridesPath} ${args}` //
|
|
])
|
|
}
|
|
|
|
function reset(key: string) {
|
|
Quickshell.execDetached(["bash", "-c", //
|
|
`${root.configuratorScriptPath} --file ${root.shellOverridesPath} --reset "${key}"` //
|
|
])
|
|
}
|
|
|
|
function resetMany(keys: list<string>) {
|
|
let args = ""
|
|
for (let i = 0; i < keys.length; i++) {
|
|
args += `--reset "${keys[i]}" `
|
|
}
|
|
Quickshell.execDetached(["bash", "-c", //
|
|
`${root.configuratorScriptPath} --file ${root.shellOverridesPath} ${args}` //
|
|
])
|
|
}
|
|
|
|
Connections {
|
|
target: Hyprland
|
|
|
|
function onRawEvent(event) {
|
|
if (event.name == "configreloaded") {
|
|
root.reloaded()
|
|
}
|
|
}
|
|
}
|
|
}
|