如何在 Ubuntu 中从屏幕保护程序直接唤醒到登录屏幕

如何在 Ubuntu 中从屏幕保护程序直接唤醒到登录屏幕

(又名如何在不输入密码的情况下切换用户,第二部分)(参见第一部分

我拥有 Ubuntu 9.10,其中有一个我妻子的用户帐户,还有一个我自己的用户帐户。“从屏幕保护程序唤醒”应该导致“选择用户”没有必须输入任何密码。我知道如何在 Windows 中执行此操作,但我还不擅长使用 Linux(目前)。

部分内容已在我之前的问题它帮助我无需密码即可通过登录屏幕(启动后,选择“切换用户”),但一旦屏幕保护程序启动,我再次唤醒它,系统就不会显示“选择用户”屏幕。相反,它要么关闭屏幕保护程序并显示最近用户的桌面,要么(如果屏幕保护程序设置为锁定屏幕)提示输入用户密码(可以通过单击“切换用户”按钮并再次选择同一用户轻松跳过此操作)。

因此,登录(“选择用户”)屏幕已经处理完毕。如何让(任何)屏幕保护程序在唤醒时返回到登录屏幕,而不是当前用户的桌面?Windows 可以做到这一点,我相信 Linux 也可以 - 但是如何做到呢?

答案1

你正在养成进行奇怪调整的习惯,不是吗?

无论如何,这个问题很奇怪,但很有趣。很抱歉,我没有完整的解决方案,但我发现了一些有趣的东西,值得一提。它们可能会给你一些想法,让你知道接下来该怎么做。

  • Gnome 屏幕保护程序常见问题解答表示当会话的空闲状态改变时,屏幕保护程序发出 DBus 信号:

    有没有办法在屏幕保护程序激活或停用时执行操作?或者在会话空闲时执行操作?

    一种方法是观察来自 gnome-screensaver 的 D-Bus 信号。(...)

    常见问题解答提供了一个例子dbus 监控命令:

    dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver',member='SessionIdleChanged'"
    

    尽管我相信界面成员对于 Ubuntu 9.10 来说,详细信息已经过时;正确的值似乎是接口=org.freedesktop.ConsoleKit.Session成员=IdleHintChanged. (见ConsoleKit 文档

    启用屏幕保护程序锁定后,空闲提示已改变信号发出密码已成功输入到解锁对话框中。

  • 命令gdmflexiserver-xnest可以从命令行使用以返回登录屏幕。它本身可以在您的 X 会话中运行,但您可以使用dbus 启动从 SSH 会话执行它:

    DISPLAY=:0 dbus-launch gdmflexiserver -xnest
    

    这将“激活” GDM 登录屏幕,而无需注销当前用户会话,就像“切换用户...”菜单选项确实如此(至少据我所知)。

诀窍是找到某种方法将这两者结合在一起。在我看来,你想要做的基本上是:

  1. 禁用屏幕保护程序锁定;
  2. 使用 DBus 注册一个监听器来监听空闲提示已改变在所有会话上发出信号;
  3. 让听众执行gdmflexiserver当检测到信号时发出命令。

需要执行步骤 1,这样您就不会收到密码提示。如果步骤 2 正常运行并且步骤 3 启动,则系统退出屏幕保护程序时,您都会看到登录窗口。但步骤 2 是我不确定该怎么做的。

答案2

我知道这个问题是几年前的了,但有些用户可能仍在寻找它。

人们可能更喜欢 Ubuntu 登录屏幕在唤醒时锁定屏幕(例如,甚至不显示加密主页上的壁纸),这在 Ubuntu 12.10 和 13.04 中是可能的(不确定早期版本)。

因此,要做到这一点,请打开Dconf 编辑器(预安装在 Ubuntu 12.10+)并转到:

组织>侏儒>桌面>屏幕保护程序

dbus-launch gdmflexiserver -xnest输入变量的命令 嵌入式键盘命令.然后检查嵌入式键盘启用对于相同的模式。

答案3

我必须在这里提供我自己的答案,那就是对于我所要求的问题显然没有(简单的)解决方案。

一个办法潜在存在,但并不完整,需要深入理解 Linux - 从第一个答案可以看出。因此,我认为这不是一个现成的答案,不值得接受。

问题:

如何让(任何)屏幕保护程序在唤醒时返回到登录屏幕,而不是当前用户的桌面?

答案:不可以。

相关内容