Allow normal Steam update and repair checks
This commit is contained in:
1 parent
947eeea0dd
commit
1e1d524305
4 files changed
+6
-13
No files matched your search
@@ -1,15 +1,15 @@
|
||||
pkgname=omarchy-steam-fex
|
||||
pkgver=1.0.0
|
||||
pkgrel=3
|
||||
pkgrel=4
|
||||
pkgdesc='Steam launcher with login workarounds for Apple Silicon using muvm and FEX'
|
||||
arch=('aarch64')
|
||||
url='https://github.com/omacom/omarchy-pkgs/tree/master/pkgbuilds/omarchy-steam-fex'
|
||||
license=('MIT')
|
||||
checkdepends=('python')
|
||||
source=('omarchy-launch-steam' 'LICENSE' 'test-launcher.py')
|
||||
sha256sums=('37ad2e8a863e90c2b3248f22d93b548c6070f396f631ad39cefc4745478515b4'
|
||||
sha256sums=('5e115fd7ec457f7e05a006c95760c122dee7e4bb76edc53af4419a3474ac7901'
|
||||
'717ba1949502290f8e47688ae2e323acd06c8ca47aec9f7596b15f678c1af4a2'
|
||||
'fbab0f88ecdf3238bfb95a1523eef7de2ded2928c91c90e4e06435696dd86cdb')
|
||||
'efcc624b0a914aec51007cf743197822058b317748c4d125f7ab6a1d00632252')
|
||||
|
||||
check() {
|
||||
python test-launcher.py
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
`omarchy-steam-fex` provides `omarchy-launch-steam` for the Asahi Linux `steam`, `muvm`, and `FEX-Emu` stack. Those runtime packages come from `asahi-alarm`; `FEX-Emu` provides `FEXBash`. The package is restricted to aarch64 and assumes that stack's `~/.local/share/fex-steam/steam-launcher/bin_steam.sh` layout.
|
||||
|
||||
The launcher runs Steam through `muvm` and `FEXBash` with the CEF occlusion workaround. Once Steam's client files are present, it also disables bootstrap verification and repair and patches the Steam UI network initialization block that can leave login waiting indefinitely. Initial bootstrap keeps the normal bootstrap flags. If the FEX launcher is unavailable, it falls back to `steam`.
|
||||
The launcher runs Steam through `muvm` and `FEXBash` with the CEF occlusion workaround. Once Steam's client files are present, it patches the Steam UI network initialization block that can leave login waiting indefinitely. Both initial and subsequent launches leave Steam's normal bootstrap, update, verification, and repair behavior enabled. If the FEX launcher is unavailable, it falls back to `steam`.
|
||||
|
||||
`omarchy-launch-steam --prepare` creates the current user's desktop override with `Exec=omarchy-launch-steam %U` if it is missing, and applies the same UI patch. Existing overrides and symlinks are preserved on preparation and launch. If an existing override uses a different command, edit its `Exec` entry to use `omarchy-launch-steam %U` when you want this launcher. Each matching chunk is backed up as `.omarchy-bak` before its first patch; existing backups are preserved. The regex matches the original network initialization block, so a patched block is not changed again. An unrelated connected-state assignment elsewhere in the chunk does not suppress the fix. The regex depends on Valve's client code and may need updating when that code changes.
|
||||
|
||||
|
||||
@@ -96,12 +96,6 @@ if [[ $(uname -m) == aarch64 ]] && command -v muvm >/dev/null && command -v FEXB
|
||||
steam_args=(-cef-force-occlusion)
|
||||
if steam_client_ready; then
|
||||
prepare_asahi
|
||||
steam_args+=(
|
||||
-noverifyfiles
|
||||
-nobootstrapupdate
|
||||
-skipinitialbootstrap
|
||||
-norepairfiles
|
||||
)
|
||||
else
|
||||
write_steam_desktop
|
||||
fi
|
||||
|
||||
@@ -25,7 +25,6 @@ ORIGINAL = (
|
||||
'(0,Ab.cd)("System.Network.RegisterForConnectivityTestChanges")&&SteamClient.System.Network.RegisterForConnectivityTestChanges(this.OnConnectivityTestStateChanged),'
|
||||
't||(this.m_bIsAwaitingInitialNetworkState=!1);after();'
|
||||
)
|
||||
SKIP_BOOTSTRAP = ['-noverifyfiles', '-nobootstrapupdate', '-skipinitialbootstrap', '-norepairfiles']
|
||||
|
||||
MOCK = '''
|
||||
import json, os
|
||||
@@ -200,11 +199,11 @@ class SteamLauncherTests(unittest.TestCase):
|
||||
self.assert_fex(self.run_launcher(), ['-cef-force-occlusion'], [])
|
||||
self.assertEqual(path.read_text(), ORIGINAL)
|
||||
|
||||
def test_ready_launch_patches_and_disables_bootstrap(self):
|
||||
def test_ready_launch_patches_and_keeps_updates_enabled(self):
|
||||
path = self.chunk()
|
||||
self.client_ready()
|
||||
args = ['steam://open/main']
|
||||
self.assert_fex(self.run_launcher(*args), ['-cef-force-occlusion', *SKIP_BOOTSTRAP], args)
|
||||
self.assert_fex(self.run_launcher(*args), ['-cef-force-occlusion'], args)
|
||||
self.assertIn('m_bIsConnectedToANetwork=!0', path.read_text())
|
||||
self.assert_desktop()
|
||||
|
||||
|
||||
Reference in new issue
Block a user