Fluxbox - Slideshow de wallpapers aleatórios

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

[ Hits: 4.821 ]

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

Copiando arquivos de uma so vez para todos usuarios

Front-end para administração do Samba

Make Knoppix

Configurando IPTABLES de forma simples

mountcp.sh


  

Comentários
[1] Comentário enviado por Minions 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