Mar*_*nus 5 kde command-line lock-screen
我想编写一个 shell 脚本来禁用 KDE 屏幕锁定器,休眠一段时间,然后重新启用它。但我不知道控制屏幕锁的 shell 命令。我怎样才能做到这一点?
我一直在寻找同样的问题,我在这里找到了你的问题,但你的解决方案在 KDE Plasma 5.9 中未经修改就无法工作,所以我继续搜索并找到了你的博客文章。我已按照您的步骤进行操作并使其正常工作:
\n\nswitch-screenlocker() {\n enabled=""\n case "$1" in\n \'on\') enabled=\'true\' ;;\n \'off\') enabled=\'false\' ;;\n esac\n if [ -z "${enabled}" -o "$#" -ne 1 ]; then echo "Usage: $0 { on | off }"; return -1; fi\n sed -ni "/Autolock=.*/!{s/\\[Daemon]/[Daemon]\\nAutolock=${enabled}/;p}" ~/.config/kscreenlockerrc\n qdbus org.freedesktop.ScreenSaver /ScreenSaver configure\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n我已经改变了:
\n\n~/.kde/share/config/kscreensaverrc
\xe2\x86\x92~/.config/kscreenlockerrc
sed
更喜欢perl
,但重要的改变是让它Autolock=true
在配置中没有行时工作。kcmshell5 screenlocker
删除它,因为默认情况下假定它更新:\n似乎 5 分钟超时也是默认的,如果超时设置为五分钟并且启用了储物柜,则整个[Daemon]
部分可能会丢失。我没有找到一种方法来sed
轻松处理这种情况,但这里有一个awk
可以处理该情况的命令:
awk -i inplace \'function p(){set=1;print "[Daemon]\\nAutolock=\'${enabled}\'"}\n/\\[Daemon]/{p();next}\n/Autolock.*/{next}\n{print}\nENDFILE{if(!set){print "";p()}}\' ~/.config/kscreenlockerrc\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
3493 次 |
最近记录: |