在 Steam 中,如何在游戏启动时自动禁用 HUD 热键,并在游戏关闭时重新启用它?

在 Steam 中,如何在游戏启动时自动禁用 HUD 热键,并在游戏关闭时重新启用它?

我看过这个问题但它并不是自动的,我不想每次开始和停止玩游戏时都打开 GUI 并摆弄设置。

在 Steam 中,可以编辑游戏的启动选项。例如,我使用 bumblebee 通过添加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%"

我也尝试过使用 gsettings 而不是 dconf。例如,bash -c 'gsettings set org.compiz.integrated show-hud '[""]'' ; primusrun %command%但它再次在终端中起作用,而不是在启动选项中起作用。

我很确定我只是遇到了语法问题,我怎样才能让它正常工作?

答案1

制作脚本诺胡德伦普里默斯润已经完成了:

#!/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 用于脱离 Steam 的 x32 环境,因为 dconf 找不到 x64 库(也许有更好的方法)。我认为这就是它在“启动选项”中失败的原因。

您还可以添加一些锁定,以便在通过该脚本运行多个游戏时能够正确恢复键绑定。

附言如何知道哪里出了问题?只需将 stderr 打印到文件即可:

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

相关内容