首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash脚本中的xset不起作用

bash脚本中的xset不起作用
EN

Stack Overflow用户
提问于 2018-07-02 06:13:29
回答 1查看 585关注 0票数 2

一个小背景:我也想在我的笔记本电脑上和我的桌面上使用i3lock的包装器脚本。

所以,正如标题所说,我可以使用

代码语言:javascript
复制
xset dpms 2

在shell中,它做了它应该做的事情,但是当我在脚本中使用它时,例如

代码语言:javascript
复制
#!/bin/sh

revert() {
    xset dpms 0 
}

trap revert INT 
xset dpms 2
i3lock "$@"
revert

它不会变戏法。

使用bash -x,我可以得到输出

代码语言:javascript
复制
+ trap revert INT
+ xset dpms 2
+ i3lock
+ revert
+ xset dpms 0

我不确定问题出在哪里。当我在第一行放入#!/bin/bash而不是#!/bin/sh时也是一样的。

EN

回答 1

Stack Overflow用户

发布于 2021-06-25 22:08:52

我只是偶然发现了同样的问题,并最终使用i3lock的-n开关(nofork)修复了它。

令人兴奋的是,dpm设置为3,然后启动并派生i3lock,之后立即调用revert函数,而i3lock仍在运行,从而取消了对xset的第一次调用。

使用i3lock -n可以防止这种行为,确保只有当i3lock退出时,脚本才会继续越过i3lock行。

只需用i3lock -n "$@"替换i3lock "$@",它应该可以正常工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51127374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档