mirror of
https://github.com/theupriser/steamify-cachyos-live-iso.git
synced 2026-10-02 15:10:26 +02:00
106 lines
6.3 KiB
Markdown
106 lines
6.3 KiB
Markdown
# To do (Steam Machine edition)
|
|
|
|
## Open
|
|
|
|
1. **Steamify installer page** (2026-09-28, in progress; working path found).
|
|
Tested live in the ISO VM (vmisoboot.sh, QMP clicks/screenshots + the
|
|
Calamares debug log, `pkexec-wrapper calamares -D6` foregrounded):
|
|
- **`packagechooserq` (custom QML) does not exist on this Calamares
|
|
build.** `cachyos-calamares-next` ships `packagechooserq.conf` as a
|
|
vestigial config file, but no `.so`: `/usr/lib/calamares/modules/`
|
|
only has `packagechooser` (no q). Calamares refuses to start ("Module
|
|
... not found in module search paths"). So `SteamifyPage.qml`
|
|
(app-styled switches) is dead: no module can load it here. Before
|
|
trying custom QML again, confirm the module is installed
|
|
(`ls /usr/lib/calamares/modules`, `pacman -Ql cachyos-calamares-next
|
|
| grep viewmodule`) in a live session first.
|
|
- **`packagechooser`, `mode: optionalmultiple`, DOES support real
|
|
multi-select**, confirmed from the Calamares debug log's actual
|
|
global-storage write (not from its static label text, which
|
|
misleadingly reads "Choose a product... the selected product will be
|
|
installed" in both single- and multi-select modes):
|
|
`"packagechooser@steamifypage" selected "single,gaming,theme"` — a
|
|
genuine comma-separated list, matching exactly the CSV format
|
|
`steamify-install` already expects for `--options`. This is the
|
|
`Config::updateGlobalStorage(const QStringList&)` overload (plural),
|
|
distinct from the single-choice `m_packageChoice` path. So the
|
|
**native, installed `packagechooser` module is the working page**;
|
|
no netinstall detour needed.
|
|
- Global storage key: `packagechooser_steamifypage` (module instance
|
|
id), value the comma-separated selected item ids.
|
|
- **Next:** generate `packagechooser_steamifypage.conf`'s `items:` list
|
|
from `steamify.sh --defaults --list` (in `calamares-online.sh`, same
|
|
spot as the abandoned Items.qml generation) instead of the QML
|
|
approach; check whether per-item `selected: true` (or similar) exists
|
|
for defaulting everything on, or whether "everything on by default"
|
|
needs a different mechanism (e.g. Steamify's own `--options` default
|
|
when the page reports nothing chosen). Boot into (gaming/desktop)
|
|
still needs its own answer: a separate small `packagechooser`
|
|
`mode: required` page (two items), since optionalmultiple's list
|
|
doesn't suit an exclusive either/or choice.
|
|
- Dead code from this session, left in the tree for now:
|
|
`SteamifyPage.qml`, `Items.qml`'s QML-singleton shape (its JSON
|
|
*content*, generated by `--defaults --list`, is still exactly what's
|
|
needed for the new plain-YAML `items:` list, just not as a QML file).
|
|
- **Lesson for next time:** verify a Calamares module is actually
|
|
installed before writing QML/config for it, and read a module's
|
|
*actual* logged global-storage writes (not just its UI label text)
|
|
before concluding whether a mode does what its name suggests. Both
|
|
are testable live in the booted ISO VM without any rebuild
|
|
(edit `/etc/calamares/modules/*.conf` + `settings.conf`, relaunch
|
|
`pkexec-wrapper calamares -D6`, watch its foregrounded debug output).
|
|
|
|
2. **Check the live name**2. **Check the live name**2. **Check the live name** (the build tree has it right:
|
|
`build/x86_64/airootfs/etc/os-release`) after the next build: Hello's subtitle should say
|
|
"Steamify CachyOS, based on CachyOS rolling" (`steamify-customize.sh`,
|
|
run by mkarchiso after the packages; the airootfs copy of os-release is
|
|
overwritten by a package).
|
|
3. **Steamify PR** for `feat/defaults-options` (2.7.0, `c4ec755`:
|
|
`--options`, `--boot`; also `steamify.sh --boot` on its own and the
|
|
HDMI-CEC volume fix): pushed and regression-tested in the VM (`--fremont`),
|
|
no PR yet; the user merges (never commit to main).
|
|
2.6.0 is released. Until 2.7.0 is, build the ISO with
|
|
`steamify-prepare.sh ~/projects/steamify-cachyos` (the branch).
|
|
4. **Build in the test VM** instead of on the Steam Machine
|
|
(steam-machine-iso skill), and install the result unattended with
|
|
`scripts/vminstall.sh --iso` (vm-install skill; the Calamares Steamify
|
|
step then needs `steamify-install` run from the live script).
|
|
5. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC,
|
|
power-off) before calling the ISO usable.
|
|
|
|
## Done
|
|
|
|
- **Steamify 2.6.0** released (`--defaults`, install-time mode).
|
|
- **Live session** (VM, `--fremont`): Vapor look and layout (Steam Deck
|
|
wallpaper) at the live login; the power-off module is built for both ISO
|
|
kernels and loaded at boot, in the VM it returns "No such device" (no
|
|
AMDI0030 GPIO controller), as designed. Whether it keeps the real Steam
|
|
Machine off is part of the hardware test.
|
|
- **Regression test 2.6.0 on an existing desktop install** (test VM from
|
|
ssh-ready, `--fremont`): full first run, re-apply, notifications/CEC/theme
|
|
off and on again. No errors; user units enabled and running, theme applied
|
|
and restored live, no first-login autostart with a session.
|
|
- **ISO name**: `steamify-cachyos-<date>-x86_64.iso` (`iso_name` in
|
|
`archiso/profiledef.sh`); the volume label stays `COS_<yyyymm>`.
|
|
- **VM install from the ISO (2026-09-27, `f42859a`):** a VM install from the ISO (Hello's
|
|
Install, no manual fixes) ran Steamify's step: every component OK,
|
|
`exit: 0`, SDDM autologin into gamescope. First desktop login (session switched to plasma in the VM) passed too:
|
|
Vapor layout, the app opened with everything on. The first-login script
|
|
runs the newest *release*, so it only works once 2.6.0 is released (in the
|
|
test it was pointed at the bundle).
|
|
The VM's text
|
|
console doesn't show (virgl): read the installed disk with
|
|
`qemu-nbd -r` + `mount -o ro,rescue=nologreplay,subvol=@` (logs in `@log`).
|
|
|
|
## Later
|
|
|
|
- **Branding**: the live session's os-release says "Steamify, based on
|
|
CachyOS" (Hello's subtitle); Hello's window title and the boot menu still
|
|
say CachyOS. Check with the CachyOS team.
|
|
- **Release**: a CI job that builds the ISO (privileged container, flags from
|
|
the steam-machine-iso skill) and hosts it (>2 GB, not a GitHub release asset).
|
|
- **Drop the Boost 1.91 workaround** in `steamify-prepare.sh` once
|
|
`cachyos-calamares-next` is rebuilt against the repos' Boost.
|
|
|
|
Build and test details: the `steam-machine-iso` skill in steamify-cachyos-dev.
|