Definição automática de wallpaper em função do horário

Este breve artigo ilustra o uso de estruturas condicionais em Shell Script, visando definir automaticamente o papel de parede do ambiente gráfico em função do horário no qual o computador é ligado. Testado apenas com o Fluxbox em Debian Sarge.

[ Hits: 19.866 ]

Por: Joao Henrique em 25/04/2006


Código-fonte do script



O código-fonte comentado do script está listado abaixo:

#!/bin/bash
###################################
# Pequeno script para gerenciar wallpaper em função
# do horário de uso do computador
# jhgb em 31012006
###################################

# extrai apenas a hora atual com o comando 'date'

hora=$(date +%H)

# define um wallpaper para uso durante a madrugada
if [ "$hora" -le 7 ]
then
        /usr/bin/fbsetbg /mnt/windows/transporte/Anguish1.jpg

# define um wallpaper para uso durante o horário comercial
elif [ "$hora" -ge 7 -a "$hora" -le 18 ]
then
        /usr/bin/fbsetbg /mnt/windows/transporte/technodream.jpg

# define um wallpaper para uso noturno, antes da meia-noite
else
        /usr/bin/fbsetbg /home/jhgb/jh_00.jpg
fi

Discussão do código


# extrai apenas a hora atual com o comando 'date'
hora=$(date +%H)

A hora é extraída no formato 24h, explicitado pelo parâmetro %H do comando date, e armazenada na variável hora. Se desejar utilizar outros parâmetros, considere a leitura do manual do comando date [ man date ].

# define um wallpaper para uso durante a madrugada
if [ "$hora" -le 7 ]
then
        /usr/bin/fbsetbg /mnt/windows/transporte/Anguish1.jpg

No trecho de código acima, a figura Anguish1.jpg, localizada na pasta /mnt/windows/transporte será definida como wallpaper se a hora atual indicar até 6h59 da manhã. A indentação foi mantida por motivo de clareza.

# define um wallpaper para uso durante o horário comercial
elif [ "$hora" -ge 7 -a "$hora" -le 18 ]
then
        /usr/bin/fbsetbg /mnt/windows/transporte/technodream.jpg

Neste trecho, caso a variável hora apresente valores entre 7 e 18, indicando um pouco mais do que o horário comercial, a figura technodream.jpg será definida como wallpaper. Repare que o comando deve ser lido como "Se a hora for maior ou igual a 7 e menor que 18".

# define um wallpaper para uso noturno, antes da meia-noite
else
        /usr/bin/fbsetbg /home/jhgb/jh_00.jpg
fi

Finalmente, se a hora da inicialização estiver entre 18 e 23, jh_00.jpg será o wallpaper.

Detalhe: se a curiosidade for muito grande, posso enviar as imagens em pvt por e-mail, exceto a jh_00.jpg, pois trata-se de um wallpaper exclusivo, feito por um artista especialmente para meus filhos.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Código-fonte do script
   3. Executando o script durante a inicialização
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Expressões regulares no Bash : parte I

Monitorar servidores e enviar alertas por e-mail e SMS

Utilizando "expr" para "String Matching" através de expressões regulares em shell

Operadores de redirecionamento

Redirecionamentos, Pipes e Fluxos

  
Comentários
[1] Comentário enviado por removido em 25/04/2006 - 11:00h

Interessante para aprendizagem da estrutura de controle, mas sinceramente não vejo uma utilização prática, já que ele só altera na inicialização. Seria interessante, talvez, demonstrar como colocar isso no crontab, em horas determinadas.

Em todo caso, está muito bem explicado.

[]'s

[2] Comentário enviado por rebinat em 25/04/2006 - 14:04h

como seria no kde???


hehhhe

muito bom artigo...

[3] Comentário enviado por jhgb em 25/04/2006 - 14:22h

Olá fdettoni.
Embora o objetivo do artigo originalmente não seja esse, e a inserção disso no cron é uma das implementações possíveis, podemos alterar o cron do sistema. Logado como usuário comum, faça:

# inicia a alteração no crontab. O editor que abrirá depende de cada instalação...
crontab -e

# roda o script wallpaper a cada hora cheia
0 * * * * /usr/local/wallpaper

Salve e saia.
Isso força a checagem do horário, e eventual alteração do wallpaper, de hora em hora.

Até mais,
JH

[4] Comentário enviado por bosetti em 25/04/2006 - 14:23h

Achei bem útil isso, pode não ser interessante para alguns, mas é muito bom para quem gosta de variar constantemente de papel de parede como eu =p

Também gostaria de saber como fazer para usar no kde 3.4

[]'s
Rafael Bosetti

[5] Comentário enviado por removido em 25/04/2006 - 18:10h

Ótimo artigo. Posso dar uma sugestão?
Uma coisa legal seria ter um arquivo de configuração com uma lista de wallpapers que eu quero randomizar, ou até mesmo um par de wallpaper/hora:

/home/otavio/wallpapers/wallpaper01.png 0
/home/otavio/wallpapers/wallpaper02.png 1
/home/otavio/wallpapers/wallpaper03.png 2

Abraços, e parabéns pelo artigo.

[6] Comentário enviado por sirelven em 25/04/2006 - 21:24h

Rafael

No KDE já tem essa opção, vá na configuração de wallpapers (clique com o botão direito no desktop, vá em propriedades), selecione multiplos, adicione as fotos que você quer e lá mesmo tem um campo para definir troca automática, e em quais intervalos, além de exibir sequencialmente ou randomicamente.

Estou num xispita agora, dai não tenho a sequencia exata de comandos, caso se interesse depois lhe envio corretamente.

O artigo é interessante como demonstração de conceitos e em casos em que o ambiente desktop não faz isso sozinho, como é o caso em gerenciadores de janelas simples.

Até +

[7] Comentário enviado por oscarcosta em 26/04/2006 - 00:40h

Muito legal esse script...

Mas, o que to precisando um é pra mudar o wall de acordo com o meu animo heheheheh, vc não teria ! teria ?

Falows...

[8] Comentário enviado por bosetti em 26/04/2006 - 09:05h

sirelven
Valew cara, nem lembra que o kde fazia isso tbm...

[]'s
Rafael Bosetti

[9] Comentário enviado por eng_ividal em 26/04/2006 - 12:03h

bl a dica!!!!

[10] Comentário enviado por cyberemb em 08/06/2007 - 08:29h

Boa dica, Sera que alguem sabe se tem como eu colocar wall , nas estações? Tipo tem um servidor com firewall e proxy, e as outras maquinas todas com win, e qundo as maquinas logarem no server, ja abri com wallpaper que defini no servidor.

Ate+

[11] Comentário enviado por heraldoaraujo em 26/07/2011 - 09:23h

pequeno e pratico o script, e incrivel o que se pode fazer com shell!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts