Как управлять настройками энергосбережения LightDM?

14

Я хочу, чтобы lightdm перешел в режим энергосбережения через определенный промежуток времени. Если я вошел в систему, то мой экран будет отключен в соответствии с настройками пользователя, однако, когда никто не вошел в систему, экран останется включенным навсегда.

Я просмотрел несколько постов, в которых даются некоторые предложения о том, что делать, но ни один из них, похоже, не работает, или это зависит от моего ограниченного знания Linux.

обновлено 02.06.2014: настройки, показанные 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это была бы правильная запись, но она не истекает, если я не вошел в систему как пользователь.

шотландец
источник
ОК - люди отметили это как повторение, но предложенное решение не работает для меня. Похоже, у меня не указаны те же настройки, что и в предлагаемом разрешении, и те, которые установлены для учетной записи lightdm, напрямую совпадают с моими, но экран не отключается, когда пользователь не вошел в систему как пользователь. Любые другие идеи о том, что происходит?
Скотти
2
Можете ли вы добавить, какую версию Ubuntu и какую версию дистрибутива / рабочего стола вы используете.
Матео
ты изучал laptop-mode-toolsили TLP? Первый запускает предварительно настроенные параметры энергосбережения и добавляет файл .conf для управления им, второй - стороннее приложение, которое я использую и очень хорошо работает (файл .conf очень хорошо объяснен)
MrVaykadji
Подтвержденная ошибка и исправленные ошибки. Launchpad.net/ubuntu/+source/unity-greeter/+bug/1237372
Брайам,

Ответы:

4

Это подтвержденная ошибка:

А баги тут вообще не по теме .

Во всяком случае, я нашел следующий обходной путь ( комментарий № 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 ).

/ И т.д. / 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 
) &

/ И т.д. / 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 устанавливается равным нулю для пользовательского сеанса, поэтому заставка работает правильно.

Раду Рэдяну
источник
Не уверен, можно ли пролить свет на то, почему это не работает после обновления до 14.04. Очевидно, что экран блокировки теперь другой, поэтому я подозреваю, что выше не работает. Идеи?
Скотти
Это не работает на Ubuntu 16.10 (lightdm + openbox).
XDG
1

Я создал файл в /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 в группу lightdm в / etc / group. Это избавит от необходимости создавать пользователя lightdm в dpms-start.

обкрадывать
источник
В приведенном выше скрипте есть синтаксические ошибки. Не могли бы вы исправить это?
Кенн