rc.randomWallpaper
Publicado por José Lopes 12/08/2006
[ Hits: 4.380 ]
Homepage: https://lopes.id
Este script recebe como entradas o repositório de wallpapers do usuário e o Window Manager que o mesmo utiliza (atualmente só suporta o KDE e o Fluxbox), seleciona um wallpaper aleatoriamente e o define no Window Manager especificado. É interessante que se coloque uma chamada para o script na inicialização do modo gráfico (veja http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=4223).
Não há suporte para o GNOME, pois o mesmo não acompanha o Slackware 10.2.
#!/bin/bash # NAME ........: rc.randomWallpapers # VERSION .....: 0.5 # AUTHOR ......: José Lopes de Oliveira Júnior # DESCRIPTION .: Escolhe um wallpaper (papel de parede) aleatóriamente, dentro # de um diretório de wallpapers, e torna-o visível para a sessão. # OBSERVATION .: O que este script faz é, selecionar, aleatóriamente, um arquivo # de imagem, dentro de um diretório informado e alterar a configuração do Window # Manager especificado, para que ele utilize o wallpaper escolhido pelo script. # Este script utiliza um arquivo de configuração localizado em # $HOME/.randomwallpapers. Caso este arquivo não exista, ou sua sintaxe esteja # errada, o script não funcionará. A sintaxe deste arquivo é simples: a PRIMEIRA # linha do arquivo deve conter o caminho COMPLETO do repositório de wallpapers, # como $HOME/wallpapers. A ÚLTIMA linha do arquivo deve conter o Window Manager # que será configurado e o nome deve ser válido para o script, observando letras # maiúsculas e minúsculas (este script utiliza apenas letras minúsculas). Entre # estas linhas pode-se ser colocado qualquer conteúdo, inclusive comentários. # Nomes de Window Managers válidos para esta versão são: kde e fluxbox # NOTE ........: O usuário pode uma chamada para execução deste script em qualquer # arquivo de evento do sistema, como inicialização do sistema, inicialização do # modo gráfico, desligamento do sistema e etc. Lembre-se de dar permissão de # execução para o script (755). # WARNINGS ....: ASSEGURE-SE DE QUE NÃO HAJA ESPAÇO(S) NO NOME DE NENHUM ARQUIVO # DE WALLPAPER! A NÃO OBSERVÂNCIA DESTE AVISO ACARRETARÁ NO NÃO FUNCIONAMENTO # DESTE SCRIPT! ALÉM DISSO, É DE EXTREMA IMPORTÂNCIA QUE HAJAM SOMENTE ARQUIVOS # DE IMAGENS NO REPOSITÓRIO DE WALLPAPERS ESPECIFICADO! # LEMBRE-SE AINDA DE INFORMAR, NO CAMINHO DO REPOSITÓRIO DE WALLPAPERS, O CAMINHO # COMPLETO DO MESMO, POIS, EM CASO CONTRÁRIO, O WALLPAPER NÃO SERÁ AJUSTADO # CORRETAMENTE! # operationFailed # Função executada caso haja falha na execução do script. operationFailed () { echo "Failed to select a random wallpaper." echo "Possible causes: Some or all the paths doesn't exist or you don't have" echo " permission to read or to write they." exit 1 } # operationFailed # configFluxbox # Configura o Fluxbox para exibir o wallpaper escolhido pelo script. configFluxbox () { # Verificando se o arquivo de configuração de wallpapers do Fluxbox existe # e se o mesmo possui permissão de escrita. if [ -f $HOME/.fluxbox/lastwallpaper -a -w $HOME/.fluxbox/lastwallpaper ]; then WPFLUXBOX="|"$WPPATH"|:0.0" echo $WPFLUXBOX > $HOME/.fluxbox/lastwallpaper else # Erro operationFailed fi } # configFluxbox # configKDE # Configura o KDE para exibir o wallpaper escolhido pelo script. configKDE () { # Verificando se o arquivo de configuração de wallpapers do KDE existe # e se o mesmo possui permissão de escrita. if [ -f $HOME/.kde/share/config/kdesktoprc -a -w $HOME/.kde/share/config/kdesktoprc ]; then cat $HOME/.kde/share/config/kdesktoprc | sed -e "s,^Wallpaper=.*,Wallpaper=`echo $WPPATH`," > $HOME/.kde/share/config/kdesktoprc fi } # configKDE # INÍCIO DO SCRIPT PRINCIPAL # Verificando se o arquivo de configuração do script existe para o usuário if [ -f $HOME/.randomWallpapers ]; then # Definindo o repositório de wallpapers. WPSDIR=`head -1 $HOME/.randomWallpapers` # Verificando se o repositório existe. if [ -d "$WPSDIR" ]; then # Definindo o Window Manager escolhido. WM=`tail -1 $HOME/.randomWallpapers` # Definindo qual foi o Window Manager selecionado case "$WM" in "kde") WM="kde" ;; "fluxbox") WM="fluxbox" ;; *) echo "The specified Window Manager is not valid for this script." exit 1 esac else operationFailed fi else exit 0 fi # Imprimindo uma mensagem para o usuário. echo "Selecting a random wallpaper..." # Escolhendo o wallpaper aleatóriamente e obtendo o caminho completo dele. if [ -r $WPSDIR ]; then # Armazenando a listagem de wallpapers. WPS=`/bin/ls -1 $WPSDIR` # Calculando o número de arquivos de wallpapers do diretório. NWPS=`echo $WPS | wc -w` # Selecionando um número, aleatóriamente, entre 1 e o valor de NWPS. ((NWPS=RANDOM%NWPS+1)) # Armazenando o nome do arquivo na posição escolhida aleatóriamente. WP=`echo $WPS | cut -d ' ' -f $NWPS` # Obtendo o caminho completo do wallpaper escolhido WPPATH=$WPSDIR/$WP else # Erro operationFailed fi case "$WM" in "kde") configKDE ;; "fluxbox") configFluxbox ;; esac # Saindo com sucesso exit 0
Previsão do tempo em cores no terminal
Script que converte maiúsculas em minúsculas e retira branco do nome.
Mantendo seus repositórios Git e SVN atualizados
Nenhum comentário foi encontrado.
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Problema com alias usando locate (0)
Criar uma base de reconhecimento de HW no VOL (9)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba