Move from hypridle to QS

This commit is contained in:
David Heinemeier Hansson
2026-05-19 12:02:28 +02:00
parent 48dacca6ea
commit 0f5044167c
25 changed files with 326 additions and 99 deletions
+6 -11
View File
@@ -12,8 +12,7 @@ import qs.Ui
Item {
id: root
// The omarchy-shell host injects omarchyPath when it instantiates this Bar.
// Default fallback keeps the file loadable in isolation (e.g. for QML tooling).
// The omarchy-shell host injects omarchyPath from OMARCHY_PATH.
required property string omarchyPath
// Injected by the host shell. Shared with the bar settings panel so both
// see the same widget catalogue.
@@ -110,10 +109,6 @@ Item {
return "file://" + path.split("/").map(encodeURIComponent).join("/")
}
function commandWithOmarchyPath(command) {
return "OMARCHY_PATH=" + shellQuote(omarchyPath) + " " + command
}
function isPlainObject(value) {
return value !== null && typeof value === "object" && !Array.isArray(value)
}
@@ -539,7 +534,7 @@ Item {
Process {
id: updateProc
command: ["bash", "-lc", root.commandWithOmarchyPath("omarchy-update-available")]
command: ["bash", "-lc", "omarchy-update-available"]
stdout: StdioCollector { waitForEnd: true }
onExited: function(exitCode) {
root.updateAvailable = exitCode === 0
@@ -556,7 +551,7 @@ Item {
Process {
id: voxtypeProc
command: ["bash", "-lc", root.commandWithOmarchyPath("omarchy-voxtype-status")]
command: ["bash", "-lc", "omarchy-voxtype-status"]
running: true
stdout: SplitParser {
onRead: function(data) {
@@ -567,7 +562,7 @@ Item {
Process {
id: screenRecordingProc
command: ["bash", "-lc", root.commandWithOmarchyPath(root.shellQuote(root.omarchyPath + "/shell/scripts/indicators/screen-recording.sh"))]
command: ["bash", "-lc", root.shellQuote(root.omarchyPath + "/shell/scripts/indicators/screen-recording.sh")]
stdout: StdioCollector {
waitForEnd: true
onStreamFinished: root.updateIndicator("screenRecording", text)
@@ -576,7 +571,7 @@ Item {
Process {
id: notificationSilencingProc
command: ["bash", "-lc", root.commandWithOmarchyPath(root.shellQuote(root.omarchyPath + "/shell/scripts/indicators/notification-silencing.sh"))]
command: ["bash", "-lc", root.shellQuote(root.omarchyPath + "/shell/scripts/indicators/notification-silencing.sh")]
stdout: StdioCollector {
waitForEnd: true
onStreamFinished: root.updateIndicator("notifications", text)
@@ -1037,7 +1032,7 @@ Item {
Process {
id: customProc
command: ["bash", "-lc", root.commandWithOmarchyPath(String(customRoot.setting("exec", "")))]
command: ["bash", "-lc", String(customRoot.setting("exec", ""))]
stdout: StdioCollector {
waitForEnd: true
onStreamFinished: customRoot.update(text)
+9 -3
View File
@@ -33,11 +33,17 @@ Item {
Process {
id: statusProc
command: ["bash", "-lc", "pgrep -x hypridle >/dev/null 2>&1 && echo running || echo stopped"]
command: ["bash", "-lc", "omarchy-shell idle status 2>/dev/null"]
stdout: StdioCollector {
waitForEnd: true
onStreamFinished: {
root.active = String(text || "").trim() === "stopped"
var raw = String(text || "").trim()
try {
var parsed = JSON.parse(raw)
root.active = parsed && parsed.enabled === false
} catch (e) {
root.active = false
}
}
}
}
@@ -65,7 +71,7 @@ Item {
bar: root.bar
text: root.icon
active: false
tooltipText: root.active ? "No sleep, lock, or screensaver" : ""
tooltipText: root.active ? "No lock or screensaver" : ""
onPressed: function() { root.toggle() }
}
}
+1 -1
View File
@@ -1328,7 +1328,7 @@ iwctl known-networks list 2>/dev/null \\
// Bar.qml does not need to mirror network state.
Process {
id: networkProc
command: ["bash", "-lc", root.bar ? root.bar.commandWithOmarchyPath(root.networkCommand()) : ""]
command: ["bash", "-lc", root.bar ? root.networkCommand() : ""]
stdout: StdioCollector {
waitForEnd: true
onStreamFinished: root.updateNetwork(text)
+1 -1
View File
@@ -552,7 +552,7 @@ Item {
// Poll the weather pill text/class every minute. Local to this widget.
Process {
id: weatherProc
command: ["bash", "-lc", root.bar ? root.bar.commandWithOmarchyPath(root.bar.shellQuote(root.bar.omarchyPath + "/shell/scripts/weather.sh")) : ""]
command: ["bash", "-lc", root.bar ? root.bar.shellQuote(root.bar.omarchyPath + "/shell/scripts/weather.sh") : ""]
stdout: StdioCollector {
waitForEnd: true
onStreamFinished: root.updateWeather(text)