mirror of
https://github.com/theupriser/steamify-cachyos-live-iso.git
synced 2026-10-02 15:10:26 +02:00
feat: Steamify's choices in the installer: a Steam Machine page (what to leave out) and a Start in page (gaming mode or desktop), passed to steamify.sh --defaults
This commit is contained in:
1 parent
c6212a774b
commit
81f2eea63d
6 files changed
+77
-16
No files matched your search
@@ -2,16 +2,23 @@
|
|||||||
|
|
||||||
## Open
|
## Open
|
||||||
|
|
||||||
1. **Check the live name** after the next build: Hello's subtitle should say
|
1. **Test the Steamify installer pages** (after the next build, needs
|
||||||
|
Steamify 2.7.0 with `--skip`/`--boot`; the ISO has the branch's bundle
|
||||||
|
until it's released): a "Steam Machine" page (leave out: multi-select,
|
||||||
|
nothing selected = full setup) and a "Start in" page (gaming mode or
|
||||||
|
desktop) after the Desktop page; check `/var/log/steamify-install.log`
|
||||||
|
for the skipped items and the boot choice. If Calamares doesn't expand
|
||||||
|
`${gs[...]}` in shellprocess, the log shows "Unknown item: ${gs[...".
|
||||||
|
2. **Check the live name** after the next build: Hello's subtitle should say
|
||||||
"Steamify CachyOS, based on CachyOS rolling" (`steamify-customize.sh`,
|
"Steamify CachyOS, based on CachyOS rolling" (`steamify-customize.sh`,
|
||||||
run by mkarchiso after the packages; the airootfs copy of os-release is
|
run by mkarchiso after the packages; the airootfs copy of os-release is
|
||||||
overwritten by a package).
|
overwritten by a package).
|
||||||
2. **Steamify PR**: `feat/defaults-mode` (2.6.0, `b948c20`) in
|
3. **Steamify PR**: `feat/defaults-mode` (2.6.0, `b948c20`) in
|
||||||
steamify-cachyos, pushed, no PR yet (checked 2026-09-27: not on main,
|
steamify-cachyos, pushed, no PR yet (checked 2026-09-27: not on main,
|
||||||
newest release v2.5.2). Ready: open it; the user
|
newest release v2.5.2). Ready: open it; the user
|
||||||
merges (never commit to main). The ISO's first-login step needs 2.6.0
|
merges (never commit to main). The ISO's first-login step needs 2.6.0
|
||||||
released.
|
released.
|
||||||
3. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC,
|
4. **Test on the real Steam Machine** from a USB stick (gamescope, LEDs, CEC,
|
||||||
power-off) before calling the ISO usable.
|
power-off) before calling the ISO usable.
|
||||||
|
|
||||||
## Done
|
## Done
|
||||||
@@ -39,15 +46,10 @@
|
|||||||
|
|
||||||
## Later
|
## Later
|
||||||
|
|
||||||
- **Steamify wizard pages in the installer**, before anything is installed:
|
- **Checkboxes instead of the leave-out list**: Calamares has no ready
|
||||||
the same choices as Steamify's menu (conversion, boot into gamescope or
|
checkbox page whose ticks come out as plain ids (netinstall's are package
|
||||||
desktop, theme, Deck icons, single user, shortcut + non-Steam game,
|
installs); it would take a QML page (packagechooserq) or a small C++
|
||||||
notifications, VRAM booster, HDMI-CEC, Steam Machine support + power-off
|
module. Steamify's side (`--skip`, `--boot`) stays the same.
|
||||||
fix), defaults ticked like a first run. A Calamares page (netinstall-style
|
|
||||||
YAML or a QML module in the `show` sequence) stores the ticked ids in
|
|
||||||
global storage; `steamify-install` passes them to
|
|
||||||
`steamify.sh --backend apply <ids>` (`--boot gamescope|desktop`) instead of
|
|
||||||
`--defaults`.
|
|
||||||
- **Branding**: the live session's os-release says "Steamify, based on
|
- **Branding**: the live session's os-release says "Steamify, based on
|
||||||
CachyOS" (Hello's subtitle); Hello's window title and the boot menu still
|
CachyOS" (Hello's subtitle); Hello's window title and the boot menu still
|
||||||
say CachyOS. Check with the CachyOS team.
|
say CachyOS. Check with the CachyOS team.
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
# Steamify: where the Steam Machine starts (steamify-install passes --boot).
|
||||||
|
---
|
||||||
|
mode: required
|
||||||
|
method: legacy
|
||||||
|
labels:
|
||||||
|
step: "Start in"
|
||||||
|
default: gamescope
|
||||||
|
items:
|
||||||
|
- id: gamescope
|
||||||
|
name: "Gaming mode"
|
||||||
|
description: "Start straight into Steam's gaming mode, like SteamOS. Switch to Desktop in Steam's power menu brings you to the desktop."
|
||||||
|
screenshot: ":/images/no-selection.png"
|
||||||
|
- id: desktop
|
||||||
|
name: "Desktop"
|
||||||
|
description: "Start in the Plasma desktop. Return to Gaming Mode on the desktop brings you to Steam's gaming mode."
|
||||||
|
screenshot: ":/images/no-selection.png"
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
# Steamify: which parts of the Steam Machine setup to leave out. Nothing
|
||||||
|
# selected means Steamify's full default setup; the ids are Steamify's menu
|
||||||
|
# items (steamify-install passes them as --skip).
|
||||||
|
---
|
||||||
|
mode: optionalmultiple
|
||||||
|
method: legacy
|
||||||
|
labels:
|
||||||
|
step: "Steam Machine"
|
||||||
|
items:
|
||||||
|
- id: ""
|
||||||
|
name: "Everything"
|
||||||
|
description: "Select what to leave out of the Steam Machine setup (Steamify). Leave everything unselected for the full SteamOS-style setup; everything can be changed later in the Steamify app."
|
||||||
|
screenshot: ":/images/no-selection.png"
|
||||||
|
- id: theme
|
||||||
|
name: "Leave out: SteamOS theme"
|
||||||
|
description: "The Vapor look for the desktop, with SteamOS's panel layout and Add to Steam."
|
||||||
|
- id: glyphs
|
||||||
|
name: "Leave out: Steam Deck/Machine icons"
|
||||||
|
description: "Steam Deck button icons in gaming mode."
|
||||||
|
- id: single
|
||||||
|
name: "Leave out: single user mode"
|
||||||
|
description: "No password, lock screen, user switching or log out, like SteamOS."
|
||||||
|
- id: launcher
|
||||||
|
name: "Leave out: Steamify shortcut"
|
||||||
|
description: "The Steamify app on the desktop and in the launcher, to change these choices later."
|
||||||
|
- id: notify
|
||||||
|
name: "Leave out: update notifications"
|
||||||
|
description: "A notification when there's a new Steamify. It never updates by itself."
|
||||||
|
- id: vram
|
||||||
|
name: "Leave out: VRAM booster"
|
||||||
|
description: "The game in front keeps its video memory; background apps make room."
|
||||||
|
- id: cec
|
||||||
|
name: "Leave out: HDMI-CEC"
|
||||||
|
description: "Use Steam with the TV remote, TV on and off with the Steam Machine."
|
||||||
|
- id: machine
|
||||||
|
name: "Leave out: Steam Machine support"
|
||||||
|
description: "The LED bar driver, hardware settings in Steam and the power-off fix."
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
dontChroot: true
|
dontChroot: true
|
||||||
timeout: 3600
|
timeout: 3600
|
||||||
script:
|
script:
|
||||||
- "-/usr/local/bin/steamify-install ${ROOT} ${USER}"
|
- "-/usr/local/bin/steamify-install ${ROOT} ${USER} \"${gs[packagechooser_steamifyskip]}\" \"${gs[packagechooser_steamifyboot]}\""
|
||||||
|
|
||||||
i18n:
|
i18n:
|
||||||
name: "Setting up the Steam Machine (Steamify)"
|
name: "Setting up the Steam Machine (Steamify)"
|
||||||
@@ -47,7 +47,8 @@ EOF
|
|||||||
sudo cp "/usr/share/calamares/settings_${mode}.conf" /etc/calamares/settings.conf
|
sudo cp "/usr/share/calamares/settings_${mode}.conf" /etc/calamares/settings.conf
|
||||||
# Steamify: its step (modules/shellprocess_steamify.conf) before the
|
# Steamify: its step (modules/shellprocess_steamify.conf) before the
|
||||||
# installer cleans up after itself.
|
# installer cleans up after itself.
|
||||||
sudo sed -i -e 's/^- id: cleanup_calamares$/- id: steamify\n module: shellprocess\n config: shellprocess_steamify.conf\n\n&/' \
|
sudo sed -i -e 's/^- id: cleanup_calamares$/- id: steamifyskip\n module: packagechooser\n config: packagechooser_steamifyskip.conf\n\n- id: steamifyboot\n module: packagechooser\n config: packagechooser_steamifyboot.conf\n\n- id: steamify\n module: shellprocess\n config: shellprocess_steamify.conf\n\n&/' \
|
||||||
|
-e 's/^ - packagechooser@desktop$/&\n - packagechooser@steamifyskip\n - packagechooser@steamifyboot/' \
|
||||||
-e 's/^ - shellprocess@cleanup_calamares$/ - shellprocess@steamify\n&/' /etc/calamares/settings.conf
|
-e 's/^ - shellprocess@cleanup_calamares$/ - shellprocess@steamify\n&/' /etc/calamares/settings.conf
|
||||||
exec pkexec-wrapper calamares -D6 >> $log
|
exec pkexec-wrapper calamares -D6 >> $log
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,16 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# steamify-install <target root> <user>: runs Steamify's default setup for
|
# steamify-install <target root> <user> [<skip ids>] [gamescope|desktop]:
|
||||||
|
# runs Steamify's default setup (minus what the installer's Steam Machine
|
||||||
|
# page leaves out, where the boot page says) for
|
||||||
# the new user inside the installed system (Calamares, after the users and
|
# the new user inside the installed system (Calamares, after the users and
|
||||||
# services steps). Steamify refuses root and asks sudo per command, so the
|
# services steps). Steamify refuses root and asks sudo per command, so the
|
||||||
# user gets a NOPASSWD rule for this run only, named to be read last: sudo
|
# user gets a NOPASSWD rule for this run only, named to be read last: sudo
|
||||||
# takes the last matching rule, and a later %wheel rule would ask again. Never fails the install: a
|
# takes the last matching rule, and a later %wheel rule would ask again. Never fails the install: a
|
||||||
# problem leaves the log and Steamify can be run again from the desktop.
|
# problem leaves the log and Steamify can be run again from the desktop.
|
||||||
root="$1" user="$2"
|
root="$1" user="$2"
|
||||||
|
# The pages' ids, comma-separated; the "Everything" entry is an empty id.
|
||||||
|
skip="$(tr ',' '\n' <<< "${3:-}" | grep -v '^$' | paste -sd, -)"
|
||||||
|
boot="${4:-gamescope}"
|
||||||
log="$root/var/log/steamify-install.log"
|
log="$root/var/log/steamify-install.log"
|
||||||
rule="$root/etc/sudoers.d/zz-steamify-install"
|
rule="$root/etc/sudoers.d/zz-steamify-install"
|
||||||
[[ -d "$root" && -n "$user" ]] || exit 0
|
[[ -d "$root" && -n "$user" ]] || exit 0
|
||||||
@@ -15,7 +20,7 @@ printf '%s ALL=(ALL) NOPASSWD: ALL\n' "$user" > "$rule"
|
|||||||
chmod 440 "$rule"
|
chmod 440 "$rule"
|
||||||
arch-chroot "$root" runuser -u "$user" -- env -i HOME="/home/$user" USER="$user" LOGNAME="$user" \
|
arch-chroot "$root" runuser -u "$user" -- env -i HOME="/home/$user" USER="$user" LOGNAME="$user" \
|
||||||
PATH=/usr/local/bin:/usr/bin TERM=dumb LANG=C.UTF-8 \
|
PATH=/usr/local/bin:/usr/bin TERM=dumb LANG=C.UTF-8 \
|
||||||
bash -c 'cd ~ && bash /var/tmp/steamify.sh --defaults < /dev/null' > "$log" 2>&1
|
bash -c 'cd ~ && bash /var/tmp/steamify.sh --defaults --skip "$0" --boot "$1" < /dev/null' "$skip" "$boot" > "$log" 2>&1
|
||||||
echo "exit: $?" >> "$log"
|
echo "exit: $?" >> "$log"
|
||||||
rm -f "$rule" "$root/var/tmp/steamify.sh"
|
rm -f "$rule" "$root/var/tmp/steamify.sh"
|
||||||
exit 0
|
exit 0
|
||||||
Reference in new issue
Block a user