nova-shell/shell/modules/SystemdModule.qml

55 lines
1.5 KiB
QML

import QtQuick
import Quickshell
import "." as M
import "../services" as S
import "../applets" as C
M.BarModule {
id: root
active: S.Modules.systemd.enable
tooltip: {
const sys = S.SystemdService.systemState;
const fc = S.SystemdService.totalFailedCount;
return "systemd: " + sys + (fc > 0 ? " (" + fc + " failed)" : "");
}
panelNamespace: "nova-systemd"
panelContentWidth: 300
panelComponent: Component {
C.SystemdApplet {
width: parent.width
accentColor: root.accentColor
active: root._showPanel
}
}
Connections {
target: S.SystemdService
function onSystemUnitsChanged() {
root.keepPanelOpen(300);
}
function onUserUnitsChanged() {
root.keepPanelOpen(300);
}
}
readonly property color _stateColor: {
const st = S.SystemdService.systemState;
if (st === "running")
return root.accentColor;
if (st === "degraded")
return S.Theme.base0A;
return S.Theme.base08;
}
M.BarIcon {
icon: ""
color: root._stateColor
anchors.verticalCenter: parent.verticalCenter
}
M.BarLabel {
label: S.SystemdService.totalFailedCount > 0 ? S.SystemdService.totalFailedCount + " failed" : S.SystemdService.systemState
minText: "degraded"
color: root._stateColor
anchors.verticalCenter: parent.verticalCenter
}
}