如何从命令行使用新的锁屏锁定屏幕?


19

Ubuntu 14.04引入了一个新的锁屏,其外观类似于登录屏幕。

新锁屏

我仍然可以使用命令锁定屏幕gnome-screensaver-command --lock(就像我以前一直做的那样),在14.04下确实可以锁定屏幕,但是:

  • 如果从桌面运行它,它将使用新的锁屏锁定屏幕。
  • 如果您是从虚拟控制台或通过SSH运行它,它将使用旧的lockscreen锁定屏幕。

我也尝试过使用xdg-screensaver lock,但是它的工作方式与之相同gnome-screensaver-command --lock(仅当它从桌面运行时才使用新的锁屏)。

light-locker-command --lock无法运行,因为light-locker未安装。

我猜想从桌面运行同一命令和通过SSH /虚拟控制台运行它之间必须有一些区别,但是我无法在环境变量中找到任何区别。

因此,我的问题是:如何使用新的Unity锁屏而不是命令行的旧锁屏锁定屏幕?

这个问题可能是相关的,因为它询问需要使用的新命令,所以这是另一个问题:为什么运行相同的lock命令会产生不同的结果?

请注意gnome-screensaver,根据此错误报告,在14.04中不再使用该功能

那实际上不是一个gnome-screensaver错误,该组件已停止在trusty中使用。


2
我也想知道。使用dm-tool lock接近:它可以锁定屏幕,但是(不同于默认的Unity锁定屏幕)还可以切换用户。
Aibara 2014年

2
dm-tool lock并且dm-tool switch-to-greeter似乎在做同样的事情:将您带回到登录屏幕(迎宾员),它看起来确实类似于锁屏。
Lao Lam 2014年

Answers:


14

我尚未gnome-screensaver安装,并且我能找到的唯一命令是这样的:

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


5
qdbus org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
Aquarius

这在过去的工作,但在15.10好像不工作了:/
莱奥林

@LéoLam您正在使用livecd图像吗?我仍在使用14.04,但是我确实在15.10中测试了我的命令和Aquarius Power的命令,并使它们正常工作。但是,我必须启用锁定屏幕才能通过此命令运行它gsettings set org.gnome.desktop.lockdown disable-lock-screen false
Aibara

不,它是在真正的Ubuntu安装上。gsettings get org.gnome.desktop.lockdown disable-lock-screen返回false。现在,运行dbus-send时根本没有输出。也许需要gnome-screensaver才能起作用?
Lao Lam

1
请查看我的答案,也许15.10已放弃使用org.gnome.ScreenSaverdbus接口,所以与Unity的dbus接口进行通信可能是一个更好的主意
Sergiy Kolodyazhnyy

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

旁注

它与统一面板有关的事实的证明很简单,当您锁定屏幕时,该过程/usr/lib/unity/unity-panel-service将变为/usr/lib/unity/unity-panel-service --lock-mode从tty1观察到的那样。


这确实可以在图形会话中使用,但是即使在手动设置$ DISPLAY时也无法在SSH会话中使用。“服务'com.canonical.Unity'不存在。”。
黎奥林

这与DISPLAYvariable 无关,但与dbus有关。我不知道在ssh上Unity是否没有dbus会话,所以在这一部分我无能为力。我会问周围,但到目前为止,我可以说的太多了。
Sergiy Kolodyazhnyy

尝试在此dbus-launch --exit-with-session gnome-terminal之前运行。 serverfault.com/a/411326
Sergiy Kolodyazhnyy

也可以连接到X内运行的screen / tmux会话并从那里运行命令。我的最终解决方法是从vterm连接到正确的dbus会话。
Iiridayn


1

您始终可以发送击键:xdotool key super+l

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.