Files
steamify-cachyos/CHANGELOG.md
T
2026-10-02 09:10:26 +02:00

33 KiB

Changelog

All notable changes, per version and per commit. Versions follow Semantic Versioning; the current one is VERSION in steamify.sh. Versions before 0.7.0 were numbered afterwards, one per merged pull request.

2.11.0 - 2026-10-01

  • 5da1833 feat: "Start Steam silently" sub-option: under the SteamOS conversion (silent, on by default, as before) and under Gaming on NVIDIA (nvsilent, opt-in, not together with Big Picture); the SteamOS one is called "Start Steam silently in desktop mode" and is always shown, also on a Steam Machine

2.10.0 - 2026-10-01

  • d6db4f6 feat: "Gaming on NVIDIA" (nvidia) replaces the SteamOS conversion on PCs with an NVIDIA GPU, where gamescope's gaming mode shows a corrupted picture (NVIDIA bug 5240452): Steam is installed when missing and starts at login on the Plasma desktop; the sub-option "Steam starts in Big Picture" (bigpicture) starts it in Big Picture, unticked in its normal window, on an empty Plasma session so windows of the last session don't cover it. On a supported card (RTX 20 series or newer) it also sets the NVIDIA kernel parameters and early modules. The conversion and its options are hidden there unless already on
  • d1373e2 feat: single user mode also works on NVIDIA PCs, without the SteamOS conversion
  • 5811f5c fix: "Add as non-Steam game" isn't offered on NVIDIA PCs (shown when already on, so it can be turned off)
  • 83248a8 feat: Extended controller support (extended_controller_support, off by default): the Xbox wireless dongle (xone) and Xbox controllers over Bluetooth with rumble and battery level (xpadneo), built for every installed kernel; off removes only what Steamify installed
  • 01a77b7 feat: a new opt-in option (unticked by default) shows the "new" badge in the menu and the app
  • f1983a9 docs: README screenshots of the 2.10.0 app, side by side: on a Steam Machine and on a PC with an NVIDIA card

2.9.6 - 2026-09-30

  • fix(ci): a dev ISO from a release branch is built with that branch's own Steamify (input steamify_ref of the ISO workflow), not the newest published release: release/2.9.6 kept producing 2.9.5 ISOs
  • docs: changelog hashes for 2.9.6
  • 9a2965d fix(ci): the ISO workflow always runs from master; main asks for a release ISO, a release branch for a dev ISO (input kind of iso-1-github-tag.yml; feat/steamify is no longer needed)
  • c42d545 fix(ci): a version published from main starts a real ISO release, a release branch a dev ISO (it always started the dev one)
  • b3bed43 chore: Version 2.9.6

2.9.5 - 2026-09-30

  • 70ecb56 ci: trigger a mirror sync
  • a7276cf ci: sync the git.upriser.nl mirror on every branch and tag
  • b3549d4 ci: sync the mirror on release branch pushes too
  • a232a55 feat(ci): sync the git.upriser.nl mirror on every push to main and every tag (git-upriser-sync.yml calls the mirror-sync API: the Gitea mirror builds at once instead of at its interval; secrets GIT_UPRISER_URL and GIT_UPRISER_TOKEN, retried, skipped on Gitea itself)
  • 3676c64 docs: link the renamed steamify-cachyos-live-iso repo (the release dispatches the ISO workflow iso-1-github-tag.yml there)
  • 971e792 chore: Version 2.9.5

2.9.4 - 2026-09-29

  • 619ef1f docs: AGENTS.md and TECHNICAL.md: the CEC driver cache, the one workflow for GitHub and a Gitea mirror, and that a new release starts the Steamify ISO's release
  • b624053 chore: Version 2.9.4

2.9.3 - 2026-09-29

  • 7f5d29c feat(ci): a new Steamify release starts the Steamify ISO's release (a test build from the ISO repo's feat/steamify; secret ISO_DISPATCH_TOKEN)
  • cfe3ce7 chore: Version 2.9.3

2.9.2 - 2026-09-29

  • feat(ci): a Gitea mirror publishes its own release per version (akkuman/gitea-release-action; never overwrites one, notes from the changelog, links to the mirror)
  • fix(ci): the build also runs on a Gitea mirror (act_runner): shellcheck through ludeeus/action-shellcheck, which brings its own binary; the artifact goes up there with christopherhx/gitea-upload-artifact (GitHub refuses a workflow that mentions the deprecated upload-artifact@v3); releases are only published on GitHub
  • fe4f3f4 chore: Version 2.9.2

2.9.1 - 2026-09-29

  • c87e6c7 docs: changelog for the CEC driver cache
  • fc05725 fix: HDMI-CEC: an older cached CEC driver is removed when a new pin is downloaded
  • 90bc5e4 fix: HDMI-CEC: Valve's CEC driver is downloaded once and kept in /var/cache/steamify (GitHub rate-limits repeated downloads with HTTP 429, which left CEC off); turning CEC on again needs no network
  • d99ff65 chore: Version 2.9.1

2.9.0 - 2026-09-28

  • d30d505 chore: Version 2.9.0
  • 66ea63c docs: KDE Plasma only: other desktops and display managers "are not supported" (README, was "don't work yet")
  • 9b86cd1 docs: KDE Plasma only: other desktops don't work yet (README)
  • d73e71d docs: README, TECHNICAL and TROUBLESHOOTING for 2.9.0: Steam's System settings, serial number and Wi-Fi backend, --defaults --list, the Steamify ISO
  • a72d848 feat: Steam's OS Version is the SteamOS release Steamify follows (steamos-3.9), its OS Codename steam-machine; About this System keeps "CachyOS Linux" (UseOSReleaseVersion)
  • 27a4070 fix: Steam's OS Variant shows Steamify's version (VARIANT_ID=steamify-2.9.0; Steam shows VARIANT_ID, not VARIANT)
  • 44bfe07 fix: No VERSION_ID in os-release: About this System said "CachyOS Linux 2.9.0"; the version is in VARIANT ("Steamify 2.9.0")
  • 435f69c feat: Steam's System settings: the OS name stays CachyOS (no renaming, also not in About this System), Steamify as the variant, the SteamOS release it follows as the codename (steamos-3.9)
  • ce71b34 feat: Steam's System settings and About this System like on SteamOS: OS name "CachyOS with Steamify" (lsb-release, kept through CachyOS updates by a pacman hook), Steamify as OS variant and version (os-release VARIANT/VERSION_ID; NAME/PRETTY_NAME stay CachyOS's for limine, TARGET_OS_NAME pinned), "CachyOS Linux with Steamify" in About this System; on a Steam Machine the serial number and Steam's Wi-Fi backend setting (existing installs get it as an update)
  • 07a94cd fix(ui): The progress screen's ✓ and ! stand upright: only a dot on the circle spins while a step runs (they kept the spinner's last angle)

2.8.0 - 2026-09-28

  • chore: Version 2.8.0
  • feat: steamify.sh --defaults --list: what --defaults can set up here, as JSON, for an installer page

2.7.0 - 2026-09-28

  • 4f6e6fd feat: --defaults takes --skip and --boot gamescope|desktop, for the Steam Machine ISO's installer pages
  • 5bf9da4 fix: HDMI-CEC enables cec-audio-control.socket (the TV remote's volume keys); existing installs get it as an update
  • 14aa7c0 fix: the app's progress screen says "Boot into desktop", not "Boot into Boot into"
  • c4ec755 feat: --defaults --options (exactly these on) replaces --skip; steamify.sh --boot gamescope|desktop on its own switches where an installed conversion starts
  • eadbdda docs: release branches (release/X.Y.Z, feature/ and bugfix/ branches into it, the release into main); CI builds release/ pushes**
  • bee18b7 docs: the agent merges feature/bugfix branches into the release branch; the release into main stays the user's
  • 501c0ba docs: gh or git for merging into the release branch
  • b1adacb docs: gh is required for the release-branch pull requests; ask the user to install it
  • ced4a45 chore: the v2 app preview is gone (it is the released app): no preview pre-release step in CI, no mention in steamify-app.sh
  • fix: turning the theme off no longer brings back single user's launcher restriction when single user was turned off in between

2.6.0 - 2026-09-27

  • b948c20 feat: --defaults applies the default setup without the menu, also from an installer (no session): the base for a Steam Machine ISO

2.5.2 - 2026-09-27

  • 0c96bed docs: README screenshot at 2.5.2: everything on, nothing to update

2.5.1 - 2026-09-27

  • fix: Add as non-Steam game asks Steam to close again every 15 s (a Steam that was still starting ignored it)
  • 3a0692f docs: README screenshot at 2.5.1 with Add as non-Steam game
  • e86ddcc feat: Add as non-Steam game: Steamify in the Steam library, under the shortcut; controller works when started from Steam
  • 389bc33 fix(ui): B never quits (Steam sends Esc for it), Ctrl+Q does; started from Steam, the hints show the Steam Controller's buttons
  • c6c1150 fix(ui): Enter selects (a Steam Controller's A in Steam's desktop layout); Ctrl+Enter reviews and applies
  • 98e2eff fix(ui): Started from Steam, the app runs without Steam's overlay (Qt aborted) and stays in the foreground, so Steam Input gives it the controller
  • 431515b feat(ui): Review & apply greyed out while nothing would change; the Done screen shows why a run stopped

2.5.0 - 2026-09-27

  • docs: README: what the VRAM booster says with NVIDIA's closed driver; shorter unsupported text in the app
  • 32c33e4 fix: An option left unticked stays off: it came back ticked as "new" on the next run (since 2.3.0)
  • 2dd0f3a feat: VRAM booster with NVIDIA says what to do: update, switch to the open driver (chwd command), or not supported by the card
  • 57995bc docs: VRAM booster works with NVIDIA's open kernel modules (driver 615+); only the closed driver is greyed out
  • d57e8d8 docs: AGENTS.md and changelog for the vidmem detection
  • 5a34633 feat: VRAM booster also for drivers that name their region vidmem (or numbered), NVIDIA included once its driver registers it
  • 479b70b feat: Everything in the home folder under steamify (state, scripts, icon), moved once from the old name
  • 2e0881b fix: fill takes values literally; the notifier path is quoted in its unit
  • cce31e1 refactor: DKMS confs in patches/; an existing leds-valve DKMS override is kept and restored
  • bd4fa3a refactor: The session sync and kernel headers scripts in patches/
  • 8ffa0f2 refactor: systemd units in services/, read with service_file like patches/
  • 8a2601d docs: README screenshot at 2.5.0 with Update notifications; AGENTS.md: retake it when rows change
  • 572417b fix: Open Steamify from the notification starts the app (own scope), the same way it was last used (app or terminal)
  • cf73229 feat: Update notifications: a notification and tray icon when there's a new Steamify

2.4.1 - 2026-09-27

  • chore: Version 2.4.1
  • 6f598d1 docs: README screenshot shows every option
  • 9bbe5fa docs: Screenshot of the app's menu in the README

2.4.0 - 2026-09-27

  • 03a8b8c chore: Version 2.4.0
  • e699a3f refactor(ui): One QML file per screen; the HDMI boost's setup screens and backend commands removed

2.3.0 - 2026-09-27

  • 86b9744 feat: VRAM booster greyed out with an NVIDIA card, with why
  • b0947d7 feat: VRAM booster only for GPUs with at least 2 GB of their own VRAM
  • 3f97c85 feat: VRAM booster for every supported GPU, not only the Steam Machine
  • fd162c1 feat: New badge for default sub-options added in this version
  • 54ebddf feat: VRAM booster for the Steam Machine

2.2.0 - 2026-09-27

  • ef585c0 docs: Changelog entries per commit for 2.2.0
  • 32795bd feat(ui): Update badge on the progress screen
  • 3c8ca65 fix(ui): Never write the sudo password to a file; Update label on the progress screen
    • The app gave sudo the password through a short-lived file; the helper now reads it from a named pipe the app feeds from memory each time sudo asks. The progress screen showed "undefined" for an update.
  • 11a91ef feat: Update badge on components that get a newer version
    • The menu (terminal and app) shows "(update)" / an Update badge after the name of a component a normal run will update.
  • 163f790 feat: Feature versions are Steamify versions; Steam Machine support is 2.2.0
    • Each component records the Steamify version of what it set up; when a release changes a component, installs with an older version are ticked and updated by a normal run ("update" in the plan and the app's review). A setup from before counts as 2.1.0, so Steam Machine support (2.2.0) is updated on machines set up with 2.1.0. New default sub-options (like the power-off fix) are ticked where their parent is on.
  • e121b06 fix: Remove whatever is left of HDMI refresh boost, pin or no pin
    • HDMI refresh boost needed the pinned kernel and is retired (newer kernels do HDMI 2.1 themselves): whatever is left of it (saved displays, also ones not connected, its hotplug script, the old kernel parameter) is unticked and removed by the next run.
  • 19ca966 docs: Drop the kernel pin and HDMI refresh boost descriptions
  • 56fb908 docs: Power-off fix texts cover every affected kernel, not just 7.2
  • 6df19eb feat: Power-off fix as its own sub-option, drop the kernel pin, feature versions
    • The power-off fix is a sub-option of Steam Machine support, ticked along with it (opt-out). The kernel pin is no longer offered: an existing pin is shown unticked, so the next run removes it and brings back CachyOS's current kernel.
  • 7694c97 feat: Power-off fix for the Steam Machine; the kernel pin is optional
    • With recent kernels (newer 6.x, 7.0 and 7.1 updates, 7.2 and probably later ones) the Steam Machine started again right after shutting down: they keep the wake bit the firmware sets on GPIO pin 18, which Valve's own kernel clears in a patch that won't reach CachyOS. A small module, built with DKMS for each installed kernel, clears it right before power-off. Tested with CachyOS 7.2.8: stays off, and without the module it rebooted.
    • Module sources and patches live in patches/ instead of inside the shell code; the single-file build and the app package include them. The Steam Machine CEC driver change is now patches/cros-ec-cec-single-port.patch.

2.1.0 - 2026-09-26

  • feat(ui): Manage button for HDMI refresh boost
    • The item's switch is a button: Set up… while no display is saved, Manage after that. Manage lists the saved displays (connected or not), removes one with its Remove button, and sets up the connected display when it has no saved rates yet.
  • 4cc87aa feat: HDMI refresh boost per display, with a Saved displays screen
  • 36d0a9d feat: HDMI refresh boost only for the display it was set up for
    • The EDID override was on the kernel command line, so any display on that HDMI port got the first display's timings. Rates are now saved per display and loaded at boot and at every hotplug for the display that's connected (its ID read over DDC); a display without saved rates, or unplugging, puts the port back on the display's own EDID. No initramfs or boot loader change any more. An existing setup is moved over when re-applied (a).
    • The item shows on only while the connected display is boosted, so a new display can be set up by ticking it; unticking removes only that one.

2.0.3 - 2026-09-26

  • fix: HDMI-CEC on the Steam Machine
    • Mainline's cros_ec_cec driver doesn't know the Steam Machine, so there was no /dev/cec0. HDMI-CEC now builds Valve's version of the driver with DKMS (steamify-cros-ec-cec) for every installed kernel, with a fix so it finds amdgpu's HDMI port even though amdgpu loads first. An existing HDMI-CEC install is ticked in the menu to add it.

2.0.2 - 2026-09-26

  • badfd84 docs: Non-affiliation disclaimer in the README
    • States that the project isn't affiliated with Valve or CachyOS, and that Steam and SteamOS are Valve's trademarks.

2.0.1 - 2026-09-25

  • 2b3f1de feat: The Steamify shortcut opens the app
    • "Steamify CachyOS" on the desktop and in the launcher starts the newest app (in Konsole the first time, if PySide6 still has to be installed). The terminal menu is "Steamify Terminal" in the launcher. A shortcut from before 2.0.1 is ticked in the menu, so a normal run replaces it.
    • steamify-app.sh leaves the shortcut's launcher entry alone (it has the same id, steamify-ui.desktop, and always starts the newest release).

2.0.0 - 2026-09-25

  • feat: Steamify app (v2 UI)
    • A graphical app for controller, keyboard and TV remote, driving the same components through steamify.sh --backend; the BIOS update with both warnings; built by GitHub and run with curl.
  • feat(ui): HDMI refresh boost in the app
    • "Set up…" opens its own screen: the display, its resolution and the rates on offer (its own mode, calculated tens, the HDMI 2.0 limit). The display's own faster mode is switched to right away; every other rate has a Try button (switch live, wait for the picture, then keep it within 15 s or it switches back) and a tick box. Install installs the ticked rates. All rates are loaded when the screen opens, so a try is only a mode switch.
    • Unticking Steam Machine support or the kernel pin unticks it, as in the menu.
  • fix(ui): The details panel scrolls instead of overflowing
  • fix: Switching back to a rate like 59.97 Hz
    • hdmi_set_mode compared it as a whole number and printed an error.

1.2.0 - 2026-09-25

  • feat: HDMI refresh boost (Steam Machine, pinned kernel)
    • The pinned 7.1.6 kernel doesn't read the extra EDID block where monitors list their fast modes, and does no HDMI 2.1, so HDMI displays often stay at 60 Hz. The new menu item reads the display's EDID over DDC, calculates the highest rate that fits HDMI 2.0 at the desktop resolution (rounded down to ten, plus the hundred below as a safe option), tests each step live with a confirmation, and makes the confirmed ones 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

  • fix: No lock screen in single user mode before a restart
    • The screen locker only read the new settings at the next login, so the PC still locked after 5 minutes idle until then. Turning single user mode on or off now tells it to reload them right away.

1.1.3 - 2026-09-25

  • fix: HDMI-CEC settings shown in Steam
    • CachyOS's gaming mode script sets STEAM_ENABLE_CEC=0, which hides Steam's HDMI-CEC settings (and its CEC volume buttons). HDMI-CEC now adds a drop-in for steam-launcher.service that overrides it with STEAM_ENABLE_CEC=1 (/etc/steamify/steam-cec.env).
    • HDMI-CEC set up by 1.1.0-1.1.2 shows as off and ticked, so a normal run (Enter) adds this.

1.1.2 - 2026-09-25

  • fix: Steam's HDMI-CEC settings reach cecd on a first run
    • HDMI-CEC runs before Steam Machine support, which installs steamos-manager; so steamos-manager's configure-cecd unit couldn't be enabled and cecd ran without Steam's settings. Steam Machine support now links them once steamos-manager is there.

1.1.1 - 2026-09-25

  • perf: Pinned kernel before the LED driver
    • With the kernel pin ticked, Steam Machine support installs kernel 7.1.6-1 first, so DKMS builds the LED driver once, for that kernel, instead of for the current kernel first and then again. The LED driver then loads after the restart, which it now says instead of warning.
  • fix: steamos-manager starts after cecd
    • It checks only at its start whether cecd runs; if it was first, Steam's HDMI-CEC settings were missing until it restarted. A drop-in (/etc/systemd/user/steamos-manager.service.d/) orders it after cecd.

1.1.0 - 2026-09-25

  • feat: HDMI-CEC (experimental, on every PC; ticked by default only on a Steam Machine)
    • Valve's cecd, cec-audio-control and inputattach-cec-units from its SteamOS repository (SHA-256 checked): use Steam with the TV remote, and the TV turns on and off with the PC. On a Steam Machine, steamos-manager configures it from Steam's settings.
    • Works with any /dev/cec* (GPU or USB adapter); the menu lists them.
    • CEC.md: which PCs have CEC (NVIDIA doesn't, AMD/Intel only over some DisplayPort adapters), and USB adapters for your own build.
    • Restarts steamos-manager, which only offers Steam its HDMI-CEC settings when cecd was there at its start.
    • The README no longer says Steam Machine support alone gives HDMI-CEC: cecd wasn't installed, so it didn't.

1.0.0 - 2026-09-25

  • feat: Pin the kernel to 7.1.6-1 on a Steam Machine
    • New sub-option under Steam Machine support, ticked along with it (opt out): newer CachyOS kernels make the Steam Machine reboot instead of shutting down. Installs linux-cachyos and -headers 7.1.6-1 and adds them to IgnorePkg; unticking removes the pin and updates the system.
    • The packages are kept in /var/cache/steamify/kernel and reinstalled from there without downloading; else from pacman's cache, the CachyOS archive, the CachyOS mirror, or PINNED_KERNEL_URL.
    • First download source: the kernel-7.1.6-1 release of this repo, a one-off release that always has these files.
    • Every file is checked against its SHA-256 (in the script) and its CachyOS signature before it's installed; a bad file is deleted.
    • Installed kernel headers are no longer updated by the wizard, so the pinned kernel keeps matching headers.
    • The BIOS item moves down one (9 on a Steam Machine).
  • docs: Shorter README, with a Steam Machine section
    • How it works moved to TECHNICAL.md, problems to TROUBLESHOOTING.md; the README links to them and to the files it mentions.
  • feat: No more KDE wallet password prompts in single user mode
    • Uses Valve's empty, password-less wallet, like SteamOS; apps such as Brave no longer ask for the wallet password after autologin.
    • Your own wallet is moved to kdewallet.kwl.bak-steamify and comes back, unchanged, when single user mode is off; the single user wallet is kept and reused next time.
    • Moved from the SteamOS theme, where it only helped without any wallet.
  • fix: No second sudo password prompt while installing yay
    • makepkg -si installs with sudo -k, which forgets the cached password; yay is now built with makepkg and installed with sudo pacman -U.
  • docs: LICENSE.md with the MIT license the README already named.
  • chore: No more setup-gamescope-boot.sh release asset
    • Only steamify.sh is published; the old name from before 0.9.0 is gone.

0.10.0 - 2026-09-24

  • 0f503dd feat: Boot into gamescope or the desktop
    • New menu row under the conversion, "Boot into: [gamescope] / desktop"; gamescope stays the default and is never changed on a first run.
    • Desktop: steamify-boot-desktop.service sets the autologin session to Plasma at every boot, before the login manager starts; Return to Gaming Mode and Steam's Switch to Desktop keep working. Back to gamescope removes it. Choosing desktop turns the conversion on; turning the conversion off resets it to gamescope.
    • The later menu items move down one (BIOS is now 8 on a Steam Machine).
  • 4895de3 feat: "Boot into" is a sub-option of the conversion
    • Shown indented under the SteamOS conversion, and only while it's ticked.
  • bd90e29 feat: Left/Right arrows choose on the "Boot into" row
    • Left = gamescope, right = desktop (Space still switches); the row says "←/→ choose" and the key help lists Left/Right.
  • fix: Messages say which way it boots
    • "This will: boot into: gamescope (from the next boot)" instead of "turn off: Boot into the desktop instead of gaming mode", and the same in the progress line and the "Done" overview.

0.9.1 - 2026-09-24 (#10)

  • 2e107e5 fix: LED driver for every kernel on a fresh install
    • The DKMS override was written to /etc/dkms before dkms was installed, when that folder doesn't exist yet, so it silently failed and the build for other kernels (e.g. LTS) failed as in 0.6. The folder is created first now, and a failed write stops with an error.
  • 5ab83d6 feat: Restart question on quit is "Restart now? [Y/n]"
    • When something needs a restart, q asks with yes as the default; n goes back to the menu and the next q asks again. Ctrl+C quits without restarting; scripted input that runs out never restarts.

0.9.0 - 2026-09-24 (#9)

The wizard is now called Steamify CachyOS, and can put a shortcut to itself on the desktop.

  • f01aa93 feat: Wizard shortcut on the desktop and in the launcher
    • New menu item: a desktop icon and app launcher entry that open the newest release of the wizard in Konsole (curl | bash).
    • Its icon: Valve's Return to Gaming Mode icon with a gear instead of the arrow (assets/steam-gaming-settings.svg), published with every release and downloaded from there.
    • Desktop files are written already executable, so Plasma runs them instead of opening them in an editor.
  • be874b8 feat: Rename to Steamify CachyOS
    • Menu header, the shortcut ("Steamify CachyOS", menu item "Steamify shortcut"), release titles, README and AGENTS.md.
  • 1c34a97 chore: Repository renamed to steamify-cachyos
    • All URLs point to github.com/theupriser/steamify-cachyos (the old ones redirect). The script keeps its name, setup-gamescope-boot.sh, so the old download URL keeps working; internal names such as ~/.local/state/cachyos-gamescope-boot stay, so existing installs can still be turned off.
  • 69a420b feat: The script is now steamify.sh
    • setup-gamescope-boot.sh is renamed to steamify.sh; releases publish the bundle under both names, so .../download/setup-gamescope-boot.sh keeps working. The Steamify shortcut runs steamify.sh.
  • b0553ae docs: Shorter README intro
  • afc05b0 feat: The shortcut's window closes itself after a countdown
    • After the wizard ends, a 10-second countdown closes the Konsole window (Enter closes it right away); after an error it stays open until Enter.
    • A failed download now counts as an error (pipefail) instead of running an empty script.

0.8.0 - 2026-09-24 (#8)

An opt-in BIOS update for the Steam Machine, and a menu that comes back after every run.

  • 2f9b2a5 feat: Opt-in BIOS update for the Steam Machine
    • New menu item (Steam Machine only, never ticked by default) showing the current BIOS version and the newest from Valve's fremont-hw-support.
    • Two large warnings and two confirmations (y/N, then typing UPDATE), checksum-verified download, installed with fwupd; the wizard then offers the restart that writes it, with a warning to keep the power on.
  • 40c9ee6 fix: BIOS update only when newer, device check first, aligned warnings
    • The item is greyed out and can't be ticked unless Valve has a newer BIOS.
    • Before any warning: SHA-256 of Valve's package, then fwupd confirms the firmware fits this machine's hardware; otherwise it stops.
    • Warning box drawn with a solid red frame whose edges line up, and the menu's "Now" column aligned.
  • b70c9d6 fix: shellcheck in the bundle, and the docs for the BIOS checks
    • A variable name in lib/bios.sh clashed with lib/state.sh in the bundle (CI's shellcheck would fail); README, AGENTS.md and this changelog updated.
  • 54fc9e3 feat: Menu comes back after each run, BIOS dry run, version 0.8.0
    • After a run the menu returns with the new state; quit with q. When something needs a restart, choose between back to the menu (m) and restart now (r); quitting asks once more.
    • A staged BIOS update greys the item out until the restart.
    • WIZARD_BIOS_DRY_RUN=1 walks through the whole BIOS update (download, checksum, both warnings) but only prints the install and never flashes.
    • README: the menu loop and the BIOS update step by step.
  • 45a8757 fix: BIOS dry run also walks through the restart choices
    • A dry run counts as staged, so [m]/[r] and the restart question on q show up; in dry-run mode restarting only prints what it would do.
  • 429e840 fix: Shorter BIOS labels so the menu fits 80 columns
    • "now F7F0107, newest F7F0108 (own risk)", "F7F0108 waits for a restart", "F7F0107 is up to date"; shorter dry-run line.
  • 99a95ab fix: Kernel legend only mentions the LEDs on a Steam Machine
  • c0014ee docs: Last commit hash in the changelog; 0.7.0 was released on its own (#6, #7)

0.7.0 - 2026-09-24 (#6, #7)

The SteamOS theme comes from CachyOS's cachyos-vapor package, applied with Vapor's own desktop layout, and gains the SteamOS desktop extras. The Steam Machine LED driver works on every installed kernel and survives kernel updates.

  • 978f5a1 feat: SteamOS theme from cachyos-vapor with its desktop layout, plus SteamOS desktop extras
    • Installs cachyos-vapor instead of extracting Valve's steamdeck-kde-presets into ~/.local/share; removes it on disable if the wizard installed it.
    • Applies the Vapor global theme with "Desktop and window layout": Steam Deck wallpaper, SteamOS panel and launcher icon. Layout files are backed up and restored; every key from Vapor's defaults goes through the undo journal.
    • Restores the real previous color scheme on disable (CachyOS's BreezeDark colors have no scheme name), instead of falling back to light Breeze.
    • Registers Vapor as the dark theme, so Plasma's Dark Mode toggle shows on.
    • Drops the extra SteamOS desktop defaults (GTK, Konsole, gsettings, panel tweaks).
    • New SteamOS desktop extras, downloaded from Valve's newest steamdeck-kde-presets (checksum verified) into /usr/local: Add to Steam, Nested Desktop, the SteamOS Return to Gaming Mode icon, the Steam Keyboard window rule and an empty KWallet (only when there is no wallet yet).
    • Single user mode's launcher settings are re-applied after the layout reset.
  • 7802d90 fix: LED driver for every kernel, kernel headers at boot, console power button, kernel overview
    • DKMS override (/etc/dkms/leds-valve-dkms.conf) so the LED driver builds for every installed kernel (the LTS kernel failed) and on kernel updates.
    • ensure-kernel-headers.service installs missing kernel headers at boot, so a newly added kernel gets the LED driver too.
    • Power button sleeps and no automatic suspend on mains power (Steam Machine).
    • Menu shows every kernel with its headers, Steam controller driver and LED driver, plus whether the LEDs are loaded.
    • The selected menu row is highlighted in full.
  • 10b5164 docs: Version 0.7.0 and CHANGELOG
    • VERSION in the entry point, shown in the menu header and the bundle.
    • README and AGENTS.md updated for the theme, the extras and the LED driver.
  • eb3169e ci: Version and changelog in the release notes
    • The latest release's title shows the version, and its notes include this version's section of CHANGELOG.md.
    • Fix a shellcheck warning in the bundle (a variable name shared with lib/state.sh), which would have failed the CI check.
  • d7231eb chore: Move the bundle tool to .github/tools/bundle.sh
  • 5c00504 docs: Commit hashes in the changelog
  • 8aab946 ci: A release per version (tag v0.7.0, ...) instead of overwriting "latest"
    • Each push to main publishes release v$VERSION with that version's changelog; an already released version is never overwritten (pull requests get a warning when VERSION wasn't bumped).
    • Install with .../releases/latest/download/setup-gamescope-boot.sh, which always points to the newest release.
  • 1604ed1 docs: Versioning and release rules in AGENTS.md
  • 6afef78 ci: The latest tag follows the newest version tag
    • When a new version is released, the latest tag and release move to it (bundle replaced), so the older .../releases/download/latest/... URL also always gives the newest version.

0.6.2 - 2026-09-23

  • a501df2 Update steam-machine.sh: install and enable inputplumber next to steamos-manager.

0.6.1 - 2026-09-23 (#5)

  • c0bd16e fix: Use curl | bash in the docs: bash <(...) doesn't work in fish.

0.6.0 - 2026-09-23 (#4)

  • d654d44 fix: Single-file build for curl, published by GitHub Actions: tools/bundle.sh inlines lib/*.sh; CI publishes it to the latest release.

0.5.0 - 2026-09-23 (#3)

  • b91fa4b fix: Replace the question flow with a menu that turns components on and off
  • 3d7f376 fix: Interactive checkbox menu: arrow keys to move, Space to select, Enter to run.

0.4.0 - 2026-09-23 (#2)

  • a0bc385 fix: Add single user no password option with SDDM, fetch newest Vapor presets

0.3.0 - 2026-09-23 (#1)

  • 4ad6c2c fix: Fix setup bugs, add SteamOS desktop look and LED driver, split into modules

0.2.0 - 2026-09-07

  • 151a3bf add steam keyboard to desktop
  • 1999b6e Automatically change theme

0.1.0 - 2026-09-06

First version of the script.

  • 16a7739, 97ee6f3, 6be1051 commit the script
  • e1aee45, 25bc8c0 change return to gaming mode logo to original logo