Introdução
Esta é uma solução bash sem necessidade de instalar programas adicionais. É necessária uma ligação à Internet (se estiver a ler isto, tem uma) para obter automaticamente as horas do nascer e do pôr-do-sol todos os dias. Ele fornece uma tela de configuração amigável. Ele é iniciado automaticamente com cron
e não requer interação do usuário.
Esta resposta está dividida em várias partes
- Obter automaticamente as horas do nascer e do pôr do sol todos os dias com
cron
- Definir configurações de brilho e tempo de transição
- Script principal para ajustar o brilho com base na hora do dia
- Iniciar o brilho automático de exibição automaticamente a cada inicialização com
cron
- Ajuste de brilho instantâneo / transparente retomado da suspensão
- Resumo
Obtém automaticamente as horas do nascer e do pôr-do-sol todos os dias com o cron
Existem muitos sites para informar as horas do nascer e do pôr-do-sol da sua localização. Este script usa ( link ) que é um site bem conhecido há muito tempo.
Com o poder sudo, edite o arquivo /usr/local/bin/sun-hours
e cole o seguinte:
#!/bin/bash
# Called daily from /etc/cron.daily/sun-hours
while true; do
### "-q"= quiet, "-O-" pipe output
echo $(wget -q -O- https://www.timeanddate.com/sun/canada/edmonton | grep -oE 'Sunrise Today.{35}' | awk -F\> '{print }' | tr --delete "<") > /tmp/sunrise
echo $(wget -q -O- https://www.timeanddate.com/sun/canada/edmonton | grep -oE 'Sunset Today.{35}' | awk -F\> '{print }' | tr --delete "<") > /tmp/sunset
## If network is down files will have one byte size
size1=$(wc -c < /tmp/sunrise)
size2=$(wc -c < /tmp/sunset)
if [ $size1 -gt 1 ] && [ $size2 -gt 1 ] ; then
cp /tmp/sunrise /usr/local/bin/sunrise
cp /tmp/sunset /usr/local/bin/sunset
chmod 666 /usr/local/bin/sunrise
chmod 666 /usr/local/bin/sunset
rm /tmp/sunrise
rm /tmp/sunset
exit 0
else
logger "/etc/cron.daily/sun-hours: Network is down. Waiting 5 minutes to try again."
sleep 300
fi
done
Antes de salvar o script, substitua as duas ocorrências de /canada/edmonton
pelo seu próprio país e cidade. Visite o site www.timeanddate.com
para obter o nome ou número exato. Por exemplo, "Paris, EUA" tem dezenas de nomes, então eles contêm um número como /worldclock/@5205082
para "Paris, PA, EUA".
Use o cron para executar o script sun-hours todos os dias
Com o poder sudo, edite o arquivo /etc/cron.daily/sun-hours
e cole o seguinte:
#!/bin/sh
#
# Each day /etc/cron.daily/sun-hours will get sunrise and sunset times.
sleep 60 # give time for network to come up.
/usr/local/bin/sun-hours
Marque os dois arquivos como executáveis com sudo chmod a+x ___/sun-hours
, em que "