
Code : Tout sélectionner
#!/bin/sh
# Script de diaporama de fond d'écran
# requis : feh
# Le mode manuel requière zenity
#==================================================
#
# LICENCE PUBLIQUE RIEN À BRANLER
# Version 1, Mars 2009
#
# Copyright (C) 2009 Veka
#
# La copie et la distribution de copies exactes de cette licence sont
# autorisées, et toute modification est permise à condition de changer
# le nom de la licence.
#
# CONDITIONS DE COPIE, DISTRIBUTON ET MODIFICATION
# DE LA LICENCE PUBLIQUE RIEN À BRANLER
#
# 0. Faites ce que vous voulez, j’en ai RIEN À BRANLER.
#
#==================================================
# Pour me contacter : veka61@laposte.net
#==================================================
#=============== PARTIE A EDITER ==================
#==================================================
# Dossier ou se trouve les images ( format accepté : jpg JPG jpeg JPEG png PNG )
dossier=~/Images/1440x900/
# Commande qui affiche le fond d'écran
comande="feh --bg-scale"
# Mode Diapo : 1 = activer , 0 = Désactiver
# Le mode diapo fait défiler les images automatiquement.
diapo=1
# Temps entre les images , en seconde ( mode diapo )
temp=600
# Mode aléatoire : 1 = activer , 0 = Désactiver
# Le mode aléatoire choisie les images aléatoirement.
aleatoire=1
# Mode manuel : 1 = activer , 0 = Désactiver
# Le mode manuel ajoute une icone dans la zone de notification, qui change le fond d'écran au clic
manuel=0
#==================================================
#=============== PARTIE A NE PAS TOUCHER ==========
#==================================================
rouge=`tput setaf 1`
NC="$(tput sgr0)"
# Verifi que l'uilisateur ne lance pas le mode diapo et manuel en même temps
if [ $diapo = '1' ] && [ $manuel = '1' ] ; then
{
echo "
${rouge}Vous avez activé à la fois le mode manuel et le mode diapo.
Ces deux modes ne peuvent être activés en même temps.
Veuillez éditer le script.
${NC}"
exit
}
fi
# test si zenity est installer pour le mode manuel
if [ ! -e "$(which zenity)" ] && [ $manuel = '1' ] ; then
{
echo "${rouge}Le mode manuel requière zenity. ${NC}"
exit
}
fi
fichier=~/.list.txt
ls $dossier*.jpg > $fichier
ls $dossier*.JPG >> $fichier
ls $dossier*.jpeg >> $fichier
ls $dossier*.JPEG >> $fichier
ls $dossier*.png >> $fichier
ls $dossier*.PNG >> $fichier
nb_ligne=`wc -l $fichier | cut -d' ' -f1`
nu_ligne=1
chemin=$( cd -P $(dirname $0); pwd)
while [ $nb_ligne != $nu_ligne ]
do
# mode aleatoire
if [ $aleatoire = '1' ]; then
{
RANDOM="$(dd if=/dev/urandom count=1 2> /dev/null | cksum | cut -f1 -d" " )"
random=$(( RANDOM % $nb_ligne + 1 ))
var=`head -$random $fichier | tail -1`
}
else
{
var=`head -$nu_ligne $fichier | tail -1`
}
fi
$comande $var &
#===================================================================
#=== Commande a executer en même temps que le changement de fond ===
#===================================================================
# Aide :
# $var = adresse compète du fichier a afficher
# $nb_ligne = nombre d'image contenu dans le dossier
# $nu_ligne = numero d'identification de l'image
#===================================================================
# Copie le fond d'écran pour le partager avec mon script d'exctinction
cp $var "/home/veka/.FOND/bg.jpg"
# Commande pour gerer le fond de slim ( necesite les droit d'écriture )
#~ rm /usr/share/slim/themes/archlinux/background.jpg
#~ ln -s $var /usr/share/slim/themes/archlinux/background.jpg
#~ # Réactualisation de idesk
#~ sleep 0.5
#~ killall idesk
#~ idesk &
#===================================================================
# Si Manuel = 0
if [ $manuel = '0' ]; then
{
# Stop le programme si l'option diapo est a 0
if [ $diapo = '0' ]; then
{
exit
}
fi
# pause defini par l'utilisateur
sleep $temp
}
# Si Manuel = 1
elif [ $manuel = '1' ]; then
{
zenity --notification\
--window-icon=$chemin/background.png \
--text="Cliquez pour changer le fond d'écran"
}
fi
# Empeche l'arret des diapos une fois toute les images afficher
if [ $nb_ligne = $(($nu_ligne+1)) ]; then
{
nu_ligne=1
}
else
{
nu_ligne=$(($nu_ligne+1))
}
fi
done
rm $fichier