DavidoTek / ProtonUp-Qt

Install and manage GE-Proton, Luxtorpeda & more for Steam and Wine-GE & more for Lutris with this graphical user interface.
https://davidotek.github.io/protonup-qt
GNU General Public License v3.0
1.17k stars 39 forks source link

Support SteamTinkerLaunch for Steam Flatpak #277

Open IoSonoPiero opened 11 months ago

IoSonoPiero commented 11 months ago

I ... don't know if this is a bug, but yesterday I saw and installed SteamTinkerLaunch from ProtonUp-QT. Today, I need help finding it on the list. I've tried many things, but I can't see it.

Steam is installed from FlatHub, Proton-QT is installed from Flathub, too.

This is what I see. I've searched on Google, but I'm unable to fix it.

I'm sure yesterday was there, and I used it. I'm crazy. Schermata del 2023-08-11 12-23-11

IoSonoPiero commented 11 months ago

Ok, that's a known issue, my bad.

DavidoTek commented 11 months ago

Ok, that's a https://github.com/flathub/com.valvesoftware.Steam.Utility.steamtinkerlaunch/issues/110, my bad.

No problem. Can you nevertheless open a Terminal window and type following command as it could be a slightly different thing: flatpak run net.davidotek.pupgui2

Please then try to install SteamTinkerLaunch and post the output of the command here.

The issue you linked is a problem with STL not showing up in Steam, the problem here is that it doesn’t show in ProtonUp-Qt.

IoSonoPiero commented 11 months ago

I have not understood, sorry.

I closed Steam. Now, I removed SteamTinkerLaunch and ProtonUp-QT. Then, I reinstalled Proton-Up-Qt from FlatHub.

Then, from a terminal, I run: flatpak run net.davidotek.pupgui2


Python 3.10.6 (main, Nov 10 2011, 15:00:00) [GCC 12.2.0], PySide 6.4.3
Platform: KDE Flatpak runtime 5.15-21.08 Linux-6.4.9-200.fc38.x86_64-x86_64-with-glibc2.35
qt.qpa.qgnomeplatform: Could not find color scheme  ""
Loading locale it / it_IT
Loaded ctmod GE-Proton
Loaded ctmod Wine-GE
Loaded ctmod Boxtron
Loaded ctmod D8VK (nightly)
Loaded ctmod Kron4ek Wine-Builds Vanilla
Loaded ctmod Lutris-Wine
Loaded ctmod Luxtorpeda
Loaded ctmod NorthStar Proton (TitanFall 2)
Loaded ctmod Proton Tkg
Loaded ctmod Proton Tkg (Wine Master)
Loaded ctmod Roberta
Loaded ctmod Steam-Play-None
cat: /etc/lsb-release: File o directory non esistente
Loaded ctmod SteamTinkerLaunch
cat: /etc/lsb-release: File o directory non esistente
Loaded ctmod SteamTinkerLaunch-git
Loaded ctmod vkd3d-lutris
Loaded ctmod vkd3d-proton
Loaded ctmod Wine Tkg (Valve Wine)
Loaded ctmod Wine Tkg (Vanilla Wine)
Loaded ctmod DXVK
Loaded ctmod DXVK Async
Loaded ctmod DXVK (nightly)
qt.pysideplugin: Environment variable PYSIDE_DESIGNER_PLUGINS is not set, bailing out.
qt.pysideplugin: No instance of QPyDesignerCustomWidgetCollection was found.
Gamepad error: No gamepad found.
qt.pysideplugin: No instance of QPyDesignerCustomWidgetCollection was found.```

Even if in the log, I can see:

Loaded ctmod SteamTinkerLaunch
Loaded ctmod SteamTinkerLaunch-git

I can't see it in ProtonUp-QT.

![Schermata del 2023-08-11 13-09-36](https://github.com/DavidoTek/ProtonUp-Qt/assets/82404704/31375c93-d48a-4a58-aee4-eb09b1849a84)

What do I have to do now?
sonic2kk commented 11 months ago

Hi, SteamTinkerLaunch maintainer here :wave: Myself and DavidoTek also worked on adding SteamTinkerLaunch as a ctmod to ProtonUp-Qt.

The issue on Flathub that you linked to is for SteamTinkerLaunch Flatpak, which is for use with Steam Flatpak (i.e. from Flathub, which you're using, so all is good there :slightly_smiling_face:) - as all Steam Flatpak compatibility tools must also be Flatpaks themselves, installed as utilities for the Steam Flatpak. I am not sure how ProtonUp-Qt manages installing Flatpak utilities though.

I can't replicate the behaviour of STL not showing up, but I was able to confirm that outside of Advanced Mode, this is the only option missing from the list. It is stranger again because as you pointed out, in your log, we can see that STL should be loaded properly. I think the cat: /etc/lsb-release no such file or directory message can be safely ignored, as this has shown up for a few others and this should be a specific shell call that's "failing", which the code should be able to handle gracefully (it's used to check if we're on SteamOS iirc).

The code for the install dialog to populate the list of ctmods is relatively straightforward, just [ctobj['name'] for ctobj in self.ct_objs] - Note self.ct_objs. I am wondering if perhaps STL is missing from this list, or at least the name is.

Could this perhaps be related to a missing language string? I did try appending a blank string, False, and None to the list with .append() but it just created a blank entry in the dropdown, so I imagine the problem runs slightly deeper. Could a missing "translation" cause any problems here?

Or since from ProtonUp-Qt this will probably not install Flatpak STL, maybe STL is hidden for that reason when the user is using Flatpak Steam? I'm not sure of the logic around that.

Something else interesting might be to try enabling "Advanced Mode" and checking if SteamTinkerLaunch-git is missing, or if any other compatibility tools are missing. The list in Advanced Mode should look like this.

image

IoSonoPiero commented 11 months ago

Hello, I've ... removed Steam and ProtonUp-Qt. I've switched to English on my Laptop. I've installed Steam and ProtonUp-Qt again.

I've installed everything from Flatpak.

This is what I get: Screenshot from 2023-08-11 14-57-51

launching ProtonUp-Qt from terminal I get:


Python 3.10.6 (main, Nov 10 2011, 15:00:00) [GCC 12.2.0], PySide 6.4.3
Platform: KDE Flatpak runtime 5.15-21.08 Linux-6.4.9-200.fc38.x86_64-x86_64-with-glibc2.35
qt.qpa.qgnomeplatform: Could not find color scheme  ""
Loading locale en / en_US
Loaded ctmod GE-Proton
Loaded ctmod Wine-GE
Loaded ctmod Boxtron
Loaded ctmod D8VK (nightly)
Loaded ctmod Kron4ek Wine-Builds Vanilla
Loaded ctmod Lutris-Wine
Loaded ctmod Luxtorpeda
Loaded ctmod NorthStar Proton (TitanFall 2)
Loaded ctmod Proton Tkg
Loaded ctmod Proton Tkg (Wine Master)
Loaded ctmod Roberta
Loaded ctmod Steam-Play-None
cat: /etc/lsb-release: No such file or directory
Loaded ctmod SteamTinkerLaunch
cat: /etc/lsb-release: No such file or directory
Loaded ctmod SteamTinkerLaunch-git
Loaded ctmod vkd3d-lutris
Loaded ctmod vkd3d-proton
Loaded ctmod Wine Tkg (Valve Wine)
Loaded ctmod Wine Tkg (Vanilla Wine)
Loaded ctmod DXVK
Loaded ctmod DXVK Async
Loaded ctmod DXVK (nightly)
qt.pysideplugin: Environment variable PYSIDE_DESIGNER_PLUGINS is not set, bailing out.
qt.pysideplugin: No instance of QPyDesignerCustomWidgetCollection was found.
Gamepad error: No gamepad found.
qt.pysideplugin: No instance of QPyDesignerCustomWidgetCollection was found.
qt.pysideplugin: No instance of QPyDesignerCustomWidgetCollection was found.
qt.pysideplugin: No instance of QPyDesignerCustomWidgetCollection was found.
`

Avanced Mode:
![Screenshot from 2023-08-11 14-59-21](https://github.com/DavidoTek/ProtonUp-Qt/assets/82404704/55d18185-649d-40f7-986e-57fef9820b76)
IoSonoPiero commented 11 months ago

Wait, there's more. I've tried to enable via Gnome Software Boxtron: Boxtron1

The result in Steam: Boxtron2

So, I did the same with SteamTinkerLaunch: SteamTinkerLaunch1

Sigh, the result: SteamTinkerLaunch2

sonic2kk commented 11 months ago

Your last message is unrelated to ProtonUp-Qt, and probably requires the workaround in the Flatpak issue you linked.

Please note that using Gnome Software and ProtonUp-Qt do entirely different actions 🙂 They're two entirely separate pieces of software and any issues with it aren't related to ProtonUp-Qt.

IoSonoPiero commented 11 months ago

I installed the flatpacks from Gnome Software which prevents me from going to flathub and installing from there. I understand the difference, sure.

IoSonoPiero commented 11 months ago

I installed from flathub (via Gnome Software) Steam and ProtonUp-Qt and SteamTinkerLaunch, too.

DavidoTek commented 11 months ago

Or since from ProtonUp-Qt this will probably not install Flatpak STL, maybe STL is hidden for that reason when the user is using Flatpak Steam? I'm not sure of the logic around that.

Oh, yes, that's probably the reason.

ProtonUp-Qt currently only supports installing SteamTinkerLaunch if the native (e.g. .deb/AUR) version of Steam is installed, but not if Steam is installed via Flatpak.

See reference native-only: https://github.com/DavidoTek/ProtonUp-Qt/blob/5d36e3302f5679cf3000f8c377f4ae2ed26c26e0/pupgui2/resources/ctmods/ctmod_steamtinkerlaunch.py#L18

I guess we could add support for installing SteamTinkerLaunch for Steam Flatpak in the future. Cannot thing of the exact reason why we haven't done this yet, probably because there was some difficulty running the STL installer in the Steam Flatpak Sandbox (maybe missing dependencies, I have to look that up in the old PR...)

IoSonoPiero commented 11 months ago

ProtonUp-Qt currently only supports installing SteamTinkerLaunch if the native (e.g. .deb/AUR) version of Steam is installed, but not if Steam is installed via Flatpak.

What? Yesterday, I installed it via ProtonUp-Qt! I don't remember installing ProtonUp-Qt with rpm. So, how did I install STL via ProtonUp-Qt on my flatpak installed Steam? This is fascinating.

sonic2kk commented 11 months ago

@DavidoTek SteamTinkerLaunch is installed to Flatpak with an entirely separate package: https://github.com/flathub/com.valvesoftware.Steam.Utility.steamtinkerlaunch - The installation process is separate and run as part of the Flatpak installation itself. It has to be installed either from the commandline, or from a frontend that supports installing Flathub utilities (such as Gnome Software or KDE Discover - Flathub itself doesn't support this yet afaik).

Utilities for Steam Flatpak have to be installed as Flatpaks themselves if I recall correctly, which was the reason for creating STL Flatpak (there is no Flatpak STL that can be used with non-Flatpak Steam or vice versa, regular STL -> Packaged Steam, Flatpak STL -> Flatpak Steam).

There is currently an issue with Flatpak STL that appears to affect a growing amount of systems, see https://github.com/flathub/com.valvesoftware.Steam.Utility.steamtinkerlaunch/issues/110 - But this is independent from ProtonUp-Qt


@IoSonoPiero I am actually not sure how you managed to install it either, I also found this strange :-) but it wouldn't have installed to Flatpak Steam I don't think. At least if it did, installing via ProtonUp-Qt would not work. See the Steam Flatpak installation instructions on the SteamTinkerLaunch wiki.

You could check if you have/had a Steam installation at ~/.steam/root/compatibilitytools.d where ProtonUp-Qt may have tried to detect a package manager Steam installation and installed SteamTinkerLaunch there.

IoSonoPiero commented 11 months ago

That's incredible. I used Proton to install STL to play in multiplayer with BeamNG.Drive with my son.

I tried to use Wine, then I followed this, but I need to remember how I did it. I'll update you as soon (I hope) as I understand how I did.

sonic2kk commented 10 months ago

What is the behaviour for other Flatpak compatibility tools for Flatpak Steam? For example GE-Proton, what happens with it? It's been over a year since the STL PR so I forget exactly but I thought I remembered hearing it just opens a software center application like GNOME Software or KDE Discover.

In other words, if we just removed native-only from the SteamTinkerLaunch compat tool, what would happen? Other compatibility tools for Flatpak Steam as far as I know have to be installed as Flatpaks, which is why there is a GE-Proton Flatpak and others under com.valvesoftware.Steam.Utilities.*. This is my understanding as to why STL had to be packaged as a Flatpak for Flatpak Steam.

In pupgui2.py I can see there is a btn_steam_flatpak_ctools_clicked option, and that under this along with GE-Proton and Boxtron, STL is also listed: https://github.com/DavidoTek/ProtonUp-Qt/blob/main/pupgui2/pupgui2.py#L432-L434

btn_dl_stl.clicked.connect(lambda: os.system(f'xdg-open {STEAM_STL_FLATPAK_APPSTREAM}'))

Where that constant points that looks like the correct AppStream URI: appstream://com.valvesoftware.Steam.Utility.steamtinkerlaunch


If there is risk of the STL script being ran from Flatpak Steam, we could modify the ctool to ignore if the user is using Flatpak Steam perhaps. Just looking for ways to potentially fix this :smile:

DavidoTek commented 10 months ago

What is the behaviour for other Flatpak compatibility tools for Flatpak Steam?

Other compatibility tools like GE-Proton can be installed just fine using ProtonUp-Qt for Steam Flatpak. There is the option to install GE-Proton as a Flatpak, but that is just a convenience in case you only want the latest version from Flathub to be automatically installed.

In other words, if we just removed native-only from the SteamTinkerLaunch compat tool, what would happen?

I think the reason we added native-only is that the STL installer requires some dependencies that are simply not included in Steam's flatpak runtime. Running code outside the runtime is also not supported, or at least not recommended.


It's probably best to leave it as is for now, as the Flatpak version of STL should do the job just fine.

sonic2kk commented 6 months ago

Since #343 is touching some of the code around Flatpak support, it put this issue back into my mind. Is there any remaining work to do here? I re-read the discussion and I'm not sure what would be left to do here.

Regular SteamTinkerLaunch cannot be used with Steam Flatpak, Flatpak SteamTinkerLaunch was created for this reason; as far as I understand it is the only way to use SteamTinkerLaunch with Flatpak Steam. I am not sure of the specifics but I don't have any plans to try support regular SteamTinkerLaunch with Flatpak Steam, and in fact as far as I understand it doesn't really work, which is why Flatpak SteamTinkerLaunch was created. I don't use Flatpak Steam so I don't know the whys and hows, but it was discussed at length in sonic2kk/steamtinkerlaunch#27.

Flatpak SteamTinkerLaunch can be installed from appstream already with ProtonUp-Qt I believe, within btn_steam_flatpak_ctools_clicked which will open the Appstream URI with an installed appstore such as KDE DIscover or GNOME Software. This should work I believe since all it does is open whatever program is set up to handle appstream links, the same way as we do for GE-Proton and Boxtron. I haven't tested if this works as I don't have Flatpak Steam on any of my machines, although running the command manually with a hardcoded path in a Python shell does open Discover on my machine.

If there's anything left I'd be happy to try lend a hand :-)