rc.randomWallpaper
Publicado por José Lopes 12/08/2006
[ Hits: 4.510 ]
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
ShadowBurn - grava, copia e apaga CD/DVD
Manipular serviços no Runit (Void Linux)
MRTG Start | Stop | Status | Restart
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Melhorando a precisão de valores flutuantes em python[AJUDA] (3)
Instalação Uefi com o instalador clássico do Mageia (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta