sonic2kk / steamtinkerlaunch

Linux wrapper tool for use with the Steam client for custom launch options and 3rd party programs
GNU General Public License v3.0
2.11k stars 71 forks source link

⚠ Steam flatpak support #27

Closed pio2398 closed 9 months ago

pio2398 commented 4 years ago

Currently there is no easy way to stl use in flatpaked version of Steam. That shouldn't be hard, here is example of other addon: https://github.com/flathub/com.valvesoftware.Steam.Utility.protontricks

frostworx commented 4 years ago

Sorry, I'm personally not interested in flatpak, so I won't spend my time on it, but if you could contribute a pull request if you want.

frostworx commented 3 years ago

reopening because I got some more requests

podiki commented 2 years ago

Yes, wondering how difficult this would be... I'd like to take a look, but might be a while until I can investigate. I'll report back anything I do find.

frostworx commented 2 years ago

Nice, thanks @podiki :)

frostworx commented 2 years ago

feel free to reopen

frostworx commented 2 years ago

reopening for an upcoming sticky issue

frostworx commented 2 years ago

https://github.com/frostworx/steamtinkerlaunch/issues/431

TheEvilSkeleton commented 2 years ago

I created a manifest, available at https://github.com/TheEvilSkeleton/flatpaks/tree/com.valvesoftware.Steam.Utility.steamtinkerlaunch.

Adding steamtinkerlaunch %command% as a launch option executes the game itself, but the steamtinkerlaunch script fails in the middle with the following error:

/app/utils/bin/steamtinkerlaunch: line 7994: : command not found

Line 7994 is the following:

            "$YAD" --f1-action="$F1ACTION" --image "$SHOWPIC" --image-on-top --window-icon="$STLICON" --form --center --on-top "$WINDECO" \
frostworx commented 2 years ago

Nice, thanks for the attempt! Looks like you're missing yad, which is required for the gui.

TheEvilSkeleton commented 2 years ago

That's odd. It's the first thing I build: https://github.com/TheEvilSkeleton/flatpaks/blob/7665a7234da1a4b1ee7080f6876332bf4dd56280/com.valvesoftware.Steam.Utility.steamtinkerlaunch.yaml#L16

sonic2kk commented 2 years ago

Just chipping in to try and help, is this syntax correct? https://github.com/TheEvilSkeleton/flatpaks/blob/7665a7234da1a4b1ee7080f6876332bf4dd56280/com.valvesoftware.Steam.Utility.steamtinkerlaunch.yaml#L23

It seems like another modules block is being defined? At least I can't see that syntax elsewhere in the file.

frostworx commented 2 years ago

Thanks for trying to help @sonic2kk Can't help with flatpak. Assuming the yaml installed yad correctly, I would have suggested to check if the $PATH is valid Generally starting steamtinkerlaunch without yad being installed it should already warn/error our before and not fail with some broken line (here 7994) so if it is possible to get a log out of the wip flatpak it might help as well.

TheEvilSkeleton commented 2 years ago

Just chipping in to try and help, is this syntax correct? https://github.com/TheEvilSkeleton/flatpaks/blob/7665a7234da1a4b1ee7080f6876332bf4dd56280/com.valvesoftware.Steam.Utility.steamtinkerlaunch.yaml#L23

It seems like another modules block is being defined? At least I can't see that syntax elsewhere in the file.

That's normal. Everything residing under modules builds first. Essentially, the intltool module builds prior to building the yad module.

If I type which yad in the Steam Flatpak container, I get this:

TheEvilSkeleton@TheMainDesktop ~> flatpak run --command=bash com.valvesoftware.Steam
[📦 com.valvesoftware.Steam ~]$ which yad
/app/utils/bin/yad

Which means yad actually exists and is in PATH.

Running yad within the container shows this:

image

I'm guessing everything looks fine on yad's side?

frostworx commented 2 years ago

Ah, /app/utils/bin/yad is interesting here. I guess this might require a little addition directly in steamtinkerlaunch. Could you please test what currently grep YAD ~/.config/steamtinkerlaunch/global.conf returns?

likely it is YAD="/usr/bin/yad" but apparently should be YAD="/app/utils/bin/yad" on your side. Would be also good to know if you change it manually in the config. (logs should have initially revealed it as well btw - f.e. /dev/shm/steamtinkerlaunch/steamtinkerlaunch.log)

frostworx commented 2 years ago

stdout of $PATH within steamtinkerlaunch might be interesting as well - if possible when started from steam (would help to see if it basically is sane and your path needs to be added or if it is removed from somewhere)

TheEvilSkeleton commented 2 years ago

likely it is YAD="/usr/bin/yad"

Not even. It's empty:

[📦 com.valvesoftware.Steam ~]$ grep YAD ~/.config/steamtinkerlaunch/global.conf
YAD=""

Flatpak remaps $XDG_CONFIG_HOME to ~/.var/app/$APP_ID/config. In this case it's ~/.var/app/com.valvesoftware.Steam/config/global.conf. However, upon checking that, it's empty as well:

[📦 com.valvesoftware.Steam ~]$ grep YAD $XDG_CONFIG_HOME/steamtinkerlaunch/global.conf 
YAD=""

I manually appended /app/utils/bin/yad in YAD, and steamtinkerlaunch launched! However, it crashed after a second.

TheEvilSkeleton commented 2 years ago

Here's the log when starting Jurassic World Evolution 2:

Click to expand

Tue Apr 19 12:53:47 EDT 2022 INFO - initAID - Set AID from STEAM_COMPAT_APP_ID to '1244460'
Tue Apr 19 12:53:47 EDT 2022 INFO - initAID - Set OSCDP to STEAM_COMPAT_DATA_PATH '/run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/compatdata/1244460'
Tue Apr 19 12:53:47 EDT 2022 INFO - loadLangFile - Loading system wide /app/utils/steamtinkerlaunch/share/steamtinkerlaunch/lang//english.txt
Tue Apr 19 12:53:47 EDT 2022 INFO - getCurrentCommandline - Found Proton in command line arguments '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1244460 -- /app/share/steam/compatibilitytools.d/Proton-GE/proton waitforexitandrun /run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/common/Jurassic World Evolution 2/JWE2.exe'
Tue Apr 19 12:53:47 EDT 2022 INFO - saveOrgVars - Storing some original variables to restore them later
Tue 19 Apr 2022 12:53:47 PM EDT INFO - emptyVars - Emptied some original variables as they slowdown several system calls when started from steam
Tue 19 Apr 2022 12:53:47 PM EDT INFO - emptyVars - Set $PATH to '/app/bin:/app/utils/bin:/usr/bin:'
Tue 19 Apr 2022 12:53:47 PM EDT START - ######### Initializing Game Launch 1244460 using SteamTinkerLaunch v9.2 #########
Tue 19 Apr 2022 12:53:47 PM EDT INFO - main - Starting with a clean log
Tue 19 Apr 2022 12:53:47 PM EDT INFO - main - Start creating default configs
Tue 19 Apr 2022 12:53:47 PM EDT INFO - createDefaultCfgs - START
Tue 19 Apr 2022 12:53:48 PM EDT INFO - loadLanguage - First load the default language to make sure all variables are filled
Tue 19 Apr 2022 12:53:48 PM EDT INFO - loadLangFile - Loading system wide /app/utils/steamtinkerlaunch/share/steamtinkerlaunch/lang//english.txt
Tue 19 Apr 2022 12:53:48 PM EDT WARN - updateEditor - 'xdg-open' selected as editor or configured editor not found - trying to find an installed editor installed
Tue 19 Apr 2022 12:53:48 PM EDT SKIP - updateEditor - No valid editor found - leaving 'xdg-open'
Tue 19 Apr 2022 12:53:48 PM EDT INFO - createDefaultCfgs - setSteamPaths:
Tue 19 Apr 2022 12:53:48 PM EDT INFO - setSteamPaths - Reading Steam Path variables from '/dev/shm/steamtinkerlaunch/steampaths.txt'
Tue 19 Apr 2022 12:53:48 PM EDT WARN - updateEditor - 'xdg-open' selected as editor or configured editor not found - trying to find an installed editor installed
Tue 19 Apr 2022 12:53:48 PM EDT SKIP - updateEditor - No valid editor found - leaving 'xdg-open'
Tue 19 Apr 2022 12:53:48 PM EDT INFO - getGameOS - Starting game OS detection
Tue 19 Apr 2022 12:53:48 PM EDT INFO - getGameOS - STEAM_COMPAT_DATA_PATH is defined - This is no longer necessarily a reliable indication that this is a Windows game.
Tue 19 Apr 2022 12:53:48 PM EDT INFO - getGameOS - Making some more checks on '/run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/common/Jurassic World Evolution 2/JWE2.exe' to determine the OS version of the game
Tue 19 Apr 2022 12:53:48 PM EDT INFO - getGameOS - Looks like this is a Windows game!
Tue 19 Apr 2022 12:53:48 PM EDT INFO - setWin - 'JWE2' determined to be a Windows Game
Tue 19 Apr 2022 12:53:48 PM EDT INFO - createProtonList - Looking for available Proton versions
Tue 19 Apr 2022 12:53:48 PM EDT INFO - getAvailableProtonVersions - Initially creating an array with available Proton versions
Tue 19 Apr 2022 12:53:48 PM EDT INFO - getAvailableProtonVersions - Adding Proton versions found in STEAMCOMPATOOLS '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/.local/share/Steam/compatibilitytools.d'
Tue 19 Apr 2022 12:53:48 PM EDT SKIP - getAvailableProtonVersions - Directory SYSSTEAMCOMPATOOLS '/usr/share/steam/compatibilitytools.d' not found - skipping
Tue 19 Apr 2022 12:53:48 PM EDT INFO - getAvailableProtonVersions - Adding Proton versions found in additional SteamLibrary Paths
Tue 19 Apr 2022 12:53:49 PM EDT INFO - listAllSettingsEntries - '/dev/shm/steamtinkerlaunch/setentries.txt' already exists - nothing to do
Tue 19 Apr 2022 12:53:49 PM EDT INFO - createDefaultCfgs - STOP
Tue 19 Apr 2022 12:53:49 PM EDT INFO - main - Checking internal dependencies:
Tue 19 Apr 2022 12:53:49 PM EDT INFO - setAwkBin - Found 'gawk' as an 'awk' variant. It should work without any issues, because 'gawk' was tested completely
Tue 19 Apr 2022 12:53:49 PM EDT INFO - checkIntDeps - Result of version check for yad binary '/app/utils/bin/yad' is '10.1'
Tue 19 Apr 2022 12:53:49 PM EDT INFO - main - Initializing first Proton:
Tue 19 Apr 2022 12:53:49 PM EDT INFO - initFirstProton - skipping function, because Proton version is provided by commandline (steamtinkerlaunch used via 'Steam Launch Option')
Tue 19 Apr 2022 12:53:49 PM EDT INFO - main - Initializing default window resolution
Tue 19 Apr 2022 12:53:49 PM EDT INFO - setInitWinXY - Using '1920x1080' from config '/dev/shm/steamtinkerlaunch/defres.txt'
Tue 19 Apr 2022 12:53:49 PM EDT INFO - main - Checking command line: incoming arguments '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1244460 -- /app/share/steam/compatibilitytools.d/Proton-GE/proton waitforexitandrun /run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/common/Jurassic World Evolution 2/JWE2.exe'
Tue 19 Apr 2022 12:53:49 PM EDT SKIP - getGameOS - ISGAME is already set to '2' - nothing to determine
Tue 19 Apr 2022 12:53:49 PM EDT INFO - linkLog - Symlink '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/logs/steamtinkerlaunch/title/Jurassic World Evolution 2.log' already exists
Tue 19 Apr 2022 12:53:50 PM EDT WARN - updateEditor - 'xdg-open' selected as editor or configured editor not found - trying to find an installed editor installed
Tue 19 Apr 2022 12:53:50 PM EDT SKIP - updateEditor - No valid editor found - leaving 'xdg-open'
Tue 19 Apr 2022 12:53:50 PM EDT START - ######### Game Launch: Jurassic World Evolution 2 (1244460) #########
Tue 19 Apr 2022 12:53:50 PM EDT INFO - prepareLaunch - Game launch args '/run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/common/Jurassic World Evolution 2/JWE2.exe'
Tue 19 Apr 2022 12:53:50 PM EDT INFO - prepareLaunch - Gamedir '/run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/common/Jurassic World Evolution 2'
Tue 19 Apr 2022 12:53:50 PM EDT INFO - prepareLaunch - Proton wineprefix '/run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/compatdata/1244460/pfx'
Tue 19 Apr 2022 12:53:50 PM EDT INFO - prepareLaunch -------------------
Tue 19 Apr 2022 12:53:50 PM EDT INFO - prepareLaunch - CreateGameCfg:
Tue 19 Apr 2022 12:53:50 PM EDT SKIP - updateConfigFile - Config file '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/gamecfgs/id/1244460.conf' already at version 'v9.2'
Tue 19 Apr 2022 12:53:50 PM EDT INFO - linkGameCfg - Symlink '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/gamecfgs/title/Jurassic World Evolution 2.conf' already exists
Tue 19 Apr 2022 12:53:50 PM EDT INFO - prepareLaunch - First LoadCfg: /var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/gamecfgs/id/1244460.conf
Tue 19 Apr 2022 12:53:50 PM EDT INFO - loadCfg - '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/gamecfgs/id/1244460.conf' START
Tue 19 Apr 2022 12:53:50 PM EDT INFO - loadCfg - Loading game config '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/gamecfgs/id/1244460.conf'
Tue 19 Apr 2022 12:53:50 PM EDT INFO - loadCfg - '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/gamecfgs/id/1244460.conf' STOP
Tue 19 Apr 2022 12:53:50 PM EDT INFO - prepareLaunch - OpenTrayIcon:
Tue 19 Apr 2022 12:53:50 PM EDT INFO - autoCategorySettings - Searching categories for game '1244460' in 'sharedconfig.vdf'
Tue 19 Apr 2022 12:53:50 PM EDT SKIP - autoCategorySettings - Config '/app/utils/steamtinkerlaunch/share/steamtinkerlaunch/categories/.conf' not found - skipping
Tue 19 Apr 2022 12:53:50 PM EDT SKIP - autoCategorySettings - Config '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/categories/.conf' not found - skipping
Tue 19 Apr 2022 12:53:50 PM EDT INFO - setFullGameExePath - Using the base game directory '/run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/common/Jurassic World Evolution 2' as absolute game exe path
Tue 19 Apr 2022 12:53:50 PM EDT INFO - openTrayIcon - Opening trayIcon:
Tue 19 Apr 2022 12:53:50 PM EDT INFO - setRunWineServer - Initiated from 'TrayIconExports'
Tue 19 Apr 2022 12:53:50 PM EDT INFO - setRunWineServer - Set the wine binary for proton in path '/app/share/steam/compatibilitytools.d/Proton-GE/proton'
Tue 19 Apr 2022 12:53:50 PM EDT INFO - setRunWineServer - to '/app/share/steam/compatibilitytools.d/Proton-GE/dist/bin/wine'
Tue 19 Apr 2022 12:53:50 PM EDT INFO - setRunWineServer - and wineserver to '/app/share/steam/compatibilitytools.d/Proton-GE/dist/bin/wineserver'
Tue 19 Apr 2022 12:53:50 PM EDT INFO - prepareLaunch - sortGameArgs:
Tue 19 Apr 2022 12:53:50 PM EDT SKIP - sortGameArgs - Sorting the game arguments is disabled
Tue 19 Apr 2022 12:53:50 PM EDT INFO - prepareLaunch - AskSettings:
Tue 19 Apr 2022 12:53:50 PM EDT INFO - askSettings - Using game specific requester timeout '2'
Tue 19 Apr 2022 12:53:50 PM EDT INFO - askSettings - Opening Requester with timeout '2'
Tue 19 Apr 2022 12:53:50 PM EDT INFO - getGameTextFiles - Searching for at least one editable textfile in '/run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/compatdata/1244460/pfx/drive_c/users/steamuser'
Tue 19 Apr 2022 12:53:50 PM EDT INFO - getRes - Detected screen resolution '2560x1440'
Tue 19 Apr 2022 12:53:50 PM EDT INFO - pollWinRes - Using GEOM '--geometry=1440x810+0+0' from '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/guicfgs/2560x1440/1244460/SteamTinkerLaunch-OpenSettings.conf'
Tue 19 Apr 2022 12:53:50 PM EDT INFO - setShowPic - Determining game picture
Tue 19 Apr 2022 12:53:50 PM EDT INFO - updateWinRes - Starting resolution-poll for '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/guicfgs/2560x1440/1244460/SteamTinkerLaunch-OpenSettings.conf' with incoming '1440x810'
Tue 19 Apr 2022 12:53:50 PM EDT INFO - setShowPic - Using '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/games/header/1244460.jpg' as game picture
Tue 19 Apr 2022 12:53:50 PM EDT INFO - updateWinRes - Waiting for Window 'SteamTinkerLaunch-OpenSettings'
Tue 19 Apr 2022 12:53:51 PM EDT INFO - updateWinRes - Waiting for Window 'SteamTinkerLaunch-OpenSettings'
Tue 19 Apr 2022 12:53:52 PM EDT INFO - updateWinRes - Waiting for Window 'SteamTinkerLaunch-OpenSettings'
Tue 19 Apr 2022 12:53:53 PM EDT SKIP - updateWinRes - Timeout waiting for Window 'SteamTinkerLaunch-OpenSettings'
Tue 19 Apr 2022 12:53:54 PM EDT INFO - askSettings - TIMEOUT - Starting game without opening the Settings Menu
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - Second LoadCfg after menus: /var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/gamecfgs/id/1244460.conf
Tue 19 Apr 2022 12:53:54 PM EDT INFO - loadCfg - '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/gamecfgs/id/1244460.conf' START
Tue 19 Apr 2022 12:53:54 PM EDT INFO - loadCfg - Loading game config '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/gamecfgs/id/1244460.conf'
Tue 19 Apr 2022 12:53:54 PM EDT INFO - loadCfg - '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/gamecfgs/id/1244460.conf' STOP
Tue 19 Apr 2022 12:53:54 PM EDT INFO - autoCategorySettings - Searching categories for game '1244460' in 'sharedconfig.vdf'
Tue 19 Apr 2022 12:53:54 PM EDT SKIP - autoCategorySettings - Config '/app/utils/steamtinkerlaunch/share/steamtinkerlaunch/categories/.conf' not found - skipping
Tue 19 Apr 2022 12:53:54 PM EDT SKIP - autoCategorySettings - Config '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/categories/.conf' not found - skipping
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - sortGameArgs again, in case something changed above:
Tue 19 Apr 2022 12:53:54 PM EDT SKIP - sortGameArgs - Sorting the game arguments is disabled
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - symlinkSteamUser:
Tue 19 Apr 2022 12:53:54 PM EDT SKIP - symlinkSteamUser - Symlinking steamuser is disabled - Checking if a symlink needs to be reverted
Tue 19 Apr 2022 12:53:54 PM EDT SKIP - symlinkSteamUser - '/run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/compatdata/1244460/pfx/drive_c/users/steamuser' is no symlink - nothing to do
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - restoreSteamUser:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - restoreSteamUser - Using configured value 'none' for RESTORESTEAMUSER
Tue 19 Apr 2022 12:53:54 PM EDT INFO - restoreSteamUser - Restoration of steamuser data is disabled with RESTORESTEAMUSER being 'none
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - prepareProton:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - getProtPathFromCSV - Creating '/dev/shm/steamtinkerlaunch/ProtonCSV.txt'
Tue 19 Apr 2022 12:53:54 PM EDT INFO - getAvailableProtonVersions - Initially creating an array with available Proton versions
Tue 19 Apr 2022 12:53:54 PM EDT INFO - getAvailableProtonVersions - Adding Proton versions found in STEAMCOMPATOOLS '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/.local/share/Steam/compatibilitytools.d'
Tue 19 Apr 2022 12:53:54 PM EDT INFO - setProtonPathVersion - Using directly known 'Proton-GE GE-Proton7-8 (build 1646648409)' as Proton Version for ''
Tue 19 Apr 2022 12:53:54 PM EDT SKIP - getAvailableProtonVersions - Directory SYSSTEAMCOMPATOOLS '/usr/share/steam/compatibilitytools.d' not found - skipping
Tue 19 Apr 2022 12:53:54 PM EDT INFO - getAvailableProtonVersions - Adding Proton versions found in additional SteamLibrary Paths
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareProton - Checking the Proton version is not required, because Steam Launch Option is used. Proton version set in Steam is 'Proton-GE GE-Proton7-8 (build 1646648409)'
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch -setLinGameVals :
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - CheckTweakLaunch:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - checkXliveless:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - chooseWinetricks:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - checkExtDeps:
Tue 19 Apr 2022 12:53:54 PM EDT WARN - checkDep - Disabling 'HAVEINNO' because 'innoextract' is missing
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - setWineVars:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - CheckWinetricksLaunch:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - CheckWineCfgLaunch:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - CustomRegs:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - TogWindows:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - StateSteamWebHelper:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - InstallReshade:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - installDepth3DReshade:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - checkReshade:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - autoCategorySettings - Searching categories for game '1244460' in 'sharedconfig.vdf'
Tue 19 Apr 2022 12:53:54 PM EDT SKIP - autoCategorySettings - Config '/app/utils/steamtinkerlaunch/share/steamtinkerlaunch/categories/.conf' not found - skipping
Tue 19 Apr 2022 12:53:54 PM EDT SKIP - autoCategorySettings - Config '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/categories/.conf' not found - skipping
Tue 19 Apr 2022 12:53:54 PM EDT INFO - setFullGameExePath - Using the base game directory '/run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/common/Jurassic World Evolution 2' as absolute game exe path
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - useSpecialK:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - setFullGameExePath - Using the base game directory '/run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/common/Jurassic World Evolution 2' as absolute game exe path
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - ChooseShaders:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - UseNyrnaz:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - UseReplay:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - CheckSBSVRLaunch:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - checkMO2:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - setNewRes:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - getRes - Detected screen resolution '2560x1440'
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - customUserScriptStart:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - redirectSCDP:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - redirectSCDP - Using Proton version with minor version fix 'Proton-GE GE-Proton7-8 (build 1646648409)' for compatdata directory name
Tue 19 Apr 2022 12:53:54 PM EDT INFO - redirectSCDP - Using regular compatdata '/run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/compatdata/1244460'
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - checkIGCSInjector:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - checkOpenVRFSR:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - CheckFWS:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - CheckCustomLaunch:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - checkUUUPatchLaunch:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - CheckStraceLaunch:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - CheckNetMonLaunch:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - checkGamConLaunch:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - checkCheatEngineLaunch:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - checkPulse:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - checkSteamAppIDFile:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - checkSteamAppIDFile - STEAMAPPIDFILE is disabled and there's no '/run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/common/Jurassic World Evolution 2/steam_appid.txt' - nothing to do
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch - setCompatDataTitle:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - setCompatDataTitle - Symlink /var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/compatdata/Jurassic World Evolution 2 already exists
Tue 19 Apr 2022 12:53:54 PM EDT INFO - setCompatDataTitle - Symlink '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/compatdata/Jurassic World Evolution 2' already points to the correct directory '/run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/compatdata/1244460'
Tue 19 Apr 2022 12:53:54 PM EDT INFO - prepareLaunch -launchSteamGame:
Tue 19 Apr 2022 12:53:54 PM EDT INFO - gameArgs - Game doesn't use any command line arguments
Tue 19 Apr 2022 12:53:54 PM EDT INFO - launchSteamGame - GAMESTARTCMD is '/run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/common/Jurassic World Evolution 2/JWE2.exe'
Tue 19 Apr 2022 12:53:54 PM EDT INFO - launchSteamGame - Not overriding Proton and using Proton provided by steam commandline '/app/share/steam/compatibilitytools.d/Proton-GE/proton'
Tue 19 Apr 2022 12:53:54 PM EDT INFO - setProtonPathVersion - Using directly known 'Proton-GE GE-Proton7-8 (build 1646648409)' as Proton Version for '/app/share/steam/compatibilitytools.d/Proton-GE/proton'
Tue 19 Apr 2022 12:53:54 PM EDT INFO - launchSteamGame - Starting 'Jurassic World Evolution 2 (1244460)' with Proton: 'Proton-GE GE-Proton7-8 (build 1646648409)'
Tue 19 Apr 2022 12:53:54 PM EDT INFO - launchSteamGame - Full start command is '/app/share/steam/compatibilitytools.d/Proton-GE/proton waitforexitandrun /run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/common/Jurassic World Evolution 2/JWE2.exe'
Tue 19 Apr 2022 12:53:55 PM EDT INFO - loadCfg - '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/meta/id/general/1244460.conf' START
Tue 19 Apr 2022 12:53:55 PM EDT INFO - loadCfg - '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/meta/id/general/1244460.conf' STOP
Tue 19 Apr 2022 12:53:55 PM EDT INFO - startGame - Getting the Game Window name:
Tue 19 Apr 2022 12:53:55 PM EDT INFO - getGameWindowName - No gamewindow name stored in metadata '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/meta/id/general/1244460.conf' yet. Trying to find it now
Tue 19 Apr 2022 12:53:55 PM EDT SKIP - startGame - No SLR was provided via command line, so configuration USESLR '1' is ignored '' 0
Tue 19 Apr 2022 12:53:55 PM EDT INFO - startGame - ## reaper command is enabled via USEREAP=1 - prepending to the current launch command
Tue 19 Apr 2022 12:53:55 PM EDT INFO - startGame - Rebuilding STEAM_COMPAT_TOOL_PATHS variable:
Tue 19 Apr 2022 12:53:55 PM EDT INFO - startGame - Adding RUNPROTON '/app/share/steam/compatibilitytools.d/Proton-GE'
Tue 19 Apr 2022 12:53:55 PM EDT SKIP - getGameWindowPID - ERROR - timeout waiting for '/run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/common/Jurassic World Evolution 2' window
Tue 19 Apr 2022 12:53:55 PM EDT INFO - startGame - Adding '' because USESLR is enabled
Tue 19 Apr 2022 12:53:55 PM EDT SKIP - getGameWindowName - No valid game window PID found
Tue 19 Apr 2022 12:53:55 PM EDT INFO - startGame - Result: Set STEAM_COMPAT_TOOL_PATHS from '/app/share/steam/compatibilitytools.d/Proton-GE' to '/app/share/steam/compatibilitytools.d/Proton-GE:'
Tue 19 Apr 2022 12:53:55 PM EDT INFO - startGame - ## ORIGINAL INCOMING LAUNCH COMMAND: '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1244460 -- /app/share/steam/compatibilitytools.d/Proton-GE/proton waitforexitandrun /run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/common/Jurassic World Evolution 2/JWE2.exe'
Tue 19 Apr 2022 12:53:55 PM EDT INFO - startGame - ## STL LAUNCH COMMAND: '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1244460 -- /app/share/steam/compatibilitytools.d/Proton-GE/proton waitforexitandrun /run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/common/Jurassic World Evolution 2/JWE2.exe'
Tue 19 Apr 2022 12:53:55 PM EDT INFO - startGame - ## GAMESTART HERE ###
Tue 19 Apr 2022 12:53:55 PM EDT INFO - restoreOrgVars - Restoring previously cleared Variables
Tue 19 Apr 2022 12:53:56 PM EDT INFO - startGame - ## GAMESTOP after '1' seconds playtime
Tue 19 Apr 2022 12:53:56 PM EDT STOP - ######### SteamTinkerLaunch v9.2 #########
Tue 19 Apr 2022 12:53:56 PM EDT STOP - ######### CLEANUP #########
Tue 19 Apr 2022 12:53:56 PM EDT INFO - closeSTL - closing STL
Tue 19 Apr 2022 12:53:56 PM EDT INFO - updateConfigEntry - Emptying 'CUSTOMCMD' for '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/default_template.conf'
Tue 19 Apr 2022 12:53:56 PM EDT INFO - closeSTL - Creating '/dev/shm/steamtinkerlaunch/steamtinkerlaunch-closing.tmp'
Tue 19 Apr 2022 12:53:56 PM EDT INFO - checkPlayTime - The game was not started via 'steamtinkerlaunch' but directly from Steam - skipping Crash Requester
Tue 19 Apr 2022 12:53:56 PM EDT INFO - closeSTL - Game 'Jurassic World Evolution 2 (1244460)' exited - cleaning up custom processes if necessary
Tue 19 Apr 2022 12:53:56 PM EDT INFO - closeTrayIcon - Closing TrayIcon '9683'
Tue 19 Apr 2022 12:53:57 PM EDT INFO - closeSTL - Removing '/dev/shm/steamtinkerlaunch/steamtinkerlaunch-closing.tmp'
Tue 19 Apr 2022 12:53:57 PM EDT STOP - ######### closeSTL SteamTinkerLaunch v9.2 #########
Tue 19 Apr 2022 12:53:57 PM EDT INFO - writeLastRun - Recreating /var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/logs/steamtinkerlaunch/lastrun.txt
Tue 19 Apr 2022 12:53:57 PM EDT INFO - storeMetaData - Saving metadata for game 'Jurassic World Evolution 2 (1244460)'
Tue 19 Apr 2022 12:53:57 PM EDT INFO - getArch - Architecture for '/run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/common/Jurassic World Evolution 2/JWE2.exe' is 64bit
Tue 19 Apr 2022 12:53:57 PM EDT INFO - storeMetaData - '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/meta/eval/id/evaluatorscript_1244460.vdf' does not exists

Granted, I'm launching the game from another drive.

frostworx commented 2 years ago

this is what I meant in the previous post. steamtinkerlaunch initially checks multiple dependencies, including yad and write the corresponding path into a auto-created config. for unknown reasons your configs were filled with empty vars (I guess either distro or flatpak related, because this was fixed/improved several times already). Hard to tell how this can even happen without logs. Either way I just pushed a commit, which expands PATH with "/app/utils/bin/" if the directory exists. please re-test with a completely clean ~/.config/steamtinkerlaunch/

TheEvilSkeleton commented 2 years ago

~/.config/steamtinkerlaunch/ doesn't exist since Steam doesn't have access to it. Everything reside under ~/.var/app/com.valvesoftware.Steam/config/steamtinkerlaunch/ due to it remapping. I'll empty that directory.

TheEvilSkeleton commented 2 years ago

Okay, it looks like emptying that directory did make it work and launch, but steamtinkerlaunch still crashes within a second.

I checked through the terminal output, I get the following error:

/app/utils/bin/steamtinkerlaunch: line 3828: xdg-mime: command not found

I checked if xdg-mime was present, and turns out, it wasn't:

[📦 com.valvesoftware.Steam ~]$ xdg-
xdg-email             xdg-open              xdg-user-dir          xdg-user-dirs-update  
TheEvilSkeleton commented 2 years ago

Oops, I forgot to update the manifest. Let me try it with the latest commit.

frostworx commented 2 years ago

either way, xdg-mime should be a dependency (and needs a better check in function updateEditor), so good find! 👍

frostworx commented 2 years ago

xdg-utils (both xdg-mime and xdg-open) should be treated optionally now: https://github.com/frostworx/steamtinkerlaunch/issues/455

TheEvilSkeleton commented 2 years ago

Awesome! The error is gone, but the app still crashes within seconds with the following errors:

ERROR: ld.so: object '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

These get spammed on the terminal and there are probably >25 of these errors. I'm not sure what causes this issue.

frostworx commented 2 years ago

great! thanks for testing :) unfortunately steam causes that spam. it is not steamtinkerlaunch related. should be cosmetical-only though

TheEvilSkeleton commented 2 years ago

I see. I'm not sure why it crashes within seconds then. I checked everything in the terminal that match err, but I can't find an error worth investigating since all of them are about LD_PRELOAD.

TheEvilSkeleton commented 2 years ago

Looking at the log file, I get the following error:

Tue 19 Apr 2022 02:13:23 PM EDT SKIP - getGameWindowPID - ERROR - timeout waiting for '/run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/common/Jurassic World Evolution 2' window

Ironically the game launches without a problem.

TheEvilSkeleton commented 2 years ago

I think it works...? I pressed "Main Menu" when the steamtinkerlaunch window popped up and now the window is persistent. Is it by design?

image

frostworx commented 2 years ago

Hhm, would you mind appending the steamtinkerlaunch logfile? maybe something else is conflicting and the steam spam are just in the way(?). I could as well think of the following possibility: steam (or better the steam linux runtime) is sometimes picky when it comes to executing 2rd party commands, which leads f.e. to some commands requiring much longer to execute than regularly. steamtinkerlauch workarounds this, by temporarily (re-)setting some variables _(see function emptyVars - f.e. LC_ALL, LD_LIBRARY_PATH, LDPRELOAD) This issue has been fixerd for a long time and I haven't touched it since, but maybe flatpak depends on some variables, which get wiped. If you want you could simply dump env at the beginning and the end of emptyVars into separate files and check if something important is missing.

frostworx commented 2 years ago

Looking at the log file, I get the following error:

Tue 19 Apr 2022 02:13:23 PM EDT SKIP - getGameWindowPID - ERROR - timeout waiting for '/run/media/TheEvilSkeleton/DATA/Steam Games/steamapps/common/Jurassic World Evolution 2' window

Ironically the game launches without a problem.

that is not unusual. not all game windows are detected. It might be possible to enhance that function, but it is optional anyway so I never checked this.

edit: I should recheck though, if I introduced a new bug though somewhere, as I could reproduce this with the first random game just right now... so maybe another good find! 👍 😀

edit: rechecked and it needs indeed a fix. no idea when I broke this, but it must have been a while. noted for later

edit: should be fixed with https://github.com/frostworx/steamtinkerlaunch/commit/108595754bb4b380631fd61e92ce3dd351b59680 but I don't have much time for testing (just in a break from RL work)

frostworx commented 2 years ago

I think it works...? I pressed "Main Menu" when the steamtinkerlaunch window popped up and now the window is persistent. Is it by design?

image

Not sure if I understand you correctly. Did you use steamtinkerlaunch before? (serious question :D). Yeah, when you press Main Menu you get the option to configure all tweaks/mods/configs for the game you started, Choose Play in that menu to continue. When you save your changes and start the game the next time, you can simply let the first "Wait Requester" timeout and the game starts directly with all settings you configured for the game before.

TheEvilSkeleton commented 2 years ago

Not sure if I understand you correctly. Did you use steamtinkerlaunch before? (serious question :D).

No, I forgot to mention that at the beginning :sweat_smile:, sorry! I stumbled upon this issue and figured I should write and test the manifest and learn this tool at the same time. I really like the program so far.

I thought that the SteamTinkerLaunch-OpenSettings window was supposed to stay persistent until the user manually clicks "MAIN MENU" or "CANCEL", but it looks like the program launches the game within a couple of seconds of not interacting with the window (good UX decision, though! I just didn't expect it since I was testing the program at the same time and never used the program beforehand.)

Anyway, it looks like it is at least launching and navigating properly!

https://user-images.githubusercontent.com/50847364/164070810-8eee19ee-b770-4b5c-b243-30b05fef9389.mp4

frostworx commented 2 years ago

Wow, then thank you very much even more! It doesn't often happen to see a contributor to an unknown project :D The video already looks pretty good, but I noticed that you use steamtinkerlaunch as command line option. This is not wrong at all, but I'd recommend using it as compatibility tool instead - it is easier to setup (even for all games at once ;) and also generally more tested.). Personally I only use it as command line option when starting native linux games (as steam would download the windows version of the game automatically when using steamtinkerlaunch as compatibility tool)

edit: sorry last but not least: thanks for the positive feedback as well :) I do not like every gui decision I made, but was often forced into one direction through yad (still imho by far the best tool for creating guis for bash programs)

TheEvilSkeleton commented 2 years ago

The video already looks pretty good, but I noticed that you use steamtinkerlaunch as command line option. This is not wrong at all, but I'd recommend using it as compatibility tool instead - it is easier to setup (even for all games at once ;) and also generally more tested.). Personally I only use it as command line option when starting native linux games (as steam would download the windows version of the game automatically when using steamtinkerlaunch as compatibility tool)

That's super cool! Although, there seems to be two blockers at the moment. I changed the extension point from com.valvesoftware.Steam.Utility.steamtinkerlaunch to com.valvesoftware.Steam.CompatibilityTool.steamtinkerlaunch to make it support compatibility tools. The first blocker is that the steamtinkerlaunch script cannot be added in PATH anymore (that's a *.CompatibilityTool.* extension point issue I'm guessing), so we have to manually change the permissions of Flatpak and add it to the file. This is unintuitive.

Secondly, I'm not exactly sure how I can go about configuring the compatibility.vdf file (so we can see steamtinkerlaunch in the Compatibility list). Here's what I wrote:

"compatibilitytools"
{
  "compat_tools"
  {
    "steamtinkerlaunch"
    {
      "display_name" "SteamTinkerLaunch"
      "from_oslist"  "windows"
      "to_oslist"    "linux"
      "install_path" "/app/share/steam/compatibilitytools.d/steamtinkerlaunch"
    }
  }
}

It seems like it fails to launch altogether: image

I tried "install_path" ".", but no luck either.

I'm going to ask in the Flatpak Matrix for help.

TheEvilSkeleton commented 2 years ago

I think it'd be better if we have it as a launch option, at least for Flatpak.

frostworx commented 2 years ago

Adding steamtinkerlaunch as compatibility tool can be done via command line. The "compatibility tool" created is basically some files and a symlink pointing to your installed steamtinkerlaunch script (so I guess /app/utils/bin/steamtinkerlaunch) When the absolute path to steamtinkerlaunch changes, that symlink needs to be updated

You have to restart Steam generally to see any compatibility tool in the steam compat list!

Sorry, I don't understand why renaming the extension point should break steamtinkerlaunch in $PATH. is this a flatpak thing, or do you need any changes on my end.

TheEvilSkeleton commented 2 years ago

Thanks. In that case we can do something like:

TheEvilSkeleton@TheMainDesktop ~> flatpak run --command=bash com.valvesoftware.Steam
[📦 com.valvesoftware.Steam ~]$ steamtinkerlaunch compat add
Wed 20 Apr 2022 12:43:47 PM EDT INFO - CompatTool - Creating symlink '/var/home/TheEvilSkeleton/.var/app/com.valvesoftware.Steam/.local/share/Steam/compatibilitytools.d/SteamTinkerLaunch/steamtinkerlaunch' pointing to '/app/utils/bin/steamtinkerlaunch'

IMO that's an ugly workaround. I'm not sure if there's a better way to implement it. I don't want the end user to resort to CLI, let alone tell them to open bash in the container and run the command.

frostworx commented 2 years ago

I'm afraid I can't help with any flatpak problems. But when using steamtinkerlaunch command line arguments within flatpak is generally not possible we have a problem anyway. Not only the general command line options, but literally every button in the main settings menu (besides the row at the bottom) makes an external "command line" call to steamtinkerlaunch (the reason for that is internal yad functionality)

TheEvilSkeleton commented 2 years ago

I don't think I understand. Does that mean that steamtinkerlaunch is better suited for CLI?

zany130 commented 2 years ago

I don't think I understand. Does that mean that steamtinkerlaunch is better suited for CLI?

I think @frostworx means that under the hood everything in steamtinkerlaunch is done as a bash command (steamtinkerlaunch is really one giant bash script with YAD as a frontend). I don't think that's a problem for packaging it as a flatpak though. But what @TheEvilSkeleton is saying is that its a little non user-friendly to have to open a command prompt to add steamtinkerlaunch as a compat tool especially when you have to do special flatpak stuff to run it in a commandline within the container

So the solution I see is either the flatpak on install automatically runs that command to add it as a compat tool (I think you can do that with flatpaks ?) or add a GUI option to add steamtinkerlaunch as a compat tool

EDIT: looking at some flatpak manifests it seems like there is a "post-install": [command here] you can do . maybe steamtinkerlaunch can be added as a compat tool here?

frostworx commented 2 years ago

thanks for clarification, @zany130! Yeah, a gui option would probably solve that. The problem is that this is a command, which you would usually require only once. It would be ugly to have it permanently in the settings menu for nothing. What could be done as well though, would be an automatic compatibility tool configuration on start triggered automatically

what do you think?

zany130 commented 2 years ago

that's another idea though ideally I think this should be resolved within the flatpak instead of writing code to accommodate it.

Like I said above in my edit taking a quick look at some example flatpak manifests I did find "post-install": [command here]

could be misunderstanding but I don't see why something like this couldn't be done in the manifest

"post-install": [
steamtinkerlaunch compat add
]
TheEvilSkeleton commented 2 years ago

I was thinking of suggesting that, however if the user decides to remove steamtinkerlaunch later (flatpak remove steamtinkerlaunch or via a GUI software store), the compatibility tool directory (i.e. everything inside ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/compatibilitytools.d/SteamTinkerLaunch) will remain there and the compatibility tool will still be available as an option on Steam, but won't work. The user will have to manually delete ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/compatibilitytools.d/SteamTinkerLaunch so the compatibility tool is removed from Steam.

Unfortunately there's no "post-remove" in Flatpak. This will have to be manually done.

zany130 commented 2 years ago

true that is an issue if you install from the aur for example aswell don't know if much can be done about that other than warning the user. I don't think you can run custom stuff on uninstall of a flatpak right?

TheEvilSkeleton commented 2 years ago

Not that I know of.

frostworx commented 2 years ago

haven't used regular compatibility tools for a while, but don't you have to remove them anyway manually? either way it would be pretty simply to add the function mentioned above. If there's a better way to test if we're in a flatpak, it would be nice to know.

zany130 commented 2 years ago

well FWIW I don't think having a broken link to steamtinkerlaunch really messes much up other than not being able to run it as long as its uninstalled. once you reinstall i think it starts working again on its own otherwise another steamtinkerlaunch compat add would fix it

EDIT: so yeah its a little messy but i dont think its really a problem to have left over symlinks to steamtinkerlaunch same thing happens if you install proton-ge or any other compat tool from the aur I believe

TheEvilSkeleton commented 2 years ago

haven't used regular compatibility tools for a while, but don't you have to remove them anyway manually? either way it would be pretty simply to add the function mentioned above. If there's a better way to test if we're in a flatpak, it would be nice to know.

With Flatpak, the CompatibilityTool extension point automates the installation and removal of compatibility tools. So, changing the extension from com.valvesoftware.Steam.Utility.steamtinkerlaunch (like it is right now) to com.valvesoftware.Steam.CompatibilityTool.steamtinkerlaunch fixes that issue because the extension point automates. However, since steamtinkerlaunch has the launch option as well, we need the Utility extension point so it gets added in the PATH. It's a double-edged sword.

zany130 commented 2 years ago

ahh i think I'm seeing the problem if we package it with .CompatibilityTool it handles that automatically I imagine that's on proton-ge works on flathub? (Don't really use flathub as you can probably tell lol) would having two packages be an option? hmm maybe not ...

TheEvilSkeleton commented 2 years ago

Having Utility and CompatibilityTool extension points is an option but IMO an ugly one on the maintainer's end. The maintainer will have to maintain two packages