Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
utilisateurs:croutons:tutos:slideshow [13/06/2021 16:57] Croutons |
utilisateurs:croutons:tutos:slideshow [15/06/2021 13:25] (Version actuelle) Croutons |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ceci est le texte brut à mettre en forme à suivre 8-o | ||
======Fond d'écran aléatoire===== | ======Fond d'écran aléatoire===== | ||
* Objet : Mise en place d'un script pour un changement automatique du fond d'écran sous Mate | * Objet : Mise en place d'un script pour un changement automatique du fond d'écran sous Mate | ||
* Niveau requis : {{tag>débutant}} | * Niveau requis : {{tag>débutant}} | ||
- | * Commentaires : //Ce tuto s'adresse aux utilisateurs de l'environnement Mate, mais on peut toutefois s'en inspirer pour l'adapter sur d'autre environnement de Bureau. // | + | * Commentaires : //Ce tuto s'adresse aux utilisateurs de l'**environnement Mate**, mais on peut toutefois s'en inspirer pour l'adapter sur d'autre environnement de Bureau. // |
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
+ | * créé le 13/06/2021 testé sous Debian Buster | ||
+ | * Modifié le 15/06/2021 | ||
+ | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=30209 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
+ | ====Introduction==== | ||
- | Introduction | + | Sous Mate un seul slideshow disponible pour les fonds d'écran (Cosmos), je n'ai trouvé aucune solution facile pour en créer d'autre \\ |
- | ------------ | + | Le meilleur logiciel de slideshow que j'ai trouvé : variety est disponible dans les dépôts Debian \\ |
- | Sous Mate un seule slideshow disponible pour les fonds d'écran (Cosmos), je n'ai trouvé aucune solution facile pour en créer d'autre | + | Un autre logiciel fait son apparition sous Bulleye : hydrapaper , pour l'instant mes tests en VM sont peu concluants |
- | Le meilleur logiciel de slideshow que j'ai trouvé : variety , disponible dans les dépôts Debian à l'heure ou j'écris ses lignes | + | |
- | Un autre logiciel fait son apparition sous Bulleye : hydrapaper , pour l'instant mes tests en VM son peut concluant | + | |
- | Installation | + | ====Mise en place (méthode simplifiée)==== |
- | ------------ | + | |
- | cat fond_ecran.sh | + | On créer un fichier script avec le contenu suivant |
+ | |||
+ | <file bash fond_ecran_crontab.sh> | ||
+ | #!/bin/bash | ||
#change de fond d'écran aléatoirement grâce à la commande shuf | #change de fond d'écran aléatoirement grâce à la commande shuf | ||
+ | #Plusieurs répertoires peuvent être indiqués à l'intérieur des guillemets double, les répertoires contenant des espaces devront être protégé par des guillemets simple | ||
+ | backgroundsdir="/home/stephane/Images/Wallpapers/16:9 /home/stephane/.config/variety/Downloaded/Unsplash" | ||
+ | currentpic="$(find $backgroundsdir -iname '*.*p*g' | shuf -n1)" | ||
+ | gsettings set org.mate.background picture-filename "$currentpic" | ||
+ | exit | ||
+ | </file> | ||
+ | |||
+ | rendre le fichier exécutable | ||
+ | <code user>chmod +x fond_ecran_crontab.sh</code> | ||
+ | |||
+ | En utilisant crontab certaines variables indispensable au bon fonctionnement du script nous manquent \\ | ||
+ | Pour afficher ses variables | ||
+ | <code user>env |egrep 'DISPLAY|DBUS'</code> | ||
+ | <code>DISPLAY=:0 | ||
+ | DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus</code> | ||
+ | |||
+ | Éditer le fichier crontab et régler le temps voulu entre les changements de fond d'écran (sans oublier de reporter les valeurs des deux variables) | ||
+ | <code user>crontab -e</code> | ||
+ | |||
+ | exemple pour un changement de fond d'écran toute les 5 minutes: | ||
+ | <code>*/5 * * * * DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus DISPLAY=:0 /home/stephane/fond_ecran_crontab.sh</code> | ||
+ | |||
+ | |||
+ | ===Utilisation=== | ||
+ | Un ou plusieurs répertoires contenant des photos doivent être précisés pour la variable backgroundsdir \\ | ||
+ | Pour le reste tout se passe en éditant le fichier crontab | ||
+ | <code user>crontab -e</code> | ||
+ | il suffit juste de commenter la ligne pour désactiver le script par exemple ;-) | ||
+ | <code>#*/5 * * * * DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus DISPLAY=:0 /home/stephane/fond_ecran_crontab.sh</code> | ||
+ | [[:doc:systeme:crontab|voir : crontab]] | ||
+ | |||
+ | ====Mise en place (méthode sans crontab)==== | ||
+ | Pourquoi faire simple quand on peut faire compliqué LOL | ||
+ | |||
+ | <file bash fond_ecran.sh> | ||
#!/bin/bash | #!/bin/bash | ||
- | #Plusieurs répertoires peuvent être indiqués à l'intérieur des guillemets double, les répertoires contenant des espaces devront être protégé par des guillemets simple | + | #change de fond d'écran aléatoirement grâce à la commande shuf |
+ | #Plusieurs répertoires peuvent être indiqués pour la variable backgroundsdir | ||
+ | #les répertoires contenant des espaces devront être protégé par des guillemets simple | ||
+ | backgroundsdir="$HOME/Images/Wallpapers/16:9 $HOME/.config/variety/Downloaded/Unsplash" | ||
- | backgroundsdir="/home/stephane/Images/Wallpapers/16:9 /home/stephane/.config/variety/Downloaded/Unsplash" | ||
while true | while true | ||
do | do | ||
Ligne 28: | Ligne 69: | ||
gsettings set org.mate.background picture-filename "$currentpic" | gsettings set org.mate.background picture-filename "$currentpic" | ||
done | done | ||
+ | </file> | ||
+ | Ne pas oublier de rendre le script éxécutable ;-) | ||
+ | <code user>chmod +x fond_ecran.sh</code> | ||
- | En tant qu'utilisateur unique de mon ordi j'ai pris la mauvaise habitude de laissé mes scripts dans mon home ce qui me permet de travaillé le moins possible en root | + | l'intérêt du script est qu'il soit lancé à l'ouverture de session |
- | Il aurait peut être été préférable de l'enregistré sous /home/stephane/.local ou /usr/bin si plusieurs utilisateurs doivent en profiter | + | j'ai donc créé un fichier desktop avec le contenu suivant que j'ai placé dans mon dossier \\ $HOME/.config/autostart |
- | l'intérêt du script est qu'il soit lancé a l'ouverture de session | + | <file desktop fond_ecran.desktop>[Desktop Entry] |
- | j'ai donc créé fichier desktop avec le contenu suivant que j'ai placé dans mon dossier /home/stephane/.config/autostart | + | |
- | [Desktop Entry] | + | |
Version=1.0 | Version=1.0 | ||
Type=Application | Type=Application | ||
Terminal=false | Terminal=false | ||
- | Icon=/home/stephane/.icons/oomox-quakeWorld_croutons/scalable/status/xfce-unknown.svg | + | Icon=$HOME/.icons/oomox-quakeWorld_croutons/scalable/status/xfce-unknown.svg |
Icon[fr_FR]=st | Icon[fr_FR]=st | ||
Name[fr_FR]=fond_ecran | Name[fr_FR]=fond_ecran | ||
- | Exec=/home/stephane/fond_ecran.sh | + | Exec=$HOME/fond_ecran.sh |
Comment[fr_FR]=chargement aléatoire de fond d'écran | Comment[fr_FR]=chargement aléatoire de fond d'écran | ||
Name=fond_ecran | Name=fond_ecran | ||
Comment=chargement aléatoire de fond d'écran | Comment=chargement aléatoire de fond d'écran | ||
- | X-MATE-Autostart-enabled=true | + | X-MATE-Autostart-enabled=true</file> |
- | dernière étape indispensable créer un script pour tuer le script a la fermeture de session | + | |
- | sans quoi le script fond_ecran.sh reste actif et peut avoir plusieurs instance d'ouverte à mesure que les sessions s'ouvre sans redémarrage de l'ordi | + | **dernière étape indispensable**: créer un script pour tuer le processus à la fermeture de session |
- | cat fermeture_session.sh | + | sans quoi le script fond_ecran.sh reste actif et peut avoir plusieurs instances d'ouverte à mesure que les sessions s'ouvrent sans redémarrage de l'ordi |
+ | |||
+ | <file bash fermeture_session.sh> | ||
#!/bin/bash | #!/bin/bash | ||
#ce script s'exécute après la fermeture de session | #ce script s'exécute après la fermeture de session | ||
- | #session-cleanup-script=/home/stephane/fermeture_session.sh ajouté dans le fichier configuration de lightdm | + | #session-cleanup-script=$HOME/fermeture_session.sh ajouté dans le fichier configuration de lightdm |
#arret du script fond_ecran, tue le ou les processus correspondant au PID fond_ecran.sh | #arret du script fond_ecran, tue le ou les processus correspondant au PID fond_ecran.sh | ||
kill $(pgrep -f 'fond_ecran.sh') | kill $(pgrep -f 'fond_ecran.sh') | ||
- | éditer le fichier de configuration de lightdm en root puis ajouter la ligne | + | </file> |
- | session-cleanup-script=/home/stephane/fermeture_session.sh sous | + | (rendre le script exécutable) |
- | [SeatDefaults] | + | |
+ | Éditer le fichier de configuration de lightdm en root | ||
+ | <code root>nano /etc/lightdm/lightdm.conf</code> | ||
+ | puis ajouter sous la section | ||
+ | | ||
+ | <code>[SeatDefaults]</code> | ||
ou bien | ou bien | ||
+ | <code>[Seat:*]</code> | ||
+ | la ligne | ||
+ | <code>session-cleanup-script=/home/stephane/fermeture_session.sh</code> | ||
+ | Enregistrer le fichier et redémarrer le pc ou redémarrer le service lightdm pour que les modifications soient prises en compte | ||
+ | <note important>bien indiquer le chemin complet, ne pas utiliser de variable d'environnement \\ | ||
+ | cette ligne sera éxécuté en tant que root</note> | ||
+ | ===Utilisation=== | ||
- | [Seat:*] | + | Un ou plusieurs répertoires contenant des photos doivent être précisés pour la variable backgroundsdir \\ |
- | redémarrer le pc ou redémarrer le service lightdm pour que les modifications soient prises en compte | + | l'affichage par défaut pour chaque fond d'écran est de 5 minutes (sleep 300) \\ |
- | + | la valeur est à inscrire en secondes, mais on peut utiliser un suffixe (voir sleep --help) | |
- | #### Utilisation ===== | + | |
- | Un ou plusieurs répertoires contenant des photos doivent préciser pour la variable backgroundsdir | + | |
- | backgroundsdir="/home/stephane/Images/Wallpapers/16:9 /home/stephane/.config/variety/Downloaded/Unsplash" | + | |
- | l'affichage pour chaque fond d'écran est de 5 minutes (sleep 300) | + | |
- | par défaut la valeur est à inscrire en secondes, mais on peut utiliser un suffixe (voir sleep --help) | + | |
Pour inactivé le script au démarrage, éditer le fichier desktop du dossier autostart et passer la ligne à false | Pour inactivé le script au démarrage, éditer le fichier desktop du dossier autostart et passer la ligne à false | ||
- | X-MATE-Autostart-enabled=false | + | <code>X-MATE-Autostart-enabled=false</code> |
+ | inversement repasser la valeur à true pour réactiver le démarrage auto | ||
Note: si tout est bien la commande suivante doit renvoyer un seul numéro de PID du script actif | Note: si tout est bien la commande suivante doit renvoyer un seul numéro de PID du script actif | ||
- | pgrep -f 'fond_ecran.sh' | + | <code user>pgrep -f 'fond_ecran.sh'</code> |
+ | |||
+ | à la fermeture de session cette commande ne doit rien renvoyer, dans le cas contraire c'est que quelque chose ne vas pas | ||
sources du script d'origine | sources du script d'origine |