Refactor SteamOS session management and launcher scripts

- Removed obsolete launch_desktop.sh and launch_session.sh scripts.
- Introduced new steam-launcher script to handle Steam launching and session tracking.
- Added steam-short-session-tracker for monitoring short Steam sessions and triggering repairs.
- Created steamos and steamos-session scripts for managing the SteamOS session.
- Implemented steamos-session-select for switching between Gamescope and Plasma sessions.
- Updated SDDM configuration for autologin and session management.
- Added new systemd services and targets for managing Gamescope and Steam sessions.
- Created desktop entries and icons for ALVR and SteamOS shortcuts.
- Enhanced logging and error handling across scripts.
- Cleaned up unused systemd slice and service files.
- Updated Ansible playbook to reflect new configurations and file structures.
This commit is contained in:
2025-12-01 17:25:18 +01:00
parent edbe8fbf6f
commit b4f4fe2f07
33 changed files with 518 additions and 345 deletions
@@ -0,0 +1,22 @@
[Unit]
Description=Steam Launcher
After=gamescope-session.target
PartOf=gamescope-session.target
[Service]
ExecStart=steam-launcher
# Track short sessions to trigger a repair after enough failures
ExecStartPre=steam-short-session-tracker --track-started
ExecStopPost=steam-short-session-tracker --track-stopped
# To close properly we need to kill the child of the steam wrapper, as the wrapper itself does not forward signals
ExecStop=/bin/bash -c 'kill -TERM $(pgrep -P $MAINPID || echo $MAINPID)'
# Disable the term signal sent from systemd, as we we handle it manually above
# But still want systemd to kill the entire cgroup on timeout
KillSignal=SIGCONT
KillMode=mixed
TimeoutStopSec=60
Type=exec
EnvironmentFile=%t/gamescope-environment