Fluxbox - Slideshow de wallpapers aleatórios

Publicado por Sandro Marcell (última atualização em 07/11/2010)

[ Hits: 5.014 ]

Homepage: http://sanmarcell.wordpress.com

Download zsh_randwall




Script em zsh que uso para "montar" um slideshow de wallpapers aleatórios e que são trocados (via cron) a cada 15 minutos, sem repetir o último usado aqui no meu Fluxbox.

Para usá-lo é necessário o programa 'feh'.

Apesar do Fluxbox possuir o programa 'fbsetbg' que com a opção '-r' "randomiza" wallpapers, resolvi implementar minha própria versão porque gosto muito do zsh! =P

Falou!!!

  



Esconder código-fonte

#!/bin/zsh -f
#
# Fluxbox - Slideshow de wallpapers aleatorios =)
# 
# Sandro Marcell <sandro_marcell@yahoo.com.br>
# Boa Vista, Roraima - 15/02/2010
#
# Agendamento via cron:
# 0-59/15 * * * * DISPLAY=:0.0 /path/script
# 
# Dependencia:
# feh - image viewer and cataloguer <https://derf.homelinux.org/projects/feh/>
#
PATH="/bin:/usr/bin:/usr/local/bin"

[ $DISPLAY ] || exit 1
RANDOM=$$

wallpapers_dir="${HOME}/imagens/wallpapers" # Altere conforme o seu!
walls=(${wallpapers_dir}/*) 
last_used_wallpaper=${(f)$(<${HOME}/.fehbg)}

function arrayShuffle {
   integer n k
   typeset -a array swap

   array=(${*=})
   (( n = $#array + 1 ))

   while (( n > 1 ))
   do
      (( --n ))
      (( k = (RANDOM * n / (32767 + 1)) + 1 ))
      swap+=($array[k])
      array[k]=$array[n]
      array[n]=$swap
   done

   randomized=($swap[@])
}

arrayShuffle "$walls[@]:t"

while true
do
   {
      (( wallpaper = (RANDOM * $#walls / (32767 + 1)) + 1 ))
      [[ "$randomized[wallpaper]" == "${last_used_wallpaper##*/}" ]] && continue
   } always {
      feh --bg-scale "${wallpapers_dir}/$randomized[wallpaper]" && xrefresh 
      break
   }
done

exit $status

Scripts recomendados

Exemplo da inicialização do serviço sshd

Script para rodar software Mr Bayes em paralelo

Verificar conexão com Internet

Dê utilidade aquelas teclas que não servem pra nada do seu teclado

Postfix - Listar usuários com over quota


  

Comentários
[1] Comentário enviado por removido em 27/10/2020 - 23:29h


Esse problema ocorre com "wallpapers aleatórios no Fluxbox" e com o "painel Tint2"

# cat /var/log/Xorg.0.log | grep -i "Using O_TMPFILE"
[ 46775.131] Using O_TMPFILE
[ 47580.890] Using O_TMPFILE
[ 47583.653] Using O_TMPFILE
[ 47585.674] Using O_TMPFILE
[ 47594.736] Using O_TMPFILE

No caso tive de desativar o zsh_randwall no cron. Já que o painel Tint2 já estava desativado.

Para monitorar:
# tail -f /var/log/Xorg.0.log


# Xorg -version

X.Org X Server 1.18.3
Release Date: 2016-04-04



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts