Hur man startar Steam-spel via Rofi
Jag hade en kort period förra året när jag hade tid att spela lite datorspel. Dessvärre är Steams klient, rent av avskyvärd. Jag undersökte därför om det gick att använda sig av någon alternativ metod för att starta mina spel, exempelvis via ett skalkommando.
Vilket det—till min stora förvåning och glädje—också gjorde! Steam har tydligen stöd för lite skalkommandon, men det enda kommando som jag var intresserad av, var det som kunde startade mina spel:
$ com.valvesoftware.Steam steam://rungameid/<ID>
Och om man använder Flatpak för Steam:
$ flatpak run com.valvesoftware.Steam steam://rungameid/<ID>
Hur man hittar rätt ID för sina spel
I ditt Steam-bibliotek, när du högerklickar på ett av spelen, kommer Steam då att skapa en .desktop
-fil för just det spelet i mappen $HOME/.var/app/com.valvesoftware.Steam/Desktop/
. I .desktop
-filen för ditt spel, hittar du följande rad:
Exec=steam steam://rungameid/<ID>
Som du säkerligen kan gissa, är det just det ID:t som du vill använda dig av.
Mitt Steam-plugin för Rofi
Här är mitt Steam-plugin för Rofi:
Och här har du koden för det:
#!/bin/sh
DIR="/home/$( whoami )/.var/app/com.valvesoftware.Steam/Desktop"
handle_selection() {
if [ "$1" ]; then
ID="$(grep -oP '(?<=rungameid/).*' "$DIR"/"$1".desktop)"
flatpak run com.valvesoftware.Steam steam://rungameid/"$ID"
notify-send "Steam" "Launching the game \"$1\""
fi
}
handle_selection "$( cd "$DIR" || exit; ls -t | sed 's/\.desktop//' | rofi -dmenu -i -p 'Launch game')"
Om man inte använder Flatpak, får man ta bort delen flatpak run
från kommandot.