#1 Le 09/09/2012, à 17:46
- ljere
[script/bash] Modifier aléatoirement le fond d'écran sous XFCE
bonjour,
comme la liste de fond d'écran ne peut pas excéder un peu plus de 3000 fond d'écran et que j'en possède dans les 6000 et que ma collection continu de s'agrandir je viens de faire un petit script pour changer la liste de fond d'écran aléatoirement tout à l'air de fonctionner
#!/bin/bash
########################################################################
## Autheur: ljere ##
## Script pour changer la liste de fond d'écran aléatoirement ##
########################################################################
#! /bin/bash
while :; do ## lancement de la boucle
line=$(($RANDOM%`ls $HOME/Images/wallpapers/temp/ | wc -l`)) ## là ou sont placer mes fichiers en .list
line=$((line + 1))
ls $HOME/Images/wallpapers/temp/ | nl | while read a b
do
[ "$a" = "$line" ] && { cp $HOME/Images/wallpapers/temp/"$b" $HOME/Images/image.list; } ## copie d'un fichier en image.list que j'ai choisi comme fichier de référence
done
sleep 15
xfdesktop --reload ## permet de changer le fond d'écran
sleep 900
done
je reste ouvert à toute suggestion pour améliorer ou simplifier ce script
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#2 Le 09/09/2012, à 23:05
- cracolinux
Re : [script/bash] Modifier aléatoirement le fond d'écran sous XFCE
#!/bin/bash
########################################################################
## Autheur: ljere ##
## Script pour changer la liste de fond d'écran aléatoirement ##
########################################################################
while read line
do
cp "$HOME/Images/wallpapers/temp/${line}" "$HOME/Images/image.list"
xfdesktop --reload
sleep 900
done < <(find "$HOME/Images/wallpapers/temp/" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" \) | sort -R)
Dernière modification par cracolinux (Le 09/09/2012, à 23:06)
Hors ligne
#3 Le 10/09/2012, à 06:30
- ljere
Re : [script/bash] Modifier aléatoirement le fond d'écran sous XFCE
bonjour cracolinux,
merci pour la simplification mais je ne comprend pas la dernière ligne
done < <(find "$HOME/Images/wallpapers/temp/" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" -o -iname "*.gif" \) | sort -R)
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#4 Le 10/09/2012, à 08:34
- cracolinux
Re : [script/bash] Modifier aléatoirement le fond d'écran sous XFCE
< <(....) est une redirection de commande
cette commande est lu par read est sa valeur est affectée à la variable ${line}
find recherche dans "$HOME/Images/wallpapers/temp/" les fichiers de type f c'est à dire les fichiers, contenant au choix .jpg .JPG .JPEG .jpeg .PNG .png .GIF .gif dans leur nom.
sort -R va ensuite faire un tri aléatoire du résultat de find
Hors ligne
#5 Le 10/09/2012, à 11:47
- ljere
Re : [script/bash] Modifier aléatoirement le fond d'écran sous XFCE
oui c'est bien ce qu'il me semblait mais pour mon script il s'agit de fichier .list donc je pense que ça deviendrait
#!/bin/bash
########################################################################
## Autheur: ljere ##
## Script pour changer la liste de fond d'écran aléatoirement ##
########################################################################
while read line
do
cp "$HOME/Images/wallpapers/temp/${line}" "$HOME/Images/image.list"
xfdesktop --reload
sleep 900
done < <(find "$HOME/Images/wallpapers/temp/" -type f \( -iname "*.list" \) | sort -R)
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#6 Le 10/09/2012, à 14:46
- ljere
Re : [script/bash] Modifier aléatoirement le fond d'écran sous XFCE
aprés test je me suis rendu compte que ça ne fonctionnait pas j'avais en sorti
/home/jerem/script/wallpaper2.sh
cp: impossible d'évaluer «/home/jerem/Images/wallpapers/temp//home/jerem/Images/wallpapers/temp/500 Game.list»: Aucun fichier ou dossier de ce type
j'ai donc repris mon petit ls et modifié ainsi
#!/bin/bash
########################################################################
## Autheur: ljere ##
## Script pour changer la liste de fond d'écran aléatoirement ##
########################################################################
while read line
do
cp "$HOME/Images/wallpapers/temp/${line}" "$HOME/Images/image.list"
xfdesktop --reload
sleep 900
done < <(ls $HOME/Images/wallpapers/temp/ | sort -R)
merci de m'avoir permis d'améliorer mon script
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#7 Le 10/09/2012, à 16:04
- cracolinux
Re : [script/bash] Modifier aléatoirement le fond d'écran sous XFCE
Tes fonds d'écran sont de .list ?
Hors ligne
#8 Le 10/09/2012, à 19:41
- ljere
Re : [script/bash] Modifier aléatoirement le fond d'écran sous XFCE
non mes fonds sont bien des jpg
xfce charge la liste des fonds d'écran qui est limité à 3000 grâce au script je peux maintenant chargé mais 6000 fond d'écran voir plus au fur et à mesure
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#9 Le 11/09/2012, à 09:00
- cracolinux
Re : [script/bash] Modifier aléatoirement le fond d'écran sous XFCE
Je connais pas xfdesktop mais je pense que tu dois pouvoir faire un script qui n'a pas besoin de copier une image sur ton disque dur toute les 900 secondes...
Peut-etre ainsi :
1/ Tu écris 1,2 ou 3 fichiers .list avec tes différents fonds d'écran répartis.
2/ Ensuite, tu choisis au hasard un des 3 fichiers genre, toutes les 10 heures
Enfin, c'est une idée. Tu peux bien avoir plusieurs fichiers jpeg dans tes .list ?
Tu peux peut-être utiliser le script de Christophe C http://xl-wallpaper.net/
Dernière modification par cracolinux (Le 11/09/2012, à 10:25)
Hors ligne
#10 Le 12/09/2012, à 07:48
- ljere
Re : [script/bash] Modifier aléatoirement le fond d'écran sous XFCE
1/ Tu écris 1,2 ou 3 fichiers .list avec tes différents fonds d'écran répartis.
c'est exactement ce que fait ce script
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#11 Le 12/09/2012, à 08:02
- cracolinux
Re : [script/bash] Modifier aléatoirement le fond d'écran sous XFCE
Ok, je viens de piger me fonctionnement de xfdesktop!
Désolé!
Hors ligne
#12 Le 12/09/2012, à 19:45
- ljere
Re : [script/bash] Modifier aléatoirement le fond d'écran sous XFCE
aucun souci tu m'as bien aidé au contraire
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne