非Steamゲームを起動するためのパラメータ
Steamでは、非SteamゲームとしてLinuxのSteamで任意のゲームを実行することができる。非Steamゲームのプロパティにはショートカットというセクションがあって、起動パラメータが設定できる。
- リンク先(Target)
- 作業フォルダ(Start In)
- 起動オプション(Launch Options)
作用する順番は、まず 起動オプション が展開される。ここで %command% を含む場合は %command% に リンク先 を展開する。%command% を含まない場合は リンク先 の末尾に 起動オプション を追加する。
次に、上記で展開して作成したコマンド文字列を sh -c にそのまま渡す。そのため、リンク先 に空白や特殊文字を含む場合は都度エスケープしなければならない。例えばエスケープをしていない状態で実行すると
sh -c 'DRI_PRIME=1 /home/lufia/.var/Steam/steamapps/common/Mini Game/bin/start.exe'のように展開されるが、そうするとコマンド文字列が /Mini で切れてしまうので正しく実行できない。これはおそらく、DRI_PRIME を渡している様子からも分かるように、オプションや環境変数も渡されることが想定されているのだろう。そのため、正しい リンク先 の設定は次のようになる。
/home/lufia/.var/Steam/steamapps/common/Mini\ Game/bin/start.exeただし、作業フォルダ はそのまま chdir(2) に渡されるのでエスケープしてはいけない。