From 3ef7694d4cd02b7be7e103e779a38fddab75ff0e Mon Sep 17 00:00:00 2001 From: AtomHare <29772841+AtomHare@users.noreply.github.com> Date: Mon, 20 May 2024 18:43:02 +0200 Subject: [PATCH 01/12] initial draft: Steam Deck dependency enhancement Co-authored-by: Eamonn Rea fix: small typo between 1 and 0 --- steamtinkerlaunch | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index e2a63112..fac88642 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -345,6 +345,7 @@ SGDBTNFTSTYLEOPTS="alternate,blurred,white_logo,material" GETSTAID="99[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]99" STLGAMES="$STLCFGDIR/games" +STLSTEAMDECKLASTVERS="$STLCFGDIR/lastvers" STLGDESKD="$STLGAMES/desktop" STLIDFD="$STLGAMES/desktopfiles" STLISLDFD="$STLGAMES/sldesktopfiles" @@ -26432,7 +26433,13 @@ function checkSteamDeckDependencies { local CHECKCMD CHECKCMD="$($DEPCMD &> /dev/null --version && echo "OK" || echo "NOK")" - if [ -f "$(command -v "$DEPCMD")" ] && [ "$CHECKCMD" = "OK" ]; then + + # The check now says, don't update dependencies if all of these conditions are true: + # 1. The dependency file exists + # 2. The dependency can actually be ran, confirming it is a valid file + # 3. SteamTinkerLaunch has not updated, so there would be no change in dependency version and thus no need to update + # If any of these are false, we need to check our dependencies (if a file is missing we would need to update, or if it cannot be used we need to update, and also if STL updated we may need a newer version, so update). + if [ -f "$(command -v "$DEPCMD")" ] && [ "$CHECKCMD" = "OK" ] && [ "$( checkSteamDeckSTLUpdated )" -eq 0 ]; then writelog "INFO" "${FUNCNAME[0]} - Using '$DEPCMD' binary found in path: '$(command -v "$DEPCMD")'" echo "Dependency '$DEPCMD' already installed, nothing to do." else @@ -26466,6 +26473,8 @@ function checkSteamDeckDependencies { installDependencyVersionFromURL "$INNOEXTRACT" "$INNOEXTRACTFILE" "$STLDEPS" "$INNOEXTRACTURL" || steamDeckInstallFail installDependencyVersionFromURL "$CABEXTRACT" "$CABEXTRACTFILE" "$STLDEPS" "$CABEXTRACTURL" || steamDeckInstallFail + updateSteamDeckLastVers # If everything went well, we update the lastversion file + if [ -f "$(command -v "yad")" ]; then writelog "INFO" "${FUNCNAME[0]} - Using yad binary found in path: '$(command -v "yad")'" echo "Dependency 'yad' already installed, nothing to do." @@ -26641,6 +26650,7 @@ function steamdedeckt { if [ "$STEAMDECKSTEAMRUN" -eq 0 ]; then installFilesSteamDeck + checkSteamDeckLastVers checkSteamDeckDependencies # Don't remove dependencies offline @@ -26699,6 +26709,20 @@ function restoreGtkCss { fi } +function checkSteamDeckLastVers { + # This function just makes sure that the 'lastvers' file exists at the defined path + if ! [ -f "$STLSTEAMDECKLASTVERS" ]; then + echo "$PROGVERS" > "$STLSTEAMDECKLASTVERS" + fi +} + +function updateSteamDeckLastVers { + # This function updates the 'lastvers' file after a dependency update if there was a version change + if [ "$( checkSteamDeckSTLUpdated )" -eq 1 ]; then + echo "$PROGVERS" > "$STLSTEAMDECKLASTVERS" + fi +} + function prepareSteamDeckCompatInfo { if [ "$AID" -eq "$PLACEHOLDERAID" ]; then writelog "SKIP" "${FUNCNAME[0]} - AppID '$AID' is placeholder AppID ('$PLACEHOLDERAID') -- Not fetching Steam Deck compatibility info" @@ -26851,6 +26875,21 @@ function getSteamDeckCompatInfo { echo "$COMPATINFO" } +# This function will check if the version in `$STLSTEAMDECKLASTVERS` does not match the current version +# For example, if we had v14.0 installed before, 'lastvers' would have v14.0 +# Then, if we were updating to v15.0, 'lastvers' would be 'v14.0' but 'PROGVERS' would be 'v15.0' +function checkSteamDeckSTLUpdated { + # This is how updateCfgFile gets the config file version, so re-use it + CHECKLASTVERSSTEAMDECK="$( cat "$STLSTEAMDECKLASTVERS" )" + if [ "$CHECKLASTVERSSTEAMDECK" = "$PROGVERS" ]; then + writelog "INFO" "${FUNCNAME[0]} - Last known SteamTinkerLaunch install version ('$CHECKLASTVERSSTEAMDECK') and the current version ('$PROGVERS') match -- There has been no update since last launch" + return 0 + else + writelog "INFO" "${FUNCNAME[0]} - Last known SteamTinkerLaunch install version ('$CHECKLASTVERSSTEAMDECK') and the current version ('$PROGVERS') do NOT match -- It seems there has been an update!" + return 1 + fi +} + # Clear dependencies in /home/deck/stl/deps so that they can be redownloaded the next time SteamTinkerLaunch is ran on Steam Deck # This also serves as a quickfix for #719, as dependencies an be quickly removed and then re-downloaded to ensure better compatibility with SteamOS updates # In future, STL should auto-bump these somehow From 9e371ef7eeb01b392db46bc58c8b295a66e2bc8b Mon Sep 17 00:00:00 2001 From: AtomHare <29772841+AtomHare@users.noreply.github.com> Date: Sat, 1 Jun 2024 15:42:30 +0200 Subject: [PATCH 02/12] Clear deps on first run --- steamtinkerlaunch | 2 ++ 1 file changed, 2 insertions(+) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index fac88642..51fa0f1e 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -26711,7 +26711,9 @@ function restoreGtkCss { function checkSteamDeckLastVers { # This function just makes sure that the 'lastvers' file exists at the defined path + # If it does not we set it and clear the deps to ensure it starts downloading the libs at the right version if ! [ -f "$STLSTEAMDECKLASTVERS" ]; then + clearDeckDeps echo "$PROGVERS" > "$STLSTEAMDECKLASTVERS" fi } From 172f9e3e963cbe2fe0cf02bc6cb58677fb6c1a5a Mon Sep 17 00:00:00 2001 From: AtomHare <29772841+AtomHare@users.noreply.github.com> Date: Sat, 1 Jun 2024 15:44:43 +0200 Subject: [PATCH 03/12] Set PROGVERS for the PR --- steamtinkerlaunch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index 51fa0f1e..02d47674 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -7,7 +7,7 @@ PREFIX="/usr" PROGNAME="SteamTinkerLaunch" NICEPROGNAME="Steam Tinker Launch" -PROGVERS="v14.0.20240727-1" +PROGVERS="v14.0.20240601-1 (steamdeck-dependency-handling)" PROGCMD="${0##*/}" PROGINTERNALPROTNAME="Proton-stl" SHOSTL="stl" From db46d35542813744f60a186fd9622bc9e315887a Mon Sep 17 00:00:00 2001 From: AtomHare <29772841+AtomHare@users.noreply.github.com> Date: Sat, 1 Jun 2024 16:08:57 +0200 Subject: [PATCH 04/12] Add autoupdater settings --- steamtinkerlaunch | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index 02d47674..ebef1b17 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -3424,6 +3424,7 @@ function setDefaultCfgValues { if [ -z "$USESPEKD3D47" ] ; then USESPEKD3D47="1"; fi if [ -z "$SDLUSEWAYLAND" ] ; then SDLUSEWAYLAND="0"; fi if [ -z "$STLRAD_PFTST" ] ; then STLRAD_PFTST="none"; fi + if [ -z "$STEAMDECK_AUTOUP" ] ; then STEAMDECK_AUTOUP="1"; fi if [ -z "$SPEKVERS" ] ; then SPEKVERS="stable"; fi if [ -z "$AUTOSPEK" ] ; then AUTOSPEK="0"; fi if [ -z "$USEFWS" ] ; then USEFWS="0"; fi @@ -5776,6 +5777,7 @@ function AllSettingsEntriesDummyFunction { --field=" $GUI_RUNSBS!$DESC_RUNSBS ('RUNSBS')":CHK "${RUNSBS/#-/ -}" `#CAT_Misc` `#SUB_Checkbox` `#MENU_GAME` \ --field=" $GUI_SDLUSEWAYLAND!$DESC_SDLUSEWAYLAND ('SDLUSEWAYLAND')":CHK "${SDLUSEWAYLAND/#-/ -}" `#CAT_Misc` `#SUB_Checkbox` `#MENU_GAME` \ --field=" $GUI_STLRAD_PFTST!$DESC_STLRAD_PFTST ('STLRAD_PFTST')":CBE "$(cleanDropDown "${STLRAD_PFTST/#-/ -}" "none!gpl!sam!rt!emulate_rt!rtwave64!video_decode")" `#CAT_Misc` `#MENU_GAME` \ +--field=" $GUI_STEAMDECK_AUTOUP!$DESC_STEAMDECK_AUTOUP ('STEAMDECK_AUTOUP')":CHK "${STEAMDECK_AUTOUP/#-/ -}" `#CAT_Misc` `#SUB_Checkbox` `#MENU_GLOBAL` \ --field="$(spanFont "$GUI_OPTSPROTON" "H")":LBL "SKIP" `#CAT_Proton` `#HEAD_Proton` `#MENU_GAME` `#MENU_GLOBAL` \ --field=" $GUI_USEPROTON!$DESC_USEPROTON ('USEPROTON')":CB "$(cleanDropDown "${USEPROTON/#-/ -}" "$PROTYADLIST")" `#CAT_Proton` `#MENU_GAME` \ --field=" $GUI_USESLR!$DESC_USESLR ('USESLR')":CHK "${USESLR/#-/ -}" `#CAT_Proton` `#SUB_Checkbox` `#MENU_GAME` \ @@ -26437,9 +26439,9 @@ function checkSteamDeckDependencies { # The check now says, don't update dependencies if all of these conditions are true: # 1. The dependency file exists # 2. The dependency can actually be ran, confirming it is a valid file - # 3. SteamTinkerLaunch has not updated, so there would be no change in dependency version and thus no need to update + # 3. SteamTinkerLaunch has not updated or autoupdater isn't enabled, so there would be no change in dependency version and thus no need to update # If any of these are false, we need to check our dependencies (if a file is missing we would need to update, or if it cannot be used we need to update, and also if STL updated we may need a newer version, so update). - if [ -f "$(command -v "$DEPCMD")" ] && [ "$CHECKCMD" = "OK" ] && [ "$( checkSteamDeckSTLUpdated )" -eq 0 ]; then + if [ -f "$(command -v "$DEPCMD")" ] && [ "$CHECKCMD" = "OK" ] && { [ "$( checkSteamDeckSTLUpdated )" -eq 0 ] || [ "$( STEAMDECK_AUTOUP )" -eq 0 ] }; then writelog "INFO" "${FUNCNAME[0]} - Using '$DEPCMD' binary found in path: '$(command -v "$DEPCMD")'" echo "Dependency '$DEPCMD' already installed, nothing to do." else From 1175b2ca28e94c0fd4f2967f24258122a50b67d2 Mon Sep 17 00:00:00 2001 From: AtomHare <29772841+AtomHare@users.noreply.github.com> Date: Sat, 1 Jun 2024 16:13:11 +0200 Subject: [PATCH 05/12] Add the autoupdate to the config --- steamtinkerlaunch | 2 ++ 1 file changed, 2 insertions(+) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index ebef1b17..7f035ed9 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -4150,6 +4150,8 @@ function saveCfg { echo "SDLUSEWAYLAND=\"$SDLUSEWAYLAND\"" echo "## $DESC_STLRAD_PFTST" echo "STLRAD_PFTST=\"$STLRAD_PFTST\"" + echo "## $DESC_STEAMDECK_AUTOUP" + echo "STEAMDECK_AUTOUP=\"$STEAMDECK_AUTOUP\"" echo "## $DESC_SPEKVERS" echo "SPEKVERS=\"$SPEKVERS\"" echo "## $DESC_AUTOSPEK" From 55e9b9589b2cfcd0ae7b623bebf0330233079082 Mon Sep 17 00:00:00 2001 From: AtomHare <29772841+AtomHare@users.noreply.github.com> Date: Sun, 2 Jun 2024 10:18:53 +0200 Subject: [PATCH 06/12] Fix the update check --- steamtinkerlaunch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index 7f035ed9..24541672 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -26443,7 +26443,7 @@ function checkSteamDeckDependencies { # 2. The dependency can actually be ran, confirming it is a valid file # 3. SteamTinkerLaunch has not updated or autoupdater isn't enabled, so there would be no change in dependency version and thus no need to update # If any of these are false, we need to check our dependencies (if a file is missing we would need to update, or if it cannot be used we need to update, and also if STL updated we may need a newer version, so update). - if [ -f "$(command -v "$DEPCMD")" ] && [ "$CHECKCMD" = "OK" ] && { [ "$( checkSteamDeckSTLUpdated )" -eq 0 ] || [ "$( STEAMDECK_AUTOUP )" -eq 0 ] }; then + if [[ -f "$(command -v "$DEPCMD")" && "$CHECKCMD" = "OK" && ( "$( checkSteamDeckSTLUpdated )" -eq 0 || "$STEAMDECK_AUTOUP" -eq 0 ) ]]; then writelog "INFO" "${FUNCNAME[0]} - Using '$DEPCMD' binary found in path: '$(command -v "$DEPCMD")'" echo "Dependency '$DEPCMD' already installed, nothing to do." else From 69bbc71c15674abc6872e6fc47f9726111d5b202 Mon Sep 17 00:00:00 2001 From: AtomHare <29772841+AtomHare@users.noreply.github.com> Date: Sun, 2 Jun 2024 10:27:40 +0200 Subject: [PATCH 07/12] Add GUI name and description --- lang/english.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lang/english.txt b/lang/english.txt index 1fc6023f..aef757b8 100644 --- a/lang/english.txt +++ b/lang/english.txt @@ -1125,6 +1125,8 @@ GUI_SGASETACTION="Artwork Set Method" DESC_SGASETACTION="Specifies how to set the artwork, either by copying the source files, symlinking them, or moving them - If unsure, leave at default 'copy'" GUI_STLRAD_PFTST="RADV Perfest options" DESC_STLRAD_PFTST="A comma-separated list of named flags, which can be used to enable experimental driver features and performance enhancements for RADV Vulkan driver" +GUI_STEAMDECK_AUTOUP="Autoupdate STL libraries [SteamDeck ONLY]" +DESC_STEAMDECK_AUTOUP="Enable the libraries autoupdater for the Steam Deck after an STL update" GUI_MAHUDLSYM="Use MangoHud --dlsym" DESC_MAHUDLSYM="Append '--dlsym' to MangoHud - May fix OpenGL games not displaying MangoHud" GUI_CW_LUTRIS="Wine Lutris URL" From 0b1d31c05624b9cc2804073da7d1a8f2f346c85e Mon Sep 17 00:00:00 2001 From: AtomHare <29772841+AtomHare@users.noreply.github.com> Date: Sun, 2 Jun 2024 19:04:36 +0200 Subject: [PATCH 08/12] fix: correct typo --- lang/english.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/english.txt b/lang/english.txt index aef757b8..08ce3255 100644 --- a/lang/english.txt +++ b/lang/english.txt @@ -1125,7 +1125,7 @@ GUI_SGASETACTION="Artwork Set Method" DESC_SGASETACTION="Specifies how to set the artwork, either by copying the source files, symlinking them, or moving them - If unsure, leave at default 'copy'" GUI_STLRAD_PFTST="RADV Perfest options" DESC_STLRAD_PFTST="A comma-separated list of named flags, which can be used to enable experimental driver features and performance enhancements for RADV Vulkan driver" -GUI_STEAMDECK_AUTOUP="Autoupdate STL libraries [SteamDeck ONLY]" +GUI_STEAMDECK_AUTOUP="Autoupdate STL libraries [Steam Deck ONLY]" DESC_STEAMDECK_AUTOUP="Enable the libraries autoupdater for the Steam Deck after an STL update" GUI_MAHUDLSYM="Use MangoHud --dlsym" DESC_MAHUDLSYM="Append '--dlsym' to MangoHud - May fix OpenGL games not displaying MangoHud" From 4376d0da2434ae20c8d59050a26c57111fbaa128 Mon Sep 17 00:00:00 2001 From: AtomHare <29772841+AtomHare@users.noreply.github.com> Date: Sun, 23 Jun 2024 20:17:07 +0200 Subject: [PATCH 09/12] Fix STEAMDECK_AUTOUP position --- steamtinkerlaunch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index 24541672..abc2cc27 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -3242,6 +3242,7 @@ function setDefaultCfgValues { if [ -z "$TERMARGS" ] ; then TERMARGS="-e"; fi if [ -z "$USEGLOBALWINEDPI" ] ; then USEGLOBALWINEDPI="0"; fi if [ -z "$GLOBALWINEDPI" ] ; then GLOBALWINEDPI="$DEFWINEDPI"; fi + if [ -z "$STEAMDECK_AUTOUP" ] ; then STEAMDECK_AUTOUP="1"; fi } function setDefaultCfgValuesdefault_template { @@ -3424,7 +3425,6 @@ function setDefaultCfgValues { if [ -z "$USESPEKD3D47" ] ; then USESPEKD3D47="1"; fi if [ -z "$SDLUSEWAYLAND" ] ; then SDLUSEWAYLAND="0"; fi if [ -z "$STLRAD_PFTST" ] ; then STLRAD_PFTST="none"; fi - if [ -z "$STEAMDECK_AUTOUP" ] ; then STEAMDECK_AUTOUP="1"; fi if [ -z "$SPEKVERS" ] ; then SPEKVERS="stable"; fi if [ -z "$AUTOSPEK" ] ; then AUTOSPEK="0"; fi if [ -z "$USEFWS" ] ; then USEFWS="0"; fi From 340606c2665a9da92cfd86570117366667e5d9f5 Mon Sep 17 00:00:00 2001 From: AtomHare <29772841+AtomHare@users.noreply.github.com> Date: Sun, 23 Jun 2024 20:25:08 +0200 Subject: [PATCH 10/12] Fix the check and checkSteamDeckSTLUpdated Co-authored-by: Eamonn Rea --- steamtinkerlaunch | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index abc2cc27..c2124bf0 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -26443,7 +26443,8 @@ function checkSteamDeckDependencies { # 2. The dependency can actually be ran, confirming it is a valid file # 3. SteamTinkerLaunch has not updated or autoupdater isn't enabled, so there would be no change in dependency version and thus no need to update # If any of these are false, we need to check our dependencies (if a file is missing we would need to update, or if it cannot be used we need to update, and also if STL updated we may need a newer version, so update). - if [[ -f "$(command -v "$DEPCMD")" && "$CHECKCMD" = "OK" && ( "$( checkSteamDeckSTLUpdated )" -eq 0 || "$STEAMDECK_AUTOUP" -eq 0 ) ]]; then + if [[ -f "$(command -v "$DEPCMD")" && "$CHECKCMD" = "OK" ]] \ + && ! ( [ "$STEAMDECK_AUTOUP" -eq 1 ] && checkSteamDeckSTLUpdated ); then writelog "INFO" "${FUNCNAME[0]} - Using '$DEPCMD' binary found in path: '$(command -v "$DEPCMD")'" echo "Dependency '$DEPCMD' already installed, nothing to do." else @@ -26889,10 +26890,10 @@ function checkSteamDeckSTLUpdated { CHECKLASTVERSSTEAMDECK="$( cat "$STLSTEAMDECKLASTVERS" )" if [ "$CHECKLASTVERSSTEAMDECK" = "$PROGVERS" ]; then writelog "INFO" "${FUNCNAME[0]} - Last known SteamTinkerLaunch install version ('$CHECKLASTVERSSTEAMDECK') and the current version ('$PROGVERS') match -- There has been no update since last launch" - return 0 + return 1 else writelog "INFO" "${FUNCNAME[0]} - Last known SteamTinkerLaunch install version ('$CHECKLASTVERSSTEAMDECK') and the current version ('$PROGVERS') do NOT match -- It seems there has been an update!" - return 1 + return 0 fi } From ac1e2f4e6fd2a3b00575cd71d5c0bcec64200622 Mon Sep 17 00:00:00 2001 From: AtomHare <29772841+AtomHare@users.noreply.github.com> Date: Sun, 23 Jun 2024 20:27:44 +0200 Subject: [PATCH 11/12] Fix updateSteamDeckLastVers Co-authored-by: Eamonn Rea --- steamtinkerlaunch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index c2124bf0..7787c7c1 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -26725,7 +26725,7 @@ function checkSteamDeckLastVers { function updateSteamDeckLastVers { # This function updates the 'lastvers' file after a dependency update if there was a version change - if [ "$( checkSteamDeckSTLUpdated )" -eq 1 ]; then + if checkSteamDeckSTLUpdated; then echo "$PROGVERS" > "$STLSTEAMDECKLASTVERS" fi } From 4625c50306a9bea40c3219c1fd65f1592196ea41 Mon Sep 17 00:00:00 2001 From: AtomHare <29772841+AtomHare@users.noreply.github.com> Date: Mon, 19 Aug 2024 17:52:51 +0200 Subject: [PATCH 12/12] fix: save the config at the right place + update the PROGVERS --- steamtinkerlaunch | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/steamtinkerlaunch b/steamtinkerlaunch index 7787c7c1..f3572484 100755 --- a/steamtinkerlaunch +++ b/steamtinkerlaunch @@ -7,7 +7,7 @@ PREFIX="/usr" PROGNAME="SteamTinkerLaunch" NICEPROGNAME="Steam Tinker Launch" -PROGVERS="v14.0.20240601-1 (steamdeck-dependency-handling)" +PROGVERS="v14.0.20240819-1 (steamdeck-dependency-handling)" PROGCMD="${0##*/}" PROGINTERNALPROTNAME="Proton-stl" SHOSTL="stl" @@ -3808,6 +3808,8 @@ function saveCfg { echo "USETERM=\"$USETERM\"" echo "## $DESC_TERMARGS" echo "TERMARGS=\"$TERMARGS\"" + echo "## $DESC_STEAMDECK_AUTOUP" + echo "STEAMDECK_AUTOUP=\"$STEAMDECK_AUTOUP\"" } >> "$1" #ENDsaveCfgglobal @@ -4150,8 +4152,6 @@ function saveCfg { echo "SDLUSEWAYLAND=\"$SDLUSEWAYLAND\"" echo "## $DESC_STLRAD_PFTST" echo "STLRAD_PFTST=\"$STLRAD_PFTST\"" - echo "## $DESC_STEAMDECK_AUTOUP" - echo "STEAMDECK_AUTOUP=\"$STEAMDECK_AUTOUP\"" echo "## $DESC_SPEKVERS" echo "SPEKVERS=\"$SPEKVERS\"" echo "## $DESC_AUTOSPEK"