我在笔记本电脑(Acer B115-M)上运行 Xubuntu 20.04。我希望有以下与锁定屏幕和屏幕保护程序相关的行为:
- Ctrl+ Alt+ Del,也就是
xflock4
应该锁定屏幕并将其关闭 - 屏幕保护程序应该只关闭屏幕,而不是显示空白屏幕,然后等待一段时间以 dpms 暂停它。
我尝试设置/general/LockCommand
哪种xset dpms force suspend
方式有效。我暂停了屏幕,但几秒钟后它又恢复了。我确信这有效,因为xset dpms force suspend
命令行完全符合我的要求:它暂停显示,如果你触摸一个键,它就会打开,然后直接进入锁定屏幕。
你能帮助我实现我所描述的行为吗?
答案1
如果你设置/general/LockCommand
为
sh -c 'xfce4-screensaver-command --lock; sleep 0.5; xset dpms force suspend'
(我添加了一点延迟,以便您的鼠标/键盘活动不会立即打开显示。)
答案2
原因是( ++操作/usr/bin/xflock4
后面的脚本)不处理 DPMS,如您所见,如果存在则它使用命令,否则它会回退到使用 5 种不同的 *-screensave-command:CtrlAltDel/general/LockCommand
# Wait a bit so that user have time to raise finger from a key if
# the script is run in terminal.
[ -t 0 ] && sleep 1
# First test for the command set in the session's xfconf channel
LOCK_CMD=$(xfconf-query -c xfce4-session -p /general/LockCommand)
if [ -n "$LOCK_CMD" ]; then
/bin/sh -c "$LOCK_CMD" && exit
exit_code=$?
>&2 printf "'%s' exited with status %d\n" "$LOCK_CMD" $exit_code
exit $exit_code
fi
for lock_cmd in \
xscreensaver-command \
light-locker-command \
xfce4-screensaver-command \
gnome-screensaver-command \
mate-screensaver-command
do
$lock_cmd --lock </dev/null 2>/dev/null && exit
done
# else access locking failed
exit 1
仅仅为了关闭 DPMS而覆盖LockCommand
此字段将导致不运行实际的锁定命令,因此会导致奇怪的问题。
/usr/sbin/dpms-then-xflock4
我的方法(或解决方法)是使用文件模式 0755(即可执行文件)创建:
#!/bin/sh
/usr/bin/xset dpms force off
exec /usr/bin/xflock4
然后设置Ctrl++Alt和+ L(或任何你喜欢的)来运行此命令,如这张截图:SuperCtrl
一旦按下Ctrl+ Alt+ L,该脚本将首先要求关闭 DPMS,然后要求xflock4
完成其余操作(即实际的“锁定”)。
已在我的桌面 Xubuntu 22.04 (XFCE 4.18) 上进行了测试。
我尝试过其他方法,例如将“屏幕保护程序首选项 - 屏幕键盘 - 屏幕键盘命令”设置为,但它并不总是有效,例如,如果您在后台播放 YouTube/Twitch 之类/usr/sbin/dpms-then-xflock4
的内容(即播放时屏幕保护程序暂时被禁用)。这是因为Ctrl++仍然先调用,而不是调用“屏幕键盘命令”。AltLxflock4