
Noël approche et vous avez très certainement terminé de rédiger votre liste de cadeaux au Père Noël. Mais les meilleurs cadeaux sont bien sûr ceux que l’on attend pas. C’est pourquoi, Magetys vous offre un jolie cadeau pour Noël !
Vous connaissez très certainement le site BonjourMadame, le site qui tous les matins à 10h propose une photo d’une jolie fille! Et bien Magetys a développé un petit script bash pour que la jeune demoiselle arrive directement en fond d’écran sur votre bureau. Le script fonctionne pour les distributions Linux ayant un environnement de bureau Gnome ou Xfce.
Vous pouvez télécharger le script ici : BonjourMadame v1.0.1
Pensez à rendre le script exécutable
sudo chmod a+x bonjourMadame
Pour être sûr de toujours être à jour, vous pouvez faire s’exécuter le script au démarrage de votre ordinateur en allant dans le menu :
Système -> Préférences -> Applications au démarrage
Et pour vraiment parfaire le concept, vous pouvez faire exécuter le script grâce à une tâche Cron. Pour ceux qui ne connaissent pas, Cron est un programme qui permet d’executer automatiquement des scripts, des commandes ou des logiciels à une date et une heure spécifiée à l’avance.
Pour créer une nouvelle tâche, exécuter la commande :
crontab -e
Cette commande permet d’éditer un fichier à l’aide d’un éditeur de texte défini à la première exécution de crontab. Ajoutez alors cette ligne dans le fichier crontab :
5 10 * * * /.../bonjourMadame
Cette commande permet d’exécuter le script à l’adresse spécifiée tous les jours à 10H05.
Fermez et sauvegardez le fichier. Pour vérifier que la tâche Cron a bien été ajoutée. Vous pouvez exécuter la commande :
crontab -l
Joyeux Noël !
ps: si vous êtes plutôt un utilisateur de mac rendez-vous ici : Bonjour Madame sur Mac
Quelques ligne à ajouter pour resize l’image en fonction de la résolution de l’écran
Dependency : imagemagick
code a ajouter :
function resize
{
res=$(xdpyinfo | grep ‘dimensions:’ | awk ‘{print $2}’);
arr=$(echo $res | tr « x » « \n »);
tailleX=$(echo $arr | awk ‘{print $1}’);
tailleY=$(echo $arr | awk ‘{print $2}’);
res=`identify $1 | awk ‘{print $3}’ `;
arr=$(echo $res | tr « x » « \n »);
imgX=$(echo $arr | awk ‘{print $1}’);
imgY=$(echo $arr | awk ‘{print $2}’);
if [[ $tailleX -gt $imgX ]]
then
finalX=$imgX;
else
finalX=$tailleX;
fi
if [[ $tailleY -gt $imgY ]]
then
finalY=$imgY;
else
finalY=$tailleY;
fi
res=$finalX’x'$finalY;
`mogrify -resize $res $1`;
}
if [[ -e /usr/bin/identify ]]
then
resize $todaywp;
echo Photo Resize OK;
fi
Merci ca fait longtemps que je le voulais !!!
Cool ! Un programme certainement bien sympathique… Si on arrive à l’installer :P En tant qu’utilisateur débutant, que dois-je faire de ce code ? Je le colle dans un terminal ? Si je fais ça, voici ce que donne la ligne suivante :
sudo chmod a+x bonjourMadame
[sudo] password for je:
chmod: ne peut accéder `bonjourMadame’: Aucun fichier ou dossier de ce type
:/
Il faut que tu télécharges le fichier bonjourMadame sur le site, c’est un script bash, tu le copies où tu veux sur ton disque dur par exemple dans :
/home/ton_login/scripts/
ensuite, dans une console, tu rends le script exécutable, tu écris donc la commande chmod vers le fichier bonjourMadame que tu as téléchargé :
sudo chmod a+x /home/ton_login/scripts/bonjourMadame
il faudra que tu indiques ton mot de passe parce que tu es passé en superutilisateur avec la commande sudo
et ensuite, pour lancer le script, il faut utiliser la commande bash :
bash /home/ton_login/scripts/bonjourMadame
Merci beaucoup !! :D
Salut,
Script bash bien sympatique :-)
Petite proposition d’amélioration :
dans la fonction chkinternet ()
à la place du wget sur google ….
ping -c 1 http://www.bonjourmadame.fr
renvoi 0 si succès, 1 si erreur
le ping est bloqué par les firewalls bien souvent, c’est pourquoi nous avons opté pour le wget.
Ping : Bonjour Madame en fond d’écran sur votre Mac ! | Magetys
Salut a tous !
Merci pour cette petite merveille qui a fonctionné chez moi jusqu’à maintenant.
Mais j’ai un petit pépin. En effet après avoir changé le répertoire de mon script et évidement changé tout les chemins correspondants (applications au démarrage et crontab) je me suis retrouvé avec un .jpg de 0 octet et donc plus de fond d’écran…
J’ai alors tout recommencé depuis le début (suppression du scrip, du crontab, de l’appli au démarrage et refaisage) évidement rien n’y fait.
Je pleure, je pleure, mais alors beaucoup beaucoup (surtout que celle d’aujourd’hui est vraiment pas mal du tout…)
Une petite soluc please !!! Merci d’avance !
Salut rug !
Effectivement le script Linux semble ne pas avoir fonctionné sur la madame d’hier. Nos meilleurs ingénieurs sont sur le coup (haha). Bon en fait la madame d’hier était un png et le script ne récupérait que les jpeg… arggg l’erreur de noob. C’est corrigé !
Merci pour ton retour !
Vous êtes des dieux les gars, merci !!
GG a vous, initiative très simpa, merci de ramené de la chaleur sur la banquise avec ces charmantes demoiselles.
J’orai pu faire le script, mais a vrai dire je suis feneant, suis encore sur liferea et surtout je n’y ai pas pensé …
Sinon un peu hs la question, que fais le widget android, il change de bureau tous les jours aussi ?.
Bonne continuation et Bonjour Madame ;).
Merci !
Bonsoir !! tout d’abord, bravo pour ce script c’est très utile et très fun !
par contre, je trouve, personnellement, gênant que ça change le fond d’écran. donc je me demandais si c’était possible une version du script qui, au lieu de remplacer le fond d’écran, afficherai la Madame du jour sur le bureau, comme un widjet. ( ce qui veut dire coordonnée x et y, dimensions de l’image tout ça mais vous vous en doutez ) car je ne sait pas le réaliser moi même : /
merci d’avance !
Le6barbare
Salut !
As tu essayé de télécharger le widget que tu peux trouver dans la partie ‘application’ de bonjourmadame (rubrique ‘pc et mac’) ? A priori ça devrait fonctionner sous linux vue que c’est du adobe air.
Bonjour a tous !
Suite a l’apparition de nouveaux sites dans le genre (bonjour poney, bonjour le chat) je me demandais si on ne pouvais pas adapter le script.
Suffit-il de modifier la ligne 45 pour le nom du fichier et la 52 pour que tout fonctionne?
En tout cas la partie développée par Batiste dans le premier commentaire est toujours d’actualité ! Je la trouve indispensable !
Merci a tous !
Super initiative ! Merci.
Et à 13h, y a aussi http://www.bonappetitmadame.fr
Vous pourriez l’ajouter au script svp ?
La REGEX utilisee ne marche pas avec toutes les photos du site, j’ai teste en remplaçant :
» grep -Eo « (http://www.bonjourmadame.fr/photo/[^\"]+)|(http://[0-9]+.media.tumblr.com/tumblr[^\"]+) » »
par
» egrep -o ‘(http://0-9+.media.tumblr.com/.*_(500|400)\.(jpg|png|gif|bmp))’ »
et cela marche a tous les coups (pour l’instant).
Salut !
C’est encore moi !! :p
Une petite idée pour que l’image ne soit pas coupée sur un TwinView avec 2 écrans??
Genre est-il possible de doubler l’image? ainsi d’avoir 2 madames pour le prix d’une? :)
Bonjour,
J’ai pas bien compris ou il faut rajouter la fonction resize dans le programme …
Pouvez vous m’aider ?
Et merci pour ce petit script !
La fonction resize est pas très utile si on utilise Gnome puisqu’une option des arrières-plans (« Redimensionné ») fait déjà ce travail. j’imagine qu’il en est de même pour Xfce4.
En revanche, elle devient utile si vous voulez rajouter à la fin (avant le fi) par exemple :
elif[ $(which fbsetbg) ]
then
resize $todaywp
fbsetbg -f $todaywp
C’est à dire élargir le support à Fluxbox.
cependant j’opterais pour une version de cette fonction qui conserve les proportions de l’image. D’où cette version (inspirée de celle de Baptiste) :
resize () {
if [[ ! -e /usr/bin/identify ]]
then
echo « missing dependancy imagemagick »
return 1
fi
res=`xdpyinfo | grep « dimensions: » | awk ‘{print $2 }’`
maxX=`echo $res | awk -F x ‘{print $1}’`
maxY=`echo $res | awk -F x ‘{print $2}’`
res=`identify $1 | awk ‘{print $3 }’`
imgX=`echo $res | awk -F x ‘{print $1}’`
imgY=`echo $res | awk -F x ‘{print $2}’`
newX=$maxX
let « newY=$imgY*$newX/$imgX »
if [ $newY -gt $maxY ]
then
newY=$maxY
let « newX=$imgX*$newY/$imgY »
fi
res=$newX »x »$newY
mogrify -resize $res $1
echo « Photo resized OK »
}
@ Gogouz : Pour ce qui est de l’insérer dans le script, on peut la mettre avec les autres fonctions (fixdbus, notify) au début du fichier. il faut ensuite l’appeler « resize $todaywp » avant de modifier le wallpaper.
Merci Houlecorn !
J’utilise gnome, mais j’ignorai cette fonction.
Si on a un proxy comment on fait ? =S
Script modifier pour ceux qui ont un proxy et pour ceux qui veulent que l’image soit resize en ETENDU car en etirer c’est moche sur certaine photo.
Et modification de la notification.
Marche sur la derniere version de Linux !
A modifier : TON_PROXY, LOGIN, PASSWORD, PSEUDO
#!/bin/bash
###########################################
#
# Get the daily picture from http://www.bonjourmadame.fr on your desktop
#
# Author : Magetys
# Link : http://www.magetys.com
# Version : 1.0.1
# Dependency : libnotify-bin
# Note : Works on Gnome and Xfce
#
###########################################
function chkinternet {
if [ `wget --proxy-user=LOGIN --proxy-password=PASSWORD -q -O - google.com | grep -c "Google"` != 0 ]
then
echo 1
else
echo 0
fi
}
function fixdbus {
export DISPLAY=0
while read line
do
echo $line | grep -vqe « ^# »
if [ $? -eq 0 ]; then export $line; fi
done < ~/.dbus/session-bus/$(cat /var/lib/dbus/machine-id)-$DISPLAY
echo Dbus fixed OK
}
# please install libnotify-bin to popup notification
function notify {
unset http_proxy
if [[ -e /usr/bin/notify-send ]]
then
notify-send "Bonjour PSEUDO" "Je suis arrivée sur ton bureau et je suis toute a toi" -i $todaywp
fi
}
export http_proxy='TON_PROXY'
fileprefix=$HOME/Images/bonjourmadame-wp-
todaywp=$fileprefix$(date +%y-%m-%d-%H-%M).jpg
while [ $(chkinternet) != "1" ]; do sleep 15; done
echo Internet connection OK
wget –proxy-user=LOGIN –proxy-password=PASSWORD -O – http://www.bonjourmadame.fr | grep -Eo "(http://www.bonjourmadame.fr/photo/^\"]+)|(http://[0-9]+.media.tumblr.com/tumblr[^\"]+)" | head -n 1 | wget –\
proxy-user=LOGIN –proxy-password=PASSWORD -q -i – -O $todaywp
echo Photo downloaded OK
ls $fileprefix* | sort -r | tail -n +2 | xargs rm -f
fixdbus
if [[ -e /usr/bin/xfconf-query ]]
then
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s $todaywp
elif [[ -e /usr/bin/gconftool-2 ]]
then
gconftool-2 –type string –set /desktop/gnome/background/picture_filename $todaywp
gconftool-2 –type string –set /desktop/gnome/background/picture_options spanned
fi
notify
J’aurai rajouter un petit « mkdir -p $HOME/Images », perso sur Debian je l’avais pas mais bon, c’est vraiment pour faire le tatillon.
Sinon, ENORME appli :)
Merci beaucoup.
Ping : Devo.fr
Ping : Bonjour Madame en Wallpaper sur Android | Magetys
Hello,
J’imagine que certains d’entre vous qui utilisent cette magnifique appli se sont retrouvés avec un petit problème : la photo downloadée n’est plus la madame du jour, mais les goodies … pas top comme madame …
Bref le petit trick :
dans le code il faut remplacer la ligne :
wget -O – http://www.bonjourmadame.fr | grep -Eo « (http://www.bonjourmadame.fr/photo/[^\"]+)|(http://[0-9]+.media.tumblr.com/tumblr[^\"]+) » | head -n 1 | wget -q -i – -O $todaywp
par :
wget -O – http://www.bonjourmadame.fr | grep -Eo « (http://www.bonjourmadame.fr/photo/[^\"]+)|(http://[0-9]+.media.tumblr.com/tumblr[^\"]+) » | head -n 2 | tail -1 | wget -q -i – -O $todaywp
En fait il faut remplacer le head -n 1 par head -n 2 | tail -1
En espérant que ça vous aide :)
Encore merci pour cette application.
Petite modification du script pour les utilisateur de fluxbox :
#!/bin/bash
###########################################
#
# Get the daily picture from http://www.bonjourmadame.fr on your desktop
#
# Author : Magetys, modified by zobi8225
# Link : http://www.magetys.com
# Version : 1.0.1
# Dependency : libnotify-bin
# Note : Works on fluxbox
#
###########################################
function chkinternet {
if [ `wget -q -O - google.com | grep -c "Google"` != 0 ]
then
echo 1
else
echo 0
fi
}
function fixdbus {
export DISPLAY=0
while read line
do
echo $line | grep -vqe « ^# »
if [ $? -eq 0 ]; then export $line; fi
done < ~/.dbus/session-bus/$(cat /var/lib/dbus/machine-id)-$DISPLAY
echo Dbus fixed OK
}
# please install libnotify-bin to popup notification
function notify {
if [[ -e /usr/bin/notify-send ]]
then
notify-send "Bonjour $USER" "Je suis arrivée sur ton bureau" -i $todaywp
fi
}
#fileprefix=$HOME/Images/bonjourmadame-wp-
fileprefix=$HOME/.script/bjmimage/bjm
#todaywp=$fileprefix$(date +%y-%m-%d-%H-%M).jpg
todaywp=$fileprefix.jpg
while [ $(chkinternet) != "1" ]; do sleep 15; done
echo Internet connection OK
wget -O – http://www.bonjourmadame.fr | grep -Eo "(http://www.bonjourmadame.fr/photo/^\"]+)|(http://[0-9]+.media.tumblr.com/tumblr[^\"]+)" | head -n 1 | wget -q -i – -O $todaywp
echo Photo downloaded OK
ls $fileprefix* | sort -r | tail -n +2 | xargs rm -f
fbsetbg -a $HOME/.script/bjmimage/bjm.jpg
notify
Bonjour,
Je suis actuellement sur ubuntu 11.04. Pourriez vous mettre le lien pour que je puisse juste faire un coller dans le terminal. Pour qu’il soit redimesionner correctement et à jour tous les jours automatiquement.
Merci !
S’est super,
On peu pas avoir la même chose avec
http://www.bonjourlatine.fr ???
Pour les utilisateurs de Gnome 3 :
#!/bin/bash
###########################################
#
# Get the daily picture from http://www.bonjourmadame.fr on your desktop
#
# Author : Magetys
# Improve by : Xire
# Link : http://www.magetys.com
# Version : 1.0.1
# Dependency : libnotify-bin
# Note : Works on Gnome and Xfce
#
###########################################
function chkinternet {
if [ `wget -q -O - google.com | grep -c "Google"` != 0 ]
then
echo 1
else
echo 0
fi
}
function fixdbus {
export DISPLAY=0
while read line
do
echo $line | grep -vqe « ^# »
if [ $? -eq 0 ]; then export $line; fi
done < ~/.dbus/session-bus/$(cat /var/lib/dbus/machine-id)-$DISPLAY
echo Dbus fixed OK
}
# please install libnotify-bin to popup notification
function notify {
if [[ -e /usr/bin/notify-send ]]
then
notify-send "Bonjour $USER" "Je suis arrivée sur ton bureau" -i $todaywp
fi
}
fileprefix=$HOME/Images/bonjourmadame-wp-
while [ $(chkinternet) != "1" ]; do sleep 15; done
echo Internet connection OK
link=$(wget -O – http://www.bonjourmadame.fr | grep -Eo "(http://www.bonjourmadame.fr/photo/^\"]+)|(http://[0-9]+.media.tumblr.com/tumblr[^\"]+)")
length=${#link}
format=${link:($longueur – 3):3}
todaywp=$fileprefix$(date +%y-%m-%d-%H-%M).$format
wget -O – http://www.bonjourmadame.fr | grep -Eo "(http://www.bonjourmadame.fr/photo/^\"]+)|(http://[0-9]+.media.tumblr.com/tumblr[^\"]+)" | head -n 2 | tail -1 | wget -q -i – -O $todaywp
echo Photo downloaded OK
ls $fileprefix* | sort -r | tail -n +2 | xargs rm -f
fixdbus
gsettings set org.gnome.desktop.background picture-uri "file:///".$todaywp
notify