pragma Singleton import QtQuick import Quickshell.Io QtObject { id: root property string profile: "" readonly property bool powerSaver: profile === "power-saver" property var _proc: Process { running: true command: ["powerprofilesctl", "get"] stdout: StdioCollector { onStreamFinished: root.profile = text.trim() } } property var _monitor: Process { running: true command: ["sh", "-c", "dbus-monitor --system \"interface='org.freedesktop.DBus.Properties',member='PropertiesChanged',path='/net/hadess/PowerProfiles'\" 2>/dev/null"] stdout: SplitParser { splitMarker: "\n" onRead: _debounce.restart() } } property var _debounce: Timer { interval: 300 onTriggered: root._proc.running = true } property var _poll: Timer { interval: 60000 running: true repeat: true onTriggered: root._proc.running = true } function set(p) { _setter.next = p; _setter.running = true; } property var _setter: Process { property string next: "" command: ["powerprofilesctl", "set", next] onRunningChanged: if (!running && next !== "") root._proc.running = true } }