gnome

Modo automático Luz/Escuridão

Alguém encontrou uma maneira de alternar automaticamente entre os modos "claro" e "escuro" ainda, com relação ao "Tema da janela" nas configurações do Ubuntu (Configurações → AparênciaTema da janelaClaro / Padrão / Escuro )?

Escavar as configurações todas as manhãs ou noites é uma verdadeira dor. Seria ótimo poder alternar automaticamente para o modo "escuro" ao pôr do sol e alternar automaticamente para o modo "claro" ao nascer do sol.

Para o GNOME, existe esta extensão de shell: Night Theme Switcher

Tem bastantes opções e já funciona fora da caixa,sem ter de configurar nada,mas a configuração também é directa!

Screenshot of the Schedule tab

Screenshot of the GTK theme tab




O comando terminal para mudar de tema é:

gsettings set org.gnome.desktop.interface gtk-theme Yaru-dark

para o tema Yaru-dark,e

gsettings set org.gnome.desktop.interface gtk-theme Yaru-light

para o tema Yaru-light.

Agora,há algo chamado cron-job para agendar trabalhos (basicamente executar algo,repetidamente em tempo específico).Assim,pode escrever um cron-job para executar estes comandos em horários específicos (algo como mudar para tema escuro às 21 horas e tema claro às 6 horas da manhã).

Adicione o seguinte a um arquivo chamado script.sh :

#!/bin/bash
echo export DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS > lightscript.sh
echo export DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS > darkscript.sh
echo "gsettings set org.gnome.desktop.interface gtk-theme Yaru-light" >> lightscript.sh
echo "gsettings set org.gnome.desktop.interface gtk-theme Yaru-dark" >> darkscript.sh
chmod 755 lightscript.sh
chmod 755 darkscript.sh

currenttime=$(date +%H:%M)
if [[ "$currenttime" > "21:00" ]] || [[ "$currenttime" < "06:00" ]]; then
  ./darkscript.sh
else
  ./lightscript.sh
fi

Tornar o ficheiro executável em execução:

chmod 755 /path/to/script.sh

or:

chmod +x /path/to/script.sh

Execute gnome-session-properties no terminal. Adicione um novo programa de inicialização clicando em adicionar no lado direito e selecionando o arquivo script.sh navegando e salve-o com algum nome e comentário. Isso dirá ao GNOME para criar lightscript.sh e darkscript.sh sempre que você efetuar login através da GUI.

Adicione seu trabalho (alterar tema) ao crontab usando o comando:

crontab -e

e escolhendo um editor adequado ou você pode ir para /var/spool/cron/crontabs e editar o arquivo com seu nome de usuário. Acessar o arquivo dessa maneira requer privilégios sudo .Adicione as duas linhas a seguir (com /path/to/ substituído pelo caminho real):

0 6 * * * /path/to/lightscript.sh
0 21 * * * /path/to/darkscript.sh

Dirá:

crontab: installing new crontab

após ter saído do comando.Também pode verificar com:

crontab -l

Isso deve servir. As duas linhas acima dizem ao cron para executar lightscript.sh às 6h e darkscript.sh às 21h todos os dias.

Estamos a fazer este desvio em vez de apenas acrescentar:

0 6 * * * gsettings set org.gnome.desktop.interface gtk-theme Yaru-light

para crontab porque isso requer que a variável DBUS_SESSION_BUS_ADDRESS seja definida corretamente.