如何使用命令行中的新锁屏锁定屏幕?
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锁屏而不是命令行中的旧锁屏来锁定屏幕?
这个问题可能与它要求使用的新命令有关,所以这是另一个问题: 为什么运行相同的锁定命令会产生不同的结果?
请注意,根据此错误报告 ,在14.04中不再使用gnome-screensaver
:
这不是一个真正的gnome-screensaver错误,该组件停止在可信任中使用。
我没有安装gnome-screensaver
,我能找到的唯一命令就是:
dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
接受的答案有正确的想法,除了锁屏与统一面板相关,而org.gnome.ScreenSaver
显然是与Gnome相关的模式类型,因此它可能或可能不起作用。
但是Unity存在一个dbus接口,我们只需要调用这个方法com.canonical.Unity.Session.Lock
就像这样
qdbus com.canonical.Unity /com/canonical/Unity/Session com.canonical.Unity.Session.Lock
附注 :
certificate它与统一面板相关的事实很简单,当你屏幕被锁定时,进程/usr/lib/unity/unity-panel-service
将变为/usr/lib/unity/unity-panel-service --lock-mode
从tty1观察到的/usr/lib/unity/unity-panel-service --lock-mode
。
我最近发现xdg-screensaver lock
可以工作,也是一个非常简单的解决方案!
你总是可以发送击键: xdotool key super+l
。