Add built-in updater, bump to 1.2.0

- predatord checks the Gitea releases every 6 hours, downloads the
  newest pacman package, verifies its SHA-256 from the release notes
  and installs it with `pacman -U` in a separate systemd unit
- Update notice and install button on the System page, in the sidebar
  and in the panel widget; `predatorctl update [--check] [--yes]`
- Optional API token for private repositories
- packaging/release.py builds and publishes releases in the format
  the updater expects

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-07 17:42:02 +02:00
co-authored by Claude Opus 5.5
parent 2ef62e85cd
commit cc4fdb9cd0
14 changed files with 376 additions and 9 deletions
@@ -72,6 +72,7 @@ PlasmoidItem {
? profileLabel(st.profile) + " · CPU " + temp(st.sensors.cpu_temp) + " · GPU " + temp(st.sensors.gpu_temp)
+ "\nFans " + (st.sensors.cpu_fan || 0) + " / " + (st.sensors.gpu_fan || 0) + " RPM"
+ "\nBattery " + batteryText()
+ (st.update && st.update.available ? "\nUpdate " + st.update.latest + " available" : "")
: "Service predatord not running"
P5Support.DataSource {
@@ -352,6 +353,27 @@ PlasmoidItem {
}
}
Kirigami.InlineMessage {
Layout.fillWidth: true
visible: root.ok && root.st.update !== null && root.st.update !== undefined && root.st.update.available
type: Kirigami.MessageType.Positive
text: root.ok && root.st.update ? (root.st.update_status === "running"
? "Installing update " + root.st.update.latest + "…"
: "Update " + root.st.update.latest + " available") : ""
actions: [
Kirigami.Action {
text: "Install"
icon.name: "update-none"
visible: root.ok && root.st.update && root.st.update.can_install && root.st.update_status !== "running"
onTriggered: root.run("update --yes")
},
Kirigami.Action {
text: "Details"
onTriggered: root.openPage("system")
}
]
}
PC3.Label {
Layout.fillWidth: true
visible: root.lastError !== ""