Ubuntu 14.04 引入新的锁屏看起来与登录屏幕类似。
我仍然能够使用命令锁定屏幕gnome-screensaver-command --lock
(就像我以前一直做的那样),在 14.04 下确实可以锁定屏幕,但是:
- 如果您从桌面运行它,它会使用新的锁屏来锁定屏幕。
- 如果你从虚拟控制台或通过 SSH 运行它,它会使用旧锁屏。
我也尝试过使用xdg-screensaver lock
,但它的工作方式与 相同gnome-screensaver-command --lock
(仅当从桌面运行时才使用新的锁屏)。
由于未安装light-locker-command --lock
,因此无法运行。light-locker
我猜测从桌面运行相同的命令和通过 SSH/虚拟控制台运行相同的命令之间肯定存在一些差异,但我无法在环境变量中发现任何差异。
所以,我的问题是:如何使用新的 Unity 锁屏而不是命令行中的旧锁屏来锁定屏幕?
这个问题可能与之相关,因为它要求使用新的命令,所以这里还有另一个问题:为什么运行相同的锁定命令会产生不同的结果?
请注意gnome-screensaver
,根据此错误报告:
这实际上不是一个 gnome-screensaver 错误,该组件已在 trusty 中停止使用。
答案1
我没有gnome-screensaver
安装,我发现唯一有效的命令是:
dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
答案2
我最近发现它
xdg-screensaver lock
也有效并且也是一个相当简单的解决方案!
答案3
接受的答案有正确的想法,除了锁屏与统一面板相关,而 org.gnome.ScreenSaver
显然是与 Gnome 相关的模式类型,所以它可能有效也可能无效。
然而 Unity 有一个 dbus 接口,我们只需要com.canonical.Unity.Session.Lock
像这样调用这个方法
qdbus com.canonical.Unity /com/canonical/Unity/Session com.canonical.Unity.Session.Lock
边注:
它与 Unity Panel 相关的证明很简单,当你锁定屏幕时,进程/usr/lib/unity/unity-panel-service
将变为/usr/lib/unity/unity-panel-service --lock-mode
从 tty1 观察到的。
答案4
您随时可以发送击键:xdotool key super+l
。