From dbafc43f2e01462c146db6664a0bcaeff90c87ca Mon Sep 17 00:00:00 2001 From: rickpeters Date: Fri, 25 Sep 2026 20:39:00 +0200 Subject: [PATCH] feat(ui): HDMI refresh boost in the app, off only The app gets its texts and the same rules as the menu: unticking Steam Machine support or the kernel pin unticks it. It can't be turned on from the app, as each step needs someone at the keyboard to confirm the picture. --- CHANGELOG.md | 2 ++ lib/backend.sh | 2 ++ ui/qml/Main.qml | 8 ++++++++ 3 files changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4161285..83a7ff2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,8 @@ one per merged pull request. - Both are sub-options now, shown only while Steam Machine support is ticked. Unticking it unticks them; unticking the kernel pin unticks the HDMI refresh boost. + - In the app, HDMI refresh boost can only be turned off: each step needs + someone at the keyboard, so it's turned on from the menu in Konsole. ## 1.1.4 - 2026-09-25 diff --git a/lib/backend.sh b/lib/backend.sh index 68b969c..1a52934 100644 --- a/lib/backend.sh +++ b/lib/backend.sh @@ -144,6 +144,8 @@ backend_apply() { [[ "${WANTED[gaming]:-0}" == 0 ]] && { WANTED[single]=0; WANTED[boot]=0; } [[ "${WANTED[kpin]:-0}" == 1 ]] && WANTED[machine]=1 [[ "${WANTED[machine]:-0}" == 0 ]] && WANTED[kpin]=0 + [[ "${WANTED[hdmi]:-0}" == 1 ]] && { WANTED[machine]=1; WANTED[kpin]=1; } + [[ "${WANTED[kpin]:-0}" == 0 ]] && WANTED[hdmi]=0 case "$boot" in desktop) WANTED[boot]=1; WANTED[gaming]=1 ;; gamescope) WANTED[boot]=0 ;; esac REAPPLY=$reapply diff --git a/ui/qml/Main.qml b/ui/qml/Main.qml index 925d4f5..1612eba 100644 --- a/ui/qml/Main.qml +++ b/ui/qml/Main.qml @@ -71,6 +71,9 @@ ApplicationWindow { kpin: { label: "Pin the kernel", hint: "Fixes rebooting after shutdown", body: "Newer CachyOS kernels make the Steam Machine reboot instead of shutting down. Untick once CachyOS fixes that.", changes: ["linux-cachyos from Steamify's release (signature checked)", "Kept in /var/cache/steamify/kernel", "Added to IgnorePkg"] }, + hdmi: { label: "HDMI refresh boost", hint: "Higher refresh over HDMI ยท turn on from Steamify in Konsole", + body: "The pinned kernel keeps many HDMI displays at 60 Hz. This finds the highest refresh rate your display runs at the desktop resolution. Each step needs you to confirm the picture, so it's turned on from the Steamify menu in Konsole; here you can only turn it off.", + changes: ["The display's EDID with the confirmed rates", "In the initramfs, drm.edid_firmware on the kernel command line", "Off: the display uses its own EDID again"] }, bios: { label: "Update BIOS", hint: "", body: "Installs Valve's newest Steam Machine BIOS, at your own risk. It checks Valve's checksum and asks fwupd whether the file fits this machine, then warns you twice before anything is written.", changes: ["Valve's fremont-hw-support package (checksum checked)", "fwupd writes the BIOS during the next restart", "Keep the power on until the machine has fully started again"] } @@ -132,8 +135,13 @@ ApplicationWindow { w[id] = !w[id]; if (id === "gaming" && !w.gaming) { w.single = false; } if (id === "single" && w.single) w.gaming = true; + // HDMI refresh boost needs someone at the keyboard to confirm each + // step: it's only turned on from the terminal menu. + if (id === "hdmi" && w.hdmi && !nowOn("hdmi")) return; if (id === "machine") w.kpin = w.machine; if (id === "kpin" && w.kpin) w.machine = true; + if (id === "hdmi" && w.hdmi) { w.machine = true; w.kpin = true; } + if (!w.machine || !w.kpin) w.hdmi = false; want = w; } function computePlan() {