Tor*_*uun 6 linux screensaver ubuntu-9.10 login-screen
(又名如何在不输入密码的情况下切换用户,第二部分)(参见第一部分)
我有一个 Ubuntu 9.10,我的妻子有一个用户帐户,我自己有一个。“从屏幕保护程序唤醒”应该导致“选择用户”而无需输入任何密码。我知道如何在 Windows 中做到这一点,但我不擅长 Linux(目前)。
部分问题在我之前的问题中得到了回答,该问题帮助我在没有密码的情况下通过了登录屏幕(在启动后,并在选择“切换用户”后),但是一旦屏幕保护程序启动并再次唤醒它,系统就不会出现“选择用户”屏幕。相反,它要么关闭屏幕保护程序并显示最近用户的桌面,要么(如果屏幕保护程序设置为锁定屏幕)提示输入用户密码(可以通过单击“切换用户”按钮和再次选择同一个用户)。
因此,登录(“选择用户”)屏幕已经处理完毕。如何让(任何)屏幕保护程序在唤醒时返回登录屏幕,而不是当前用户的桌面?Windows 可以做到这一点,我相信 Linux 也可以——但是怎么做呢?
你已经养成了奇怪调整的习惯,不是吗?
不管怎样,这件事很奇怪,但很有趣。很抱歉,我没有完整的解决方案,但我发现了一些值得回应的有趣项目。他们可能会给您一些关于下一步该何去何从的想法。
Gnome-Screensaver 的常见问题解答指出,当会话的空闲状态发生变化时,屏幕保护程序会发出 DBus 信号:
有没有办法在屏幕保护程序激活或停用时执行操作?或者当会话空闲时?
一种方法是观察来自 gnome-screensaver 的 D-Bus 信号。(...)
FAQ 提供了一个示例dbus-monitor命令:
dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver',member='SessionIdleChanged'"
Run Code Online (Sandbox Code Playgroud)
尽管我认为Ubuntu 9.10 的界面和成员详细信息已经过时;正确的值似乎是interface=org.freedesktop.ConsoleKit.Session和member=IdleHintChanged。(请参阅ConsoleKit 文档。)
当启用屏保锁定时,在解锁对话框中成功输入密码后,会发出IdleHintChanged信号。
可以从命令行使用命令gdmflexiserver -xnest返回登录屏幕。它本身在您的 X 会话中工作,但您可以使用dbus-launch从 SSH 会话中执行它:
DISPLAY=:0 dbus-launch gdmflexiserver -xnest
Run Code Online (Sandbox Code Playgroud)
这会“激活”GDM 登录屏幕,而无需注销当前用户会话,就像“切换用户...”菜单选项一样(至少据我所知)。
诀窍是找到某种方法将这两者粘合在一起。在我看来,你想做的基本上是:
需要执行第 1 步,这样您就不会收到密码提示。如果步骤 2 工作正常并且步骤 3 开始,您将在系统退出屏幕保护程序时看到登录窗口。但第二步我不知道该怎么做。