Zagrios / bs-manager

An all-in-one tool that lets you easly manage BeatSaber versions, maps, mods, and even more.
GNU General Public License v3.0
522 stars 40 forks source link

[BUG] : AppImage does not launch via non-Steam shortcut (Steam Linux) #583

Open kevin-wijnen opened 4 hours ago

kevin-wijnen commented 4 hours ago

Bug Description

When trying to use the latest AppImage build on EndeavourOS (an Arch Linux system), I can launch the AppImage just fine via the Application Menu of KDE or by using Dolphin to execute it via the GUI.

However, I have noticed that trying to launch the AppImage as a non-Steam shortcut (to launch it through SteamVR to launch it via my headset) does not work. It simply hangs and does not start.

Reproduction Steps

  1. Open Steam
  2. Add BSManager (the AppImage) as a non-Steam shortcut
    • Go to Add Game > Add non-Steam game
  3. Launch the BSManager entry on Steam
  4. It does not boot, it simply hangs. (Steam can not force close the running process either.)

Expected Behavior

The AppImage should simply launch just like any other AppImage/app added via a non-Steam shortcut

Screenshots

image

System Specs

Additional context

The AppImage launches just fine through any GUI of KDE itself (Dolphin the file manager, and the Application Menu of the system).

silentrald commented 3 hours ago

@kevin-wijnen does running the AppImage in terminal/konsole work as well?

Will try to replicate it on my system if I encounter the same issue.

kevin-wijnen commented 3 hours ago

@kevin-wijnen does running the AppImage in terminal/konsole work as well?

Running it through Konsole does work (with the logs visible in the terminal) by just calling .</appimagePath/here.AppImage>. But I couldn't get the exec command to run the AppImage in a bash script (to have Steam run said script).

silentrald commented 3 hours ago

But is it possible to view your desktop screen on your VR Headset?

In my setup, I'm using ALVR which only shows the steam big picture view and the beat saber game, but i havent explored showing the desktop screen on this. Do you have a different setup for this or did I miss a feature in ALVR?

kevin-wijnen commented 3 hours ago

But is it possible to view your desktop screen on your VR Headset?

In my setup, I'm using ALVR which only shows the steam big picture view and the beat saber game, but i havent explored showing the desktop screen on this. Do you have a different setup for this or did I miss a feature in ALVR?

It should be possible if you are running on X11. But SteamVR has a bug that prevents Wayland systems from showing the desktop through the SteamVR's Desktop tab (which is in my case, sadly).

Despite this, it is possible to run 2D apps (e.g. non-VR 2D games) through the SteamVR's library screen (Big Picture Mode) with non-Steam shortcuts. That was my intended way to boot BSManager via VR.

silentrald commented 2 hours ago

Despite this, it is possible to run 2D apps (e.g. non-VR 2D games) through the SteamVR's library screen (Big Picture Mode) with non-Steam shortcuts. That was my intended way to boot BSManager via VR.

Hmmm, another solution is than rather running BSManager itself thru Steam, why not run the Custom Beat Saber Version within Steam instead? We're just running the proton binary with the Beat Saber executable and the mods should work if it was installed properly. Might send the cmdlet later after I've done testing it.


It should be possible if you are running on X11. But SteamVR has a bug that prevents Wayland systems from showing the desktop through the SteamVR's Desktop tab (which is in my case, sadly).

Just an off topic, you can run X11 server with a Wayland setup. That's what I've been doing with my Arch KDE Plasma setup. You just have to go thru tty login and run

# X11 server
startx /usr/bin/starplasma-x11

# Wayland
startplasma-wayland
kevin-wijnen commented 1 hour ago

Hmmm, another solution is than rather running BSManager itself thru Steam, why not run the Custom Beat Saber Version within Steam instead? We're just running the proton binary with the Beat Saber executable and the mods should work if it was installed properly. Might send the cmdlet later after I've done testing it.

I wanted to add BSManager to Steam to be able to just start SteamVR (via ALVR), boot up the launcher to do song adding etc. on the go before directly launching it through BSManager. To not have to switch to desktop in between to add in mods, new maps etc.

Making a script that points to the modded Beat Saber instance is a workaround I honestly didn't think of when writing the bug report. But I'd argue the bug might still be useful to solve, for those who want to launch BSManager through Steam directly. Or at least get proper attention in documentation, stating it is not a (currently) supported method of launching the launcher.


Just an off topic, you can run X11 server with a Wayland setup. That's what I've been doing with my Arch KDE Plasma setup. You just have to go thru tty login and run

# X11 server
startx /usr/bin/starplasma-x11

# Wayland
startplasma-wayland

I'm aware how to switch between both servers, but I prefer going full Wayland nowadays. I haven't tried the Desktop feature through an X11 session yet.

(For those with EndeavourOS, it is also possible to switch the sessions through a GUI by using SODIMM/the login screen by logging out and switching the option in the bottom right corner.)

kevin-wijnen commented 1 hour ago

Hmmm, another solution is than rather running BSManager itself thru Steam, why not run the Custom Beat Saber Version within Steam instead? We're just running the proton binary with the Beat Saber executable and the mods should work if it was installed properly. Might send the cmdlet later after I've done testing it.

Update: Making a non-Steam game shortcut to the modded instance's BeatSaber.exe launches briefly before shutting down and launching the Steam version. The issue seems to be known, but I'm not aware how BSManager itself avoids this behaviour by using Proton.

silentrald commented 11 minutes ago

Got a working prototype with just using a bash script but still ironing out the script itself since it looks very wonky but it works. Still missing some environment variables so will try to cross reference the one we are using in BSM.

#!/bin/bash

SteamAppId=620980 \
SteamOverlayGameId=620980 \
SteamGameId=620980 \
WINEDLLOVERIDES="winhttp=n,b" \
STEAM_COMPAT_DATA_PATH="/home/<user>/.steam/steam/steamapps/compatdata/620980" \
STEAM_COMPAT_INSTALL_PATH="/home/<user>/BSManager/BSInstances/1.37.1" \
STEAM_COMPAT_CLIENT_INSTALL_PATH="/home/<user>/.steam/steam" \
STEAM_COMPAT_APP_ID=620980 \
"/home/<user>/.steam/steam/steamapps/common/Proton 9.0 (Beta)/proton" run "/home/<user>/BSManager/BSInstances/1.37.1/Beat Saber.exe" --no-yeet fpfc

image


I wanted to add BSManager to Steam to be able to just start SteamVR (via ALVR), boot up the launcher to do song adding etc. on the go before directly launching it through BSManager. To not have to switch to desktop in between to add in mods, new maps etc.

I think this is pretty much hard to do since we're just using electronjs to present the application itself. I also tried to run the program with node and didn't work as well. Unless there is an integration where this can be ran and presented as a game in Steam, might just treat this as a limitation / known issue.

The documentation for linux stuff hasn't really started as well since linux in BSM is just new. It only started in 1.5.0-alpha.3 and this might be subjected to change as well. I'm just waiting for a full 1.5.0 release to add the documentation. You can pitch in with the docs if you can.