我希望 lightdm 在特定时间段后进入省电模式。如果我已登录,则我的屏幕将根据用户设置超时,但是当无人登录时,屏幕将永远保持打开状态。
我看过一些帖子,它们对如何做提出了一些建议,但似乎都没有用,或者是因为我对 Linux 的了解有限。
更新于 2014/6/2:显示的设置sudo -H -u lightdm dbus-launch --exit-with-session gsettings list-recursively org.gnome.settings-daemon.plugins.power
如下:
org.gnome.settings-daemon.plugins.power active true
org.gnome.settings-daemon.plugins.power button-hibernate 'hibernate'
org.gnome.settings-daemon.plugins.power button-power 'interactive'
org.gnome.settings-daemon.plugins.power button-sleep 'suspend'
org.gnome.settings-daemon.plugins.power button-suspend 'suspend'
org.gnome.settings-daemon.plugins.power critical-battery-action 'suspend'
org.gnome.settings-daemon.plugins.power idle-brightness 30
org.gnome.settings-daemon.plugins.power idle-dim true
org.gnome.settings-daemon.plugins.power lid-close-ac-action 'suspend'
org.gnome.settings-daemon.plugins.power lid-close-battery-action 'suspend'
org.gnome.settings-daemon.plugins.power lid-close-suspend-with-external-monitor false
org.gnome.settings-daemon.plugins.power notify-perhaps-recall true
org.gnome.settings-daemon.plugins.power percentage-action 2
org.gnome.settings-daemon.plugins.power percentage-critical 3
org.gnome.settings-daemon.plugins.power percentage-low 10
org.gnome.settings-daemon.plugins.power priority 0
org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 120
org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'suspend'
org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout 0
org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'suspend'
org.gnome.settings-daemon.plugins.power time-action 120
org.gnome.settings-daemon.plugins.power time-critical 300
org.gnome.settings-daemon.plugins.power time-low 1200
org.gnome.settings-daemon.plugins.power use-time-for-policy true
我本来以为这sleep-inactive-ac-timeout 120
是正确的条目,但除非我实际以用户身份登录,否则它不会超时。
答案1
这是一个已确认的错误:
- https://bugs.launchpad.net/ubuntu-power-consumption/+bug/1245474
- https://bugs.launchpad.net/ubuntu/+source/unity-greeter/+bug/1237372
- 和别的
一般来说,与主题无关。
无论如何,我找到了以下解决方法(评论#33与……相关错误 #1245474)对我有用:
[...]我添加了一个脚本来处理用户登录时关闭 X dpms 超时的问题。下面是我创建的三个文件。首先是配置文件:
/etc/lightdm/lightdm.conf.d/50-dpms.conf
[SeatDefaults] display-setup-script=/etc/lightdm/dpms-enable session-setup-script=/etc/lightdm/dpms-disable
确保上述内容由 root 拥有。最简单的方法是使用 sudoedit 创建它。
接下来是两个脚本。它们需要由 root 拥有并可执行 (
chmod +x
)。/etc/lightdm/dpms 启用
#!/bin/sh ( # This delay is required. Might be because the X server isn't # started yet. sleep 10 # Set up a 5 minute timeout before powering off the display. xset dpms 0 0 300 ) &
/etc/lightdm/dpms-禁用
#!/bin/sh ( # This delay is required. Might be because the X server isn't # started yet. sleep 10 # Turn off X's handling of dpms timeout. Otherwise # gnome-settings-daemon and gnome-screensaver will fight over it. xset dpms 0 0 0 ) &
鉴于上述情况,我在登录屏幕上关闭了显示器电源,并且用户会话的 dpms 超时设置为零,因此屏幕保护程序正常工作。
答案2
/etc/lightdm/lightdm.conf.d/
我在名为中创建了一个名为 的文件50-dpms.conf
。
[SeatDefaults]
display-setup-script=/usr/local/bin/dpms-start
dpms-start 文件是一个允许用户lightdm
启用 dpms 的脚本。
#!/bin/sh
sudo xhost +si:localuser:lightdm # creates a user 'lightdm'
sudo su lightdm -s /bin/bash <<HERE # lightdm starts dpms from HERE
/usr/bin/xset +dpms
exit
HERE # and stops at this HERE
确保键入sudo chmod +x /etc/lightdm/lightdm.conf.d/dpms-start
以使其可执行。在 Ubuntu 14.04 中,我将其与 Unity 和 Cinnamon 一起使用,并将 Unity-Greeter 用于锁定屏幕。我不使用 Synergy 在 lightdm 中实现多显示器。另一种方法是将 root 添加到 /etc/group 中的 lightdm 组。这样就无需在 dpms-start 中创建 lightdm 用户。