Olá, eu gostaria de criar um script para ser executado no cron e alterar meu papel de parece de acordo com o horário do dia. Por exemplo, das 8h30 às 17h30 de segunda a sexta eu quero um wallpaper mais profissional, e nos outros horários eu gostaria de um wallpaper pessoal.
Eu fiz o script e está funcionando corretamente quando executo ele no terminal. Mas ao colocar ele no cron, simplesmente não troca o wallpaper. Vou mandar abaixo a linha que está no cron e o script que estou usando.
Linha no cron:
30 * * * * DISPLAY=:0 /home/kevin/MEGAsync/Documentos/Scripts/./wallpapers.sh
Script:
#!/bin/sh
HOUR=$(date +"%H%M")
WEEKDAY=$(date +"%u")
if [ "$WEEKDAY" -lt "6" ]
then
if [ "$HOUR" -gt "0830" ]
then
if [ "$HOUR" -lt "1730" ]
then
echo "Hora de trabalhar!" >> /home/kevin/log-wallpaper.log
gsettings set org.gnome.desktop.background picture-uri "file:///home/kevin/Imagens/wallpaper-trabalho.png"
else
echo "Hora de descansar! Está muito tarde!" >> /home/kevin/log-wallpaper.log
gsettings set org.gnome.desktop.background picture-uri "file:///home/kevin/Imagens/wallpaper-pessoal.png"
fi
else
echo "Hora de descansar! Está muito cedo!" >> /home/kevin/log-wallpaper.log
gsettings set org.gnome.desktop.background picture-uri "file:///home/kevin/Imagens/wallpaper-pessoal.png"
fi
else
echo "Hora de desEste texto ficará oculto.cansar! Fim de semana!" >> /home/kevin/log-wallpaper.log
gsettings set org.gnome.desktop.background picture-uri "file:///home/kevin/Imagens/wallpaper-pessoal.png"
fi
1 curtida
Se um duplo clique no arquivo também funciona, acho que uma solução seria colocar o script em um loop while true; do; ... ; sleep 60; done
e colocar o script como um aplicativo de inicialização do Cinnamon.
Se colocar no cron o script é executado como root, não? Imagino que vc não queira isso… Coloca no ~/.config/autostart/
Desse modo acredito que ele vai ser executado somente uma vez, não é?
Ótima ideia! Vou testar dessa maneira. Em breve posto se resolveu o problema.
Se você quer só trocar o wallpaper, não precisa usar o cron
, pode usar um XML pra trocar o wallpaper.
Dá uma olhada nisso…
https://github.com/rauldipeas/Unity-XP/blob/master/resources/misc/timed-slideshow-wallpapers.md
Fiz dessa forma e não funcionou. Ele detecta certinho o horário e adiciona no log a ação que deve fazer. Mas o wallpaper não foi alterado 
Não entendi muito bem como funciona. Eu rodei o comando e ele extraiu algumas imagens e xml. Mas como uso esse xml?
Vai nas configurações de papel de parede, mas só funciona em GNOME e derivados, tipo MATE, Cinnamon…
Essa linha tá certa? 
Não entendo de script, mas fiquei em dúvida se precisa colocar “./wallpapers.sh” ou só “wallpapers.sh” (sem o ./)
Eu tentei tirar o “./” e continua sem alterar o wallpaper. Ele adiciona no log certinho a mensagem mas o wallpaper se mantém.
No programa “Aplicativos da Inicialização” deixei dessa forma, me parece correto. Seria assim mesmo né? (caso não fosse feito pelo cron)
Era pra ser desse jeito mesmo.
O que é realmente estranho é o fato dele agir quando sob o terminal mas não quando iniciado automaticamente. Talvez um atraso de inicialização de uns 30s (que eu já vi resolver scripts relacionados à impressão) ajude? Ou usar um wallpaper XML como disse o @anon17586640?
Pra wallpaper, o certo é usar um XML, na Wiki do Ubuntu tem tutorial sobre isso, foi de lá que eu tirei as informações pra montar o meu.
Tentei colocar o atraso e continua sem alterar o wallpaper.
Sobre o XML, não consegui encontrar uma forma de usar ele dentro do Linux Mint. E parece que o XML tem a duração de cada wallpaper não é? Dessa forma eu não conseguiria fazer funcionar daquele jeito que comentei de mostrar um wallpaper durante das 8h30 às 17h30 e outro wallpaper fora desse horário… Posso estar enganado, mas é isso mesmo @anon17586640?
Como eu disse, o XML que passei é pra você usar como exemplo pra fazer o seu próprio, você pode setar o tempo que quiser lá, tem um horário inicial e o intervalo de tempo entre as imagens.
@anon17586640, consegui uma forma de usar o XML. Basta executar o seguinte no terminal:
gsettings set org.gnome.desktop.background picture-uri "file:///usr/share/backgrounds/bitday/bitday.xml"
Vou fazer uns testes agora, mas acredito que tenha funcionado.
1 curtida
Seria como colocar os PNGs, mas em XML, tipo:
gsettings set org.gnome.desktop.background picture-uri "file:///home/kevin/Imagens/wallpapers.xml"
Tava lendo na Wiki do Ubuntu e não é o caso.
Você pode colocar um “tempo zero” de referência (como 1o de janeiro desse ano, 8h30 da manhã) e colocar um wallpaper para durar 39600s (11 horas, ou seja, até 17h30) e outro 46800s (13h). Vai ficar nesse loop, abrangendo exatamente 24 horas.
3 curtidas