Files
arthur-os/shell/plugins/bar/widgets/SystemUpdate.qml
T

55 lines
1.1 KiB
QML

import QtQuick
import Quickshell
import Quickshell.Io
import qs.Commons
import qs.Ui
BarWidget {
id: root
moduleName: "SystemUpdate"
property bool updateAvailable: false
function refresh() {
if (!updateProc.running) updateProc.running = true
}
implicitWidth: button.implicitWidth
implicitHeight: button.implicitHeight
IpcHandler {
target: "SystemUpdate"
function refresh(): void {
root.refresh()
}
}
Process {
id: updateProc
command: ["bash", "-lc", "omarchy-update-available"]
stdout: StdioCollector { waitForEnd: true }
onExited: function(exitCode) {
root.updateAvailable = exitCode === 0
}
}
Timer {
interval: 21600000
running: true
repeat: true
triggeredOnStart: true
onTriggered: root.refresh()
}
WidgetButton {
id: button
anchors.fill: parent
bar: root.bar
text: root.updateAvailable ? "\uf021" : ""
fontSize: Style.font.caption
tooltipText: root.updateAvailable ? "Omarchy update available" : ""
onPressed: function() { root.bar.run("omarchy-launch-floating-terminal-with-presentation omarchy-update") }
}
}