我看过这个问题但它并不是自动的,我不想每次开始和停止玩游戏时都打开 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