mirror of
https://github.com/theupriser/steamify-cachyos.git
synced 2026-10-03 17:41:58 +02:00
docs: Version 0.7.0 and CHANGELOG
- VERSION in the entry point, shown in the menu header and the bundle. - CHANGELOG.md with every commit per version (older versions numbered per merged PR). - README and AGENTS.md updated for the cachyos-vapor theme, the SteamOS extras and the LED driver.
This commit is contained in:
1 parent
c797bff322
commit
259a72068a
6 files changed
+155
-46
No files matched your search
@@ -58,6 +58,10 @@ gamescope and the Plasma desktop. Primary target: the Valve Steam Machine
|
||||
- Comments explain *why* (the CachyOS/Plasma quirk being worked around),
|
||||
not what the next line does.
|
||||
|
||||
- **Versioning.** SemVer in `VERSION` (`setup-gamescope-boot.sh`, shown in
|
||||
the menu header and the bundle). Every commit gets an entry in
|
||||
`CHANGELOG.md` under its version; a new PR/branch bumps the version.
|
||||
|
||||
## Non-obvious behaviour to preserve
|
||||
|
||||
- `apply_changes` sets `$LOGIN_MANAGER` from the menu: `sddm` when single
|
||||
@@ -80,11 +84,21 @@ gamescope and the Plasma desktop. Primary target: the Valve Steam Machine
|
||||
- The Steam desktop autostart unit is guarded with
|
||||
`ExecCondition=... XDG_CURRENT_DESKTOP = KDE`, so it doesn't start a
|
||||
second Steam inside gamescope.
|
||||
- Vapor theme: install Valve's files as shipped. Don't rewrite Valve's
|
||||
`metadata.json`; the icon theme is `breeze-dark` (there is no "Vapor"
|
||||
icon theme); wallpapers are flat JPGs in `usr/share/wallpapers`.
|
||||
`lookandfeeltool` does not switch the color scheme, so
|
||||
`plasma-apply-colorscheme Vapor` is applied explicitly.
|
||||
- Vapor theme: comes from the `cachyos-vapor` package (system-wide, in
|
||||
`/usr/share`); only remove it on disable if we installed it. It is applied
|
||||
with `lookandfeeltool --resetLayout` ("Desktop and window layout"), which
|
||||
replaces the panel/desktop layout: the layout files are backed up to
|
||||
`$STATE_DIR/theme-layout` and restored, and every key from Vapor's
|
||||
`contents/defaults` goes through `kset` first. `plasma-apply-colorscheme`
|
||||
runs with the `ColorScheme` key cleared, since it skips a scheme already
|
||||
named there. The layout reset drops single user's launcher settings, so
|
||||
`single_launcher` is re-applied.
|
||||
- SteamOS extras (`lib/steamos-extras.sh`, part of the theme): downloaded from
|
||||
Valve's newest `steamdeck-kde-presets` (repo db gives name + SHA-256) into
|
||||
`/usr/local`, never `/usr`. `gaming-return.svg` is a symlink in the package:
|
||||
install `steam-gaming-return.svg` under that name. The shortcut's icon is
|
||||
switched with `set_shortcut_icon`, since the conversion is created before
|
||||
the theme. An existing KWallet is never replaced or removed.
|
||||
- Plasma 6 has no separate systemtray containment: tray settings live on
|
||||
the systemtray applet itself (Valve's setup script targets Plasma 5).
|
||||
- Restart plasmashell via `systemctl --user` (`plasma-plasmashell.service`),
|
||||
@@ -97,8 +111,13 @@ gamescope and the Plasma desktop. Primary target: the Valve Steam Machine
|
||||
wallpaper files only between `stop_plasmashell_for_edit` and
|
||||
`restart_plasmashell_if_stopped` (`lib/common.sh`).
|
||||
- LED driver: `leds-valve-dkms-git`'s Makefile builds against `uname -r`,
|
||||
so the script builds explicitly for the running kernel and installs
|
||||
headers for every installed kernel first. The module creates
|
||||
not DKMS's target kernel: `/etc/dkms/leds-valve-dkms.conf` sets
|
||||
`MAKE[0]="make KVERSION=${kernelver}"` (written before the AUR install).
|
||||
Without it, other kernels build against the running kernel's tree and
|
||||
fail (CachyOS kernels are clang-built; DKMS adds `LLVM=1` only for the
|
||||
target's tree). Headers for every installed kernel are installed first,
|
||||
and `ensure-kernel-headers.service` installs missing ones at boot (a
|
||||
pacman hook can't run pacman), which triggers DKMS's install hook. The module creates
|
||||
`/sys/class/leds/valve-leds*`.
|
||||
- `Relogin=true` means a gamescope that fails to start is relaunched in a
|
||||
tight loop; keep that in mind when changing session handling.
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes, per version and per commit. Versions follow
|
||||
[Semantic Versioning](https://semver.org/); the current one is `VERSION` in
|
||||
`setup-gamescope-boot.sh`. Versions before 0.7.0 were numbered afterwards,
|
||||
one per merged pull request.
|
||||
|
||||
## 0.7.0 - 2026-09-24
|
||||
|
||||
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.
|
||||
- **docs: Version 0.7.0 and CHANGELOG** (this release's docs)
|
||||
- `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.
|
||||
|
||||
## 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**
|
||||
@@ -18,8 +18,8 @@ Everything you turn off is put back the way it was.
|
||||
Desktop** in Steam works and so does going back (the **Return to Gaming
|
||||
Mode** icon on the desktop), you're back in gaming mode after a restart,
|
||||
and Steam's on-screen keyboard (Steam + X) also works on the desktop.
|
||||
2. **SteamOS theme** - Valve's own Vapor look for the desktop: wallpaper,
|
||||
dark mode and the SteamOS taskbar.
|
||||
2. **SteamOS theme** - the Vapor look for the desktop (CachyOS's
|
||||
`cachyos-vapor` package).
|
||||
3. **Steam Deck/Machine icons** - Steam Deck button icons in gaming mode.
|
||||
4. **Single user mode** - like SteamOS: never a login or lock screen, no
|
||||
user switching or logging out. Typing a password with a controller is no
|
||||
@@ -55,15 +55,22 @@ Run it as yourself, not as root. You'll see a checklist:
|
||||
|
||||
```
|
||||
[x] SteamOS conversion: boot into gaming mode, Steam on the desktop (now: off)
|
||||
> [x] Install SteamOS theme: Vapor look, dark mode, SteamOS taskbar (now: off)
|
||||
> [x] Install SteamOS theme: Vapor look (cachyos-vapor) (now: off)
|
||||
[x] Install Steam Deck/Machine icons: Deck button icons in gaming mode (now: off)
|
||||
[x] Single user mode: no password, lock screen or log out (SDDM) (now: off)
|
||||
|
||||
Kernels (> = running; controller = Steam controller driver, LEDs = LED bar driver built)
|
||||
6.18.52-1-cachyos-lts linux-cachyos-lts headers yes controller yes
|
||||
> 7.2.7-1-cachyos linux-cachyos headers yes controller yes
|
||||
|
||||
Up/Down move Space select Enter run a run + re-apply what's on q quit
|
||||
```
|
||||
|
||||
Move with the **arrow keys**, tick or untick with **Space**, and press
|
||||
**Enter** to run. "now:" shows what's on at the moment. The wizard then
|
||||
**Enter** to run. "now:" shows what's on at the moment. Below the list, every
|
||||
installed kernel is shown with its headers and Steam controller driver; on a
|
||||
Steam Machine also whether the LED bar driver is built for it, and whether
|
||||
it's loaded right now, so a kernel update is easy to check. The wizard then
|
||||
shows what it will change, asks your password once, and at the end offers
|
||||
to restart (needed for changes to how the PC starts).
|
||||
|
||||
@@ -213,35 +220,29 @@ file), which makes Steam show Steam Deck button glyphs in gaming mode.
|
||||
|
||||
### SteamOS desktop look
|
||||
|
||||
Downloads Valve's official `steamdeck-kde-presets` package from Valve's
|
||||
SteamOS mirror and installs it into `~/.local/share` - nothing system-wide:
|
||||
Installs CachyOS's `cachyos-vapor` package (the SteamOS Vapor theme the
|
||||
CachyOS handheld edition uses) from the CachyOS repository and switches your
|
||||
desktop to its Vapor global theme, including its desktop and window layout
|
||||
(like ticking "Desktop and window layout" in System Settings): Vapor colors
|
||||
and Plasma style, the SteamOS panel and launcher icon, and the Steam Deck
|
||||
wallpaper. Run it from the Plasma desktop: applying the layout needs a
|
||||
running Plasma session.
|
||||
|
||||
- the Vapor global theme, color scheme, Plasma style, wallpapers and icons;
|
||||
- the Vapor GTK theme, Konsole profile and user avatars;
|
||||
- Valve's SteamOS desktop defaults, merged into your own config: Noto Sans
|
||||
fonts, no Xwayland input-permission prompt for Steam Input, the window
|
||||
rule that keeps the Steam keyboard on top and out of the taskbar, no
|
||||
welcome screen, light file indexing;
|
||||
- the SteamOS panel: solid (not floating), full width, 44 px high, tray icons
|
||||
scaled to fit, date below the time, and the SteamOS launcher icon;
|
||||
- dark mode for GTK, libadwaita and portal-aware apps (Firefox, Flatpaks).
|
||||
It also adds the SteamOS desktop extras that `cachyos-vapor` doesn't ship,
|
||||
taken from the newest `steamdeck-kde-presets` on Valve's SteamOS mirror
|
||||
(checksum verified) and installed to `/usr/local`:
|
||||
|
||||
Run inside a Plasma session, it applies everything live; otherwise it takes
|
||||
effect at the next desktop login.
|
||||
- **Add to Steam** in the right-click menu of apps, AppImages and `.exe`
|
||||
files, and in the launcher: adds them to Steam as non-Steam games;
|
||||
- **Nested Desktop**: add it to Steam from the launcher, then start it in
|
||||
gaming mode for a Plasma desktop inside gaming mode;
|
||||
- the SteamOS **Return to Gaming Mode** icon (Steam logo with a return arrow);
|
||||
- a window rule that keeps the **Steam keyboard** above other windows;
|
||||
- an empty, password-less **KWallet**, only if you don't have a wallet yet,
|
||||
so nothing asks for a wallet password after autologin.
|
||||
|
||||
**Package version.** The script always takes the newest
|
||||
`steamdeck-kde-presets` from the highest-numbered SteamOS release repository
|
||||
on the mirror (`jupiter-3.9`, `jupiter-3.10`, ...). That repository's pacman
|
||||
database gives the exact file name and SHA-256 checksum, which is verified
|
||||
after downloading. If the lookup fails, it falls back to the known-good
|
||||
3.9.4 (see `install_vapor_theme()` in `lib/vapor-theme.sh`). To check the
|
||||
current version yourself:
|
||||
|
||||
```bash
|
||||
m=https://steamdeck-packages.steamos.cloud/archlinux-mirror
|
||||
r=$(curl -fsL $m/ | grep -oE 'jupiter-[0-9]+\.[0-9]+/' | tr -d / | sort -V | tail -n 1)
|
||||
curl -fsL $m/$r/os/x86_64/$r.db | bsdtar -tf - | grep -o '^steamdeck-kde-presets-[^/]*' | sort -u
|
||||
```
|
||||
Turning it off restores your previous look and panel layout, and removes `cachyos-vapor` again
|
||||
if the wizard installed it (and nothing else, like `cachyos-handheld`, needs it).
|
||||
|
||||
### Front LED bar (Steam Machine)
|
||||
|
||||
@@ -251,10 +252,12 @@ The **Steam Machine support** component, only shown on Fremont hardware
|
||||
- installs an AUR helper (`yay`) if neither `yay` nor `paru` is present;
|
||||
- installs the kernel headers for every installed kernel;
|
||||
- installs `leds-valve-dkms-git` from the AUR - Valve's own driver from the
|
||||
SteamOS kernel - builds it for the running kernel, and loads it at every
|
||||
boot (`/etc/modules-load.d/leds-valve.conf`);
|
||||
SteamOS kernel - builds it for every installed kernel (so the LTS kernel
|
||||
works too), and loads it at every boot (`/etc/modules-load.d/leds-valve.conf`);
|
||||
- adds a udev rule (`/etc/udev/rules.d/70-valve-leds-user.rules`) that gives
|
||||
your user the LED files, so Steam, which runs as you, can drive the bar;
|
||||
- console-like power button: it puts the machine to sleep, and it never
|
||||
suspends by itself on mains power (the launcher's Shut Down still shuts down);
|
||||
- installs and enables `steamos-manager`, the service Steam in gaming mode
|
||||
uses for hardware settings (fan, HDMI-CEC, performance); it recognises the
|
||||
Steam Machine from its DMI data.
|
||||
@@ -262,9 +265,13 @@ The **Steam Machine support** component, only shown on Fremont hardware
|
||||
Turning it off removes all of that again (the AUR helper is kept).
|
||||
|
||||
The LEDs appear as `/sys/class/leds/valve-leds*`. The driver's Makefile
|
||||
builds against the running kernel, so after a kernel update, boot the new
|
||||
kernel and re-apply (`a` in the menu) or run
|
||||
`sudo dkms install leds-valve-dkms/0.1 -k "$(uname -r)"`.
|
||||
builds against the running kernel (`uname -r`) instead of the kernel DKMS
|
||||
builds for, so the wizard adds a DKMS override
|
||||
(`/etc/dkms/leds-valve-dkms.conf`) that passes DKMS's target kernel in. With
|
||||
it, DKMS rebuilds the driver whenever a kernel or its headers are installed
|
||||
or upgraded. A newly added kernel doesn't come with its headers, so
|
||||
`ensure-kernel-headers.service` checks at every boot and installs any
|
||||
missing `-headers` package, which makes DKMS build the driver for it.
|
||||
|
||||
Troubleshooting:
|
||||
|
||||
@@ -318,7 +325,8 @@ gamescope-session, ...) stay installed.
|
||||
| `lib/login-manager.sh` | SteamOS conversion: SDDM or plasmalogin autologin, sync bridge |
|
||||
| `lib/steam-desktop.sh` | Steam in the Plasma session; Steam Deck/Machine icons |
|
||||
| `lib/desktop-shortcut.sh` | Return to Gaming Mode shortcut and its sudoers rule |
|
||||
| `lib/vapor-theme.sh` | SteamOS theme: Vapor, Valve's defaults, panel, dark mode |
|
||||
| `lib/vapor-theme.sh` | SteamOS theme: installs and switches to `cachyos-vapor` |
|
||||
| `lib/steamos-extras.sh` | SteamOS desktop extras from Valve's package (Add to Steam, Nested Desktop, icon, keyboard rule, KWallet) |
|
||||
| `lib/single-user.sh` | Single user mode: no lock screen, user switching or log out |
|
||||
| `lib/steam-machine.sh` | Steam Machine support: LED driver, LED access, steamos-manager |
|
||||
| `tools/bundle.sh` | Builds the single-file version (`dist/setup-gamescope-boot.sh`) |
|
||||
|
||||
+1
-1
@@ -76,7 +76,7 @@ run_menu() {
|
||||
draw_menu_tui() {
|
||||
local cursor="$1" i=0 c box state line
|
||||
printf '\033[H\033[2J'
|
||||
echo -e "${c_bold}CachyOS Steam Deck-style Gamescope Boot Wizard${c_reset}"
|
||||
echo -e "${c_bold}CachyOS Steam Deck-style Gamescope Boot Wizard${c_reset} v$VERSION"
|
||||
echo "Pick what you want. Anything you untick is put back the way it was."
|
||||
echo
|
||||
MENU_ITEMS=()
|
||||
|
||||
@@ -14,6 +14,9 @@
|
||||
|
||||
set -uo pipefail
|
||||
|
||||
# Release version, see CHANGELOG.md.
|
||||
VERSION=0.7.0
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
for lib in common state packages login-manager single-user steam-desktop steam-machine vapor-theme steamos-extras desktop-shortcut menu; do
|
||||
@@ -23,7 +26,7 @@ done
|
||||
|
||||
require_root_helper
|
||||
|
||||
echo -e "${c_bold}CachyOS Steam Deck-style Gamescope Boot Wizard${c_reset}"
|
||||
echo -e "${c_bold}CachyOS Steam Deck-style Gamescope Boot Wizard${c_reset} v$VERSION"
|
||||
echo "Turn the SteamOS-style parts on or off. The menu shows what is on now;"
|
||||
echo "anything you turn off is put back the way it was."
|
||||
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ mkdir -p "$(dirname "$out")"
|
||||
libs=$(grep -oP '^for lib in \K.*(?=; do$)' "$entry")
|
||||
[[ -n "$libs" ]] || { echo "bundle: can't find the lib source loop in $entry" >&2; exit 1; }
|
||||
|
||||
version="$(git describe --always --dirty 2>/dev/null || echo unknown)"
|
||||
version="v$(grep -oP '^VERSION=\K.*' "$entry"), $(git describe --always --dirty 2>/dev/null || echo unknown)"
|
||||
|
||||
{
|
||||
# Header comment and `set` line of the entry point, up to the source loop.
|
||||
|
||||
Reference in new issue
Block a user