如何从命令行暂停以使屏幕锁定?


10

我正在使用Xubuntu 12.04。在电源管理器中,在进入挂起/休眠状态时,我已经检查了扩展->锁定屏幕。如果我选择从主菜单/面板1暂停,则屏幕被锁定。但是,如果使用dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend(请参阅如何从命令行挂起/休眠?;通过键盘快捷键使用此命令),则屏幕锁定。我如何(1)挂起系统(2)同时锁定屏幕(3)不需要root权限(因为我希望将命令分配给键盘快捷键)。

Answers:


10

您可以使用以下方法做到这一点:

gnome-screensaver-command --lock && dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend

在键盘快捷键中,您需要使用上面的命令进行sh -c "<command>"替换<command>,例如:

sh -c "gnome-screensaver-command --lock && dbus-send --system --print-reply --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend"

如果上述命令不起作用,您也可以尝试使用shell脚本文件(例如suspend_lockscreen.sh)。首先创建文件,然后在控制台中调用以下命令:

cd ~
echo "gnome-screensaver-command --lock" >> suspend_lockscreen.sh
echo "dbus-send --system --print-reply --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend" >> suspend_lockscreen.sh
chmod +x suspend_lockscreen.sh

这将在用户主文件夹中创建一个名为suspend_lockscreen.sh的文件。然后,在快捷方式中只需调用:./suspend_lockscreen.sh

注意:gnome-screensaver-command可以用替换xscreensaver-command,如一个评论中指出的那样。


不,它只会锁定屏幕,而不会根据我在回答中所做的评论而忘记暂停屏幕;)
Rinzwind,2012年

1
很好 我只是意识到gnome-screensaver-command也可以用替换它,xscreensaver-command因此不需要其他安装。没有这个&& dbus-send...部分,一个人只会得到一个锁(没有挂起)。有了它,人们就可以挂起并锁定唤醒功能。完善。
Marius Hofert'5

不幸的是,该命令从终端运行,而不是从我定义的键盘快捷键起作用:-(您知道可能是什么问题吗?
Marius Hofert 2012年

@MariusHofert我已经更新了如何使用键盘快捷键中的命令的答案。查看它是否按需工作。(我已经在Ubuntu 12.04中进行了测试,并且可以正常工作)。
amfcosta 2012年

仍然存在相同的问题:锁定有效;暂停不会(Xubuntu 12.04)
Marius Hofert 2012年

2

我正在使用amfcosta的dbus命令从命令行挂起。但是,恢复后,eth0下降了。

然后,我发现以下命令:

xfce4-session-logout --suspend

此命令将禁用网络,挂起,然后在计算机唤醒时重新启用网络。

xfce4-session-logout是特定于xfce的,但是其他桌面环境可能具有类似的*-session-logout命令。

我正在运行Xubuntu 14.04。

更新:这可能不会影响其他人,但事实证明,在我的Asus EEE 900上,有线以太网连接仅在EEE每次唤醒时才起作用。当然,这很烦人,这意味着暂停是不可用的。


1

在Ubuntu 15.10中,这也可以正常工作:

gnome-screensaver-command --lock && systemctl -i suspend

0

注意:xscreensaver-command唯一适用于选项-lock(带有1个连字符,而不是的两倍gnome-screensaver-command)。但是,该命令仅在屏幕保护程序正在运行时才起作用,因此不是很有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.