当前位置: 首页>>技术教程>>正文


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

, , ,

问题描述

Ubuntu 14.04 引入了看起来类似于登录屏幕的 a new lockscreen

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

  • 如果您从桌面运行它,它会使用新的锁屏锁定屏幕。

  • 如果您从虚拟控制台或通过 SSH 运行它,它会使用旧锁屏锁定屏幕。

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

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

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

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

This question 可能是相关的,因为它要求使用需要使用的新命令,所以这是另一个问题:为什么运行相同的锁定命令会给出不同的结果?

请注意,根据 this bug reportgnome-screensaver 在 14.04 中不再使用:

\\n

That’s not really a gnome-screensaver bug, that component stopped being used in trusty.

\\n

最佳方法

我没有安装 gnome-screensaver,我能找到的唯一有效的命令是:

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

次佳方法

我最近发现\n xdg-screensaver lock \n 也可以工作并且也是一个非常简单的解决方案!

第三种方法

接受的答案有正确的想法,除了锁屏与统一面板有关,而 org.gnome.ScreenSaver 显然是 Gnome-related 类型的架构,因此它可能会或可能不会工作。

然而,存在一个用于 Unity 的 dbus 接口,我们只需要像这样调用此方法 com.canonical.Unity.Session.Lock

qdbus com.canonical.Unity  /com/canonical/Unity/Session com.canonical.Unity.Session.Lock

边注:

它与统一面板相关的事实证明很简单,当您锁定屏幕时,从 tty1 观察到,进程 /usr/lib/unity/unity-panel-service 将更改为 /usr/lib/unity/unity-panel-service --lock-mode

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/13705.html,未经允许,请勿转载。