Atualizar : encontrou uma solução melhor usando systemd
sem scripts externos. Crie e ative o seguinte serviço:
[Unit]
Description=Save brightness on suspend
DefaultDependencies=no
RequiresMountsFor=/var/lib/systemd/backlight
Before=sleep.target
StopWhenUnneeded=yes
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/lib/systemd/systemd-backlight save acpi_video0
ExecStop=/lib/systemd/systemd-backlight load acpi_video0
TimeoutSec=90s
[Install]
WantedBy=sleep.target
Ubuntu 16.04 Nota : o nome do dispositivo de retroiluminação de destino deve ter o prefixo "backlight:" (por exemplo, backlight:acpi_video0
).
Ative executando: systemctl enable suspend-save-backlight.service
(ou o que você quiser). Observe que acpi_video0 é o nome do link simbólico da luz de fundo em /sys/class/backlight
, usado para controlar o brilho da tela, que pode variar em sistemas diferentes.
O exemplo acima usa o executável systemd-backlight
do systemd para salvar e carregar o brilho antes de suspender e depois do reinício, respectivamente (inspirado em /lib/systemd/system/[email protected]
, que salva / carrega o brilho na reinicialização / inicialização).
Solução antiga (vincula um serviço systemd
ao meu gancho de suspensão pm-utils)
Encontrou o problema. De acordo com este artigo do ArchWiki :
O systemd não usa o pm-utils para colocar a máquina em repouso ao usar systemctl suspend, systemctl hibernate ou systemctl hybrid-sleep; Os ganchos do pm-utils, incluindo quaisquer ganchos personalizados , não serão executados. No entanto, o systemd fornece dois mecanismos semelhantes para executar scripts personalizados nesses eventos.
Portanto, a maneira correta de fazer isso com systemd
(que é usado por padrão em 15.04) é criar os seguintes arquivos de serviço que executam meu script de controle de brilho em /etc/pm/sleep.d/
da seguinte forma:
-
/etc/systemd/system/root-suspend.service
:[Unit] Description=Local system suspend actions Before=sleep.target [Service] Type=simple ExecStart=-/etc/pm/sleep.d/nvidiabl_brightness suspend [Install] WantedBy=sleep.target
-
/etc/systemd/system/root-resume.service
:[Unit] Description=Local system resume actions After=suspend.target [Service] Type=simple ExecStart=-/etc/pm/sleep.d/nvidiabl_brightness resume [Install] WantedBy=suspend.target
Em seguida, execute o seguinte para ativar esses serviços:
systemctl enable root-suspend.service
systemctl enable root-resume.service
Consulte o artigo vinculado para mais detalhes.