SteamOS icon indicating copy to clipboard operation
SteamOS copied to clipboard

Feature request: execute user specified scripts before Steam startup

Open alkazar opened this issue 2 years ago • 4 comments

I would like to execute some user scripts on SteamOS BEFORE Steam is started.

The purpose of this is to be able to add non-Steam shortcuts and make other configuration adjustments automatically, such as assign specific Proton versions or set launch commands on games. These changes cannot be made while Steam is running.

Ideally, the session would run any script contained in a specific directory so that many different applications could easily take advantage of this functionality without conflicting with each other.

For example, the session could run any script under /home/deck/.config/startup.d/.

alkazar avatar May 24 '22 21:05 alkazar

Hi, you can already run things on startup by putting them on ~/.config/autostart, see here: https://wiki.archlinux.org/title/XDG_Autostart

If you want to have finer control about the order in which things are started you can create a systemd unit file, see here for details: https://wiki.archlinux.org/title/Systemd/User#Writing_user_units

bertogg avatar May 25 '22 10:05 bertogg

Hi, you can already run things on startup by putting them on ~/.config/autostart, see here: https://wiki.archlinux.org/title/XDG_Autostart

If you want to have finer control about the order in which things are started you can create a systemd unit file, see here for details: https://wiki.archlinux.org/title/Systemd/User#Writing_user_units

Thanks, but neither of these solve the problem because we need to ensure the scripts run before Steam does.

However, I noticed that /etc is writable if you have an admin password, so I might be able to create a system level one shot service. It might be tricky to have the scripts run after the network is up but before Steam runs, and have it gracefully fail when offline. Which is the reason I had discounted using a system service for this in the past.

alkazar avatar May 26 '22 11:05 alkazar

Thanks, but neither of these solve the problem because we need to ensure the scripts run before Steam does.

systemd allows you to specify the order in which services are started, see for example the Before and After options here https://www.freedesktop.org/software/systemd/man/systemd.unit.html

bertogg avatar May 26 '22 11:05 bertogg

Thanks, but neither of these solve the problem because we need to ensure the scripts run before Steam does.

systemd allows you to specify the order in which services are started, see for example the Before and After options here https://www.freedesktop.org/software/systemd/man/systemd.unit.html

Yes, but all user units will have naturally started after the Steam session does. But using a system service instead of a user service should be doable.

alkazar avatar May 26 '22 11:05 alkazar