Olá, eu gostaria de que quando chegasse la pelas 6 horas e 19 horas o tema fosse trocado. Alguém tem alguma dica de como posso fazer isso ?
lookandfeeltool -a orgorg.kde.breezedark.desktop
esse comando troca para o tema escuro, agora como dizer para o computador quando ele deve executar esse programa?
Se sua distro tiver o programa crontab
:
- Terminal:
crontab -e
(pode perguntar um editor; se não souber, indico onano
) - Adicione duas linhas
0 6 * * * comando_6damanha
0 19 * * * comando_7danoite
- Salve.
Esses arquivos da crontab são analisados a cada minuto e possuem linhas no formato:
minuto hora dia-mês mês dia-semana comando
*
significa todos.
Se sua distro não tiver o crontab, a alternativa é o systemd-timer
, que vem incluído em quase todas, mas é bem mais difícil de usar (apesar de permitir mais detalhes e etc.)
Contrab é executado a cada minuto é isso?
Pq digamos que eu coloque que as 6 da manha o sistema fica claro, mas em um dia eu ligo o computador as 7, ele vai continuar no modo escuro com esse script né?
precisaria fazer um if se isso acontece
Crontab analisa o arquivo a cada minuto, e se o horário bater com o especificado nas cinco primeiras colunas (embaixo do post tem a ordem), ele executa o comando. Elas meio que já são o if
.
Esse problema não acontece então?
Na minha mente se o script executa a cada minuto eu deveria escrever algo do gênero:
if [ getHour -ge 6 E getHour -le 19 E getTheme != “Tema Claro” ]
then
set Theme = “Tema Claro”
elif [ getTheme != "Tema Escuro ]
then
setTheme = “Tema Escuro”
…é, vai acontecer com o cron, inicar às 7 e continuar com tema escuro.
Se bem que dá para combinar duas opções aqui, um cron
que muda com horário definido, e rodar um script nesse estilo quando inicia a DE (para compensar o fato que o cron
perde horários com o PC desligado).
Ou fundir os dois num systemd-timer
, que tem a opção Persistent=true
que automaticamente percebe que perdeu um horário e roda imediatamente (porém o formato de configuração não é dos mais simples).
if [ date +"%H" -ge 6 E date +"%H" -le 19 ]
then
lookandfeeltool -a org.kde.breeze.desktopelse
else
then
lookandfeeltool -a org.kde.breezedark.desktop
Se eu colocar isso na inicialização já resolve parte do problema, mas eu não encontro na internet como fazer o E.
ps : esse meu codigo está certo? primeira vez fazendo um if em shell
if [ "$(date +"%H")" -ge 6 ] && [ "$(date +"%H")" -le 19 ]
then
lookandfeeltool -a org.kde.breeze.desktopelse
else
lookandfeeltool -a org.kde.breezedark.desktop
fi
"$(comando)"
executa o comando e então é substituído pelo resultado dele. [ date +"%H" -le 19 ]
, faz ele achar que você quer literalmente comparar o texto date +"%H"
com um número.
0 6 * * * lookandfeeltool -a org.kde.breeze.desktop
0 19 * * * lookandfeeltool -a org.kde.breezedark.desktop
Coloquei isso no
mas agora as 19 horas ele não trocou o tema, sabe o que fiz de errado?
Instalei o crontab ui para ver se com a interface grafica iria funcionar mas acontece a mesma coisa, ele não executa o programa e não consigo ver nenhuma mensagem de erro. O que eu faço?
Se o script ao iniciar a DE funciona, pode embutir o temporizador nele, eu acho:
# Loop eterno
while :; do
if [ "$(date +"%H")" -ge 6 ] && [ "$(date +"%H")" -le 19 ]
then
lookandfeeltool -a org.kde.breeze.desktopelse
else
lookandfeeltool -a org.kde.breezedark.desktop
fi
sleep 60 # Pausar por 60 segundos
done
sáb 27 mar 2021 21:32:01 -03
/bin/sh: 1: ./Scripts/InversoTema.sh: not found
sáb 27 mar 2021 21:33:01 -03
/bin/sh: 1: ./Scripts/InversoTema.sh: not found
ao que parece ele nao encontra o executavel, como posso arrumar isso?
o comando que estou dando é ./Scripts/InversoTema.sh , será que não pode fazer isso?
Não, é necessário dar o caminho completo (/home/mateus/Scripts/InversoTema.sh).
Nem colocando /home/mateus/Scripts/InversoTema.sh nem ./home/mateus/Scripts/InversoTema.sh funciona, nenhum erro é dado mas nada é feito quado clico em “run now”
Não consigo entender o que estou fazendo de errado, o script executa da maneira esperada quando clico, mas pelo crontab não
Se você estiver usando o plasma, conheço esses dois programas.
Eu gostaria de automatizar outras coisas no meu desktop, por isso gostaria de usar uma ferramenta como crontab