Hund

Hur man startar Steam-spel via Rofi

Torsdag, 15 December 2022

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:

Rofi med mitt Steam-plugin

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.

Meta

Återkoppling

Om du vill kommentera eller återkoppla till inlägget, går det bra att göra det genom att skicka mig ett meddelande via e-post, XMPP eller via IRC.