mirror of
https://github.com/theupriser/steamify-cachyos.git
synced 2026-10-03 17:41:58 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4bacc3b2e6 | ||
|
|
cc0ca1c35e | ||
|
|
580cc71b57 | ||
|
|
c87e6c763f | ||
|
|
fc05725a91 | ||
|
|
90bc5e4408 | ||
|
|
d99ff652dc | ||
|
|
2aa3068b60 | ||
|
|
1a6ddcfc0d | ||
|
|
11668db91c | ||
|
|
3316c1de28 | ||
|
|
d9365dac81 | ||
|
|
853a3926ee | ||
|
|
66ea63cf7e | ||
|
|
f560f332a9 | ||
|
|
9b86cd1a6c | ||
|
|
a72a4def71 | ||
|
|
ea051c77f6 | ||
|
|
4e829c6111 | ||
|
|
d73e71d4eb | ||
|
|
8f2d2be2aa | ||
|
|
53b72c8e33 | ||
|
|
3b4f3b2313 | ||
|
|
a72d848e78 | ||
|
|
3a58c72d16 | ||
|
|
27a40702ce | ||
|
|
8ab066f034 | ||
|
|
44bfe071d6 | ||
|
|
e281d5e879 | ||
|
|
435f69c151 | ||
|
|
9319cbca1e | ||
|
|
cf6bee1c86 | ||
|
|
16487ba00c | ||
|
|
07a94cd274 | ||
|
|
ce71b34b0d | ||
|
|
d30d505f7d | ||
|
|
9755cc3ac3 | ||
|
|
6f26e74229 | ||
|
|
2a01583b8f | ||
|
|
c40aa1f7d9 | ||
|
|
d204efb59d | ||
|
|
12f6cc0b3a |
No files matched your search
@@ -311,6 +311,21 @@ gamescope and the Plasma desktop. Primary target: the Valve Steam Machine
|
|||||||
`steamify.sh --boot gamescope|desktop` on its own (2.7.0, for scripts) only
|
`steamify.sh --boot gamescope|desktop` on its own (2.7.0, for scripts) only
|
||||||
switches `boot` on an installed conversion: `WANTED` is `CURRENT` plus
|
switches `boot` on an installed conversion: `WANTED` is `CURRENT` plus
|
||||||
that, so no updates or removals a normal run would pick.
|
that, so no updates or removals a normal run would pick.
|
||||||
|
- What Steam's System settings show (SteamOS conversion, 2.9.0): the OS name
|
||||||
|
stays CachyOS's everywhere (legal clarity; Steam's OS Name is
|
||||||
|
`lsb_release -d`, not touched). `/etc/os-release` gets `VERSION_ID=steamos-X.Y`
|
||||||
|
(Steam's OS Version: Valve's newest jupiter repo; offline, the previous
|
||||||
|
value), `VERSION_CODENAME=steam-machine`, `VARIANT="Steamify <version>"` and
|
||||||
|
`VARIANT_ID=steamify-<version>` (Steam shows VARIANT_ID as OS Variant),
|
||||||
|
refreshed by `os_version_refresh` after every run that changes something; a
|
||||||
|
pacman hook (`zz-steamify-os-release`) runs after cachyos-hooks. KDE's About
|
||||||
|
this System would show VERSION_ID after the name: `kcm-about-distrorc`
|
||||||
|
`UseOSReleaseVersion=true` (kset) makes it show os-release's VERSION, which
|
||||||
|
CachyOS doesn't have. Never `NAME` or `PRETTY_NAME`: limine-snapper-sync
|
||||||
|
finds the boot entries by the OS name ("Target OS name ... not found in
|
||||||
|
/boot/limine.conf"); `/etc/default/limine` gets `TARGET_OS_NAME="CachyOS"`
|
||||||
|
when it has none, as a guard. The serial number (tmpfiles rule) is Steam
|
||||||
|
Machine support's, so Fremont only.
|
||||||
- `Relogin=true` means a gamescope that fails to start is relaunched in a
|
- `Relogin=true` means a gamescope that fails to start is relaunched in a
|
||||||
tight loop; keep that in mind when changing session handling.
|
tight loop; keep that in mind when changing session handling.
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,31 @@ All notable changes, per version and per commit. Versions follow
|
|||||||
`steamify.sh`. Versions before 0.7.0 were numbered afterwards,
|
`steamify.sh`. Versions before 0.7.0 were numbered afterwards,
|
||||||
one per merged pull request.
|
one per merged pull request.
|
||||||
|
|
||||||
|
## 2.9.1 - 2026-09-29
|
||||||
|
|
||||||
|
- `c87e6c7` **docs: changelog for the CEC driver cache**
|
||||||
|
- `fc05725` **fix: HDMI-CEC: an older cached CEC driver is removed when a new pin is downloaded**
|
||||||
|
- `90bc5e4` **fix: HDMI-CEC: Valve's CEC driver is downloaded once and kept in /var/cache/steamify (GitHub rate-limits repeated downloads with HTTP 429, which left CEC off); turning CEC on again needs no network**
|
||||||
|
- `d99ff65` **chore: Version 2.9.1**
|
||||||
|
|
||||||
|
## 2.9.0 - 2026-09-28
|
||||||
|
|
||||||
|
- `d30d505` **chore: Version 2.9.0**
|
||||||
|
- `66ea63c` **docs: KDE Plasma only: other desktops and display managers "are not supported" (README, was "don't work yet")**
|
||||||
|
- `9b86cd1` **docs: KDE Plasma only: other desktops don't work yet (README)**
|
||||||
|
- `d73e71d` **docs: README, TECHNICAL and TROUBLESHOOTING for 2.9.0: Steam's System settings, serial number and Wi-Fi backend, --defaults --list, the Steamify ISO**
|
||||||
|
- `a72d848` **feat: Steam's OS Version is the SteamOS release Steamify follows (steamos-3.9), its OS Codename steam-machine; About this System keeps "CachyOS Linux" (UseOSReleaseVersion)**
|
||||||
|
- `27a4070` **fix: Steam's OS Variant shows Steamify's version (VARIANT_ID=steamify-2.9.0; Steam shows VARIANT_ID, not VARIANT)**
|
||||||
|
- `44bfe07` **fix: No VERSION_ID in os-release: About this System said "CachyOS Linux 2.9.0"; the version is in VARIANT ("Steamify 2.9.0")**
|
||||||
|
- `435f69c` **feat: Steam's System settings: the OS name stays CachyOS (no renaming, also not in About this System), Steamify <version> as the variant, the SteamOS release it follows as the codename (steamos-3.9)**
|
||||||
|
- `ce71b34` **feat: Steam's System settings and About this System like on SteamOS: OS name "CachyOS with Steamify" (lsb-release, kept through CachyOS updates by a pacman hook), Steamify as OS variant and version (os-release VARIANT/VERSION_ID; NAME/PRETTY_NAME stay CachyOS's for limine, TARGET_OS_NAME pinned), "CachyOS Linux with Steamify" in About this System; on a Steam Machine the serial number and Steam's Wi-Fi backend setting (existing installs get it as an update)**
|
||||||
|
- `07a94cd` **fix(ui): The progress screen's ✓ and ! stand upright: only a dot on the circle spins while a step runs (they kept the spinner's last angle)**
|
||||||
|
|
||||||
|
## 2.8.0 - 2026-09-28
|
||||||
|
|
||||||
|
- **chore: Version 2.8.0**
|
||||||
|
- **feat: steamify.sh --defaults --list: what --defaults can set up here, as JSON, for an installer page**
|
||||||
|
|
||||||
## 2.7.0 - 2026-09-28
|
## 2.7.0 - 2026-09-28
|
||||||
|
|
||||||
- `4f6e6fd` **feat: --defaults takes --skip <ids> and --boot gamescope|desktop, for the Steam Machine ISO's installer pages**
|
- `4f6e6fd` **feat: --defaults takes --skip <ids> and --boot gamescope|desktop, for the Steam Machine ISO's installer pages**
|
||||||
|
|||||||
@@ -19,6 +19,10 @@ Steam Machine.
|
|||||||
on the desktop too.
|
on the desktop too.
|
||||||
- **Boot into: gamescope / desktop** - where the PC starts. Gaming mode is
|
- **Boot into: gamescope / desktop** - where the PC starts. Gaming mode is
|
||||||
the default.
|
the default.
|
||||||
|
- Steam's **System** settings show the SteamOS release Steamify follows
|
||||||
|
as OS Version (e.g. `steamos-3.9`), `steam-machine` as OS Codename and
|
||||||
|
Steamify's version as OS Variant. The OS name stays CachyOS
|
||||||
|
([details](TECHNICAL.md#what-steams-system-settings-show)).
|
||||||
2. **SteamOS theme** - the Vapor look of SteamOS for the desktop, with
|
2. **SteamOS theme** - the Vapor look of SteamOS for the desktop, with
|
||||||
**Add to Steam** in right-click menus
|
**Add to Steam** in right-click menus
|
||||||
([details](TECHNICAL.md#steamos-desktop-look)).
|
([details](TECHNICAL.md#steamos-desktop-look)).
|
||||||
@@ -62,7 +66,8 @@ What Steamify can do on a Valve Steam Machine:
|
|||||||
([details](TECHNICAL.md#hdmi-cec)).
|
([details](TECHNICAL.md#hdmi-cec)).
|
||||||
- **Steam Machine support** - the front **LED bar** works, Steam's
|
- **Steam Machine support** - the front **LED bar** works, Steam's
|
||||||
**hardware settings** (fan, performance) work, and the power button puts
|
**hardware settings** (fan, performance) work, and the power button puts
|
||||||
it to sleep like a console.
|
it to sleep like a console. Steam's System settings show the serial
|
||||||
|
number, and Steam's **Wi-Fi backend** setting works.
|
||||||
- **Power-off fix** - on by default: shutting down really turns the Steam
|
- **Power-off fix** - on by default: shutting down really turns the Steam
|
||||||
Machine off, also with the newest CachyOS kernel
|
Machine off, also with the newest CachyOS kernel
|
||||||
([details](TECHNICAL.md#power-off-fix-steam-machine)).
|
([details](TECHNICAL.md#power-off-fix-steam-machine)).
|
||||||
@@ -73,6 +78,11 @@ What Steamify can do on a Valve Steam Machine:
|
|||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
- CachyOS with the KDE Plasma desktop (the default CachyOS Desktop edition)
|
- CachyOS with the KDE Plasma desktop (the default CachyOS Desktop edition)
|
||||||
|
|
||||||
|
> **KDE Plasma only.** Steamify works with KDE Plasma and its login managers
|
||||||
|
> (plasma-login-manager or SDDM). Other desktops (GNOME, Hyprland, Cosmic,
|
||||||
|
> ...) and other display managers are not supported: the switching between gaming mode
|
||||||
|
> and the desktop, the theme and the shortcuts are all built for Plasma.
|
||||||
- Your normal user account, with permission to use `sudo`
|
- Your normal user account, with permission to use `sudo`
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
@@ -83,6 +93,11 @@ Open **Konsole** on your Plasma desktop and run:
|
|||||||
curl -fsSL https://github.com/theupriser/steamify-cachyos/releases/latest/download/steamify.sh | bash
|
curl -fsSL https://github.com/theupriser/steamify-cachyos/releases/latest/download/steamify.sh | bash
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Installing CachyOS on a Steam Machine? The
|
||||||
|
[Steamify CachyOS ISO](https://github.com/theupriser/steammachine-cachyos-live-iso)
|
||||||
|
has Steamify built into the installer: pick the options there, and the
|
||||||
|
first boot is already set up.
|
||||||
|
|
||||||
Prefer to look at the script first? Clone the repository and run
|
Prefer to look at the script first? Clone the repository and run
|
||||||
[`./steamify.sh`](steamify.sh) (keep the whole folder: it needs
|
[`./steamify.sh`](steamify.sh) (keep the whole folder: it needs
|
||||||
[`lib/`](lib/)).
|
[`lib/`](lib/)).
|
||||||
|
|||||||
+39
-1
@@ -111,6 +111,9 @@ Turning it off restores `/etc/plasmalogin.conf` from its backup, removes the
|
|||||||
SDDM autologin, sync bridge, shortcut, sudoers rule and Steam autostart, and
|
SDDM autologin, sync bridge, shortcut, sudoers rule and Steam autostart, and
|
||||||
switches back to plasma-login-manager.
|
switches back to plasma-login-manager.
|
||||||
|
|
||||||
|
The conversion also sets what Steam's System settings show, see
|
||||||
|
[below](#what-steams-system-settings-show).
|
||||||
|
|
||||||
**Steam Deck/Machine icons:** `STEAM_GAMEPADUI_ARGS="-gamepadui -steamos3"`
|
**Steam Deck/Machine icons:** `STEAM_GAMEPADUI_ARGS="-gamepadui -steamos3"`
|
||||||
in `~/.config/environment.d/` (and gamescope-session's own environment
|
in `~/.config/environment.d/` (and gamescope-session's own environment
|
||||||
file), which makes Steam show Steam Deck button glyphs in gaming mode.
|
file), which makes Steam show Steam Deck button glyphs in gaming mode.
|
||||||
@@ -139,6 +142,33 @@ taken from the newest `steamdeck-kde-presets` on Valve's SteamOS mirror
|
|||||||
Turning it off restores your previous look and panel layout, and removes `cachyos-vapor` again
|
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).
|
if the wizard installed it (and nothing else, like `cachyos-handheld`, needs it).
|
||||||
|
|
||||||
|
## What Steam's System settings show
|
||||||
|
|
||||||
|
With the SteamOS conversion on, `/etc/os-release` gets:
|
||||||
|
|
||||||
|
| Key | Value | Shown in Steam as |
|
||||||
|
|---|---|---|
|
||||||
|
| `VERSION_ID` | `steamos-3.9`: the newest SteamOS release in Valve's repo (offline: the previous value) | OS Version |
|
||||||
|
| `VERSION_CODENAME` | `steam-machine` | OS Codename |
|
||||||
|
| `VARIANT` / `VARIANT_ID` | `Steamify 2.9.0` / `steamify-2.9.0` | OS Variant (`VARIANT_ID`) |
|
||||||
|
|
||||||
|
The OS name stays CachyOS everywhere: Steam's OS Name comes from
|
||||||
|
`lsb_release -d`, which isn't touched, and `NAME`/`PRETTY_NAME` stay
|
||||||
|
CachyOS's. limine-snapper-sync finds the boot entries by that name, so
|
||||||
|
changing it would break snapshot boot entries; `/etc/default/limine` gets
|
||||||
|
`TARGET_OS_NAME="CachyOS"` as a guard when it has none.
|
||||||
|
|
||||||
|
KDE's About this System would show `VERSION_ID` after the name
|
||||||
|
("CachyOS Linux steamos-3.9"); `UseOSReleaseVersion=true` in
|
||||||
|
`~/.config/kcm-about-distrorc` makes it show `VERSION`, which CachyOS doesn't
|
||||||
|
have, so it keeps saying "CachyOS Linux".
|
||||||
|
|
||||||
|
CachyOS's own hooks (`cachyos-hooks`) reset os-release on updates of
|
||||||
|
`filesystem`; the pacman hook `zz-steamify-os-release` runs after them and
|
||||||
|
sets the keys again (`/usr/local/libexec/steamify-os-release`). The values are
|
||||||
|
refreshed after every Steamify run that changes something. Turning the
|
||||||
|
conversion off removes the hook and runs CachyOS's `cachyos-branding` again.
|
||||||
|
|
||||||
## Front LED bar (Steam Machine)
|
## Front LED bar (Steam Machine)
|
||||||
|
|
||||||
The **Steam Machine support** component, only shown on Fremont hardware
|
The **Steam Machine support** component, only shown on Fremont hardware
|
||||||
@@ -156,7 +186,14 @@ The **Steam Machine support** component, only shown on Fremont hardware
|
|||||||
- installs and enables `steamos-manager`, the service Steam in gaming mode
|
- installs and enables `steamos-manager`, the service Steam in gaming mode
|
||||||
uses for hardware settings (fan, performance, and the HDMI-CEC settings
|
uses for hardware settings (fan, performance, and the HDMI-CEC settings
|
||||||
when [HDMI-CEC](#hdmi-cec) is on); it recognises the Steam Machine from its
|
when [HDMI-CEC](#hdmi-cec) is on); it recognises the Steam Machine from its
|
||||||
DMI data.
|
DMI data;
|
||||||
|
- makes the serial number readable for Steam, which shows it in its System
|
||||||
|
settings (`/etc/tmpfiles.d/steamify-serial.conf`: `product_serial` is
|
||||||
|
root-only by default);
|
||||||
|
- makes Steam's Wi-Fi backend setting work: steamos-manager switches it in
|
||||||
|
`/etc/NetworkManager/conf.d/99-valve-wifi-backend.conf`, which is created
|
||||||
|
with `wifi.backend=wpa_supplicant` (NetworkManager's default) when no
|
||||||
|
backend is set anywhere yet.
|
||||||
|
|
||||||
Turning it off removes all of that again (the AUR helper is kept).
|
Turning it off removes all of that again (the AUR helper is kept).
|
||||||
|
|
||||||
@@ -433,6 +470,7 @@ For an installer (the Steam Machine ISO), without a session or prompts
|
|||||||
```bash
|
```bash
|
||||||
steamify.sh --defaults # what the menu would preselect
|
steamify.sh --defaults # what the menu would preselect
|
||||||
steamify.sh --defaults --options gaming,theme,cec,machine --boot desktop
|
steamify.sh --defaults --options gaming,theme,cec,machine --boot desktop
|
||||||
|
steamify.sh --defaults --list # what --defaults can set up here, as JSON
|
||||||
```
|
```
|
||||||
|
|
||||||
`--options` turns on exactly the listed items (the menu's ids: `gaming`,
|
`--options` turns on exactly the listed items (the menu's ids: `gaming`,
|
||||||
|
|||||||
@@ -18,6 +18,14 @@ restarted right away (`Relogin=true`), which is why it can loop.
|
|||||||
Run the wizard again and press `a` in the menu to re-apply everything that's
|
Run the wizard again and press `a` in the menu to re-apply everything that's
|
||||||
on (also useful after a CachyOS update). To undo a part, untick it.
|
on (also useful after a CachyOS update). To undo a part, untick it.
|
||||||
|
|
||||||
|
## "Target OS name ... not found in /boot/limine.conf"
|
||||||
|
|
||||||
|
limine-snapper-sync finds the boot entries by the OS name. Steamify never
|
||||||
|
changes that name (it only adds version keys to `/etc/os-release`), and pins
|
||||||
|
`TARGET_OS_NAME="CachyOS"` in `/etc/default/limine`. If you see this message,
|
||||||
|
check that `PRETTY_NAME` in `/etc/os-release` still says `CachyOS`, or set
|
||||||
|
`TARGET_OS_NAME` in `/etc/default/limine` to the name your boot entries use.
|
||||||
|
|
||||||
## The LED bar on the Steam Machine stays dark
|
## The LED bar on the Steam Machine stays dark
|
||||||
|
|
||||||
Restart once more; a freshly installed driver often needs a reboot. The menu
|
Restart once more; a freshly installed driver often needs a reboot. The menu
|
||||||
|
|||||||
@@ -177,6 +177,7 @@ backend_apply() {
|
|||||||
if backend_run_component "$c" enable; then is_action "$c" || feature_record "$c" enable; else failed+=("$c"); fi
|
if backend_run_component "$c" enable; then is_action "$c" || feature_record "$c" enable; else failed+=("$c"); fi
|
||||||
done
|
done
|
||||||
feature_record_unticked
|
feature_record_unticked
|
||||||
|
os_version_refresh
|
||||||
[[ " ${TO_DISABLE[*]} ${TO_ENABLE[*]} " =~ \ (gaming|single|boot|kpin)\ ]] && RESTART_FOR_LOGIN=true
|
[[ " ${TO_DISABLE[*]} ${TO_ENABLE[*]} " =~ \ (gaming|single|boot|kpin)\ ]] && RESTART_FOR_LOGIN=true
|
||||||
backend_event finished "\"failed\":$(json_list "${failed[@]}"),\"restart\":$(restart_needed && echo true || echo false)"
|
backend_event finished "\"failed\":$(json_list "${failed[@]}"),\"restart\":$(restart_needed && echo true || echo false)"
|
||||||
}
|
}
|
||||||
|
|||||||
+17
-6
@@ -26,6 +26,10 @@ CEC_DKMS_VER=1
|
|||||||
CEC_DKMS_SRC="/usr/src/$CEC_DKMS_NAME-$CEC_DKMS_VER"
|
CEC_DKMS_SRC="/usr/src/$CEC_DKMS_NAME-$CEC_DKMS_VER"
|
||||||
CEC_DRIVER_URL="https://raw.githubusercontent.com/evlaV/linux-integration/10c8c8800ccd3ae359203b4eefb6479f613b3b8e/drivers/media/cec/platform/cros-ec/cros-ec-cec.c"
|
CEC_DRIVER_URL="https://raw.githubusercontent.com/evlaV/linux-integration/10c8c8800ccd3ae359203b4eefb6479f613b3b8e/drivers/media/cec/platform/cros-ec/cros-ec-cec.c"
|
||||||
CEC_DRIVER_SHA256=e89fd4e87fceb32d713ffc59b64794779b3c2b3c012b0e2f2e9f0c40b42f4373
|
CEC_DRIVER_SHA256=e89fd4e87fceb32d713ffc59b64794779b3c2b3c012b0e2f2e9f0c40b42f4373
|
||||||
|
# Downloaded once, then kept: raw.githubusercontent.com rate-limits (HTTP 429) repeated downloads
|
||||||
|
# from one address, and turning CEC off and on again needs no network then. Named after its
|
||||||
|
# checksum, so a new pin (a new commit and checksum above) downloads its file once by itself.
|
||||||
|
CEC_DRIVER_CACHE="/var/cache/steamify/cros-ec-cec-${CEC_DRIVER_SHA256:0:12}.c"
|
||||||
|
|
||||||
cec_link_steamos_manager() {
|
cec_link_steamos_manager() {
|
||||||
# On a Steam Machine: steamos-manager writes cecd's config from Steam's
|
# On a Steam Machine: steamos-manager writes cecd's config from Steam's
|
||||||
@@ -65,12 +69,19 @@ cec_driver_enable() {
|
|||||||
fi
|
fi
|
||||||
install_kernel_headers || return 1
|
install_kernel_headers || return 1
|
||||||
tmp="$(mktemp -d)"
|
tmp="$(mktemp -d)"
|
||||||
info "Downloading Valve's Steam Machine CEC driver..."
|
if [[ -f "$CEC_DRIVER_CACHE" ]] && echo "$CEC_DRIVER_SHA256 $CEC_DRIVER_CACHE" | sha256sum -c --quiet - 2>/dev/null; then
|
||||||
if ! curl -fsL "$CEC_DRIVER_URL" -o "$tmp/cros-ec-cec.c" ||
|
cp "$CEC_DRIVER_CACHE" "$tmp/cros-ec-cec.c"
|
||||||
! echo "$CEC_DRIVER_SHA256 $tmp/cros-ec-cec.c" | sha256sum -c --quiet -; then
|
else
|
||||||
rm -rf "$tmp"
|
info "Downloading Valve's Steam Machine CEC driver..."
|
||||||
err "Downloading Valve's CEC driver failed (or its checksum didn't match)."
|
if ! curl -fsL --retry 2 "$CEC_DRIVER_URL" -o "$tmp/cros-ec-cec.c" ||
|
||||||
return 1
|
! echo "$CEC_DRIVER_SHA256 $tmp/cros-ec-cec.c" | sha256sum -c --quiet -; then
|
||||||
|
rm -rf "$tmp"
|
||||||
|
err "Downloading Valve's CEC driver failed (or its checksum didn't match)."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
# The name carries the checksum: a newer pin gets its own file, the old one goes.
|
||||||
|
sudo find "${CEC_DRIVER_CACHE%/*}" -maxdepth 1 -name 'cros-ec-cec-*.c' ! -name "${CEC_DRIVER_CACHE##*/}" -delete 2>/dev/null
|
||||||
|
sudo install -Dm644 "$tmp/cros-ec-cec.c" "$CEC_DRIVER_CACHE"
|
||||||
fi
|
fi
|
||||||
# So it finds amdgpu's HDMI port (see the patch for why).
|
# So it finds amdgpu's HDMI port (see the patch for why).
|
||||||
patch_file cros-ec-cec-single-port.patch | patch -s -d "$tmp" -p1 ||
|
patch_file cros-ec-cec-single-port.patch | patch -s -d "$tmp" -p1 ||
|
||||||
|
|||||||
@@ -18,6 +18,78 @@ gaming_status() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# What Steam shows in its System settings besides the OS name (which stays
|
||||||
|
# CachyOS's, for legal clarity and because limine-snapper-sync finds the boot
|
||||||
|
# entries by it): the SteamOS release as the OS version, steam-machine as the
|
||||||
|
# codename, Steamify with its version as the variant (os-release VERSION_ID,
|
||||||
|
# VERSION_CODENAME, VARIANT_ID; see patches/steamify-os-release.sh).
|
||||||
|
OS_NAME_SCRIPT=/usr/local/libexec/steamify-os-release
|
||||||
|
OS_NAME_HOOK=/etc/pacman.d/hooks/zz-steamify-os-release.hook
|
||||||
|
# limine's tools take the OS name from TARGET_OS_NAME, else os-release's
|
||||||
|
# PRETTY_NAME: pinned to CachyOS, the boot entries never depend on os-release.
|
||||||
|
LIMINE_DEFAULTS=/etc/default/limine
|
||||||
|
|
||||||
|
steamos_release() {
|
||||||
|
# The SteamOS release Steamify follows: Valve's newest jupiter-X.Y repo
|
||||||
|
# (where the SteamOS extras come from), as an os-release ID (no spaces or
|
||||||
|
# capitals: steamos-3.9). Offline (e.g. in the installer): the one set
|
||||||
|
# before, if any.
|
||||||
|
local v
|
||||||
|
v="$(curl -fsL --max-time 15 "$VALVE_MIRROR/" 2>/dev/null | grep -oE 'jupiter-[0-9]+\.[0-9]+/' | tr -d / | sort -V | tail -n 1)"
|
||||||
|
if [[ -n "$v" ]]; then echo "steamos-${v#jupiter-}"
|
||||||
|
else sed -n 's/^VERSION_ID=\(steamos-.*\)$/\1/p' /etc/os-release 2>/dev/null; fi
|
||||||
|
}
|
||||||
|
|
||||||
|
os_name_enable() {
|
||||||
|
# 2.9.0 pre-releases renamed the OS itself; the name stays CachyOS's.
|
||||||
|
if grep -q '^DISTRIB_DESCRIPTION=.*with Steamify' /etc/lsb-release 2>/dev/null &&
|
||||||
|
[[ -x /usr/share/libalpm/scripts/cachyos-branding ]]; then
|
||||||
|
sudo /usr/share/libalpm/scripts/cachyos-branding lsb-release
|
||||||
|
fi
|
||||||
|
[[ -n "$(kreadconfig6 --file kcm-about-distrorc --group General --key Name 2>/dev/null)" ]] &&
|
||||||
|
kset gaming kcm-about-distrorc General Name --delete
|
||||||
|
# About this System: os-release's VERSION (CachyOS has none) instead of
|
||||||
|
# VERSION_ID, which is the SteamOS release now.
|
||||||
|
kset gaming kcm-about-distrorc General UseOSReleaseVersion true
|
||||||
|
patch_file steamify-os-release.sh | fill VERSION="$VERSION" STEAMOS="$(steamos_release)" |
|
||||||
|
sudo install -Dm755 /dev/stdin "$OS_NAME_SCRIPT" &&
|
||||||
|
patch_file steamify-os-release.hook | fill SCRIPT="$OS_NAME_SCRIPT" |
|
||||||
|
sudo install -Dm644 /dev/stdin "$OS_NAME_HOOK" &&
|
||||||
|
sudo "$OS_NAME_SCRIPT" || { err "Setting Steamify's version for Steam failed."; return 1; }
|
||||||
|
if [[ -f "$LIMINE_DEFAULTS" ]] && ! grep -q '^TARGET_OS_NAME=' "$LIMINE_DEFAULTS"; then
|
||||||
|
backup_file "$LIMINE_DEFAULTS"
|
||||||
|
printf '%s\n' 'TARGET_OS_NAME="CachyOS"' | sudo tee -a "$LIMINE_DEFAULTS" > /dev/null
|
||||||
|
state_set gaming limine_target 1
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
os_name_disable() {
|
||||||
|
sudo rm -f "$OS_NAME_HOOK" "$OS_NAME_SCRIPT"
|
||||||
|
[[ -f /etc/os-release ]] && sudo sed -i -e '/^VARIANT=/d' -e '/^VARIANT_ID=/d' -e '/^VERSION_ID=/d' -e '/^VERSION_CODENAME=/d' /etc/os-release
|
||||||
|
# CachyOS's own values back, the way its hooks write them.
|
||||||
|
if [[ -x /usr/share/libalpm/scripts/cachyos-branding ]]; then
|
||||||
|
sudo /usr/share/libalpm/scripts/cachyos-branding os-release
|
||||||
|
# Undoes 2.9.0 pre-releases, which changed lsb-release's name too.
|
||||||
|
sudo /usr/share/libalpm/scripts/cachyos-branding lsb-release
|
||||||
|
fi
|
||||||
|
if [[ -n "$(state_get gaming limine_target)" ]]; then
|
||||||
|
sudo sed -i '/^TARGET_OS_NAME="CachyOS"$/d' "$LIMINE_DEFAULTS"
|
||||||
|
state_set gaming limine_target ""
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
os_version_refresh() {
|
||||||
|
# After every run that changed something (sudo is at hand then): Steam's
|
||||||
|
# OS version follows Steamify's, not just the one that set it up. Silent:
|
||||||
|
# the app reads the backend's stdout as JSON.
|
||||||
|
gaming_status 2>/dev/null || return 0
|
||||||
|
grep -qx "VARIANT_ID=steamify-$VERSION" /etc/os-release 2>/dev/null && return 0
|
||||||
|
os_name_enable > /dev/null 2>&1
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
gaming_enable() {
|
gaming_enable() {
|
||||||
# LOGIN_MANAGER (sddm with single user, else plasmalogin) is set by the
|
# LOGIN_MANAGER (sddm with single user, else plasmalogin) is set by the
|
||||||
# menu. Re-running with the other value switches over cleanly.
|
# menu. Re-running with the other value switches over cleanly.
|
||||||
@@ -37,6 +109,7 @@ gaming_enable() {
|
|||||||
esac
|
esac
|
||||||
create_desktop_shortcut
|
create_desktop_shortcut
|
||||||
steam_enable
|
steam_enable
|
||||||
|
os_name_enable || return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
gaming_disable() {
|
gaming_disable() {
|
||||||
@@ -49,6 +122,8 @@ gaming_disable() {
|
|||||||
switch_to_plasmalogin
|
switch_to_plasmalogin
|
||||||
remove_desktop_shortcut
|
remove_desktop_shortcut
|
||||||
steam_disable
|
steam_disable
|
||||||
|
krevert gaming
|
||||||
|
os_name_disable
|
||||||
ok "The PC boots to the normal login screen again (from the next boot)."
|
ok "The PC boots to the normal login screen again (from the next boot)."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+28
-2
@@ -25,8 +25,8 @@ NO_PRESELECT=(boot cec kpin hdmi)
|
|||||||
# FEATURE_BASELINE.
|
# FEATURE_BASELINE.
|
||||||
FEATURE_BASELINE=2.1.0
|
FEATURE_BASELINE=2.1.0
|
||||||
declare -A FEATURE_VERSION=(
|
declare -A FEATURE_VERSION=(
|
||||||
[gaming]=2.1.0 [boot]=2.1.0 [theme]=2.1.0 [glyphs]=2.1.0 [single]=2.1.0
|
[gaming]=2.9.0 [boot]=2.1.0 [theme]=2.1.0 [glyphs]=2.1.0 [single]=2.1.0
|
||||||
[launcher]=2.1.0 [cec]=2.7.0 [machine]=2.2.0 [poweroff]=2.2.0 [vram]=2.3.0 [notify]=2.5.0 [steamgame]=2.5.1
|
[launcher]=2.1.0 [cec]=2.7.0 [machine]=2.9.0 [poweroff]=2.2.0 [vram]=2.3.0 [notify]=2.5.0 [steamgame]=2.5.1
|
||||||
[kpin]=2.1.0 [hdmi]=2.1.0
|
[kpin]=2.1.0 [hdmi]=2.1.0
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -236,6 +236,31 @@ defaults_options() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defaults_list() {
|
||||||
|
# --defaults --list: what --defaults can set up on this PC, as one JSON
|
||||||
|
# array, for an installer page (the Steam Machine ISO builds its Steamify
|
||||||
|
# page from it, so new items show up without a new ISO). Per item: id,
|
||||||
|
# label, hint, kind (toggle, or choice for boot: on = desktop), parent,
|
||||||
|
# on (preselected like a first run) and selectable. Actions, retired
|
||||||
|
# items and items this PC can't use (e.g. no Steam account yet) are
|
||||||
|
# left out. Read-only: no sudo, no state.
|
||||||
|
local c kind on sel items=""
|
||||||
|
for c in "${COMPONENTS[@]}"; do
|
||||||
|
component_available "$c" || continue
|
||||||
|
is_action "$c" && continue
|
||||||
|
[[ "$c" == kpin || "$c" == hdmi ]] && continue
|
||||||
|
kind=toggle; [[ "$c" == boot ]] && kind=choice
|
||||||
|
sel=false; component_selectable "$c" && sel=true
|
||||||
|
on=false
|
||||||
|
[[ "$sel" == true && " ${NO_PRESELECT[*]} " != *" $c "* ]] && on=true
|
||||||
|
[[ "$c" == cec ]] && machine_available && on=true
|
||||||
|
items+="${items:+,}{\"id\":$(json_str "$c"),\"label\":$(json_str "${LABEL[$c]%%:*}")"
|
||||||
|
items+=",\"hint\":$(json_str "$( [[ "${LABEL[$c]}" == *:* ]] && echo "${LABEL[$c]#*: }")")"
|
||||||
|
items+=",\"kind\":\"$kind\",\"parent\":$(json_str "${PARENT[$c]:-}"),\"on\":$on,\"selectable\":$sel}"
|
||||||
|
done
|
||||||
|
printf '[%s]\n' "$items"
|
||||||
|
}
|
||||||
|
|
||||||
toggle_component() {
|
toggle_component() {
|
||||||
local c="$1"
|
local c="$1"
|
||||||
component_selectable "$c" || return 1
|
component_selectable "$c" || return 1
|
||||||
@@ -440,5 +465,6 @@ apply_changes() {
|
|||||||
if "${c}_enable"; then is_action "$c" || feature_record "$c" enable; else failed+=("$c"); fi
|
if "${c}_enable"; then is_action "$c" || feature_record "$c" enable; else failed+=("$c"); fi
|
||||||
done
|
done
|
||||||
feature_record_unticked
|
feature_record_unticked
|
||||||
|
os_version_refresh
|
||||||
FAILED=("${failed[@]}")
|
FAILED=("${failed[@]}")
|
||||||
}
|
}
|
||||||
@@ -378,6 +378,46 @@ machine_status() {
|
|||||||
pacman -Qi leds-valve-dkms-git >/dev/null 2>&1 && pacman -Qi steamos-manager >/dev/null 2>&1
|
pacman -Qi leds-valve-dkms-git >/dev/null 2>&1 && pacman -Qi steamos-manager >/dev/null 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Steam (steamwebhelper) reads the serial number for its System settings
|
||||||
|
# straight from DMI, which the kernel makes root-only; SteamOS makes it
|
||||||
|
# readable. A tmpfiles rule does that at every boot.
|
||||||
|
SERIAL_TMPFILES=/etc/tmpfiles.d/steamify-serial.conf
|
||||||
|
|
||||||
|
# Steam's Wi-Fi backend switch goes through steamos-manager, which reads and
|
||||||
|
# writes the backend in this file (SteamOS ships it); without it, it fails
|
||||||
|
# with "Wi-Fi backend not found in config". wpa_supplicant is what
|
||||||
|
# NetworkManager uses on CachyOS anyway. Not written when someone set a
|
||||||
|
# backend themselves.
|
||||||
|
WIFI_BACKEND_CONF=/etc/NetworkManager/conf.d/99-valve-wifi-backend.conf
|
||||||
|
|
||||||
|
wifi_backend_enable() {
|
||||||
|
[[ -f "$WIFI_BACKEND_CONF" ]] && return 0
|
||||||
|
grep -rqs '^wifi.backend=' /etc/NetworkManager/NetworkManager.conf /etc/NetworkManager/conf.d && return 0
|
||||||
|
printf '%s\n' "# Written by Steamify: Steam's Wi-Fi backend setting (steamos-manager)." \
|
||||||
|
'[device]' 'wifi.backend=wpa_supplicant' | sudo install -Dm644 /dev/stdin "$WIFI_BACKEND_CONF" ||
|
||||||
|
{ err "Writing the Wi-Fi backend setting failed."; return 1; }
|
||||||
|
state_set machine wifi_backend 1
|
||||||
|
}
|
||||||
|
|
||||||
|
wifi_backend_disable() {
|
||||||
|
[[ -n "$(state_get machine wifi_backend)" ]] || return 0
|
||||||
|
sudo rm -f "$WIFI_BACKEND_CONF"
|
||||||
|
state_clear machine
|
||||||
|
}
|
||||||
|
|
||||||
|
serial_enable() {
|
||||||
|
printf '%s\n' "# Written by Steamify: Steam shows the serial number, like on SteamOS." \
|
||||||
|
'z /sys/class/dmi/id/product_serial 0444 - - -' | sudo tee "$SERIAL_TMPFILES" > /dev/null &&
|
||||||
|
sudo systemd-tmpfiles --create "$SERIAL_TMPFILES" ||
|
||||||
|
{ err "Making the serial number readable for Steam failed."; return 1; }
|
||||||
|
}
|
||||||
|
|
||||||
|
serial_disable() {
|
||||||
|
sudo rm -f "$SERIAL_TMPFILES"
|
||||||
|
sudo chmod 0400 /sys/class/dmi/id/product_serial 2>/dev/null
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
machine_enable() {
|
machine_enable() {
|
||||||
# The pinned kernel first when it's wanted too, so DKMS builds the LED
|
# The pinned kernel first when it's wanted too, so DKMS builds the LED
|
||||||
# driver for it once, instead of for the current kernel and then again.
|
# driver for it once, instead of for the current kernel and then again.
|
||||||
@@ -403,6 +443,8 @@ EOF
|
|||||||
# for hardware and controller settings; it knows the Steam Machine from its DMI data.
|
# for hardware and controller settings; it knows the Steam Machine from its DMI data.
|
||||||
info "Installing hardware manager packages (steamos-manager & inputplumber)..."
|
info "Installing hardware manager packages (steamos-manager & inputplumber)..."
|
||||||
sudo pacman -S --needed --noconfirm steamos-manager inputplumber || { err "Installing hardware manager packages failed."; return 1; }
|
sudo pacman -S --needed --noconfirm steamos-manager inputplumber || { err "Installing hardware manager packages failed."; return 1; }
|
||||||
|
serial_enable || return 1
|
||||||
|
wifi_backend_enable || return 1
|
||||||
sudo systemctl enable --now inputplumber.service
|
sudo systemctl enable --now inputplumber.service
|
||||||
sudo systemctl enable --now steamos-manager.service
|
sudo systemctl enable --now steamos-manager.service
|
||||||
user_systemctl enable steamos-manager.service 2>/dev/null
|
user_systemctl enable steamos-manager.service 2>/dev/null
|
||||||
@@ -426,6 +468,8 @@ machine_disable() {
|
|||||||
sudo systemctl disable --now steamos-manager.service 2>/dev/null
|
sudo systemctl disable --now steamos-manager.service 2>/dev/null
|
||||||
sudo systemctl disable --now inputplumber.service 2>/dev/null
|
sudo systemctl disable --now inputplumber.service 2>/dev/null
|
||||||
sudo pacman -Rns --noconfirm steamos-manager inputplumber 2>/dev/null
|
sudo pacman -Rns --noconfirm steamos-manager inputplumber 2>/dev/null
|
||||||
|
serial_disable
|
||||||
|
wifi_backend_disable
|
||||||
sudo rm -f "$LED_UDEV_RULE" /etc/modules-load.d/leds-valve.conf
|
sudo rm -f "$LED_UDEV_RULE" /etc/modules-load.d/leds-valve.conf
|
||||||
sudo udevadm control --reload
|
sudo udevadm control --reload
|
||||||
sudo modprobe -r leds-valve 2>/dev/null
|
sudo modprobe -r leds-valve 2>/dev/null
|
||||||
|
|||||||
@@ -13,4 +13,5 @@ read and reviewed on their own. `lib/*.sh` reads them with `patch_file
|
|||||||
| `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=...`) |
|
| `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) |
|
| `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-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=...`) |
|
||||||
| `cros-ec-cec-single-port.patch` | `lib/cec.sh` (HDMI-CEC) | Makes Valve's Steam Machine CEC driver find amdgpu's HDMI port |
|
| `cros-ec-cec-single-port.patch` | `lib/cec.sh` (HDMI-CEC) | Makes Valve's Steam Machine CEC driver find amdgpu's HDMI port |
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# Installed by Steamify CachyOS (SteamOS conversion): runs after
|
||||||
|
# cachyos-hooks' os-release/cachyos-branding hooks (hooks run in file name
|
||||||
|
# order).
|
||||||
|
[Trigger]
|
||||||
|
Operation = Install
|
||||||
|
Operation = Upgrade
|
||||||
|
Type = Package
|
||||||
|
Target = filesystem
|
||||||
|
Target = cachyos-hooks
|
||||||
|
|
||||||
|
[Action]
|
||||||
|
Description = Steamify: the OS variant and version Steam shows
|
||||||
|
When = PostTransaction
|
||||||
|
Exec = @SCRIPT@
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# Installed by Steamify CachyOS (SteamOS conversion): what Steam shows in its
|
||||||
|
# System settings besides the OS name, which stays CachyOS's: the SteamOS
|
||||||
|
# release Steamify follows as the OS version (VERSION_ID, e.g. steamos-3.9),
|
||||||
|
# steam-machine as the codename, and Steamify with its version as the variant
|
||||||
|
# (VARIANT_ID, which Steam shows). KDE's About this System would show
|
||||||
|
# VERSION_ID after the name: the conversion sets its UseOSReleaseVersion, so it
|
||||||
|
# shows os-release's VERSION instead, which CachyOS doesn't have. NAME and
|
||||||
|
# PRETTY_NAME are never touched: limine-snapper-sync finds the boot entries by
|
||||||
|
# the OS name. The zz-steamify-os-release hook runs this after cachyos-hooks.
|
||||||
|
sed -i -e '/^VARIANT=/d' -e '/^VARIANT_ID=/d' -e '/^VERSION_ID=/d' -e '/^VERSION_CODENAME=/d' /etc/os-release
|
||||||
|
printf '%s\n' 'VARIANT="Steamify @VERSION@"' 'VARIANT_ID=steamify-@VERSION@' 'VERSION_CODENAME=steam-machine' >> /etc/os-release
|
||||||
|
[ -n "@STEAMOS@" ] && echo 'VERSION_ID=@STEAMOS@' >> /etc/os-release
|
||||||
|
exit 0
|
||||||
+11
-2
@@ -15,7 +15,7 @@
|
|||||||
set -uo pipefail
|
set -uo pipefail
|
||||||
|
|
||||||
# Release version, see CHANGELOG.md.
|
# Release version, see CHANGELOG.md.
|
||||||
VERSION=2.7.0
|
VERSION=2.9.1
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
@@ -33,12 +33,16 @@ BACKEND=false
|
|||||||
# prompt (the Steam Machine ISO's first login runs this; sudo must not ask).
|
# prompt (the Steam Machine ISO's first login runs this; sudo must not ask).
|
||||||
DEFAULTS=false
|
DEFAULTS=false
|
||||||
[[ "${1:-}" == --defaults ]] && DEFAULTS=true
|
[[ "${1:-}" == --defaults ]] && DEFAULTS=true
|
||||||
|
# --defaults --list: what --defaults can set up here, as JSON (an installer
|
||||||
|
# page is built from it); nothing else on stdout.
|
||||||
|
LIST=false
|
||||||
|
[[ "$DEFAULTS" == true && "${2:-}" == --list ]] && LIST=true
|
||||||
# --boot gamescope|desktop: only change where an installed conversion
|
# --boot gamescope|desktop: only change where an installed conversion
|
||||||
# starts, everything else stays as it is (for scripts; no menu).
|
# starts, everything else stays as it is (for scripts; no menu).
|
||||||
BOOT_ONLY=false
|
BOOT_ONLY=false
|
||||||
[[ "${1:-}" == --boot ]] && BOOT_ONLY=true
|
[[ "${1:-}" == --boot ]] && BOOT_ONLY=true
|
||||||
|
|
||||||
if [[ "$BACKEND" == false ]]; then
|
if [[ "$BACKEND" == false && "$LIST" == false ]]; then
|
||||||
echo -e "${c_bold}Steamify CachyOS${c_reset} v$VERSION"
|
echo -e "${c_bold}Steamify CachyOS${c_reset} v$VERSION"
|
||||||
echo "Turn the SteamOS-style parts on or off. The menu shows what is on now;"
|
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."
|
echo "anything you turn off is put back the way it was."
|
||||||
@@ -128,6 +132,11 @@ if [[ "${1:-}" == --first-login ]]; then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "$LIST" == true ]]; then
|
||||||
|
defaults_list
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "$DEFAULTS" == true ]]; then
|
if [[ "$DEFAULTS" == true ]]; then
|
||||||
RESTART_FOR_LOGIN=false
|
RESTART_FOR_LOGIN=false
|
||||||
REAPPLY=false
|
REAPPLY=false
|
||||||
|
|||||||
@@ -35,7 +35,11 @@ Item {
|
|||||||
border.width: step.st === "wait" || step.st === "run" ? 2 : 0; border.color: step.st === "run" ? Theme.accent : "#343f50"
|
border.width: step.st === "wait" || step.st === "run" ? 2 : 0; border.color: step.st === "run" ? Theme.accent : "#343f50"
|
||||||
Text { anchors.centerIn: parent; text: step.st === "ok" ? "✓" : (step.st === "fail" ? "!" : ""); color: step.st === "ok" ? Theme.good : Theme.bad
|
Text { anchors.centerIn: parent; text: step.st === "ok" ? "✓" : (step.st === "fail" ? "!" : ""); color: step.st === "ok" ? Theme.good : Theme.bad
|
||||||
font.pixelSize: 13; font.weight: Font.Bold }
|
font.pixelSize: 13; font.weight: Font.Bold }
|
||||||
RotationAnimator on rotation { running: step.st === "run"; from: 0; to: 360; duration: 1000; loops: Animation.Infinite } }
|
// Only this dot turns while the step runs: ✓ and ! never rotate
|
||||||
|
// (an animator leaves its item at whatever angle it stopped).
|
||||||
|
Item { anchors.fill: parent; visible: step.st === "run"
|
||||||
|
Rectangle { width: 6; height: 6; radius: 3; color: Theme.accent; x: parent.width / 2 - 3; y: -3 }
|
||||||
|
RotationAnimator on rotation { running: step.st === "run"; from: 0; to: 360; duration: 1000; loops: Animation.Infinite } } }
|
||||||
Row { width: 380; anchors.verticalCenter: parent.verticalCenter; spacing: 10
|
Row { width: 380; anchors.verticalCenter: parent.verticalCenter; spacing: 10
|
||||||
// Boot into's label is its prefix already: "Boot into desktop", not "Boot into Boot into".
|
// Boot into's label is its prefix already: "Boot into desktop", not "Boot into Boot into".
|
||||||
Text { text: step.modelData.id === "boot" ? (Texts.actions[step.modelData.action] || [])[3] + Texts.actions[step.modelData.action][0].toLowerCase()
|
Text { text: step.modelData.id === "boot" ? (Texts.actions[step.modelData.action] || [])[3] + Texts.actions[step.modelData.action][0].toLowerCase()
|
||||||
|
|||||||
Reference in new issue
Block a user