diff --git a/modules/IdleInhibitor.qml b/modules/IdleInhibitor.qml index 5a60515..d11f56e 100644 --- a/modules/IdleInhibitor.qml +++ b/modules/IdleInhibitor.qml @@ -1,50 +1,27 @@ import QtQuick -import Quickshell import Quickshell.Io import "." as M M.BarIcon { id: root color: root.active ? (parent?.accentColor ?? M.Theme.base05) : M.Theme.base04 - tooltip: { - const parts = ["Idle inhibition: " + (root.active ? "active" : "inactive")]; - if (root._inhibitors) - parts.push(root._inhibitors); - return parts.join("\n"); - } + tooltip: "Idle inhibition: " + (root.active ? "active" : "inactive") property bool active: false - property string _inhibitors: "" icon: root.active ? "\uF06E" : "\uF070" Process { - id: inhibitor - command: ["systemd-inhibit", "--what=idle", "--who=nova-shell", "--why=user", "sleep", "infinity"] - running: root.active - } - - // Poll current inhibitors - Process { - id: listProc - running: true - command: ["sh", "-c", "systemd-inhibit --list 2>/dev/null | grep -i idle | awk '{print $NF}' | sort -u | tr '\\n' ', ' | sed 's/, $//'"] - stdout: StdioCollector { - onStreamFinished: root._inhibitors = text.trim() ? "Blocked by: " + text.trim() : "" - } - } - - Timer { - interval: 5000 - running: root._hovered - repeat: true - triggeredOnStart: true - onTriggered: listProc.running = true + id: toggle + command: ["sh", "-c", root.active ? "pkill -x systemd-inhibit || true" : "systemd-inhibit --what=idle --who=nova-shell --why=user sleep infinity &"] } MouseArea { anchors.fill: parent cursorShape: Qt.PointingHandCursor - onClicked: root.active = !root.active + onClicked: { + root.active = !root.active; + toggle.running = true; + } } }