It's even enough to put %command% into launch options and try to join a lobbied game, to get failure
I am experiencing the same issue when trying to use a steam://connect/ link on any Valve games.
Something which might be related:
I can no longer use optirun %command% in the launch options, every time it seems to put /usr/lib32 higher in LD_LIBRARY_PATH and before the paths that optirun adds, so it loads the wrong libGL.so.1 first. It works fine with primusrun though.
This problem has been seen before. Its has been reported here: https://github.com/ValveSoftware/steam-for-linux/issues/3336
It has to do with the way steam orders the launch arguments. It does not place the connect argument inside the %command%, it just appends it to its launch string before it appends %command%.
On latest beta, if you try to use "Join Game" from profiles or friends list (or even using ~/.steam/steam.pipe) and you have launch options set for that particular game, startup fails with the following error (in case of Borderlands2):
Attaching strace to the steam process via
strace -f -e process -s 2555 -v -p $PIDshows
[pid 30566] execve("/bin/sh", ["/bin/sh", "-c", "+connect_lobby 12345678910 env SSL_CERT_DIR=/etc/ssl/certs \"$INSTPATH/Borderlands 2/./Borderlands2\""],Set launch options are
env SSL_CERT_DIR=/etc/ssl/certs %command%So it looks like steam does something like
$SHELL -c $COMMAND +connect_lobby $LID $LAUNCH_OPTIONSwith $COMMAND="" when launch options are set?
If clearing launch options, the result is a working
[pid 31109] execve("/bin/sh", ["/bin/sh", "-c", "\"$INSTPATH/Borderlands 2/./Borderlands2\" +connect_lobby 12345678910"]Probably, the invocation should be
$SHELL -c $COMMAND $LAUNCH_OPTIONS +connect_lobby $LIDAnd while we're at it, additional request for game settings and invocation: If game overlay is disabled, please stop LD_PRELOAD'ing gameoverlayrenderer.so. That is, don't pass it through the environment to that shell invocation.