如何使用命令行在 Ubuntu 14.04 LTS 中解锁屏幕

如何使用命令行在 Ubuntu 14.04 LTS 中解锁屏幕

当我使用 Ubuntu 12.04 时,当我点击桌面状态栏上的“锁定”按钮后,它会显示锁定的屏幕。我使用另一台计算机 ssh 到这台锁定的计算机。并使用命令

export DISPLAY=:0    
gnome-screensaver-command -d

解锁屏幕。效果很好。

但是现在,我将 Ubuntu 从 12.04 升级到 14.04。当我单击状态栏上的“锁定”按钮时,它将显示新的锁定屏幕,看起来像 unity-greeter。然后我使用与以前相同的命令:

export DISPLAY=:0    
gnome-screensaver-command -d

什么都没发生〜我无法通过命令解锁屏幕。

它看起来像是 Ubuntu 中的一个错误。https://bugs.launchpad.net/ubuntu/+source/gnome-screensaver/+bug/1307163

但有没有什么方法可以解决这个问题呢?

[更新]

我发现如果我们使用来自 ssh 的锁屏命令

export DISPLAY=:0
gnome-screensaver-command -l

它将显示 gnome 经典屏幕保护程序,就像 Ubuntu 12.04 一样。并且使用命令 gnome-screensaver-command -d 可以解锁屏幕。

那么,有没有办法在单击状态栏中的锁定按钮时切换到 gnome 经典屏幕保护程序?

附言,我努力了CompizConfig 设置管理器,没有更改锁屏的选项~~

答案1

一个解决方法是使用替代的屏幕保护程序,例如经典的 Linux屏幕保护程序. 可以使用命令行停用此功能

xscreensaver-command -deactivate

答案2

要通过终端锁定屏幕(适用于 Ubuntu 14.04 和 16.04),我使用:

dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock

因此要解锁它,可以这样做:

dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Unlock

不幸的是,我没有安装 SSH 来测试它。当屏幕已解锁且没有错误消息时,我可以从终端进行测试。

我确实找到了另一篇可以这样做的文章:

dbus-send --session --dest=org.gnome.ScreenSaver --type=method_call --print-reply --reply-timeout=20000 /org/gnome/ScreenSaver org.gnome.ScreenSaver.SetActive boolean:false

这里声称的优点是它不需要密码来解锁屏幕。完整线程在这里:(解锁 gnome-screensaver,而不是停用

答案3

不确定如何切换到 gnome-classical 屏幕保护程序,但是 gnome-screensaver-command 错误解决方法绝对有效:

首先,启用屏幕键盘:

gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true

首次登录时会出现屏幕键盘,但您可以将其关闭。
锁定屏幕(需要在启用屏幕键盘后进行)
现在gnome-screensaver-command -d可以解锁屏幕。

应该可以通过 ssh 与 14.04 配合使用:

export DISPLAY=:0
gnome-screensaver-command -d

对于 16.04,还需要设置 dbus 会话:

export DISPLAY=:0
export $(cat /proc/`pidof compiz`/environ | tr '\0' '\n' | grep DBUS_SESSION_BUS_ADDRESS )
gnome-screensaver-command -d

或者更好的是,只需使用 loginctl,而不需要任何解决方法:

loginctl unlock-sessions

相关内容