mirror of
https://github.com/theupriser/steamify-cachyos-live-iso.git
synced 2026-10-02 15:10:26 +02:00
Compare commits
6
Commits
46fa044ffb
...
1a8c75721a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1a8c75721a | ||
|
|
d70b238a06 | ||
|
|
0756626700 | ||
|
|
564f2a8dcd | ||
|
|
084b68d109 | ||
|
|
7ee32f926b |
No files matched your search
@@ -32,6 +32,9 @@ Tick items off as they are done; the newest entries are at the top of each list.
|
||||
- [x] **Always from `master`**: `iso-1-github-tag.yml` takes `kind` (release, dev, auto); steamify-cachyos' `bundle.yml` asks
|
||||
for `release` (a version published from main) or `dev` (an unreleased version on a release branch).
|
||||
- [x] **`steamify_ref`**: a release branch builds its dev ISO with its own Steamify (and VERSION) before it is released.
|
||||
- [x] **`steamify.nodownload`** (kernel command line) or `STEAMIFY_NO_DOWNLOAD=1`: the live session keeps the ISO's own Steamify
|
||||
(`calamares-online.sh` would replace it by the newest release), and `steamify-install` passes it on, so the installed system's
|
||||
first login runs the ISO's bundle too. For testing an unreleased Steamify; tested with Steamify 2.11.0 (three installs).
|
||||
- [x] **The mirror's build is started by dispatch** after the mirror has the new tag object (a replaced tag starts no run by
|
||||
itself; the dispatch needs the full ref `refs/tags/<tag>`).
|
||||
- [x] **Build badge** in the GitHub release: running, then succeeded / failed / cancelled (secret `GH_RELEASE_TOKEN` on the
|
||||
|
||||
@@ -69,14 +69,18 @@ EOF
|
||||
# any, so "$sdir" would still be empty in the same one.
|
||||
local sdir=/usr/local/share/steamify
|
||||
local sbin="$sdir/steamify.sh" sqml="$sdir/qml"
|
||||
# STEAMIFY_NO_DOWNLOAD=1 or `steamify.nodownload` on the kernel command line: keep the ISO's own
|
||||
# copy, e.g. to test an unreleased Steamify (the newest release would replace it).
|
||||
local nodl=
|
||||
if [[ -n "${STEAMIFY_NO_DOWNLOAD:-}" ]] || grep -qw steamify.nodownload /proc/cmdline; then nodl=1; fi
|
||||
local tmp; tmp="$(mktemp)"
|
||||
if curl -fsSL --max-time 20 https://github.com/theupriser/steamify-cachyos/releases/latest/download/steamify.sh -o "$tmp" &&
|
||||
if [[ -z "$nodl" ]] && curl -fsSL --max-time 20 https://github.com/theupriser/steamify-cachyos/releases/latest/download/steamify.sh -o "$tmp" &&
|
||||
grep -q -- '--defaults' "$tmp"; then
|
||||
sudo install -Dm755 "$tmp" "$sbin"
|
||||
fi
|
||||
rm -f "$tmp"
|
||||
tmp="$(mktemp -d)"
|
||||
if curl -fsSL --max-time 20 https://github.com/theupriser/steamify-cachyos/releases/latest/download/steamify-app.tar.gz |
|
||||
if [[ -z "$nodl" ]] && curl -fsSL --max-time 20 https://github.com/theupriser/steamify-cachyos/releases/latest/download/steamify-app.tar.gz |
|
||||
tar -xz -C "$tmp" --strip-components=2 ui/qml/Theme.qml ui/qml/Texts.qml 2>/dev/null; then
|
||||
sudo cp "$tmp/Theme.qml" "$tmp/Texts.qml" "$sqml/"
|
||||
fi
|
||||
|
||||
@@ -54,8 +54,12 @@ rule="$root/etc/sudoers.d/zz-steamify-install"
|
||||
install -Dm755 /usr/local/share/steamify/steamify.sh "$root/var/tmp/steamify.sh"
|
||||
printf '%s ALL=(ALL) NOPASSWD: ALL\n' "$user" > "$rule"
|
||||
chmod 440 "$rule"
|
||||
# steamify.nodownload on the live system's kernel command line (or STEAMIFY_NO_DOWNLOAD): the installed system
|
||||
# keeps this ISO's Steamify at its first login too, instead of the newest release.
|
||||
nodl=()
|
||||
if [[ -n "${STEAMIFY_NO_DOWNLOAD:-}" ]] || grep -qw steamify.nodownload /proc/cmdline; then nodl=(STEAMIFY_NO_DOWNLOAD=1); fi
|
||||
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 "${nodl[@]}" \
|
||||
bash -c 'cd ~ && bash /var/tmp/steamify.sh --defaults --options "$0" --boot "$1" < /dev/null' "$options" "$boot" > "$log" 2>&1
|
||||
echo "exit: $?" >> "$log"
|
||||
rm -f "$rule" "$root/var/tmp/steamify.sh"
|
||||
|
||||
@@ -8,6 +8,7 @@ QtObject {
|
||||
readonly property var rows: [
|
||||
{ id: "gaming", label: "SteamOS conversion", hint: "boot into gaming mode, Steam on the desktop", kind: "toggle", parent: "", on: true, selectable: true },
|
||||
{ id: "boot", label: "Boot into", hint: "", kind: "choice", parent: "gaming", on: false, selectable: true },
|
||||
{ id: "silent", label: "Start Steam silently in desktop mode", hint: "in the tray at login on the desktop, no window", kind: "toggle", parent: "gaming", needs: "", on: true, selectable: true },
|
||||
{ id: "theme", label: "Install SteamOS theme", hint: "Vapor look (cachyos-vapor)", kind: "toggle", parent: "", on: true, selectable: true },
|
||||
{ id: "glyphs", label: "Install Steam Deck/Machine icons", hint: "Deck button icons in gaming mode", kind: "toggle", parent: "", on: true, selectable: true },
|
||||
{ id: "single", label: "Single user mode", hint: "no password, lock screen or log out (SDDM)", kind: "toggle", parent: "", on: true, selectable: true },
|
||||
|
||||
@@ -35,7 +35,9 @@ Item {
|
||||
|
||||
function label(r) { return (Texts.items[r.id] || {}).label || r.label; }
|
||||
function hint(r) { return (Texts.items[r.id] || {}).hint || r.hint; }
|
||||
function shown(r) { return !r.parent || !!want[r.parent]; }
|
||||
// `needs: "boot"` (an older Steamify's --defaults --list): only with Boot into Desktop.
|
||||
function shown(r) { return (!r.parent || !!want[r.parent]) && (r.needs !== "boot" || boot === "desktop") &&
|
||||
!(r.hideWhen && want[r.hideWhen]); }
|
||||
|
||||
// Steamify's own rules: a sub-option needs its parent (turning a parent
|
||||
// off turns its sub-options off); single user mode needs the conversion.
|
||||
@@ -46,7 +48,8 @@ Item {
|
||||
var r = rows[i];
|
||||
if (w[id] && r.id === id && r.parent) w[r.parent] = true;
|
||||
if (!w[id] && r.parent === id && r.kind === "toggle") w[r.id] = false;
|
||||
if (w[id] && r.parent === id && r.kind === "toggle") w[r.id] = true; // opt-out sub-options
|
||||
if (w[id] && r.parent === id && r.kind === "toggle") w[r.id] = !(r.hideWhen && w[r.hideWhen]); // opt-out sub-options
|
||||
if (w[id] && r.hideWhen === id) w[r.id] = false; // Big Picture and a silent start exclude each other
|
||||
}
|
||||
if (id === "single" && w.single) w.gaming = true;
|
||||
if (id === "gaming" && !w.gaming) { w.single = false; boot = "gamescope"; }
|
||||
@@ -56,7 +59,7 @@ Item {
|
||||
function choice() {
|
||||
var on = [];
|
||||
for (var i = 0; i < rows.length; i++)
|
||||
if (rows[i].kind === "toggle" && want[rows[i].id]) on.push(rows[i].id);
|
||||
if (rows[i].kind === "toggle" && want[rows[i].id] && shown(rows[i])) on.push(rows[i].id);
|
||||
if (want.gaming && boot === "desktop") on.push("boot");
|
||||
// ", " (not ","): Calamares' packagechooser Summary step shows this
|
||||
// value raw ("Install option: <value>"); steamify-install still
|
||||
|
||||
Reference in new issue
Block a user