From 03f9e87cf2f6f1b92d5a160877516488ccf293c5 Mon Sep 17 00:00:00 2001 From: rickpeters Date: Tue, 13 Oct 2026 18:30:05 +0200 Subject: [PATCH] feat: moving from Gaming on NVIDIA keeps how Steam started: Big Picture boots into gaming mode, otherwise the desktop Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01KkpbsMw4rQyBsxDG6ebHK2 --- lib/menu.sh | 13 +++++++++++-- ui/qml/AppState.qml | 3 ++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/menu.sh b/lib/menu.sh index 7c3d48c..08ca8ff 100644 --- a/lib/menu.sh +++ b/lib/menu.sh @@ -184,8 +184,17 @@ detect_components() { component_available "$c" || continue { feature_outdated "$c" || feature_new "$c"; } && WANTED[$c]=1 done - # "Gaming on NVIDIA" was on: its replacement, the SteamOS conversion, comes with the defaults of a first run. - nvidia_migration_pending && WANTED[glyphs]=1 + # "Gaming on NVIDIA" was on: its replacement, the SteamOS conversion, comes with the defaults of a first run, and the + # PC starts the way it did: Steam in Big Picture at login becomes booting into gaming mode, any other Steam start + # (a normal window, or silent in the tray) becomes booting into the desktop, with the silent start kept. + if nvidia_migration_pending; then + WANTED[glyphs]=1 + if bigpicture_status; then WANTED[boot]=0 + else + WANTED[boot]=1 + nvsilent_status && WANTED[silent]=1 + fi + fi # The kernel pin is no longer needed (the power-off fix), and HDMI # refresh boost needed the pin: whatever is left of either is unticked, # so a normal run removes it. diff --git a/ui/qml/AppState.qml b/ui/qml/AppState.qml index 8448ba3..a57a51b 100644 --- a/ui/qml/AppState.qml +++ b/ui/qml/AppState.qml @@ -65,7 +65,8 @@ Item { var w = {}; for (var i = 0; i < items.length; i++) w[items[i].id] = items[i].kind === "action" ? false : items[i].wanted; want = w; - boot = nowOn("boot") ? "desktop" : "gamescope"; + // (What the PC has, or what the backend ticked: "Gaming on NVIDIA" moving to the conversion keeps how Steam started.) + boot = want.boot ? "desktop" : "gamescope"; if (sel > rows.length) sel = 0; } Connections { target: backend; function onStatusChanged() { if (app.screen === "menu" || app.screen === "done") app.syncFromStatus(); } }