(Si vous ne savez ce qu'est conky, je vous renvoie à la doc :
http://doc.ubuntu-fr.org/conky. Dans ce cas, essayez peut-être d'installer un conky de base, de le bidouiller un peu, pour être un tant soit peu familier avec sa configuration !)
Bonsoir à tous =)
Etant en train de bidouiller mon conky, je cherchais à y insérer d'abord fortune, puis une quote aléatoire de bashfr.
Me voilà après quelques essais à un résultat qui me plait bien, des quotes aléatoires (au score >0, histoire de ne pas se coltiner les trop nulles non plus 😛) affichées toutes les 30sg en haut de mon écran, et mon conky habituel au centre.
Si ça intéresse quelqu'un, voilà les codes nécessaires :
Script de base
Je me suis donc servie du script proposé ici
http://forum.ubuntu-fr.org/viewtopic.php?pid=656629, et ai un peu bidouillé à ma sauce pour que ce soit bien intégré au bureau. (notamment un foutu caractère étrange en début de chaque ligne sauf de la première, donc supprimé [dernière manip avant la suppression des marqueurs] )
Ce fichier "bashfr.pl" est à placer dans un dossier .conky dans votre home (/home/utilisateur)
#!/usr/bin/env perl
#*********************************************#
# quote-from-bashfr #
# écrit par tOkeshu #
# 02 août. 2006 #
# bashfr.pl #
# version 1.1 #
# #
# Récupère les citations de votre site #
# préféré: bashfr.org #
#*********************************************#
# ----------------------------------------------------------- #
# Ce script prépare et traite les citations du site Bashfr.org#
# Il accepte 6 arguments possible : #
# -latest | -random | -random2 | -top50 #
# Ils correspondent ou 4 pages de citation de bashfr : #
# #
# http://www.bashfr.org/?sort=latest #
# http://www.bashfr.org/?sort=random #
# http://www.bashfr.org/?sort=random2 #
# http://www.bashfr.org/?sort=top50 #
# #
# -quote x (avec x>0) #
# Correspond à la page : http://www.bashfr.org/?x #
# #
# -n est un argument qui est utilisé avec les 3 premiers: #
# Il permet de selectionner une quote parmis les 3 différentes#
# pages énoncées. (ex: -latest -n 2 ) #
# #
# Le choix par défaut est random. #
# ----------------------------------------------------------- #
# Variable qui permet de décompter le nombre de citations parcourues.
$quote_number=1;
$caracterebizarre=0;
# On vérifie les arguments.
# Cas génériques : top50, aléatoire, et dernier ajout.
if ( $ARGV[0] eq "-latest" || $ARGV[0] eq "-random" || $ARGV[0] eq "-top50" || $ARGV[0] eq "-random2" )
{
$choix=substr ($ARGV[0],1,8);
$choix="sort="."$choix";
# Argument qui permet d'afficher une citation en particulier.
}elsif ( $ARGV[0] eq "-quote" )
{
$choix="$ARGV[1]";
# Argument par défaut.
}else{
$choix="sort=random2";
}
# Argument qui permet de selectionner une citation en particulier avec
# les arguments précédents. (ex : quote.pl -latest -n 2 )
if ( $ARGV[1] eq "-n" )
{
$quote_number=$ARGV[2];
}
# Variable d'état (somme-nous dans une citation ? : vrai(>0) ou non(0)).
$in_the_quote=0;
# On récupère directement la page HTML.
use LWP::Simple;
$url="http://www.bashfr.org/?"."$choix";
$source = get($url);
# On récupère chaque ligne dans un tableau.
@tab = split(/\n/,$source);
# On parcours tout le tableau.
# A chaque tour de boucle on ne considère qu'une seule ligne ( $_ ).
foreach $_ (@tab) {
# Condition d'arret (somme nous sortis de la citation ?).
# SI oui alors on arrete la boucle.
# Si non on continue à parcourir le fichier.
if ( ("$_" =~ m!div!) && $in_the_quote!=0 )
{
last;
}
# Somme nous dans la citation ?
# Si index trouve quote1 ou quote-1 (!=-1) nous venons de trouver une citation.
$i=index($_,'quote1');
$j=index($_,'quote-1');
if ( $i!=-1 || $j!=-1 )
{
if ( $quote_number == 1 )
{
# Changement d'état (dans la citation).
$in_the_quote=1;
}else
{
$quote_number--;
}
}
# Si nous avons changé d'état nous traitons la citation.
if ( $in_the_quote!=0 )
{
# Enlève les balises superflues de début de citation.
if ( $in_the_quote==1 )
{
$_ =~ m/\?([0-9]+)/g;
# Repère le tout début de la citation dans la ligne (après <br />).
$pos_debut=index($_,'<br />');
$pos_debut+=6;
$pos_fin=length($_);
# Modifie la ligne actuellement considérée en récupérant
# uniquement ce qui nous intéresse.
$_=substr ($_,$pos_debut,$pos_fin);
# Changement d'état (corps et fin de la citation, rien à enlever).
$in_the_quote=2;
}
# Toute la partie suivante vise à enlever le formatage HTML.
# ( certaines méthodes existent déjà mais ici rien de compliqué ).
# Comme substituer une chaine longue à une chaine + courte est
# fastidieuse, on remplace l'espace des caractère en trop par un
# marqueur ( ici % ).
s/"/%%%%%%\"/g;
s/&/%%%%%&/g;
s/</%%%</g;
s/>/%%%>/g;
s/œ/%%%%%%Œ/g;
s/ /%%%%% /g;
s/©/%%%%%©/g;
s/¬/%%%%¬/g;
s/ª/%%%%%ª/g;
s/°/%%%%°/g;
s/²/%%%%%²/g;
s/À/%%%%%%%%À/g;
s/Ã/%%%%%%%%à/g;
s/Ç/%%%%%%%%Ç/g;
s/È/%%%%%%%%È/g;
s/É/%%%%%%%%É/g;
s/Ê/%%%%%%%Ê/g;
s/ï/%%%%%%ï/g;
s/&\#039;/%%%%%\'/g;
s/é/%%%%%%%é/g;
s/à/%%%%%%%à/g;
s/â/%%%%%%â/g;
s/ç/%%%%%%%ç/g;
s/è/%%%%%%%è/g;
s/é/%%%%%%%é/g;
s/ê/%%%%%%ê/g;
s/ë/%%%%%ë/g;
s/î/%%%%%%î/g;
s/ô/%%%%%%ô/g;
s/ù/%%%%%%%ù/g;
s/û/%%%%%%û/g;
s/<br \/>/%%%%%/g;
$caracterebizarre+=1;
if ($caracterebizarre>=1) {$_=substr ($_,0,-1);}
# Pour conclure on supprime les marqueurs.
s/%+//g;
# On affiche enfin la ligne de citation traitée.
print "$_ \n";
}
}
print "\n";
Lancer deux conky
Il suffirait d'appeler ce script dans notre conky, et ça serait réglé. Néanmoins cette solution n'est pas très classe, puisque certaines quotes étant longues, elles "déforment" pas mal le conky de base.
Pour remédier à cela, autant dédier un deuxième conky à la citation bashfr.
Ainsi, il vous faudra créer un fichier .conkybashrc, exactement identique à votre .conkyrc, sauf qu'il y aura uniquement ceci sous la ligne TEXT :
${execi 300 ~/.conky/bashfr.pl -random2}
(la valeur suivant execi correspond au nombre de secondes d'affichage d'une citation, -random2 permet d'afficher des citations aléatoires dont le score est supérieur à 0 - si vous préférez une autre option, se rapporter à l'en-tête du script bashfr.pl)
Ce conky sera appelé par la commande :
conky -c .conkybashrc&
C'est pourquoi, pour tout avoir en ordre, il vous faudra lancer votre conky de base, et le conky que l'on vient de créer:
conky -c .conkyrc&
conky -c .conkybashrc&
Et voilà, le tour est joué =)
Note : Ces lignes sont essentielles dans conkyrc et conkybashrc pour éviter le clignotement
own_window yes
own_window_transparent yes
own_window_type override
double_buffer yes
N'oubliez pas également de bien positionner vos deux conky grâce à ces lignes :
#Alignement sur l'écran (enlevez le # devant la ligne qui vous intéresse)
#alignment top_left
#alignment top_right
#alignment bottom_left
#alignment bottom_right
# Marges : x horizontal, y vertical
gap_x 200
gap_y 150
Je crois qu'on y est, je sais que je ne suis pas très douée pour les explications aussi s'il y a des questions (qui concernent cette astuce, pour celles qui concernent conky je vous renvoie au sujet linké tout au début de celui-ci), je suis toute ouïe, et j'essayerai tant que mes petites connaissances me le permettent d'y répondre 🙂