Bonjour,
Cela fait quelque mois que je suis sous Linux maintenant (je n'y connais donc pas grand chose), et ayant été attiré par les effets 3D de compiz, j'ai découvert Xwinwrap pour mettre des vidéos en fond d'écran.
J'ai décidé de regarder un peut des scripts Bash pendant mes vacances :cool:, et avec le peut que j'ai compris, de réaliser un script.
Mon script n'est pas très aboutit 🙁, mais sur mon PC (je sais pas si ça fonctionnera ailleurs) il permet de choisir parmi quelques paramètres de Xwinwrap, puis de choisir la vidéo ou l'écran de veille, à mettre en fond d'écran.
Une fois que l'on a tout paramétré (via les interfaces graphiques de zenity), on as le fond d'écran qui ce lance, et la commande utilisée pour lancer le fond d'écran, qui apparait.
Suffit juste de coller la commande dans les applications à lancer au démarrage du PC (le PC doit quand même avoir une carte graphique assez bien).
Ce que le script fait :
- Choix d'une vidéo avec son, sans son ou d'un écran de veille (vidéo sans son et écran de veille sont conseillé pour une utilisation en fond d'écran permanente)
- Choix de la transparence de l'animation en fond d'écran (on voit l'image de fond d'écran en transparence avec la vidéo)
- Choix de si on veut en plein écran, si les icones du bureau sont accessible à travers la vidéo.
- Choix du nombre de fois que la vidéo est lue à la suite.
- Choix de la vidéo dans les fichiers utilisateur.
- Lancement du fond d'écran animé.
- Affichage de la commande utilisée (celle qui as lancé l'animation en fond d'écran) afin de la coller dans les application au démarrage (comme ça elle se lancera à chaque démarrage).
- Si xclip est installé, la commande est copié dans le presse papier et accessible avec un "ctrl+v".
- La notification affichant la commande sert également à enlever le fond d'écran animé.
Copiez le script suivant dans un fichier vierge, puis le rendre exécutable.
#!/bin/sh
###########################################
# #
# Vidéos en Wallpaper #
# #
###########################################
# par Aurelien69
# utilise "MPlayer" et "XWinWrap" (et Xclip mais c'est pas nécessaire)
ADRESS="http://duflots.e-supinfo.net/admincompiz/xwinwrapcvs.deb.tar.gz"
#__________________________________
#Test l'installation des dépendances
#XWinWrap
INSTALL=`which xwinwrap`
if [ "$INSTALL" = "" ]; then
zenity --error --timeout=60 --title="Wallpaper animé - Erreur !!!" --text="Vous devez installer la paquet XWinWrap pour utiliser ce script\n\n => <span color=\"blue\"><u>$ADRESS</u></span>"
exit
fi
#Xclip
XCLIP="0"
COPI=""
which xclip && { XCLIP="1"; COPI="\n <i><span color=\"red\">-> La commande générée pourra être collée avec \"ctrl + v\"</span></i>"; }
#__________________________________
#Début de la collecte des paramètres de l'utilisateur
#Choix du type d'animation voulu
REPONSE=`zenity --list --radiolist --title="Wallpaper animé" --text="<b>Choix du type d'animation</b>\n\nPour ajouter l'animation qui sera générée, au démarrage de votre ordinateur :\n - \"Système\" > \"Préférences\" > \"Applications au démarrage\"\n - \"Ajouter\"\n - À \"Commande\", ajouter la commande qui sera générée.\n\n* INFO : Un Clic sur cette notification mettra fin à l'animation.$COPI" --column="Choix" --column="Renvois" --column="Animation" --hide-column=2 --print-column=2 TRUE "1" "Vidéos en fond d'écran" FALSE "2" "Écran de veille en fond d'écran"` || exit
#Choix de l'animation
if [ $REPONSE = "2" ]; then
#Choix de l'écran de veille
ANIM=`zenity --file-selection --title="Wallpaper animé" --filename="/usr/lib/xscreensaver/" --title="Choix de l'écran de veille" --file-filter="*"` || exit
TRANSP="0.8" #Activation de la transparence
else
#Choix des vidéos à visionner
ANIM=`zenity --file-selection --multiple --title="Wallpaper animé" --filename="/home/$LOGNAME/" --title="Choix des vidéos" --file-filter="*.avi *.mp4*.mpg *.wmv" --file-filter="*.flv *.mkv *.mov" --file-filter="*" --separator="\" \""` || exit
if [ $ANIM="" ]; then
exit
fi
TRANSP="1" #Désactivation temporaire de la transparence
fi
#__________________________________
#Paramètres dans le cas des vidéos
if [ $REPONSE != "2" ]; then
#Initialisation
PLAN=" -a"
REPET="1"
#Choix de l'utilisateur
CHOIX=`zenity --list --checklist --width=420 --height=350 --multiple --title="Wallpaper animé" --text="Veuillez sélectionner les options à utiliser avec XWinWrap :" --column="Choix" --column="Renvois" --column="Options" --hide-column="2" --print-column="2" --separator="; " \
FALSE 'TOUT="-s"' "Sur tous les bureaux" \
FALSE 'REPET="0"' "Répétition à l'infini" \
FALSE 'SON="-nosound"' "Pas de son (muet)" \
TRUE 'ECRAN="-fs"' "Plein écran" \
TRUE 'TRANSP="0.8"' "Activer la transparence" \
TRUE 'ICON="-ni"' "Sous les icones" \
TRUE 'PLAN="-b"' "Au second plan" \
TRUE 'PAGE="-sp"' "Skip Pager" \
TRUE 'BARRE="-st"' "Skip Taskbar" \
TRUE 'FOCUS="-nf"' "Pas de focus"` || exit
#On lance les options
eval "$CHOIX"
#Réglage de la répétition des vidéos
if [ $REPET = "1" ]; then
REPET=`zenity --entry --title="Wallpaper animé" --text="Veuillez définir le nombre de lectures des vidéos :" --entry-text=1 2 3 5 7 10 15 25 50 100 Personnalisé` || exit
if [ $REPET = "Personnalisé" ]; then
REPET=`zenity --entry --title="Wallpaper animé" --text="Entrez un nombre entier :"` || exit
fi
fi
fi
#__________________________________
#Paramètres en commun (entre vidéos et écran de veille)
#Réglage transparence entre 0 et 1 (si elle est activée)
if [ $TRANSP != "1" ]; then
TRANSP=`zenity --entry --title="Wallpaper animé" --text="Veuillez définir le niveau de transparence de l'animation :" --entry-text=1 0.95 0.9 0.85 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.15 0.1 0.05 0` || exit
fi
#Éxecution de la commande et affichage
if [ $REPONSE = "2" ]; then
ARRET="$ANIM"
COMMANDE="xwinwrap -ni -argb -fs -o $TRANSP -s -st -sp -b -nf -- \"$ANIM\" -window-id WID -delay 10000"
else
ARRET="mplayer"
COMMANDE="xwinwrap $TOUT $ECRAN $ICON -o $TRANSP $PAGE $BARRE $PLAN $FOCUS -- mplayer -wid WID -quiet $SON -loop $REPET \"$ANIM\""
fi
#Si Xclip est installé on copie la commande
if [ $XCLIP = "1" ]; then
echo -n $COMMANDE | xclip -i -selection c
fi
#On lance la commande et on l'affiche en notification (notification qui sert à quitter)
eval $COMMANDE & zenity --notification --text="$COMMANDE" && killall "$ARRET"
exit
J'ai fait ce script par tâtonnement, c'est de la bidouille donc si il y a des remarques, n'hésitez pas à me faire part des corrections et améliorations. 🙂
Pour ce script, les dépendances sont :
- Zenity (pour l'affichage des fenêtres)
- Xwinwrap (et donc Mplayer utilisé par xwinwrap) disponible en .deb :
http://duflots.e-supinfo.net/admincompiz/xwinwrapcvs.deb.tar.gz
- Xclip (facultatif) qui est dans les dépôts il me semble.
Les améliorations que j'aimerai apporter :
- Dans le cas d'une vidéo qui se lit un nombre limité de fois, éviter que la notification qui permet de quitter, ne reste après la fermeture de la vidéo.
- Xclip copie automatiquement la commande générée dans le presse papier, mais qui n'est alors accessible que part un "ctrl+v", et pas par un clic droit "coller".
Pour ces améliorations c'est pas gagné de mon coté, je galère quelque peut....
Voici un script que j'ai fait qui permet de lancer des vidéos directement en fond d'écran par un clic droit sur une sélection de vidéos.
#!/bin/sh
#Lancement de vidéos en fond d'écran.
#Utilisation graphique de Xwinwrap, par Aurelien69
#Dépendances : Xwinwrap
#disponible en .deb à l'adresse : http://duflots.e-supinfo.net/admincompiz/xwinwrapcvs.deb.tar.gz
#Récupération des fichiers sélectionnés
COMPTEUR=0
IFS='
'
for arg in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
if [ $COMPTEUR = "0" ]; then
FICHIERS=$arg
COMPTEUR=1
else
FICHIERS="$FICHIERS\" \"$arg"
fi
done
#Initialisation
PLAN=" -a"
REPET="1"
TRANSP="1"
#Choix de l'utilisateur
CHOIX=`zenity --list --checklist --width=410 --height=330 --multiple --title="Paramètres" --text="Paramètres des vidéos :" --column="Choix" --column="Renvois" --column="Options" --hide-column="2" --print-column="2" --separator="; " \
FALSE 'TOUT="-s"' "Sur tous les bureaux" \
FALSE 'REPET="0"' "Répétition à l'infini" \
FALSE 'SON="-nosound"' "Pas de son (muet)" \
TRUE 'ECRAN="-fs"' "Plein écran" \
TRUE 'TRANSP="0.8"' "Activer la transparence" \
TRUE 'ICON="-ni"' "Sous les icones" \
TRUE 'PLAN="-b"' "Au second plan" \
TRUE 'PAGE="-sp"' "Skip Pager" \
TRUE 'BARRE="-st"' "Skip Taskbar" \
TRUE 'FOCUS="-nf"' "Pas de focus"` || exit
eval $CHOIX
#Réglage de la répétition des vidéos
if [ $REPET != "0" ]; then
REPET=`zenity --entry --title="Wallpaper animé" --text="Veuillez définir le nombre de lectures des vidéos :" --entry-text=1 2 3 5 7 10 15 25 50 100 Personnalisé` || exit
if [ $REPET = "Personnalisé" ]; then
REPET=`zenity --entry --title="Wallpaper animé" --text="Entrez un nombre entier :"` || exit
fi
fi
#Réglage transparence entre 0 et 1 (si elle est activée)
if [ $TRANSP != "1" ]; then
TRANSP=`zenity --entry --title="Wallpaper animé" --text="Veuillez définir le niveau de transparence de l'animation :" --entry-text=1 0.95 0.9 0.85 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.15 0.1 0.05 0` || exit
fi
COMMANDE="xwinwrap $TOUT $ECRAN $ICON -o $TRANSP $PAGE $BARRE $PLAN $FOCUS -- mplayer -wid WID -quiet $SON -loop $REPET \"$FICHIERS\""
eval $COMMANDE & zenity --notification --text="Quitter" && killall mplayer
Pour utiliser ce script, il faut le rendre exécutable, puis le placer dans /home/$LOGNAME/.gnome2/nautilus-scripts
En remplaçant $LOGNAME par votre nom d'utilisateur.
Le script est alors accessible par un clic droit, dans le sous menu "script".