Files
steamify-cachyos/patches/README.md
T

4.3 KiB

Patches and extra sources

Files Steamify builds or applies, kept out of the shell code so they can be read and reviewed on their own. lib/*.sh reads them with patch_file <name> (piped through fill KEY=value... for @KEY@ placeholders); the single-file build (.github/tools/bundle.sh) embeds them.

File Used by What
steamify-fremont-poweroff.c lib/fremont-poweroff.sh (Steam Machine support) Kernel module (DKMS): clears GPIO 18's S4/S5 wake bit before power-off, so the Steam Machine stays off with recent kernels
sync-steamos-session.sh lib/login-manager.sh (SteamOS conversion, plasma-login-manager) The sync bridge: copies Steam's session choice from zz-steamos-autologin.conf into plasmalogin.conf's [Autologin]
ensure-kernel-headers.sh lib/steam-machine.sh (Steam Machine support) Run at boot: installs missing headers for every installed kernel
leds-valve-dkms.conf lib/steam-machine.sh (Steam Machine support) /etc/dkms override: build the LED driver for DKMS's target kernel; appended to someone's own override, which is backed up and restored
steamify-fremont-poweroff.dkms.conf, steamify-cros-ec-cec.dkms.conf lib/fremont-poweroff.sh, lib/cec.sh The DKMS modules' dkms.conf (fill NAME=... VERSION=...)
steam-shortcuts.py lib/steam-game.sh (Add as non-Steam game) Reads and writes Steam's binary shortcuts.vdf (find, add or update, remove)
steamify-notifier.py lib/update-notifier.sh (Update notifications) The daily check: notification and tray icon when there's a new release
steamify-os-release.sh, steamify-os-release.hook lib/login-manager.sh (SteamOS conversion) What Steam's System settings show besides the OS name (which stays CachyOS's): VERSION_ID=steamos-X.Y, VERSION_CODENAME=steam-machine, VARIANT/VARIANT_ID Steamify with its version, in /etc/os-release; the pacman hook runs it again after cachyos-hooks (fill SCRIPT=... VERSION=... STEAMOS=...)
steamify-nvidia-initramfs.sh, steamify-nvidia-initramfs.hook lib/nvidia.sh (SteamOS conversion, NVIDIA fix) The pacman hook (before the initramfs is built, after DKMS) and its script: the NVIDIA modules go into the initramfs only while every installed kernel has them, decided again at every kernel or driver change (fill SCRIPT=...)
cros-ec-cec-single-port.patch lib/cec.sh (HDMI-CEC) Makes Valve's Steam Machine CEC driver find amdgpu's HDMI port
gamescope-gbm-scanout.patch lib/gamescope-nvidia.sh (gamescope on NVIDIA) gamescope 3.16.31 patch: scan-out buffers allocated with GBM (opt-in, gamescope_drm_gbm_scanout=1), which cures the corrupted picture on NVIDIA; from farnoy/gamescope, see the header of the file
gamescope-nvidia.PKGBUILD lib/gamescope-nvidia.sh (gamescope on NVIDIA) The recipe for the patched gamescope package (steamify-gamescope-nvidia, provides and conflicts with gamescope): Valve's gamescope at pkgver plus gamescope-gbm-scanout.patch; written with the patch to a temporary folder and built with makepkg
cros-ec-cec.c lib/cec.sh (HDMI-CEC) Valve's Steam Machine CEC driver (GPL-2.0+, from evlaV/linux-integration at the pinned commit): the backup when downloading it from GitHub fails; used only if its sha256 equals CEC_DRIVER_SHA256 (a new pin needs a new copy)
python-hid-shim.PKGBUILD lib/packages.sh (required packages) An empty package that provides python-hid, for PCs that keep python-hidapi (they conflict; jupiter-hw-support, a dependency of gamescope-session-cachyos, wants python-hid, only the Steam Deck controller updater uses it): built with makepkg and installed before the conversion's packages
gamescope-ui-native.patch lib/gamescope-nvidia.sh (gamescope on NVIDIA) Small patch after the GBM one: keeps Steam's UI X server at the display's size when Steam (with -steamos3) asks for 1920x1080; gamescope_xwayland_ui_native=0 turns it off
gamescope-display-wrapper.sh lib/gamescope-nvidia.sh (gamescope on NVIDIA) Installed as gamescope in Steamify's bin folder and put first in the gaming session's PATH: starts gamescope on the mode KDE has saved for the connected display, else the biggest mode at the highest refresh rate (modetest + kwinoutputconfig.json)