web-dev-qa-db-ja.com

Steam内から、ゲームの起動時にHUDホットキーを自動的に無効にし、ゲームの終了時に再び有効にする方法を教えてください。

私は この質問 を見てきましたが、それについて自動的なものは何もありません。ゲームを開始および停止するたびにGUIを開いて設定をいじろうとしているのではありません。

Steamでは、ゲームの起動オプションを編集することができます。たとえば、マルハナバチを使用して、起動オプションにprimusrun %command%を追加することにより、ラップトップのnvidiaカードを有効にします。ここでは、ゲームのプレイ中にHUDホットキーボタンを無効にし、後で再度有効にするために、開始スクリプトと終了スクリプト(またはいくつかのコマンドをつなぎ合わせるだけ)を呼び出すことができるはずです。 launchscript ; %command% ; endscriptに沿った何か。

つまり、HUDホットキーを有効または無効にするコマンドライン方法が必要です。 この回答 はCLIメソッドを示しています。私はこれを試しましたが、ターミナルからは動作しますが、Steam内の起動オプションを介して呼び出そうとしたときは動作しません。 bash -cで試してみると、区切り文字に関する問題が発生しますが、代わりにgsettingsを使用して解決します。

私は以下のすべてを試しましたが、成功しませんでした:

dconf write /org/compiz/integrated/show-hud '[""]' ; primusrun %command%

bash -c 'dconf write /org/compiz/integrated/show-hud '[""]'' ; primusrun %command%

bash -c 'dconf write /org/compiz/integrated/show-hud '[""]' ; primusrun %command%'

bash -c "dconf write /org/compiz/integrated/show-hud '[""]' ; primusrun %command%"

また、dconfではなくgsettingsを使用してみました。例えばbash -c 'gsettings set org.compiz.integrated show-hud '[""]'' ; primusrun %command%ですが、端末では機能しますが、起動オプションでは機能しません。

構文の問題が発生しているだけだと確信していますが、これを正しく機能させるにはどうすればよいですか?

2
Insperatus

primusrunが行われるようにスクリプトを作成しますnohudrun

#!/bin/sh

old_key="$(LD_LIBRARY_PATH=/usr/lib dconf read /org/compiz/integrated/show-hud)"
LD_LIBRARY_PATH=/usr/lib dconf write /org/compiz/integrated/show-hud "['']" 
"$@"
LD_LIBRARY_PATH=/usr/lib dconf write /org/compiz/integrated/show-hud "$old_key"

そして、それをそのように呼び出します:

nohudrun primusrun %command%

LD_LIBRARY_PATH =/usr/libは、dconfがx64ライブラリを見つけることができないため(おそらくより良い方法があるため)、Steamのx32環境から切り離すためのものです。それが「起動オプション」で失敗する原因だと思います。

また、いくつかのロックを追加して、そのスクリプトで複数のゲームが実行されたときにキーバインドを正しく復元できるようにすることもできます。

P。S。何が問題なのかを知る方法は? stderrをファイルに出力するだけです:

dconf write /org/compiz/integrated/show-hud "['']" 2>>/home/velkan/errr
1
Velkan