Closed LukeShortCloud closed 3 months ago
We are hiding the Steam download pop-up today by using a feature of X11 to run a detached display (via a detached tmux
session so it does not log output to the first-time setup log file).
steam_bootstrap() {
if [[ -f /usr/bin/steam ]]; then
tmux new-session -d -s steam 'xvfb-run --auto-servernum steam'
fi
}
steam_bootstrap
Red Hat has been working on a Wayland replacement for xvfb-run
called xwfb-run
.
https://lists.freedesktop.org/archives/wayland-devel/2023-November/043329.html
xwfb-run
is provided by the xwayland-run
project.
https://gitlab.freedesktop.org/ofourdan/xwayland-run/-/blob/main/src/xwfb-run.py?ref_type=heads https://aur.archlinux.org/packages/xwayland-run-git
I did a quick test. Notes so far:
xwayland-run-git
package also needs the optional weston
dependency installed.--auto-servernum
argument is available for backwards compatibility with scripts but it is a no-operation as it is not needed on Wayland.xwfb-run steam
from a terminal emulator works.tmux new-session -d -s steam 'xwfb-run --error-file /tmp/compositor.log steam
does not work.
(EE) failed to read Wayland events: Broken pipe
appears in the compositor error log.env -0 >/tmp/env
tmux new-session -d -s steam "modify_env /tmp/env && xwfb-run --error-file /tmp/compositor.log steam'"
https://tmux-users.narkive.com/6iQNRK60/need-tmux-to-inherit-and-pass-on-environment-to-a-subshell
Oddly enough, I found the only reliable way to get it working is by redirecting at least the standard error from the steam
command. We might as well redirect standard output, too.
tmux new-session -d -s steam 'xwfb-run steam &> /tmp/steam.log'
I opened up an upstream bug report regarding the need for standard error redirection: https://gitlab.freedesktop.org/ofourdan/xwayland-run/-/issues/7
KDE Plasma 6 defaults to the Wayland display server instead of Xorg. We want to move to this anyways. One problem this has is that we can no longer start a hidden background session of Steam during the first-time setup. That is used to automatically download the required bootstrap files for the Steam Gamescope session to work.
Related: https://github.com/LukeShortCloud/winesapOS/issues/742 Related: https://github.com/LukeShortCloud/winesapOS/issues/751 Related: https://github.com/LukeShortCloud/winesapOS/issues/782