mirror of
https://github.com/theupriser/steamify-cachyos-dev.git
synced 2026-10-05 12:45:56 +02:00
Compare commits
102
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2ac2b0d5ca | ||
|
|
b3a58cf62c | ||
|
|
66ec27d4e2 | ||
|
|
899e9af06c | ||
|
|
660558ab45 | ||
|
|
5d168ea44f | ||
|
|
fa67d65a96 | ||
|
|
cbd6920b96 | ||
|
|
74c859ef8d | ||
|
|
0052566ace | ||
|
|
d045b82bae | ||
|
|
51c4fac70d | ||
|
|
343ff1edda | ||
|
|
cb390c2dc0 | ||
|
|
b2eb003cc6 | ||
|
|
d1dc96f29e | ||
|
|
d948227c19 | ||
|
|
4824004215 | ||
|
|
a1f8089c7c | ||
|
|
d82d0f8b2f | ||
|
|
540139b967 | ||
|
|
e929444399 | ||
|
|
459832c3f5 | ||
|
|
f6c87fddc7 | ||
|
|
913a8f0830 | ||
|
|
232c92fcd7 | ||
|
|
092e888c3f | ||
|
|
fafa38fbb4 | ||
|
|
6c0c80fb9a | ||
|
|
80f4d68536 | ||
|
|
594ce35cf8 | ||
|
|
17ae88a4ad | ||
|
|
a9f20d69bf | ||
|
|
9a351ae639 | ||
|
|
0d0279bd20 | ||
|
|
195518f0da | ||
|
|
0447f35e7d | ||
|
|
d614539d9e | ||
|
|
847b024803 | ||
|
|
8df2e23314 | ||
|
|
e6119ca194 | ||
|
|
6aad17f55c | ||
|
|
e8c57827b1 | ||
|
|
4209f9625b | ||
|
|
07a7da1d67 | ||
|
|
a34efb0547 | ||
|
|
20373c9f05 | ||
|
|
27b7445f63 | ||
|
|
a82053d6bc | ||
|
|
37d65fc79d | ||
|
|
5b867f8bd2 | ||
|
|
e583494aa6 | ||
|
|
fd9ecf4b9f | ||
|
|
4cc4046716 | ||
|
|
9d537406bb | ||
|
|
7dd659dc09 | ||
|
|
d5cfadf3bb | ||
|
|
cb247b9cc3 | ||
|
|
6a53c957ba | ||
|
|
63fd11829d | ||
|
|
f03ad74295 | ||
|
|
0c84b8b926 | ||
|
|
ee20bd9825 | ||
|
|
6d264acaf2 | ||
|
|
b91ef9172e | ||
|
|
fe5251f758 | ||
|
|
508eb68ed5 | ||
|
|
c91277abf0 | ||
|
|
8646b3c30a | ||
|
|
fa776b1761 | ||
|
|
0ae7cce488 | ||
|
|
7db82b6494 | ||
|
|
52d5021d88 | ||
|
|
f19bcb9764 | ||
|
|
5954548247 | ||
|
|
bc06bc2534 | ||
|
|
0052f1ba22 | ||
|
|
61442d7ef8 | ||
|
|
6d73d49477 | ||
|
|
fe249e5108 | ||
|
|
4398a2b85f | ||
|
|
081080b5f5 | ||
|
|
b6b35d41f1 | ||
|
|
3ccbb62bd2 | ||
|
|
fec0ce5b8e | ||
|
|
d0038916e9 | ||
|
|
4905bba1f6 | ||
|
|
60a2698d02 | ||
|
|
21547dd7bc | ||
|
|
96cae35c6b | ||
|
|
e1dd75875b | ||
|
|
f8aac02d0a | ||
|
|
8d5cdaea99 | ||
|
|
f8e2473afa | ||
|
|
088ee83350 | ||
|
|
d626aafd84 | ||
|
|
6da46fc10f | ||
|
|
0464ede893 | ||
|
|
4aeb3de43f | ||
|
|
04204f1b9d | ||
|
|
e04db1ec5f | ||
|
|
a8d7554dce |
No files matched your search
@@ -5,7 +5,7 @@
|
|||||||
pass() { echo "PASS $*"; }; fail() { echo "FAIL $*"; }
|
pass() { echo "PASS $*"; }; fail() { echo "FAIL $*"; }
|
||||||
sudo mountpoint -q /mnt || sudo mount -t 9p -o trans=virtio,version=9p2000.L repo /mnt
|
sudo mountpoint -q /mnt || sudo mount -t 9p -o trans=virtio,version=9p2000.L repo /mnt
|
||||||
cd /mnt || exit 1
|
cd /mnt || exit 1
|
||||||
for lib in $(grep -oP '^for lib in \K.*(?=; do$)' steamify.sh); do
|
for lib in common state packages login-manager single-user steam-desktop steam-machine fremont-poweroff vram-booster hdmi-refresh cec boot-session vapor-theme steamos-extras bios desktop-shortcut wizard-shortcut steam-game update-notifier; do
|
||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
. "lib/$lib.sh" 2>/dev/null
|
. "lib/$lib.sh" 2>/dev/null
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ pass() { echo "PASS $*"; }; fail() { echo "FAIL $*"; }; skip() { echo "SKIP $*";
|
|||||||
sudo mountpoint -q /mnt || sudo mount -t 9p -o trans=virtio,version=9p2000.L repo /mnt
|
sudo mountpoint -q /mnt || sudo mount -t 9p -o trans=virtio,version=9p2000.L repo /mnt
|
||||||
cd /mnt || exit 1
|
cd /mnt || exit 1
|
||||||
export SCRIPT_DIR=/mnt # steamify.sh sets it; the libs alone read patches/ and services/ from it
|
export SCRIPT_DIR=/mnt # steamify.sh sets it; the libs alone read patches/ and services/ from it
|
||||||
for lib in $(grep -oP '^for lib in \K.*(?=; do$)' steamify.sh); do
|
for lib in common state packages login-manager single-user steam-desktop steam-machine fremont-poweroff vram-booster hdmi-refresh nvidia controllers cec boot-session vapor-theme steamos-extras bios desktop-shortcut wizard-shortcut steam-game update-notifier; do
|
||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
. "lib/$lib.sh" 2>/dev/null
|
. "lib/$lib.sh" 2>/dev/null
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -1,170 +0,0 @@
|
|||||||
== pc first run
|
|
||||||
wanted: gaming glyphs theme single launcher notify
|
|
||||||
disable:
|
|
||||||
enable: gaming glyphs theme single launcher notify
|
|
||||||
== pc first run, untick gaming
|
|
||||||
wanted: theme launcher notify
|
|
||||||
disable:
|
|
||||||
enable: theme launcher notify
|
|
||||||
== pc single on
|
|
||||||
wanted: gaming theme single launcher notify
|
|
||||||
disable:
|
|
||||||
enable: gaming theme single launcher notify
|
|
||||||
== pc single then gaming off
|
|
||||||
wanted: theme launcher notify
|
|
||||||
disable:
|
|
||||||
enable: theme launcher notify
|
|
||||||
== pc boot desktop
|
|
||||||
wanted: gaming boot glyphs theme single launcher notify
|
|
||||||
disable:
|
|
||||||
enable: gaming boot glyphs theme single launcher notify
|
|
||||||
== pc boot desktop then gaming off
|
|
||||||
wanted: theme launcher notify
|
|
||||||
disable:
|
|
||||||
enable: theme launcher notify
|
|
||||||
== pc silent only
|
|
||||||
wanted: gaming silent glyphs theme single launcher notify
|
|
||||||
disable:
|
|
||||||
enable: gaming silent glyphs theme single launcher notify
|
|
||||||
== pc all on, theme off
|
|
||||||
wanted: gaming boot silent glyphs single launcher notify
|
|
||||||
disable: theme
|
|
||||||
enable: gaming silent notify
|
|
||||||
== pc launcher off
|
|
||||||
wanted:
|
|
||||||
disable: launcher
|
|
||||||
enable:
|
|
||||||
== pc steamgame on without launcher
|
|
||||||
wanted: theme launcher steamgame notify
|
|
||||||
disable:
|
|
||||||
enable: theme launcher steamgame notify
|
|
||||||
== machine first run
|
|
||||||
wanted: gaming glyphs theme single launcher steamgame notify vram cec machine poweroff
|
|
||||||
disable:
|
|
||||||
enable: gaming glyphs theme single launcher steamgame notify vram cec machine poweroff
|
|
||||||
== machine silent hidden until boot desktop
|
|
||||||
wanted: gaming silent glyphs theme single launcher notify vram machine
|
|
||||||
disable:
|
|
||||||
enable: gaming silent glyphs theme single launcher notify vram machine
|
|
||||||
== machine boot desktop keeps silent
|
|
||||||
wanted: gaming boot silent glyphs theme single launcher notify vram machine
|
|
||||||
disable:
|
|
||||||
enable: gaming boot silent glyphs theme single launcher notify vram machine
|
|
||||||
== machine off
|
|
||||||
wanted: gaming glyphs theme single launcher notify vram
|
|
||||||
disable: poweroff machine
|
|
||||||
enable: gaming glyphs theme single launcher notify vram
|
|
||||||
== machine poweroff off
|
|
||||||
wanted: gaming glyphs theme single launcher notify vram machine
|
|
||||||
disable: poweroff
|
|
||||||
enable: gaming glyphs theme single launcher notify vram machine
|
|
||||||
== machine poweroff on brings machine
|
|
||||||
wanted: gaming glyphs theme single launcher notify vram machine poweroff
|
|
||||||
disable:
|
|
||||||
enable: gaming glyphs theme single launcher notify vram machine poweroff
|
|
||||||
== machine kpin removal
|
|
||||||
wanted: gaming glyphs theme single launcher notify vram machine poweroff
|
|
||||||
disable: kpin
|
|
||||||
enable: gaming glyphs theme single launcher notify vram machine poweroff
|
|
||||||
== nvidia first run
|
|
||||||
wanted: nvidia bigpicture theme single launcher notify
|
|
||||||
disable:
|
|
||||||
enable: nvidia bigpicture theme single launcher notify
|
|
||||||
== nvidia bigpicture off
|
|
||||||
wanted: nvidia theme single launcher notify
|
|
||||||
disable: bigpicture
|
|
||||||
enable: nvidia theme single launcher notify
|
|
||||||
== nvidia nvsilent on
|
|
||||||
wanted: nvidia nvsilent theme single launcher notify
|
|
||||||
disable: bigpicture
|
|
||||||
enable: nvidia nvsilent theme single launcher notify
|
|
||||||
== nvidia nvsilent then bigpicture
|
|
||||||
wanted: nvidia bigpicture theme single launcher notify
|
|
||||||
disable:
|
|
||||||
enable: nvidia bigpicture theme single launcher notify
|
|
||||||
== nvidia off
|
|
||||||
wanted: theme single launcher notify
|
|
||||||
disable: nvsilent bigpicture nvidia
|
|
||||||
enable: theme single launcher notify
|
|
||||||
== nvidia single
|
|
||||||
wanted: nvidia bigpicture theme launcher notify
|
|
||||||
disable:
|
|
||||||
enable: nvidia bigpicture theme launcher notify
|
|
||||||
== nvidia gaming already on
|
|
||||||
wanted: nvidia theme launcher notify
|
|
||||||
disable: gaming
|
|
||||||
enable: nvidia theme launcher notify
|
|
||||||
== outdated features
|
|
||||||
wanted: gaming glyphs theme single launcher notify
|
|
||||||
disable:
|
|
||||||
enable: gaming glyphs single launcher notify
|
|
||||||
== reapply (a)
|
|
||||||
wanted: gaming glyphs theme single launcher notify
|
|
||||||
disable:
|
|
||||||
enable: gaming glyphs theme single launcher notify
|
|
||||||
== backend_apply single
|
|
||||||
{"event":"plan","disable":[],"enable":["gaming","single"]}
|
|
||||||
== backend_apply boot
|
|
||||||
{"event":"plan","disable":[],"enable":[]}
|
|
||||||
== backend_apply poweroff
|
|
||||||
{"event":"plan","disable":[],"enable":["machine","poweroff"]}
|
|
||||||
== backend_apply silent
|
|
||||||
{"event":"plan","disable":[],"enable":["gaming","silent"]}
|
|
||||||
== backend_apply kpin
|
|
||||||
{"event":"plan","disable":[],"enable":[]}
|
|
||||||
== backend_apply gaming boot
|
|
||||||
{"event":"plan","disable":[],"enable":["gaming","boot"]}
|
|
||||||
== backend_apply launcher steamgame
|
|
||||||
{"event":"plan","disable":[],"enable":["launcher","steamgame"]}
|
|
||||||
== backend_apply nvidia bigpicture
|
|
||||||
{"event":"plan","disable":[],"enable":["nvidia","bigpicture"]}
|
|
||||||
== backend_apply nvidia nvsilent
|
|
||||||
{"event":"plan","disable":[],"enable":["nvidia","nvsilent"]}
|
|
||||||
== backend_apply nvidia bigpicture nvsilent
|
|
||||||
{"event":"plan","disable":[],"enable":["nvidia","bigpicture"]}
|
|
||||||
== backend_apply nvidia single
|
|
||||||
{"event":"plan","disable":[],"enable":["single"]}
|
|
||||||
== backend_apply nvidia boot
|
|
||||||
{"event":"plan","disable":[],"enable":[]}
|
|
||||||
== defaults_list []
|
|
||||||
{"hideWhen":"","hint":"boot into gaming mode, Steam on the desktop","id":"gaming","kind":"toggle","label":"SteamOS conversion","needs":"","on":true,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"","id":"boot","kind":"choice","label":"Boot into the desktop instead of gaming mode","needs":"","on":false,"parent":"gaming","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"in the tray at login on the desktop, no window","id":"silent","kind":"toggle","label":"Start Steam silently in desktop mode","needs":"","on":false,"parent":"gaming","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"Deck button icons in gaming mode","id":"glyphs","kind":"toggle","label":"Install Steam Deck/Machine icons","needs":"","on":true,"parent":"gaming","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"Vapor look (cachyos-vapor)","id":"theme","kind":"toggle","label":"Install SteamOS theme","needs":"","on":true,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"no password, lock screen or log out (SDDM)","id":"single","kind":"toggle","label":"Single user mode","needs":"","on":true,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"the app on the desktop, Steamify Terminal in the launcher","id":"launcher","kind":"toggle","label":"Steamify shortcut","needs":"","on":true,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"a notification when there's a new Steamify, never updates by itself","id":"notify","kind":"toggle","label":"Update notifications","needs":"","on":true,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"Xbox wireless dongle (xone), Xbox controllers over Bluetooth (xpadneo)","id":"extended_controller_support","kind":"toggle","label":"Extended controller support","needs":"","on":false,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"use Steam with the TV remote, TV on/off with the PC (experimental)","id":"cec","kind":"toggle","label":"HDMI-CEC","needs":"","on":false,"parent":"","selectable":true}
|
|
||||||
== backend_status []
|
|
||||||
{"bios":null,"firstRun":true,"items":[{"hint":"boot into gaming mode, Steam on the desktop","id":"gaming","kind":"toggle","label":"SteamOS conversion","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":true},{"hint":"","id":"boot","kind":"choice","label":"Boot into the desktop instead of gaming mode","needs":"","new":false,"on":false,"parent":"gaming","selectable":true,"update":false,"wanted":false},{"hint":"in the tray at login on the desktop, no window","id":"silent","kind":"toggle","label":"Start Steam silently in desktop mode","needs":"","new":false,"on":false,"parent":"gaming","selectable":true,"update":false,"wanted":false},{"hint":"Deck button icons in gaming mode","id":"glyphs","kind":"toggle","label":"Install Steam Deck/Machine icons","needs":"","new":false,"on":false,"parent":"gaming","selectable":true,"update":false,"wanted":true},{"hint":"Vapor look (cachyos-vapor)","id":"theme","kind":"toggle","label":"Install SteamOS theme","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":true},{"hint":"no password, lock screen or log out (SDDM)","id":"single","kind":"toggle","label":"Single user mode","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":true},{"hint":"the app on the desktop, Steamify Terminal in the launcher","id":"launcher","kind":"toggle","label":"Steamify shortcut","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":true},{"hint":"a notification when there's a new Steamify, never updates by itself","id":"notify","kind":"toggle","label":"Update notifications","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":true},{"hint":"Xbox wireless dongle (xone), Xbox controllers over Bluetooth (xpadneo)","id":"extended_controller_support","kind":"toggle","label":"Extended controller support","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":false},{"hint":"use Steam with the TV remote, TV on/off with the PC (experimental)","id":"cec","kind":"toggle","label":"HDMI-CEC","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":false}],"pinnedKernel":"7.1.6-1","steamMachine":false,"version":"0.0.0"}
|
|
||||||
== defaults_list [fremont steam vram]
|
|
||||||
{"hideWhen":"","hint":"boot into gaming mode, Steam on the desktop","id":"gaming","kind":"toggle","label":"SteamOS conversion","needs":"","on":true,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"","id":"boot","kind":"choice","label":"Boot into the desktop instead of gaming mode","needs":"","on":false,"parent":"gaming","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"in the tray at login on the desktop, no window","id":"silent","kind":"toggle","label":"Start Steam silently in desktop mode","needs":"","on":false,"parent":"gaming","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"Deck button icons in gaming mode","id":"glyphs","kind":"toggle","label":"Install Steam Deck/Machine icons","needs":"","on":true,"parent":"gaming","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"Vapor look (cachyos-vapor)","id":"theme","kind":"toggle","label":"Install SteamOS theme","needs":"","on":true,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"no password, lock screen or log out (SDDM)","id":"single","kind":"toggle","label":"Single user mode","needs":"","on":true,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"the app on the desktop, Steamify Terminal in the launcher","id":"launcher","kind":"toggle","label":"Steamify shortcut","needs":"","on":true,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"Steamify in your Steam library, for the controller and gaming mode","id":"steamgame","kind":"toggle","label":"Add as non-Steam game","needs":"","on":true,"parent":"launcher","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"a notification when there's a new Steamify, never updates by itself","id":"notify","kind":"toggle","label":"Update notifications","needs":"","on":true,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"Xbox wireless dongle (xone), Xbox controllers over Bluetooth (xpadneo)","id":"extended_controller_support","kind":"toggle","label":"Extended controller support","needs":"","on":false,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"the game in front keeps its VRAM, background apps make room","id":"vram","kind":"toggle","label":"VRAM booster","needs":"","on":true,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"use Steam with the TV remote, TV on/off with the PC (experimental)","id":"cec","kind":"toggle","label":"HDMI-CEC","needs":"","on":true,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"LED bar driver, hardware settings in Steam","id":"machine","kind":"toggle","label":"Steam Machine support","needs":"","on":true,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"the Steam Machine stays off after shutting down","id":"poweroff","kind":"toggle","label":"Power-off fix","needs":"","on":true,"parent":"machine","selectable":true}
|
|
||||||
== backend_status [fremont steam vram]
|
|
||||||
{"bios":null,"firstRun":true,"items":[{"hint":"boot into gaming mode, Steam on the desktop","id":"gaming","kind":"toggle","label":"SteamOS conversion","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":true},{"hint":"","id":"boot","kind":"choice","label":"Boot into the desktop instead of gaming mode","needs":"","new":false,"on":false,"parent":"gaming","selectable":true,"update":false,"wanted":false},{"hint":"in the tray at login on the desktop, no window","id":"silent","kind":"toggle","label":"Start Steam silently in desktop mode","needs":"","new":false,"on":false,"parent":"gaming","selectable":true,"update":false,"wanted":false},{"hint":"Deck button icons in gaming mode","id":"glyphs","kind":"toggle","label":"Install Steam Deck/Machine icons","needs":"","new":false,"on":false,"parent":"gaming","selectable":true,"update":false,"wanted":true},{"hint":"Vapor look (cachyos-vapor)","id":"theme","kind":"toggle","label":"Install SteamOS theme","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":true},{"hint":"no password, lock screen or log out (SDDM)","id":"single","kind":"toggle","label":"Single user mode","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":true},{"hint":"the app on the desktop, Steamify Terminal in the launcher","id":"launcher","kind":"toggle","label":"Steamify shortcut","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":true},{"hint":"Steamify in your Steam library, for the controller and gaming mode","id":"steamgame","kind":"toggle","label":"Add as non-Steam game","needs":"","new":false,"on":false,"parent":"launcher","selectable":true,"update":false,"wanted":true},{"hint":"a notification when there's a new Steamify, never updates by itself","id":"notify","kind":"toggle","label":"Update notifications","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":true},{"hint":"Xbox wireless dongle (xone), Xbox controllers over Bluetooth (xpadneo)","id":"extended_controller_support","kind":"toggle","label":"Extended controller support","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":false},{"hint":"the game in front keeps its VRAM, background apps make room","id":"vram","kind":"toggle","label":"VRAM booster","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":true},{"hint":"use Steam with the TV remote, TV on/off with the PC (experimental)","id":"cec","kind":"toggle","label":"HDMI-CEC","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":true},{"hint":"LED bar driver, hardware settings in Steam","id":"machine","kind":"toggle","label":"Steam Machine support","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":true},{"hint":"the Steam Machine stays off after shutting down","id":"poweroff","kind":"toggle","label":"Power-off fix","needs":"","new":false,"on":false,"parent":"machine","selectable":true,"update":false,"wanted":true}],"pinnedKernel":"7.1.6-1","steamMachine":true,"version":"0.0.0"}
|
|
||||||
== defaults_list [nvidia steam]
|
|
||||||
{"hideWhen":"","hint":"Steam on the desktop, started at login","id":"nvidia","kind":"toggle","label":"Gaming on NVIDIA","needs":"","on":true,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"the controller-friendly Steam (untick: Steam's normal window)","id":"bigpicture","kind":"toggle","label":"Steam starts in Big Picture","needs":"","on":true,"parent":"nvidia","selectable":true}
|
|
||||||
{"hideWhen":"bigpicture","hint":"in the tray at login, no window (untick: Steam's normal window)","id":"nvsilent","kind":"toggle","label":"Start Steam silently","needs":"","on":false,"parent":"nvidia","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"Vapor look (cachyos-vapor)","id":"theme","kind":"toggle","label":"Install SteamOS theme","needs":"","on":true,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"no password, lock screen or log out (SDDM)","id":"single","kind":"toggle","label":"Single user mode","needs":"","on":true,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"the app on the desktop, Steamify Terminal in the launcher","id":"launcher","kind":"toggle","label":"Steamify shortcut","needs":"","on":true,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"a notification when there's a new Steamify, never updates by itself","id":"notify","kind":"toggle","label":"Update notifications","needs":"","on":true,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"Xbox wireless dongle (xone), Xbox controllers over Bluetooth (xpadneo)","id":"extended_controller_support","kind":"toggle","label":"Extended controller support","needs":"","on":false,"parent":"","selectable":true}
|
|
||||||
{"hideWhen":"","hint":"use Steam with the TV remote, TV on/off with the PC (experimental)","id":"cec","kind":"toggle","label":"HDMI-CEC","needs":"","on":false,"parent":"","selectable":true}
|
|
||||||
== backend_status [nvidia steam]
|
|
||||||
{"bios":null,"firstRun":true,"items":[{"hint":"Steam on the desktop, started at login","id":"nvidia","kind":"toggle","label":"Gaming on NVIDIA","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":true},{"hint":"the controller-friendly Steam (untick: Steam's normal window)","id":"bigpicture","kind":"toggle","label":"Steam starts in Big Picture","needs":"","new":false,"on":false,"parent":"nvidia","selectable":true,"update":false,"wanted":true},{"hint":"in the tray at login, no window (untick: Steam's normal window)","id":"nvsilent","kind":"toggle","label":"Start Steam silently","needs":"","new":false,"on":false,"parent":"nvidia","selectable":true,"update":false,"wanted":false},{"hint":"Vapor look (cachyos-vapor)","id":"theme","kind":"toggle","label":"Install SteamOS theme","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":true},{"hint":"no password, lock screen or log out (SDDM)","id":"single","kind":"toggle","label":"Single user mode","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":true},{"hint":"the app on the desktop, Steamify Terminal in the launcher","id":"launcher","kind":"toggle","label":"Steamify shortcut","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":true},{"hint":"a notification when there's a new Steamify, never updates by itself","id":"notify","kind":"toggle","label":"Update notifications","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":true},{"hint":"Xbox wireless dongle (xone), Xbox controllers over Bluetooth (xpadneo)","id":"extended_controller_support","kind":"toggle","label":"Extended controller support","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":false},{"hint":"use Steam with the TV remote, TV on/off with the PC (experimental)","id":"cec","kind":"toggle","label":"HDMI-CEC","needs":"","new":false,"on":false,"parent":"","selectable":true,"update":false,"wanted":false}],"pinnedKernel":"7.1.6-1","steamMachine":false,"version":"0.0.0"}
|
|
||||||
@@ -1,135 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Golden-output test for the menu rules (lib/menu.sh, lib/backend.sh): what
|
|
||||||
# toggling does to WANTED, what plan_changes picks, and the JSON the app and
|
|
||||||
# the installer read. Hardware and package state are stubbed, so no root, VM
|
|
||||||
# or hardware is needed.
|
|
||||||
# bash tests/menu-test.sh compare with menu-test.golden
|
|
||||||
# bash tests/menu-test.sh --update rewrite the golden file (review the diff!)
|
|
||||||
# The Steamify checkout (REPO, default: the steamify-cachyos next to this repo)
|
|
||||||
REPO="${REPO:-$(cd "$(dirname "$0")/../../steamify-cachyos" && pwd)}"; HERE="$(cd "$(dirname "$0")" && pwd)"; cd "$REPO" || exit 1
|
|
||||||
T="$(mktemp -d)"; trap 'rm -rf "$T"' EXIT
|
|
||||||
|
|
||||||
SCRIPT_DIR="$PWD"; HOME="$T/home"; mkdir -p "$HOME"
|
|
||||||
VERSION=0.0.0
|
|
||||||
for lib in $(grep -oP '^for lib in \K.*(?=; do$)' steamify.sh); do
|
|
||||||
source "lib/$lib.sh"
|
|
||||||
done
|
|
||||||
info() { :; }; ok() { :; }; warn() { :; }; err() { :; }
|
|
||||||
# From the entry point.
|
|
||||||
RESTART_FOR_LOGIN=false; restart_needed() { return 1; }
|
|
||||||
|
|
||||||
# Hardware profile and what is "on", set per scenario.
|
|
||||||
HW=""; ON=""
|
|
||||||
has() { [[ " $HW " == *" $1 "* ]]; }
|
|
||||||
nvidia_present() { has nvidia; }
|
|
||||||
nvidia_available() { has nvidia; }
|
|
||||||
bigpicture_available() { has nvidia; }
|
|
||||||
machine_available() { has fremont; }
|
|
||||||
detect_valve_fremont() { has fremont; }
|
|
||||||
vram_available() { has vram; }
|
|
||||||
vram_selectable() { return 0; }
|
|
||||||
steamgame_available() { has steam; }
|
|
||||||
kpin_available() { has fremont && [[ " $ON " == *" kpin "* ]]; }
|
|
||||||
hdmi_available() { return 1; }
|
|
||||||
bios_available() { return 1; }
|
|
||||||
bios_selectable() { return 1; }
|
|
||||||
cec_repair() { return 1; }
|
|
||||||
launcher_repair() { return 1; }
|
|
||||||
bios_lookup_newest() { :; }
|
|
||||||
kernel_overview() { :; }
|
|
||||||
os_version_refresh() { :; }
|
|
||||||
for c in "${COMPONENTS[@]}"; do
|
|
||||||
eval "${c}_status() { [[ \" \$ON \" == *\" $c \"* ]]; }"
|
|
||||||
done
|
|
||||||
|
|
||||||
show() {
|
|
||||||
# show <label>: WANTED as the ticked ids, then the plan.
|
|
||||||
local c w=""
|
|
||||||
for c in "${COMPONENTS[@]}"; do [[ "${WANTED[$c]:-0}" == 1 ]] && w+=" $c"; done
|
|
||||||
echo "$1"
|
|
||||||
echo " wanted:$w"
|
|
||||||
plan_changes
|
|
||||||
echo " disable: ${TO_DISABLE[*]:-}"
|
|
||||||
echo " enable: ${TO_ENABLE[*]:-}"
|
|
||||||
}
|
|
||||||
|
|
||||||
scenario() {
|
|
||||||
# scenario <name> <hardware> <on> [toggle...]
|
|
||||||
local name="$1"; HW="$2"; ON="$3"; shift 3
|
|
||||||
rm -rf "$STATE_DIR"; REAPPLY=false
|
|
||||||
detect_components
|
|
||||||
local t
|
|
||||||
for t in "$@"; do toggle_component "$t"; done
|
|
||||||
show "== $name"
|
|
||||||
}
|
|
||||||
|
|
||||||
run() {
|
|
||||||
scenario "pc first run" "" ""
|
|
||||||
scenario "pc first run, untick gaming" "" "" gaming
|
|
||||||
scenario "pc single on" "" "" gaming single
|
|
||||||
scenario "pc single then gaming off" "" "" single gaming
|
|
||||||
scenario "pc boot desktop" "" "" boot
|
|
||||||
scenario "pc boot desktop then gaming off" "" "" boot gaming
|
|
||||||
scenario "pc silent only" "" "gaming" silent
|
|
||||||
scenario "pc all on, theme off" "" "gaming boot silent theme glyphs single launcher steamgame notify" theme
|
|
||||||
scenario "pc launcher off" "" "launcher steamgame" launcher
|
|
||||||
scenario "pc steamgame on without launcher" "steam" "" gaming launcher steamgame
|
|
||||||
scenario "machine first run" "fremont steam vram" ""
|
|
||||||
scenario "machine silent hidden until boot desktop" "fremont steam vram" "gaming silent"
|
|
||||||
scenario "machine boot desktop keeps silent" "fremont steam vram" "gaming silent" boot
|
|
||||||
scenario "machine off" "fremont steam vram" "gaming machine poweroff" machine
|
|
||||||
scenario "machine poweroff off" "fremont steam vram" "gaming machine poweroff" poweroff
|
|
||||||
scenario "machine poweroff on brings machine" "fremont steam vram" "gaming" poweroff
|
|
||||||
scenario "machine kpin removal" "fremont steam vram" "gaming machine poweroff kpin"
|
|
||||||
scenario "nvidia first run" "nvidia steam" ""
|
|
||||||
scenario "nvidia bigpicture off" "nvidia steam" "nvidia bigpicture" bigpicture
|
|
||||||
scenario "nvidia nvsilent on" "nvidia steam" "nvidia bigpicture" nvsilent
|
|
||||||
scenario "nvidia nvsilent then bigpicture" "nvidia steam" "nvidia" nvsilent bigpicture
|
|
||||||
scenario "nvidia off" "nvidia steam" "nvidia bigpicture nvsilent" nvidia
|
|
||||||
scenario "nvidia single" "nvidia steam" "" single
|
|
||||||
scenario "nvidia gaming already on" "nvidia steam" "gaming" gaming
|
|
||||||
|
|
||||||
# Feature versions: an old record is ticked and re-applied.
|
|
||||||
HW=""; ON="gaming theme"; rm -rf "$STATE_DIR"; REAPPLY=false
|
|
||||||
state_set features gaming 2.1.0; state_set features theme 2.1.0
|
|
||||||
detect_components; show "== outdated features"
|
|
||||||
REAPPLY=true; ON="gaming theme launcher"; detect_components; show "== reapply (a)"
|
|
||||||
REAPPLY=false
|
|
||||||
|
|
||||||
# The app's own rules (backend_apply's normalisation) go through the same plan.
|
|
||||||
HW="fremont steam vram"; ON=""; rm -rf "$STATE_DIR"
|
|
||||||
detect_components
|
|
||||||
local sel
|
|
||||||
for sel in "single" "boot" "poweroff" "silent" "kpin" "gaming boot" "launcher steamgame"; do
|
|
||||||
echo "== backend_apply $sel"
|
|
||||||
backend_sudo() { return 0; }
|
|
||||||
backend_run_component() { return 0; }
|
|
||||||
# shellcheck disable=SC2086
|
|
||||||
backend_apply $sel | jq -c 'select(.event == "plan")'
|
|
||||||
done
|
|
||||||
HW="nvidia steam"; ON=""; detect_components
|
|
||||||
for sel in "bigpicture" "nvsilent" "bigpicture nvsilent" "single" "boot"; do
|
|
||||||
echo "== backend_apply nvidia $sel"
|
|
||||||
# shellcheck disable=SC2086
|
|
||||||
backend_apply $sel | jq -c 'select(.event == "plan")'
|
|
||||||
done
|
|
||||||
|
|
||||||
# JSON for the app and the installer page.
|
|
||||||
local hw
|
|
||||||
for hw in "" "fremont steam vram" "nvidia steam"; do
|
|
||||||
HW="$hw"; ON=""; rm -rf "$STATE_DIR"; detect_components
|
|
||||||
echo "== defaults_list [$hw]"
|
|
||||||
defaults_list | jq -S -c '.[]'
|
|
||||||
echo "== backend_status [$hw]"
|
|
||||||
backend_status | jq -S -c 'del(.kernel, .cecDevices, .leds)'
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
if [[ "${1:-}" == --update ]]; then
|
|
||||||
run > "$HERE/menu-test.golden" 2>&1
|
|
||||||
echo "wrote $HERE/menu-test.golden ($(wc -l < "$HERE/menu-test.golden") lines)"
|
|
||||||
elif diff -u "$HERE/menu-test.golden" <(run 2>&1); then
|
|
||||||
echo "ok menu rules, plan and JSON match the golden file"
|
|
||||||
else
|
|
||||||
echo "FAIL menu rules changed (diff above; --update if intended)"; exit 1
|
|
||||||
fi
|
|
||||||
@@ -1,161 +0,0 @@
|
|||||||
"""Unit tests of the Python helpers in steamify-cachyos/patches (stdlib only).
|
|
||||||
|
|
||||||
Run through tests/python-test.sh (REPO = the Steamify checkout), or:
|
|
||||||
REPO=../steamify-cachyos python3 -m unittest tests/patches_test.py -v
|
|
||||||
"""
|
|
||||||
import contextlib
|
|
||||||
import importlib.util
|
|
||||||
import io
|
|
||||||
import os
|
|
||||||
import struct
|
|
||||||
import tempfile
|
|
||||||
import unittest
|
|
||||||
from unittest import mock
|
|
||||||
|
|
||||||
REPO = os.environ.get("REPO") or os.path.join(os.path.dirname(__file__), "..", "..", "steamify-cachyos")
|
|
||||||
|
|
||||||
|
|
||||||
def load(name, filename):
|
|
||||||
spec = importlib.util.spec_from_file_location(name, os.path.join(REPO, "patches", filename))
|
|
||||||
mod = importlib.util.module_from_spec(spec)
|
|
||||||
spec.loader.exec_module(mod)
|
|
||||||
return mod
|
|
||||||
|
|
||||||
|
|
||||||
shortcuts = load("steam_shortcuts", "steam-shortcuts.py")
|
|
||||||
notifier = load("steamify_notifier", "steamify-notifier.py")
|
|
||||||
|
|
||||||
|
|
||||||
class VdfTests(unittest.TestCase):
|
|
||||||
def test_roundtrip(self):
|
|
||||||
root = [("shortcuts", [("0", [("appid", 123), ("AppName", "A"), ("tags", [])])])]
|
|
||||||
self.assertEqual(shortcuts.parse(shortcuts.dump(root)), root)
|
|
||||||
|
|
||||||
def test_empty_data_is_an_empty_list(self):
|
|
||||||
self.assertEqual(shortcuts.parse(b""), [("shortcuts", [])])
|
|
||||||
|
|
||||||
def test_unknown_type_is_an_error(self):
|
|
||||||
with self.assertRaises(ValueError):
|
|
||||||
shortcuts.parse(b"\x07key\0")
|
|
||||||
|
|
||||||
def test_ints_are_unsigned_32_bit(self):
|
|
||||||
data = shortcuts.dump([("n", -1)])
|
|
||||||
self.assertEqual(struct.unpack_from("<I", data, 3)[0], 0xFFFFFFFF)
|
|
||||||
|
|
||||||
def test_keys_match_regardless_of_case(self):
|
|
||||||
entry = [("AppName", "x")]
|
|
||||||
self.assertEqual(shortcuts.get(entry, "appname"), "x")
|
|
||||||
shortcuts.put(entry, "APPNAME", "y")
|
|
||||||
self.assertEqual(entry, [("AppName", "y")])
|
|
||||||
|
|
||||||
def test_ours(self):
|
|
||||||
exe = "/home/u/.local/share/steamify/bin/run-app"
|
|
||||||
self.assertTrue(shortcuts.ours([("Exe", f'"{exe}"')], exe))
|
|
||||||
# An older install's start script counts as ours: updated, not doubled.
|
|
||||||
self.assertTrue(shortcuts.ours([("Exe", '"/home/u/.local/share/cachyos-gamescope-boot/bin/run-app"')], exe))
|
|
||||||
self.assertFalse(shortcuts.ours([("Exe", '"/usr/bin/other"')], exe))
|
|
||||||
self.assertFalse(shortcuts.ours([("Exe", '"/home/u/games/run-app"')], exe))
|
|
||||||
|
|
||||||
|
|
||||||
class ShortcutsCommandTests(unittest.TestCase):
|
|
||||||
def setUp(self):
|
|
||||||
self.dir = tempfile.TemporaryDirectory()
|
|
||||||
self.addCleanup(self.dir.cleanup)
|
|
||||||
self.vdf = os.path.join(self.dir.name, "userdata", "1", "config", "shortcuts.vdf")
|
|
||||||
self.exe = "/home/u/.local/share/steamify/bin/run-app"
|
|
||||||
|
|
||||||
def run_cmd(self, *args):
|
|
||||||
out = io.StringIO()
|
|
||||||
with contextlib.redirect_stdout(out), contextlib.redirect_stderr(io.StringIO()):
|
|
||||||
rc = shortcuts.main(["steam-shortcuts.py", *args])
|
|
||||||
return rc, out.getvalue().strip()
|
|
||||||
|
|
||||||
def entries(self):
|
|
||||||
return shortcuts.shortcuts(shortcuts.load(self.vdf))
|
|
||||||
|
|
||||||
def test_add_creates_the_file_and_an_entry(self):
|
|
||||||
rc, out = self.run_cmd("add", self.vdf, "Steamify", self.exe, "/icon.png", "steamify.desktop")
|
|
||||||
self.assertEqual(rc, 0)
|
|
||||||
self.assertTrue(out.startswith("added "))
|
|
||||||
(_, entry), = self.entries()
|
|
||||||
self.assertEqual(shortcuts.get(entry, "AppName"), "Steamify")
|
|
||||||
self.assertEqual(shortcuts.get(entry, "Exe"), f'"{self.exe}"')
|
|
||||||
# Steam's id for a shortcut has the top bit set.
|
|
||||||
self.assertGreaterEqual(shortcuts.get(entry, "appid"), 0x80000000)
|
|
||||||
self.assertEqual(out, f"added {shortcuts.get(entry, 'appid')}")
|
|
||||||
|
|
||||||
def test_add_twice_updates_instead_of_doubling(self):
|
|
||||||
self.run_cmd("add", self.vdf, "Steamify", self.exe, "/a.png", "a.desktop")
|
|
||||||
rc, out = self.run_cmd("add", self.vdf, "Steamify 2", self.exe, "/b.png", "b.desktop")
|
|
||||||
self.assertTrue(out.startswith("updated "))
|
|
||||||
entries = self.entries()
|
|
||||||
self.assertEqual(len(entries), 1)
|
|
||||||
self.assertEqual(shortcuts.get(entries[0][1], "AppName"), "Steamify 2")
|
|
||||||
self.assertEqual(shortcuts.get(entries[0][1], "icon"), "/b.png")
|
|
||||||
|
|
||||||
def test_other_entries_are_kept(self):
|
|
||||||
self.run_cmd("add", self.vdf, "Other", "/usr/bin/other", "", "")
|
|
||||||
self.run_cmd("add", self.vdf, "Steamify", self.exe, "", "")
|
|
||||||
self.assertEqual(len(self.entries()), 2)
|
|
||||||
self.assertEqual([k for k, _ in self.entries()], ["0", "1"])
|
|
||||||
|
|
||||||
def test_find(self):
|
|
||||||
self.assertEqual(self.run_cmd("find", self.vdf, self.exe)[0], 1)
|
|
||||||
_, out = self.run_cmd("add", self.vdf, "Steamify", self.exe, "", "")
|
|
||||||
rc, found = self.run_cmd("find", self.vdf, self.exe)
|
|
||||||
self.assertEqual((rc, found), (0, out.split()[1]))
|
|
||||||
|
|
||||||
def test_remove_by_appid_renumbers(self):
|
|
||||||
self.run_cmd("add", self.vdf, "Other", "/usr/bin/other", "", "")
|
|
||||||
_, out = self.run_cmd("add", self.vdf, "Steamify", self.exe, "", "")
|
|
||||||
self.assertEqual(self.run_cmd("remove", self.vdf, out.split()[1])[0], 0)
|
|
||||||
entries = self.entries()
|
|
||||||
self.assertEqual([k for k, _ in entries], ["0"])
|
|
||||||
self.assertEqual(shortcuts.get(entries[0][1], "AppName"), "Other")
|
|
||||||
|
|
||||||
def test_remove_of_nothing_leaves_the_file_alone(self):
|
|
||||||
self.run_cmd("add", self.vdf, "Steamify", self.exe, "", "")
|
|
||||||
with open(self.vdf, "rb") as f:
|
|
||||||
before = f.read()
|
|
||||||
self.assertEqual(self.run_cmd("remove", self.vdf, "999")[0], 0)
|
|
||||||
with open(self.vdf, "rb") as f:
|
|
||||||
self.assertEqual(f.read(), before)
|
|
||||||
|
|
||||||
def test_unknown_command(self):
|
|
||||||
self.assertEqual(self.run_cmd("bogus", self.vdf)[0], 2)
|
|
||||||
|
|
||||||
|
|
||||||
class NotifierTests(unittest.TestCase):
|
|
||||||
def test_version(self):
|
|
||||||
self.assertEqual(notifier.version("v2.11.1"), (2, 11, 1))
|
|
||||||
self.assertEqual(notifier.version("2.9.0"), (2, 9, 0))
|
|
||||||
self.assertIsNone(notifier.version("nightly"))
|
|
||||||
|
|
||||||
def test_versions_compare_as_numbers(self):
|
|
||||||
self.assertGreater(notifier.version("2.10.0"), notifier.version("2.9.0"))
|
|
||||||
|
|
||||||
def pending(self, new, seen="", skipped=""):
|
|
||||||
values = {"seen": seen, "skipped": skipped}
|
|
||||||
with mock.patch.object(notifier, "state", lambda key: values[key]):
|
|
||||||
return notifier.pending(new)
|
|
||||||
|
|
||||||
def test_newer_than_seen(self):
|
|
||||||
self.assertTrue(self.pending("2.12.0", seen="2.11.1"))
|
|
||||||
|
|
||||||
def test_same_or_older_is_not_pending(self):
|
|
||||||
self.assertFalse(self.pending("2.11.1", seen="2.11.1"))
|
|
||||||
self.assertFalse(self.pending("2.9.0", seen="2.11.1"))
|
|
||||||
|
|
||||||
def test_skipped_version_is_not_pending(self):
|
|
||||||
self.assertFalse(self.pending("2.12.0", seen="2.11.1", skipped="2.12.0"))
|
|
||||||
|
|
||||||
def test_nothing_seen_yet(self):
|
|
||||||
self.assertTrue(self.pending("2.12.0", seen=""))
|
|
||||||
|
|
||||||
def test_unparsable_tag_is_not_pending(self):
|
|
||||||
# A release tag like "nightly" must not crash the daily check.
|
|
||||||
self.assertFalse(self.pending("nightly", seen="2.11.1"))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
unittest.main()
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Unit tests of the Python helpers in steamify-cachyos/patches (steam-shortcuts.py,
|
|
||||||
# steamify-notifier.py). No root, VM or hardware needed: bash tests/python-test.sh
|
|
||||||
# The Steamify checkout (REPO, default: the steamify-cachyos next to this repo)
|
|
||||||
REPO="${REPO:-$(cd "$(dirname "$0")/../../steamify-cachyos" && pwd)}"
|
|
||||||
export REPO
|
|
||||||
cd "$(dirname "$0")/.." || exit 1
|
|
||||||
if python3 -B -m unittest tests/patches_test.py 2>&1 | tail -n 25 | tee /dev/stderr | grep -q '^OK'; then
|
|
||||||
echo "ok Python helpers"
|
|
||||||
else
|
|
||||||
echo "FAIL Python helpers"; exit 1
|
|
||||||
fi
|
|
||||||
Reference in new issue
Block a user