mirror of
https://github.com/theupriser/steamify-cachyos.git
synced 2026-10-03 17:41:58 +02:00
feat: HDMI refresh boost and Update BIOS under Steam Machine support
Both are sub-options of Steam Machine support now, shown only while it is ticked. Unticking it unticks them; unticking the kernel pin unticks the HDMI refresh boost, which only works with the pinned kernel.
This commit is contained in:
1 parent
f28e880c04
commit
3974481e9e
4 files changed
+31
-18
No files matched your search
@@ -142,7 +142,7 @@ gamescope and the Plasma desktop. Primary target: the Valve Steam Machine
|
|||||||
`steam-set-session plasma.desktop` plus the plasmalogin sync bridge when it
|
`steam-set-session plasma.desktop` plus the plasmalogin sync bridge when it
|
||||||
exists, at every boot. CachyOS's `cachyos-gamescope-autologin` still sets
|
exists, at every boot. CachyOS's `cachyos-gamescope-autologin` still sets
|
||||||
gamescope during each desktop session; the unit corrects it at boot.
|
gamescope during each desktop session; the unit corrects it at boot.
|
||||||
- `bios` is an *action* (`ACTIONS` in `lib/menu.sh`), not an on/off
|
- `bios` is an *action* (`ACTIONS` in `lib/menu.sh`) and a sub-option of `machine`, not an on/off
|
||||||
component: never preselected (not even on a first run), never re-applied
|
component: never preselected (not even on a first run), never re-applied
|
||||||
by `a`, not listed in the state overview, and `bios_status` is always off.
|
by `a`, not listed in the state overview, and `bios_status` is always off.
|
||||||
Only selectable when Valve's version differs from the installed one
|
Only selectable when Valve's version differs from the installed one
|
||||||
@@ -171,8 +171,9 @@ gamescope and the Plasma desktop. Primary target: the Valve Steam Machine
|
|||||||
The start script closes its window after a 10-second countdown on success
|
The start script closes its window after a 10-second countdown on success
|
||||||
and waits for Enter after an error; it uses `pipefail`, or a failed
|
and waits for Enter after an error; it uses `pipefail`, or a failed
|
||||||
download would run an empty script and count as success.
|
download would run an empty script and count as success.
|
||||||
- HDMI refresh boost (`hdmi`, `lib/hdmi-refresh.sh`): only on Fremont with
|
- HDMI refresh boost (`hdmi`, `lib/hdmi-refresh.sh`): a sub-option of
|
||||||
the pinned kernel (stays visible while on). It needs someone at the
|
`machine` (like `kpin` and `bios`), only on Fremont with the pinned kernel
|
||||||
|
(stays visible while on); unticking `kpin` unticks it. It needs someone at the
|
||||||
screen: the graphical app's backend (`BACKEND=true`) must refuse it, and every step needs a "y" within 15 s
|
screen: the graphical app's backend (`BACKEND=true`) must refuse it, and every step needs a "y" within 15 s
|
||||||
(`WIZARD_HDMI_CONFIRM_SECONDS` for scripted tests). debugfs is root-only
|
(`WIZARD_HDMI_CONFIRM_SECONDS` for scripted tests). debugfs is root-only
|
||||||
(glob it under sudo), and `edid_override` takes exactly `reset` with no
|
(glob it under sudo), and `edid_override` takes exactly `reset` with no
|
||||||
|
|||||||
@@ -15,6 +15,10 @@ one per merged pull request.
|
|||||||
(rounded down to ten, plus the hundred below as a safe option), tests
|
(rounded down to ten, plus the hundred below as a safe option), tests
|
||||||
each step live with a confirmation, and makes the confirmed ones
|
each step live with a confirmation, and makes the confirmed ones
|
||||||
permanent through `drm.edid_firmware` (Limine, sdboot-manage or GRUB).
|
permanent through `drm.edid_firmware` (Limine, sdboot-manage or GRUB).
|
||||||
|
- **feat: HDMI refresh boost and Update BIOS under Steam Machine support**
|
||||||
|
- 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.
|
||||||
|
|
||||||
## 1.1.4 - 2026-09-25
|
## 1.1.4 - 2026-09-25
|
||||||
|
|
||||||
|
|||||||
@@ -50,15 +50,15 @@ What Steamify can do on a Valve Steam Machine:
|
|||||||
[release](https://github.com/theupriser/steamify-cachyos/releases/tag/kernel-7.1.6-1),
|
[release](https://github.com/theupriser/steamify-cachyos/releases/tag/kernel-7.1.6-1),
|
||||||
checked against CachyOS's signature
|
checked against CachyOS's signature
|
||||||
([details](TECHNICAL.md#kernel-pin-steam-machine)).
|
([details](TECHNICAL.md#kernel-pin-steam-machine)).
|
||||||
- **HDMI refresh boost** - only with the pinned kernel, never ticked by
|
- **HDMI refresh boost** - only with the pinned kernel, never ticked by
|
||||||
default: gets the highest refresh rate your HDMI display runs at the
|
default: gets the highest refresh rate your HDMI display runs at the
|
||||||
desktop resolution (e.g. 110 Hz instead of 60 on a 3440x1440 monitor).
|
desktop resolution (e.g. 110 Hz instead of 60 on a 3440x1440 monitor).
|
||||||
Each step is shown and you confirm it; no answer within 15 s switches
|
Each step is shown and you confirm it; no answer within 15 s switches
|
||||||
back. For more (e.g. 175 Hz), use DisplayPort
|
back. For more (e.g. 175 Hz), use DisplayPort
|
||||||
([details](TECHNICAL.md#hdmi-refresh-boost-steam-machine)).
|
([details](TECHNICAL.md#hdmi-refresh-boost-steam-machine)).
|
||||||
- **Update BIOS** - installs Valve's newest Steam Machine BIOS. Never ticked
|
- **Update BIOS** - installs Valve's newest Steam Machine BIOS. Never ticked
|
||||||
by default, at your own risk, and only after two warnings
|
by default, at your own risk, and only after two warnings
|
||||||
([details](TECHNICAL.md#bios-updates-steam-machine)).
|
([details](TECHNICAL.md#bios-updates-steam-machine)).
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
|
|||||||
+14
-6
@@ -10,7 +10,7 @@ COMPONENTS=(gaming boot theme glyphs single launcher cec machine kpin hdmi bios)
|
|||||||
# re-applied, not listed as on or off.
|
# re-applied, not listed as on or off.
|
||||||
ACTIONS=(bios)
|
ACTIONS=(bios)
|
||||||
# Sub-options, shown indented under their parent and only while it's ticked.
|
# Sub-options, shown indented under their parent and only while it's ticked.
|
||||||
declare -A PARENT=([boot]=gaming [kpin]=machine)
|
declare -A PARENT=([boot]=gaming [kpin]=machine [hdmi]=machine [bios]=machine)
|
||||||
# Never preselected on a first run: booting into the desktop is a choice,
|
# Never preselected on a first run: booting into the desktop is a choice,
|
||||||
# gamescope is the default; HDMI-CEC is opt-in (it can wake the machine or
|
# gamescope is the default; HDMI-CEC is opt-in (it can wake the machine or
|
||||||
# upset other devices on the TV, even on SteamOS), except on a Steam Machine,
|
# upset other devices on the TV, even on SteamOS), except on a Steam Machine,
|
||||||
@@ -96,6 +96,12 @@ toggle_component() {
|
|||||||
# The kernel pin is opt-out: ticked along with Steam Machine support.
|
# The kernel pin is opt-out: ticked along with Steam Machine support.
|
||||||
if [[ "$c" == machine ]]; then WANTED[kpin]=${WANTED[machine]}; fi
|
if [[ "$c" == machine ]]; then WANTED[kpin]=${WANTED[machine]}; fi
|
||||||
if [[ "$c" == kpin && "${WANTED[kpin]}" == 1 ]]; then WANTED[machine]=1; fi
|
if [[ "$c" == kpin && "${WANTED[kpin]}" == 1 ]]; then WANTED[machine]=1; fi
|
||||||
|
# HDMI refresh boost and the BIOS update sit under Steam Machine support;
|
||||||
|
# the boost also needs the pinned kernel (newer kernels don't need it).
|
||||||
|
if [[ "$c" == machine && "${WANTED[machine]}" == 0 ]]; then WANTED[hdmi]=0; WANTED[bios]=0; fi
|
||||||
|
if [[ "$c" == kpin && "${WANTED[kpin]}" == 0 ]]; then WANTED[hdmi]=0; fi
|
||||||
|
if [[ "$c" == hdmi && "${WANTED[hdmi]}" == 1 ]]; then WANTED[machine]=1; WANTED[kpin]=1; fi
|
||||||
|
if [[ "$c" == bios && "${WANTED[bios]}" == 1 ]]; then WANTED[machine]=1; fi
|
||||||
}
|
}
|
||||||
|
|
||||||
show_menu() {
|
show_menu() {
|
||||||
@@ -118,12 +124,13 @@ show_menu() {
|
|||||||
[[ "${CURRENT[gaming]}" == 1 ]] || now="-"
|
[[ "${CURRENT[gaming]}" == 1 ]] || now="-"
|
||||||
want="gaming"; [[ "${WANTED[boot]}" == 1 ]] && want="desk"
|
want="gaming"; [[ "${WANTED[boot]}" == 1 ]] && want="desk"
|
||||||
printf " %-3s %-6s %-6s └ %s\n" "$i" "$now" "$want" "$(boot_choice "${WANTED[boot]}")"
|
printf " %-3s %-6s %-6s └ %s\n" "$i" "$now" "$want" "$(boot_choice "${WANTED[boot]}")"
|
||||||
|
elif ! component_selectable "$c"; then
|
||||||
|
local tree=""; [[ -n "${PARENT[$c]:-}" ]] && tree=" └ "
|
||||||
|
printf " %b%-3s %-6s %-6s %s%s (not available)%b\n" "$c_dim" "$i" "$now" "$want" "$tree" "${LABEL[$c]}" "$c_reset"
|
||||||
elif [[ -n "${PARENT[$c]:-}" ]]; then
|
elif [[ -n "${PARENT[$c]:-}" ]]; then
|
||||||
printf " %-3s %b %-6s └ %s\n" "$i" "$now" "$want" "${LABEL[$c]}"
|
printf " %-3s %b %-6s └ %s\n" "$i" "$now" "$want" "${LABEL[$c]}"
|
||||||
elif component_selectable "$c"; then
|
|
||||||
printf " %-3s %b %-6s %s\n" "$i" "$now" "$want" "${LABEL[$c]}"
|
|
||||||
else
|
else
|
||||||
printf " %b%-3s %-6s %-6s %s (not available)%b\n" "$c_dim" "$i" "$now" "$want" "${LABEL[$c]}" "$c_reset"
|
printf " %-3s %b %-6s %s\n" "$i" "$now" "$want" "${LABEL[$c]}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
echo
|
echo
|
||||||
@@ -171,8 +178,9 @@ draw_menu_tui() {
|
|||||||
fi
|
fi
|
||||||
if ! component_selectable "$c"; then
|
if ! component_selectable "$c"; then
|
||||||
# Greyed out: nothing to do (e.g. BIOS already up to date).
|
# Greyed out: nothing to do (e.g. BIOS already up to date).
|
||||||
local mark=" "; (( i == cursor )) && mark=" ${c_cyan}>${c_reset} "
|
local mark=" " tree=""; (( i == cursor )) && mark=" ${c_cyan}>${c_reset} "
|
||||||
echo -e "${mark}${c_dim}[ ] ${LABEL[$c]} (not available)${c_reset}"
|
[[ -n "${PARENT[$c]:-}" ]] && tree=" └ "
|
||||||
|
echo -e "${mark}${c_dim}${tree}[ ] ${LABEL[$c]} (not available)${c_reset}"
|
||||||
elif (( i == cursor )); then
|
elif (( i == cursor )); then
|
||||||
# The green x's reset would end the bold too: re-enable it after.
|
# The green x's reset would end the bold too: re-enable it after.
|
||||||
echo -e " ${c_cyan}>${c_reset} ${c_bold}${line//"$c_reset"/"$c_reset$c_bold"}${c_reset}${state}"
|
echo -e " ${c_cyan}>${c_reset} ${c_bold}${line//"$c_reset"/"$c_reset$c_bold"}${c_reset}${state}"
|
||||||
|
|||||||
Reference in new issue
Block a user