Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#976 Le 02/06/2015, à 10:10

loutch

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

smilies%20(204).gif

J'ai modifié le conky pour afficher les logos avec du lua (celui du pack météo de Didier-t) .

1433232578.png

1433234577.png

comme cela il ni a plus le fond noir si le logo est un peu spécial.

smilies%20(1).gif

Dernière modification par loutch (Le 02/06/2015, à 10:43)

Hors ligne

#977 Le 03/06/2015, à 14:50

Didier-T

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Bonjour loutch,
je viens de t'écrire un petit script en python pour récupérer les logos sur google image

logo_radio.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
# Par Didier-T

import urllib2, getopt, simplejson, sys, os, urllib

class Fonctions():

    def __init__(self):
        self.arguments()
        self.recherche()

    def arguments(self):
        try:
            opts, args = getopt.getopt(sys.argv[1:], "r:h", ["radio=","help"])
        except getopt.GetoptError as err:
            # Affiche l'aide et quitte le programme
            self.usage()
            sys.exit(2)

        if opts==[]:
            self.usage()
            sys.exit(2)

        self.getlist=[]
        self.fileout=0
        for o, a in opts:
            if o in ("-r", "--radio"):
                self.radio=a
            elif o in ("-h", "--help"):
                self.usage()
                sys.exit()

    def usage(self):
        print("\nUtilisation: logo_radio.py --radio=\"Nom de la radio\"\n\
Interroge google image et vous enregistre l'icone dans le repertoir courrant.\n\
\n\
  -r,  --radio          Nom de la radio entre guillemets\n\
  -h,  --help           Affiche l'aide\n\
")

    def recherche(self):

        radio=self.radio.replace(" ", "%20")
        url = ('https://ajax.googleapis.com/ajax/services/search/images?'+
            'v=1.0&q=radio%20logo%20'+radio+'&newwindow=1&channel=fs&tbs=itp:clipart,ic:trans&tbm=isch&tbas=0')

        request = urllib2.Request(url, None)
        response = urllib2.urlopen(request)

        results = simplejson.load(response)
        try:
            _, ext = os.path.splitext(results['responseData']['results'][0]['url'])
            urllib.urlretrieve(results['responseData']['results'][0]['url'],'self.radio'+ext)
        except:
            print("pas de résultat")
            sys.exit(1)

def main():
    Fonctions()

if __name__ == '__main__':
    main()

il faudra l'appeler depuis ton script bash

python logo_radio.py --radio="$nom_radio"

Dernière modification par Didier-T (Le 03/06/2015, à 18:08)

Hors ligne

#978 Le 04/06/2015, à 10:46

loutch

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

smilies%20(204).gif


Merci Didier , serait-il possible de le faire chercher  la pochette du titre joué .

Hier soir j'ai  d'étudié un peu et j'ai apris qu'avec echo ou > on pouvais écrire dans un fichier . Ce matin j'ai réussi à généré un fichier.txt (c'est thierryR de MLo qui m'a mis sur la voie) qui affiche le titre et le nom de l'artiste ou ce que le conky affiche genre

Playing ou autre chose .

j'ai du ajouter une deuxième ligne comme ceci au conkyrc sinon plus d'affichage dans le conky:

${font URW Chancery L:style=Bold:size=10}${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray getCurrentMetaData| fold -s -w40 }
${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray getCurrentMetaData| fold -s -w40 > ~/.conky/radiotray/artiste_titre.txt}

Je précise que cette ligne dans le fichier.txt change automatiquement comme dans le conky sur l'ecran

Donc maintenant comment récupérer cette ligne pour que goole aille cherche la pochette.

smilies%20(1).gif

Dernière modification par loutch (Le 04/06/2015, à 11:00)

Hors ligne

#979 Le 09/06/2015, à 09:16

ragamatrix

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Bonjour à tous;
J'ai retrouvé un script modifié avec Didier-T, permettant de télécharger une image au hasard sur le site de la nasa. Celui-ci fonctionne très bien mais j'aimerais ajouter une fonction de redimmentionement de l'image téléchargée dedans...
ce genre de fonction :

if [ -f $tmp ] ; then # si le fichier a bien été téléchargée...
  mogrify -resize 800x600 $tmp # redimenssionne l'image téléchargée
  mv $tmp $img # remplace l'ancienne image par la nouvelle
fi 

Le problème c'est que le script initial est en perl hmm :
randpixnasa.pl:

 #!/usr/bin/perl
# Copyright (c) Laszlo Simon.
# This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or ( at your option) any later version.
#             
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
#                            
# You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA)

# CONFIGURATION
##$explonation = 'true';        # true | false
##$explonation_place = 'south'; # east|north|west|south|norteast|...

# INIT
use LWP::Simple; 
$repsauv = "~/wallpapers";

if (`xdpyinfo | grep dimensions` =~ /(\d+)x(\d+)\s+pixels/)
{
  ($width, $height) = ($1,$2);
}
else
{
  die("Can not determine screen resolution. Maybe 'xdpyinfo' not installed.\n");
}
  
$explonation_width = int($width * 2 / 3);
$explonation_height = int($width / 10);

#if (system("wget --version"))
#{
#  die("'wget' should be installed.\n")
#}


for ($i=1; $i<=10; $i++)
{
  $date = sprintf("%02d",0+int(rand(8)))
        .sprintf("%02d",1+int(rand(12)))
        .sprintf("%02d",1+int(rand(28)));

  $content = get("http://antwrp.gsfc.nasa.gov/apod/ap$date.html" );

  $content =~ /\<a\s+href\=\"((?:\w+\/)*)(\w+)(\.\w+)\"\s*\>\s*\n*\s*\<img/ims;

  $path = $1;
  $img = $2;
  $ext = $3;
  if ($ext eq ".jpg")
  {
    last;
  }
}

my $home = $ENV{'HOME'};
$repsauv =~ s/~/$home/;

if (!-e "$repsauv")
{
  mkdir ("$repsauv");
}

print ">>>>http://antwrp.gsfc.nasa.gov/$path$img$ext\n";
my $imag = get("http://antwrp.gsfc.nasa.gov/$path$img$ext");
open(SORTIE, ">$repsauv/image$ext");
binmode(SORTIE);
print SORTIE $imag;
close(SORTIE);

#system("wget -q -O ~/wallpapers/$img$ext 'http://antwrp.gsfc.nasa.gov/$path$img$ext'");

# Get text

#if (system("html2text -version"))
#{
#  warn("Explonation disabled. 'html2text' should be installed.\n");
#  $explonation = 'false';
#}

#if (system("convert -version"))
#{
#  warn("Explonation disabled. 'convert' (imagemagick) should be installed. \n");
#  $explonation = 'false';
#}


#if ($explonation eq 'true')
#{
#  system("html2text -style pretty -o /tmp/apxxxxxx.txt /tmp/apxxxxxx.html");
 
#  open TXT, "/tmp/apxxxxxx.txt";
#  $content = join('',(<TXT>));
#  close TXT;

#  $text = 
#    ($content =~ /Explanation:\s*(.*)\s*Tomorrow\'s picture:/s)
#    ? $1
#    : '';

#  print $text."\n";
  
#  $text =~ s/\n/ /g;

#  open TXT, ">/tmp/apxxxxxx-anno.txt";
#  print TXT $text;
#  close TXT;

#  system("convert ~/wallpapers/$img$ext "
#         ."-resize $width"."x$height\\> "
#         ."-size $width"."x$height xc:black +swap "
#         ."-gravity center "
#         ."-composite "
#         ."~/wallpapers/$img$ext"
#         );
         
#  system("convert "
#         ."-background '#0008' "
#         ."-fill white "
#         ."-gravity north "
#         ."-pointsize 20 "
#         ."-size $explonation_width"."x$explonation_height "
#         ."caption:\@/tmp/apxxxxxx-anno.txt "
#         ."~/wallpapers/$img$ext "
#          ."+swap -gravity $explonation_place -composite "
#         ."~/wallpapers/$img$ext"
#         );
#}

  
#system("mv ~/wallpapers/$img$ext ~/wallpapers/image.jpg"); 
 

Merci d'avance pour un ptit coup de main wink
EDIT: Il faudrait peut-être que l'image téléchargée soit modifiée avec un % car elle ne fait jamais la même taille. Le but est de pouvoir l'afficher correctement dans un conky...
genre:

convert ~/wallpapers/image.jpg -resize 40% ~/wallpapers/image.jpg 

Dernière modification par ragamatrix (Le 09/06/2015, à 09:48)

Hors ligne

#980 Le 09/06/2015, à 13:27

ragamatrix

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

j'ai trouvé une solution pas trop mal mais j'ai une annotation qui apparrait dans le conky et ne vois pas d'où ça vient oO
mini_150609012629971511.png
ConkyRandomNasa:

 #Display nasa picture of the day#
#=========ragamatrix's==========#

background no
update_interval 1
cpu_avg_samples 2
net_avg_samples 2
double_buffer yes
no_buffers yes
text_buffer_size 1024
imlib_cache_size 0

own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorated,skip_taskbar,skip_pager,below,sticky

border_inner_margin 0
border_outer_margin 0

minimum_size 380 380 #Taille minimum (px) ; largeur / hauteur
maximum_width 380 ##largeur

alignment br
gap_x -7
gap_y 15

draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_shade_color 181818

use_xft yes
xftfont Monofur:size=12
xftalpha 1.0
uppercase no
override_utf8_locale yes
###############################
#   1h=60m=3600s              #
#   1j=24h=1440m=86400s       #
#365j=8760h=525600m=31536000s #
###############################


default_color ececec
color2 585858
color1 606060

lua_load ~/.conky/script/image.lua

TEXT

${texeci 35 ~/wallpapers/convertnasapix.sh}
${texeci 30 ~/.conky/script/randpixnasa.pl} 
${lua conky_fDrawImage /home/raphix/wallpapers/image.png 0 0 300 300}

convertnasapix.sh:

#!/bin/bash
#ragamatrix'script modified#
IMG="/home/moi/wallpapers/image.jpg"
IMGPNG="/home/moi/wallpapers/image.png"

#convert $IMG -resize 300x300\! $IMG
convert $IMG  -resize x300 -resize 'x300<' \
          -gravity center  -crop 300x300+0+0 +repage $IMGPNG
          
convert  $IMGPNG \
\( +clone  -alpha extract \
       -draw 'fill black polygon 0,0 0,5 5,0 fill white circle 5,5 5,0' \
        \( +clone -flip \) -compose Multiply -composite \
        \( +clone -flop \) -compose Multiply -composite \
     \) -alpha off -compose CopyOpacity -composite $IMGPNG
     
convert $IMGPNG  -background  SlateGray3  \( +clone -shadow 70x4+2+2 \) +swap -background  none   -flatten $IMGPNG
          
#convert $IMG -set option:distort:viewport \
#"%[fx:min(w,h)]x%[fx:min(w,h)]+%[fx:max((w-h)/2,0)]+%[fx:max((h-w)/2,0)]" \
#-filter point -distort SRT 0  +repage $IMGPNG 

Dernière modification par ragamatrix (Le 09/06/2015, à 14:15)

Hors ligne

#981 Le 10/06/2015, à 20:38

Didier-T

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Bonsoir loutch,
ces scripts devraient être utile.

logo_radio.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
# Par Didier-T

import urllib2, getopt, simplejson, sys, os, urllib

class Fonctions():

    def __init__(self):
        self.arguments()
        self.recherche()

    def arguments(self):
        try:
            opts, args = getopt.getopt(sys.argv[1:], "r:d:h", ["radio=","destination=","help"])
        except getopt.GetoptError as err:
            # Affiche l'aide et quitte le programme
            self.usage()
            sys.exit(2)

        if opts==[]:
            self.usage()
            sys.exit(2)

        self.getlist=[]
        self.fileout=0
        for o, a in opts:
            if o in ("-r", "--radio"):
                self.radio=a
            if o in ("-d", "--destination"):
                self.destination=a
            elif o in ("-h", "--help"):
                self.usage()
                sys.exit()

    def usage(self):
        print("\nUtilisation: logo_radio.py --radio=\"Nom de la radio\"\n\
Interroge google image et vous enregistre l'icone dans le repertoir courrant.\n\
\n\
  -r,  --radio          Nom de la radio entre guillemets\n\
  -d, --destination    Repertoire de déstination\n\
  -h,  --help           Affiche l'aide\n\
")

    def recherche(self):

        radio=self.radio.replace(" ", "%20")
        url = ('https://ajax.googleapis.com/ajax/services/search/images?'+
            'v=1.0&q=radio%20logo%20'+radio+'&newwindow=1&channel=fs&tbs=itp:clipart,ic:trans&tbm=isch&tbas=0')

        request = urllib2.Request(url, None)
        response = urllib2.urlopen(request)

        results = simplejson.load(response)
        try:
            _, ext = os.path.splitext(results['responseData']['results'][0]['url'])
            urllib.urlretrieve(results['responseData']['results'][0]['url'],self.destination+"/image"+ext)
            print("image"+ext)
        except:
            print("pas de résultat")
            sys.exit(1)

def main():
    Fonctions()

if __name__ == '__main__':
    main()

info_radio.sh

#!/bin/bash
# Par Didier-T


RepDestination="~/.conky/radiotray" #Indiquer ici le repertoire de destination

## Début script
home=$(echo $HOME|sed 's/\//\\\//g')
RepDestination=$(echo $RepDestination|sed "s/~/$home/")
LOG="$RepDestination/artiste_titre.log"

mapfile -t InfoRadio < $LOG

radio=$(qdbus net.sourceforge.radiotray /net/sourceforge/radiotray net.sourceforge.radiotray.getCurrentRadio)
echo $radio
if [[ "$radio" != "" ]] && [[ "$radio" != "${InfoRadio[0]}" ]]; then
    echo $radio > $LOG
    logo=$(python logo_radio.py --destination="$RepDestination" --radio="$radio")
    convert "$RepDestination/$logo" "$RepDestination/radio.png"
fi

titre=$(qdbus net.sourceforge.radiotray /net/sourceforge/radiotray getCurrentMetaData| fold -s -w40)
echo $titre
if [[ "$titre" != "" ]] && [[ "$titre" != "${InfoRadio[1]}" ]]; then
    echo $titre >> $LOG
    logo=$(python logo_radio.py --destination="$RepDestination" --radio="$titre")
    convert "$RepDestination/$logo" "$RepDestination/cover.png"
fi

c'est codé a la louche, mais sa fonctionne cher moi.

@ragamatrix, pas trop le temps de tester tes scripts, mais ce que tu vois à l'écran est le retour texte de l'un des deux, le plus simple serait de rediriger la sortie de tes scripts vers dev/null

ton conky donnerait ceci

 #Display nasa picture of the day#
#=========ragamatrix's==========#

background no
update_interval 1
cpu_avg_samples 2
net_avg_samples 2
double_buffer yes
no_buffers yes
text_buffer_size 1024
imlib_cache_size 0

own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorated,skip_taskbar,skip_pager,below,sticky

border_inner_margin 0
border_outer_margin 0

minimum_size 380 380 #Taille minimum (px) ; largeur / hauteur
maximum_width 380 ##largeur

alignment br
gap_x -7
gap_y 15

draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_shade_color 181818

use_xft yes
xftfont Monofur:size=12
xftalpha 1.0
uppercase no
override_utf8_locale yes
###############################
#   1h=60m=3600s              #
#   1j=24h=1440m=86400s       #
#365j=8760h=525600m=31536000s #
###############################


default_color ececec
color2 585858
color1 606060

lua_load ~/.conky/script/image.lua

TEXT

${texeci 35 ~/wallpapers/convertnasapix.sh > /dev/null}
${texeci 30 ~/.conky/script/randpixnasa.pl > /dev/null} 
${lua conky_fDrawImage /home/raphix/wallpapers/image.png 0 0 300 300}

Hors ligne

#982 Le 11/06/2015, à 13:10

loutch

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

smilies%20(204).gif

Didier

Ajout de tes deux scripts ( le logo_radio.py j'ai du le mettre dans mon home pas dans le .conky/radiotray/)
j'ai bien le nom de la radio ainsi que l'artiste et le titre de la chanson qui s'affiche .C'est tout je n'ais pas la pochette ni de logos ,et la konsole me donne ceci:

Conky: desktop window (280017c) is subwindow of root window (32c)
Conky: window type - normal
Conky: drawing to created window (0xc00003)
Conky: drawing to double buffer
  File "logo_radio.py", line 42
SyntaxError: Non-ASCII character '\xc3' in file logo_radio.py on line 43, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
convert: pas de délégué pour décoder ce format d'image `' @ error/constitute.c/ReadImage/501.
convert: pas d'images définies `/home/romuald/.conky/radiotray/cover.png' @ error/convert.c/ConvertImageCommand/3210.
  File "logo_radio.py", line 42
SyntaxError: Non-ASCII character '\xc3' in file logo_radio.py on line 43, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
convert: pas de délégué pour décoder ce format d'image `' @ error/constitute.c/ReadImage/501.
convert: pas d'images définies `/home/romuald/.conky/radiotray/cover.png' @ error/convert.c/ConvertImageCommand/3210.

Voila .


smilies%20(1).gif

Dernière modification par loutch (Le 11/06/2015, à 13:35)

Hors ligne

#983 Le 11/06/2015, à 15:11

ragamatrix

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Merci Didier-T, en fait j'ai commenté la ligne

print ">>>>http://antwrp.gsfc.nasa.gov/$path$img$ext\n"; 

dans le script perl. Tout va bien les images sont seulement parfois un peu "rognées". Il faut que je revois le script convert, pour que les tailles soient réduites sans couper les images...

Dernière modification par ragamatrix (Le 12/06/2015, à 12:38)

Hors ligne

#984 Le 12/06/2015, à 10:59

enebre

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Bonjour les amis,
Ca va être cool le radiotray avec data et pochette, quel talent ! Chapeau Messieurs. smile

Au passage j'aimerais me faire un lanceur pour mon firefox et thunderbird réunis avec le script du on/off que nous (vous) avions élaboré pour loungeradio.

Cependant le lanceur ne fonctionne que si je le lance en terminal, dès qu'il se retouve dans le panneau supérieur, il devient boudeur... sad

Voici le script de lancement/extinction, aurais-je fait une erreur

#!/bin/bash

PROG_NAME1="/usr/bin/thunderbird"	# Nom du programme à  démarrer/arrêter.
PROG_NAME2="/home/ombre/Téléchargements/firefox/firefox" # Nom du programme à  démarrer/arrêter.

PROCESSPID1=$(pgrep -f thunderbird)	# Récupère le PID du processus.
PROCESSPID2=$(pgrep -f firefox)	# Récupére le PID du processus.


if [[ "$PROCESSPID1" != ""  && "$PROCESSPID2" != "" ]]; then	# Si les deux processus existe alors on le(s) kill.
        kill $PROCESSPID1 && echo "Stop $PROG_NAME1 (PID: $PROCESSPID1)"
        kill $PROCESSPID2  && echo "Stop $PROG_NAME2 (PID: $PROCESSPID2)"
else	# Si aucun processus on démarre le programme.
        kill $PROCESSPID1 
        $PROG_NAME1 & 
        echo "Start $PROG_NAME1"
        kill $PROCESSPID2  
        $PROG_NAME2 & 
        echo "Start $PROG_NAME2 "
        if [[ "$PROCESSPID1" == ""  || "$PROCESSPID2" == "" ]]; then	# Si un des processus n'existe pas alors on le(s) kill.
                kill $PROCESSPID1 && echo "Stop $PROG_NAME1 (PID: $PROCESSPID1)"
                kill $PROCESSPID2  && echo "Stop $PROG_NAME2 (PID: $PROCESSPID2)"
                echo "Il y a eu un souci au lancement tout a été coupé"
        fi
fi

et le lanceur:
s8KE0pzl.png

Hors ligne

#985 Le 12/06/2015, à 11:44

ljere

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

c'est une mauvaise idée à mon avis de passer par kill pour thunderbird et firefox,
d'ailleurs killall serait aussi rapide pas besoin ainsi de récupérer le pid.
je pense qu'il serait plus fiable de les fermer avec

wmctrl -c firefox

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

#986 Le 12/06/2015, à 22:43

enebre

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

bonsoir ljere,
intéressant ça ! mais comment j'intègre ça dans le script hmm

Hors ligne

#987 Le 12/06/2015, à 23:13

ljere

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

tu remplaces par exemple kill $PROCESSPID1 par wmctrl -c thunderbird
et kill $PROCESSPID2 par wmctrl -c firefox


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

#988 Le 13/06/2015, à 09:01

enebre

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Bonjour ljere,
Les deux processus s'ouvrent au clic sur le lanceur mais ils ne se ferment pas au clic suivant sad

#!/bin/bash

PROG_NAME1="/usr/bin/thunderbird"	# Nom du programme à  démarrer/arrêter.
PROG_NAME2="/home/ombre/Téléchargements/firefox/firefox" # Nom du programme à  démarrer/arrêter.

PROCESSPID1=$(pgrep -f /usr/bin/thunderbird)	# Récupère le PID du processus.
PROCESSPID2=$(pgrep -f firefox)	# Récupére le PID du processus.


if [[ "$PROCESSPID1" != ""  && "$PROCESSPID2" != "" ]]; then	# Si les deux processus existe alors on le(s) kill.
        wmctrl -c /usr/bin/thunderbird && echo "Stop $PROG_NAME1 (PID: $PROCESSPID1)"
        wmctrl -c firefox  && echo "Stop $PROG_NAME2 (PID: $PROCESSPID2)"
else	# Si aucun processus on démarre le programme.
        wmctrl -c /usr/bin/thunderbird 
        $PROG_NAME1 & 
        echo "Start $PROG_NAME1"
        wmctrl -c firefox  
        $PROG_NAME2 & 
        echo "Start $PROG_NAME2 "
        if [[ "$PROCESSPID1" == ""  || "$PROCESSPID2" == "" ]]; then	# Si un des processus n'existe pas alors on le(s) kill.
                wmctrl -c /usr/bin/thunderbird 
                wmctrl -c firefox  
                echo "Il y a eu un souci au lancement tout a été coupé"
        fi
fi

exit 0

Hors ligne

#989 Le 19/06/2015, à 17:11

Ferod

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Bonjour

J'ai une petite demande. Je commence à avoir un conky un peu conséquent et je n'aime pas ça.
http://pix.toile-libre.org/?img=1434719565.png
Actuellement tous les éléments sont affichés avec un script lua. Ce script est mis à jour toutes les secondes. Or je n'ai pas besoin d'un rafraîchissement aussi rapide de certains éléments (un rafraichissement toutes les 5 secondes pour la météo, la date, etc.. serait suffisant). Je ne sais pas comment faire.
J'ai essayé de suivre les indications trouvées ici : http://crunchbang.org/forums/viewtopic. … 72#p256172 mais sans résultat.
J'ai essayé de d'avoir 2 conky, un avec un update à 1 et l'autre à 5. En fait celui qui a l'update à 1 prend le pas sur l'autre qui disparait complètement.

Du coup si il y en a qui savent faire, je suis preneur ! Merci.


"When I was in the military, they gave me a medal for killing
two men, and a descharge for loving one !" Leonard Matlovich

Hors ligne

#990 Le 19/06/2015, à 20:38

Didier-T

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Bonjour Ferod,
j'aime beaucoup ton conky.
Faire ce que tu demande ne devrait pas être un soucis, par contre j'aimerais que tu mette ton conky a la disposition de la communauté (ainsi que de moi même big_smile ).

En plus de faire plaisir a ceux qui l'adopterons (j'en ferais certainement partis) ça simplifiera les chose pour le modifier selon tes souhaits.

A+,
Didier.

Hors ligne

#991 Le 19/06/2015, à 20:48

Didier-T

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

loutch a écrit :

http://www.stci.qc.ca/smilies/smilies%20(204).gif

Didier

Ajout de tes deux scripts ( le logo_radio.py j'ai du le mettre dans mon home pas dans le .conky/radiotray/)
j'ai bien le nom de la radio ainsi que l'artiste et le titre de la chanson qui s'affiche .C'est tout je n'ais pas la pochette ni de logos ,et la konsole me donne ceci:

Conky: desktop window (280017c) is subwindow of root window (32c)
Conky: window type - normal
Conky: drawing to created window (0xc00003)
Conky: drawing to double buffer
  File "logo_radio.py", line 42
SyntaxError: Non-ASCII character '\xc3' in file logo_radio.py on line 43, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
convert: pas de délégué pour décoder ce format d'image `' @ error/constitute.c/ReadImage/501.
convert: pas d'images définies `/home/romuald/.conky/radiotray/cover.png' @ error/convert.c/ConvertImageCommand/3210.
  File "logo_radio.py", line 42
SyntaxError: Non-ASCII character '\xc3' in file logo_radio.py on line 43, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
convert: pas de délégué pour décoder ce format d'image `' @ error/constitute.c/ReadImage/501.
convert: pas d'images définies `/home/romuald/.conky/radiotray/cover.png' @ error/convert.c/ConvertImageCommand/3210.

Voila .


http://www.stci.qc.ca/smilies/smilies%20(1).gif

Désolé pour le retard.
Parfois je ne reçois pas les mails pour les nouveaux messages, hmm

ce message signifie que python ne sait pas interpréter un caractère (certainement un accent), ce qui est étrange car je n'ai pas rencontré ce soucis.
peut tu vérifier que le script python est bien copié en entier.

a priori le soucis ce situe au niveau de l'aide pour l'utilisation du script hmm

A+,
Didier.

Hors ligne

#992 Le 19/06/2015, à 21:40

ricorde

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Pour qu'un conky apparaisse sur deux écran il vaut ajouter qu'oi ?
Merci d'avance?


Processeur : Intel Core i7-3930K 3200.0 MHz Socket R (LGA2011-0)    Carte graphique : GIGABYTE GeForce GTX 680    Carte mére : ASUS SABERTOOTH X79   Memory : Kingston DDR3 SDRAM 666.7 MHz 2 fois 8 Go

Hors ligne

#993 Le 19/06/2015, à 22:08

Didier-T

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

sa dépend ricorde,
s'il s’agit de deux écrans physique il faut lancer deux conky avec des positions différentes
si non il doit apparaître dans tous les espaces virtuel

Hors ligne

#994 Le 20/06/2015, à 00:37

ricorde

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

J'ai un écran ordi et je suis brancher en HDMI sur la tele le conky s’affiche que sur l’écran tele
Merci


Processeur : Intel Core i7-3930K 3200.0 MHz Socket R (LGA2011-0)    Carte graphique : GIGABYTE GeForce GTX 680    Carte mére : ASUS SABERTOOTH X79   Memory : Kingston DDR3 SDRAM 666.7 MHz 2 fois 8 Go

Hors ligne

#995 Le 20/06/2015, à 01:03

Ferod

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Didier-T a écrit :

Bonjour Ferod,
j'aime beaucoup ton conky.
Faire ce que tu demande ne devrait pas être un soucis, par contre j'aimerais que tu mette ton conky a la disposition de la communauté (ainsi que de moi même big_smile ).

En plus de faire plaisir a ceux qui l'adopterons (j'en ferais certainement partis) ça simplifiera les chose pour le modifier selon tes souhaits.

A+,
Didier.

Pas de problème. C'est même flatteur. Comme je l'ai déjà fait il y a 2 pages je donne juste les fichiers que j'ai modifiés depuis.

.conkyrc qui ne me sert qu'à afficher les images :

######################
# - Conky settings - #
######################
update_interval 3
total_run_times 0
net_avg_samples 1
cpu_avg_samples 1

imlib_cache_size 0
double_buffer yes
no_buffers yes

#####################
# - Text settings - #
#####################
use_xft yes
xftfont Ubuntu:size=9
override_utf8_locale yes
text_buffer_size 2048

#############################
# - Window specifications - #
#############################
own_window_class Conky
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
#own_window_argb_visual yes
#own_window_argb_value 100

alignment tr
gap_x -2
gap_y 180
minimum_size 350 520


default_bar_size 60 10

# - Graphics settings - #
#########################
draw_shades no

default_color ffffff
default_shade_color 1d1d1d
color0 ffffff
color1 ffffff
color2 ffffff

lua_load ~/.conky/script.lua
lua_draw_hook_pre main
TEXT
${voffset 0}
#---DATE & HEURE----
#---METEO----
${execi 600 ~/.conky/meteo_update.sh}
#---CPU ET RAM----
#---DISQUE DUR----
#---DEBIT INTERNET----
${if_up eth0}
${voffset 255}
${endif}
#---MUSIQUE----
${if_running clementine}
${color}  
$endif

#---IMAGES----
${image ~/.conky/base.png -p 10,0 -s 339x86}
${image ~/.conky/base.png -p 10,73 -s 339x86}
${image ~/.conky/base.png -p 10,146 -s 339x86}
${image ~/.conky/base.png -p 10,219 -s 339x86}
${image ~/.conky/base.png -p 10,292 -s 339x86}
${image ~/.conky/base.png -p 10,365 -s 339x86}
${image ~/.conky/base.png -p 10,438 -s 339x86}
${image ~/.conky/calendar.png -p 28,20 -s 45x45}
${image ~/.conky/weather.png -p 28,93 -s 45x45}
${image ~/.conky/weather.png -p 28,166 -s 45x45}
${image ~/.conky/emblem-system.png -p 28,239 -s 45x45}
${image ~/.conky/folder.png -p 28,312 -s 45x45}
${image ~/.conky/nm-signal-75.png -p 28,385 -s 45x45}
${image ~/.conky/emblem-sound.png -p 28,458 -s 45x45}

meteo_update.sh modifié pour ajouter les données météos de la journée en cours.

#!/bin/bash
#
# Ce script stocke les données météos dans plusieurs fichiers pour qu'ils soient affichées ensuite dans conky

date  +%a > ~/.conky/meteo.jour
for jour in `seq 2 7` ; do
	date --date="+$(($jour-1)) day" +%a >> ~/.conky/meteo.jour
done
wget -q -O ~/.conky/meteo.1 "http://api.openweathermap.org/data/2.5/weather?q=Toulouse&mode=xml&units=metric&lang=fr"
wget -q -O ~/.conky/meteo.7 "http://api.openweathermap.org/data/2.5/forecast/daily?q=Toulouse&mode=xml&units=metric&cnt=7"

#si les deux fichiers ont une taille supérieure à 0, on fait la mise à jour des fichiers.
if [ -s ~/.conky/meteo.1 ] && [ -s ~/.conky/meteo.7 ] ; then 
    sed -i 's/></>\n</g' ~/.conky/meteo.1 
    grep "weather number" ~/.conky/meteo.1 | cut -d\" -f2 > ~/.conky/meteo.cond
    grep "symbol number" ~/.conky/meteo.7 | cut -d\" -f2 | sed -e '1d' >> ~/.conky/meteo.cond

    grep "temperature value" ~/.conky/meteo.1 | cut -d\" -f2 | cut -d. -f1 > ~/.conky/meteo.temp
    grep "temperature day" ~/.conky/meteo.7 | cut -d\" -f2 | cut -d. -f1 | sed -e '1d' >> ~/.conky/meteo.temp

    grep "pressure value" ~/.conky/meteo.1 | cut -d\" -f2 | cut -d. -f1 > ~/.conky/meteo.pres
    grep "pressure unit" ~/.conky/meteo.7 | cut -d\" -f4 | cut -d. -f1 | sed -e '1d' >> ~/.conky/meteo.pres
    
    hr_sunrise=`grep "sun rise" ~/.conky/meteo.1 | cut -d\" -f2 | sed -e 's/T/:/g' | cut -d: -f2-4`
    hr_sunset=`grep "sun rise" ~/.conky/meteo.1 | cut -d\" -f4 | sed -e 's/T/:/g' | cut -d: -f2-4`
    
    echo `date --date="$hr_sunrise"" 2 hour" +%Hh%M` > ~/.conky/meteo.current
    echo `date --date="$hr_sunset"" 2 hour" +%Hh%M` >> ~/.conky/meteo.current
    echo `grep "temperature" ~/.conky/meteo.1 | cut -d\" -f2 | cut -d. -f1`"°" >> ~/.conky/meteo.current
    echo `grep "temperature" ~/.conky/meteo.7 | head -1 | cut -d\" -f4 | cut -d. -f1`"°" >> ~/.conky/meteo.current
    echo `grep "temperature" ~/.conky/meteo.7 | head -1 | cut -d\" -f6 | cut -d. -f1`"°" >> ~/.conky/meteo.current
    echo `grep "humidity" ~/.conky/meteo.1 | cut -d\" -f2`% >> ~/.conky/meteo.current
    speed_ms=`grep "speed" ~/.conky/meteo.1 | cut -d\" -f2`
    speed_kmh=`echo $speed_ms" * 3.6" | bc -l | cut -d. -f1`
    echo $speed_kmh" km/h" >> ~/.conky/meteo.current
    echo `grep "weather" ~/.conky/meteo.1 | cut -d\" -f4` >> ~/.conky/meteo.current
    
    verifPluie=`grep "precipitation" ~/.conky/meteo.1 | cut -d\" -f2`
    if [ $verifPluie == "no" ] ; then
        echo "-" >> ~/.conky/meteo.current
    else
        echo `grep "precipitation" ~/.conky/meteo.1 | cut -d\" -f2 | egrep -o .{4}`" mm" >> ~/.conky/meteo.current
    fi
fi

meteo_display.sh qui me sers à sélectionner les variables à afficher dans lua. Mis à jour pour les données de la journée en cours.

#!/bin/bash
# Ce script permet d'afficher les infos dans conky. Les paramètres sont les suivant 
#	$1 = jour : renvoie le nom du jour $2
#	$1 = pression : renvoie la pression du jour $2
#	$1 = temperature : renvoie la temperature du jour $2
#	$1 = meteo : renvoie la météo du jour $2
#   $1 = current, $2 = 1 : renvoie l'heure de levé de soleil
#   $1 = current, $2 = 2 : renvoie l'heure de couché de soleil
#   $1 = current, $2 = 3, 4  ou 5 : renvoi la température courante min et max
#   $1 = current, $2 = 6 : renvoie le taux d'humidité actuel
#   $1 = current, $2 = 7 : renvoie la vitesse du vent
#   $1 = current, $2 = 8 : renvoie la météo
#   $1 = current, $2 = 9 : renvoie les précipitations prévues à court terme.
#

if [ $1 = "jour" ] ; then
	res_jour=`sed -n $(($2))p ~/.conky/meteo.jour`
	echo $res_jour
elif [ $1 = "pression" ] ; then
	res_pression=`sed -n $(($2))p ~/.conky/meteo.pres`
	echo $res_pression
elif [ $1 = "temperature" ] ; then
	res_temp=`sed -n $(($2))p ~/.conky/meteo.temp`
	echo $res_temp
elif [ $1 = "meteo" ] ; then
	condition=`sed -n $(($2))p ~/.conky/meteo.cond`
	case $condition in
		"200"|"201"|"202"|"230"|"231"|"232"|"906")
			meteo="i" ;;
		"210"|"211"|"212")
			meteo="f" ;;
		"221"|"731"|"900")
			meteo="W" ;;
		"300"|"301"|"302"|"310"|"311"|"312"|"321")
			meteo="G" ;;
		"500"|"501"|"520")
			meteo="g" ;;
		"502"|"503"|"504"|"521"|"522")
			meteo="h" ;;
		"511"|"600"|"601"|"611"|"621")
			meteo="k" ;;
		"602")
			meteo="j" ;;
		"701"|"711")
			meteo="J" ;;
		"721")
			meteo="I" ;;
		"741")
			meteo="F" ;;
		"800")
			meteo="C" ;;
		"801")
			meteo="b" ;;
		"802")
			meteo="c" ;;
		"803")
			meteo="d" ;;
		"804")
			meteo="e" ;;
		"901"|"902")
			meteo="V" ;;
		"903")
			meteo="x" ;;
		"904")
			meteo="z" ;;
		"905")
			meteo="v" ;;
	esac
	echo $meteo
elif [ $1 = "current" ] ; then
    res_current=`sed -n $(($2))p ~/.conky/meteo.current`
    echo $res_current
else
	echo "Err"
fi

script.lua qui fait tout le boulot. Je l'ai déjà modifié depuis que j'ai posté l'image cette aprèm...

--this is a lua script for use in conky
require 'cairo'
conky_start=0

function draw_circle(alpha,progress,x_center,y_center,radius,epaisseur)
    cairo_set_source_rgba(cr,1,1,1,alpha)
    cairo_set_line_width(cr,epaisseur)
    cairo_arc(cr, x_center, y_center, radius, 0-math.pi/2, progress * 2 * math.pi / 100 - math.pi/2)
    cairo_stroke(cr)
end

function draw_circle_gauge(alpha,nb_gauge,angle_step,angle_step_ink,x_center,y_center,radius,epaisseur)
    cairo_set_source_rgba(cr,1,1,1,alpha)
    cairo_set_line_width(cr,epaisseur)
    angle_step_rad=angle_step*math.pi/180
    angle_step_ink_rad=angle_step_ink*math.pi/180
    local i = 1
    angle=-math.pi/2
    while i <= nb_gauge do
        cairo_arc(cr, x_center, y_center, radius, angle, angle + angle_step_ink_rad)
        angle=angle+angle_step_rad
        cairo_stroke(cr)
        i = i+1
    end
    
end

function draw_line(alpha,progress,x_ligne,y_ligne,longueur,epaisseur)
    red,green,blue=1,1,1
    cairo_set_source_rgba (cr,1,1,1,alpha)
    cairo_set_line_width (cr, epaisseur)
    cairo_set_dash(cr,1.,0,1)
    cairo_move_to (cr, x_ligne, y_ligne)
    cairo_line_to (cr, x_ligne+longueur*progress/100, y_ligne)
    cairo_stroke (cr)
end

function draw_dash_line(alpha,progress,x_ligne,y_ligne,longueur,epaisseur)
    red,green,blue=1,1,1
    cairo_set_source_rgba (cr,1,1,1,alpha)
    cairo_set_line_width (cr, epaisseur)
    cairo_set_dash(cr,5.,1,0)
    cairo_move_to (cr, x_ligne, y_ligne)
    cairo_line_to (cr, x_ligne+longueur*progress/100, y_ligne)
    cairo_stroke (cr)
end
function draw_scale(alpha,x_ligne,y_ligne,nb_step,long_step_ink,long_step,epaisseur)
    red,green,blue=1,1,1
    cairo_set_source_rgba (cr,1,1,1,alpha)
    cairo_set_line_width (cr, epaisseur)
    local i = 1
    x_step=x_ligne
    while i <= nb_step do
        cairo_move_to (cr, x_step, y_ligne)
        cairo_line_to (cr, x_step+long_step_ink,y_ligne)
        cairo_stroke (cr)
        x_step=x_step + long_step
        i=i+1
    end
end
function affiche_texte(police,taille,x,y,alpha,texte)
    red,green,blue,alpha=1,1,1,alpha
    cairo_select_font_face (cr, police, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL)
    cairo_set_font_size (cr, taille)
    cairo_set_source_rgba (cr,red,green,blue,alpha)
    cairo_move_to (cr,x,y)
    cairo_show_text (cr,texte)
    cairo_stroke (cr)
end

function graph_line()
    -- Horloge
    draw_circle(0.2,100,200,48,20,2)
    draw_circle(0.2,100,200,48,25,2)
    heure=tonumber(conky_parse("${time %I}"))
    minute=tonumber(conky_parse("${time %M}"))
    seconde=tonumber(conky_parse("${time %S}"))
    if heure == 12 then
        heure = 0
    end
    prog_seconde=seconde/60
    prog_minute=(minute+prog_seconde)/60
    prog_heure=(heure+prog_minute)/12
    draw_circle(1.,prog_minute*100,200,48,25,2)
    draw_circle(1.,prog_heure*100,200,48,20,2)
    draw_circle_gauge(1,12,30,2,200,48,20,2)
    draw_circle_gauge(1,12,30,2,200,48,25,2)
    draw_circle_gauge(1,seconde,6,2,200,48,30,2)
    
    --CPU & RAM  
    local y_img_4 = 219  
    draw_scale(0.5,153,y_img_4+32,36,1,5,3)
    draw_scale(1,153,y_img_4+32,8,1,25,6)
    T1=tonumber(conky_parse("${execi 30 ~/.conky/sensors.sh 1}"))
	T2=conky_parse("${execi 30 ~/.conky/sensors.sh 2}")
	t1=T1-30
	t2=T2-30
	if t1<0 then
	    t1 = 0
	end
	if t2<0 then
	    t2 = 0
	end
	draw_line(t1/35,t1/35*100,153,y_img_4+31,150,2)
	draw_line(t2/35,t2/35*100,153,y_img_4+33,150,2)
    
    
    draw_line(0.2,100,180,y_img_4+49,150,2)
    cpu1=tonumber(conky_parse("${cpu cpu1}"))
    cpu2=tonumber(conky_parse("${cpu cpu2}"))
    cpu3=tonumber(conky_parse("${cpu cpu3}"))
    cpu4=tonumber(conky_parse("${cpu cpu4}"))
    x1=180
    x2=x1+cpu1/100*37.5
    x3=x2+cpu2/100*37.5
    x4=x3+cpu3/100*37.5
    draw_line(1,cpu1,x1,y_img_4+49,37.5,2)
    draw_line(0.8,cpu2,x2,y_img_4+49,37.5,2)
    draw_line(0.6,cpu3,x3,y_img_4+49,37.5,2)
    draw_line(0.4,cpu4,x4,y_img_4+49,37.5,2)
    
    draw_line(0.2,100,180,y_img_4+72,150,2)
    mem_perc=tonumber(conky_parse("${memperc}"))
    draw_line(1,mem_perc,180,y_img_4+72,150,2)
    
    --utilisation disque :
    local y_img_5 = 292
    draw_line(0.2,100,160,y_img_5+33,170,2)
    used_perc1=tonumber(conky_parse("${fs_used_perc /home}"))
    draw_line(1,used_perc1,160,y_img_5+33,170,2)
    
    draw_line(0.2,100,160,y_img_5+53,170,2)
    used_perc2=tonumber(conky_parse("${fs_used_perc /}"))
    draw_line(1,used_perc2,160,y_img_5+53,170,2)
    
    draw_line(0.2,100,160,y_img_5+83,170,2)
    used_perc3=tonumber(conky_parse("${fs_used_perc /media/Documents}"))
    draw_line(1,used_perc3,160,y_img_5+73,170,2)
    
    --upload
    local y_img_6 = 365
    draw_line(0.2,100,170,y_img_6+33,160,2)
    ratio_upload=tonumber(conky_parse("${upspeedf eth0}")/55*100)
    draw_line(1,ratio_upload,170,y_img_6+33,160,2)
    --download
    draw_line(0.2,100,170,y_img_6+48,160,2)
    ratio_upload=tonumber(conky_parse("${downspeedf eth0}")/302*100)
    draw_line(1,ratio_upload,170,y_img_6+48,160,2)
    
    -- lecture musique
    local y_img_7 = 438
    draw_line(0.2,100,100,y_img_7+70,230,2)
	progress=tonumber(conky_parse("${execi 5 python2 ~/.conky/anowplaying.py -p}"))
	draw_line(1,progress,100,y_img_7+70,230,2)
end

function display_text()
    local y_img_1 = 0
	--[[###########################################
		Heure et Date
	##############################################]]
	affiche_texte("Ubuntu",11,92,y_img_1+30,1,"J"..conky_parse("${time %j}").." - S"..conky_parse("${time %V}"))
	affiche_texte("Sans",50,85,y_img_1+73,1,"☼")
	h_leve=conky_parse("${execi 10 ~/.conky/meteo_display.sh current 1}")
	h_couche=conky_parse("${execi 10 ~/.conky/meteo_display.sh current 2}")
	affiche_texte("Ubuntu",11,130,y_img_1+50,1,h_leve)
	affiche_texte("Ubuntu",11,130,y_img_1+70,1,h_couche)
	affiche_texte("Ubuntu",12,185,y_img_1+52,1,conky_parse("${time %H:%M}"))     --heure
    affiche_texte("Ubuntu",12,282,y_img_1+34,1,conky_parse("${time %A}"))        --nom du jour
	affiche_texte("Ubuntu",12,282,y_img_1+45,1,conky_parse("${time %B}"))        --nom du mois
	affiche_texte("Ubuntu",32,245,y_img_1+45,1,conky_parse("${time %d}"))        --numeros du jour
	affiche_texte("Ubuntu",32,245,y_img_1+71,1,conky_parse("${time %Y}"))        --année
	
	--[[###########################################
		Météo actuelle
	##############################################]]
	local y_img_2 = 73
	affiche_texte("Weather",65,95,y_img_2+77,1,conky_parse("${execi 10 ~/.conky/meteo_display.sh meteo 1}"))
	--affiche_texte("Weather",65,95,y_img_2+77,1,"g")
	meteo_act=conky_parse("${execi 10 ~/.conky/meteo_display.sh current 8}")
	pression=conky_parse("${execi 10 ~/.conky/meteo_display.sh pression 1}").." hPa"
	temp_act=conky_parse("${execi 10 ~/.conky/meteo_display.sh current 3}")
	affiche_texte("Ubuntu",11,150,y_img_2+30,1,meteo_act.." - "..temp_act.." - "..pression)
	
	humidite=conky_parse("${execi 10 ~/.conky/meteo_display.sh current 6}")
	affiche_texte("Ubuntu",11,150,y_img_2+45,1,pression.." - "..humidite.." hum")
	speed=conky_parse("${execi 10 ~/.conky/meteo_display.sh current 7}")
	affiche_texte("Ubuntu",11,150,y_img_2+60,1,"Vent : "..speed)
	precipitation=conky_parse("${execi 10 ~/.conky/meteo_display.sh current 9}")
	affiche_texte("Ubuntu",11,150,y_img_2+75,1,"Pluies : "..precipitation)
	
	temp_min=conky_parse("${execi 10 ~/.conky/meteo_display.sh current 4}")
	temp_max=conky_parse("${execi 10 ~/.conky/meteo_display.sh current 5}")
	--affiche_texte("Ubuntu",11,150,y_img_2+40,1,"min : "..temp_min.." - max : "..temp_max)
	affiche_texte("Ubuntu",11,310,y_img_2+70,1,temp_min)
	affiche_texte("Ubuntu",11,310,y_img_2+45,1,temp_max)
	affiche_texte("Weather",50,295,y_img_2+75,1,"y")
	
	--[[###########################################
		prévision météo semaine
	##############################################]]
	local y_img_3 = 146
	affiche_texte("Weather",50,95,y_img_3+67,1,conky_parse("${execi 10 ~/.conky/meteo_display.sh meteo 2}"))
	affiche_texte("Weather",50,135,y_img_3+67,1,conky_parse("${execi 10 ~/.conky/meteo_display.sh meteo 3}"))
	affiche_texte("Weather",50,175,y_img_3+67,1,conky_parse("${execi 10 ~/.conky/meteo_display.sh meteo 4}"))
	affiche_texte("Weather",50,215,y_img_3+67,1,conky_parse("${execi 10 ~/.conky/meteo_display.sh meteo 5}"))
	affiche_texte("Weather",50,255,y_img_3+67,1,conky_parse("${execi 10 ~/.conky/meteo_display.sh meteo 6}"))
	affiche_texte("Weather",50,295,y_img_3+67,1,conky_parse("${execi 10 ~/.conky/meteo_display.sh meteo 7}"))
	
	-- affichage du jour
	affiche_texte("Ubuntu",11,100,y_img_3+27,1,conky_parse("${execi 10 ~/.conky/meteo_display.sh jour 2}"))
	affiche_texte("Ubuntu",11,140,y_img_3+27,1,conky_parse("${execi 10 ~/.conky/meteo_display.sh jour 3}"))
	affiche_texte("Ubuntu",11,180,y_img_3+27,1,conky_parse("${execi 10 ~/.conky/meteo_display.sh jour 4}"))
	affiche_texte("Ubuntu",11,220,y_img_3+27,1,conky_parse("${execi 10 ~/.conky/meteo_display.sh jour 5}"))
    affiche_texte("Ubuntu",11,260,y_img_3+27,1,conky_parse("${execi 10 ~/.conky/meteo_display.sh jour 6}"))
	affiche_texte("Ubuntu",11,300,y_img_3+27,1,conky_parse("${execi 10 ~/.conky/meteo_display.sh jour 7}"))
	
	-- prévision température jour
	affiche_texte("Ubuntu",12,100,y_img_3+74,1,conky_parse("${execi 10 ~/.conky/meteo_display.sh temperature 2}").."°C")
    affiche_texte("Ubuntu",12,140,y_img_3+74,1,conky_parse("${execi 10 ~/.conky/meteo_display.sh temperature 3}").."°C")
	affiche_texte("Ubuntu",12,180,y_img_3+74,1,conky_parse("${execi 10 ~/.conky/meteo_display.sh temperature 4}").."°C")
	affiche_texte("Ubuntu",12,220,y_img_3+74,1,conky_parse("${execi 10 ~/.conky/meteo_display.sh temperature 5}").."°C")
	affiche_texte("Ubuntu",12,260,y_img_3+74,1,conky_parse("${execi 10 ~/.conky/meteo_display.sh temperature 6}").."°C")
	affiche_texte("Ubuntu",12,300,y_img_3+74,1,conky_parse("${execi 10 ~/.conky/meteo_display.sh temperature 7}").."°C")
	
	
	--[[###########################################
		CPU Temperature et RAM
	##############################################]]
	local y_img_4 = 219
	affiche_texte("Ubuntu",13,100,y_img_4+32,1,"Temp :")
	affiche_texte("Ubuntu",13,100,y_img_4+52,1,"CPU    :")
	affiche_texte("Ubuntu",13,100,y_img_4+72,1,"RAM   :")
	
	affiche_texte("Ubuntu",10,147,y_img_4+26,1,"30°")
	affiche_texte("Ubuntu",10,197,y_img_4+26,1,"40°")
	affiche_texte("Ubuntu",10,247,y_img_4+26,1,"50°")
	affiche_texte("Ubuntu",10,297,y_img_4+26,1,"60°")
	
	cpu1=tonumber(conky_parse("${cpu cpu1}"))
	cpu2=tonumber(conky_parse("${cpu cpu2}"))
	cpu3=tonumber(conky_parse("${cpu cpu2}"))
	cpu4=tonumber(conky_parse("${cpu cpu4}"))
	cpu=math.floor(0.25*(cpu1+cpu2+cpu3+cpu4))
    affiche_texte("Ubuntu",11,150,y_img_4+52,1,cpu.."%")
	
	affiche_texte("Ubuntu",11,150,y_img_4+72,1,conky_parse("${memperc}").."%")
	affiche_texte("Ubuntu",11,180,y_img_4+69,1,conky_parse("${mem}"))
	affiche_texte("Ubuntu",11,290,y_img_4+69,0.7,conky_parse("${memeasyfree}"))
	
	--[[###########################################
		Espace disponible
	##############################################]]
	local y_img_5 = 292
	affiche_texte("Heydings Icons",18,100,y_img_5+34,1,"H")
    affiche_texte("Heydings Icons",18,100,y_img_5+54,1,"L")
    affiche_texte("Heydings Icons",18,100,y_img_5+74,1,"F")
    
	espace1=conky_parse("${fs_used_perc /home}").."%"
	espace2=conky_parse("${fs_used_perc /}").."%"
	espace3=conky_parse("${fs_used_perc /media/Documents}").."%"
	
	affiche_texte("Ubuntu",15,123,y_img_5+33,1,espace1)
    affiche_texte("Ubuntu",15,123,y_img_5+53,1,espace2)
    affiche_texte("Ubuntu",15,123,y_img_5+73,1,espace3)

    esp_used1=conky_parse("${fs_used /home}")
	esp_used2=conky_parse("${fs_used /}")
	esp_used3=conky_parse("${fs_used /media/Documents}")
	
	affiche_texte("Ubuntu",11,160,y_img_5+30,1,esp_used1)
    affiche_texte("Ubuntu",11,160,y_img_5+50,1,esp_used2)
    affiche_texte("Ubuntu",11,160,y_img_5+70,1,esp_used3)
    
    esp_free1=conky_parse("${fs_free /home}")
	esp_free2=conky_parse("${fs_free /}")
	esp_free3=conky_parse("${fs_free /media/Documents}")
	
	affiche_texte("Ubuntu",11,290,y_img_5+30,0.7,esp_free1)
    affiche_texte("Ubuntu",11,290,y_img_5+50,0.7,esp_free2)
    affiche_texte("Ubuntu",11,290,y_img_5+70,0.7,esp_free3)
	
	--[[###########################################
		Débit internet
	##############################################]]
	local y_img_6 = 365
	affiche_texte("Deja",18,100,y_img_6+38,1,"↗")
	affiche_texte("Ubuntu",12,120,y_img_6+38,1,conky_parse("${upspeed eth0}"))
	affiche_texte("Deja",18,100,y_img_6+53,1,"↘")
	affiche_texte("Ubuntu",12,120,y_img_6+53,1,conky_parse("${downspeed eth0}"))
	up_total=conky_parse("${totalup eth0}")
	down_total=conky_parse("${totaldown eth0}")
	affiche_texte("Ubuntu",12,100,y_img_6+68,1,"Total : "..up_total.." / "..down_total)
	
	--[[###########################################
		Musique
	##############################################]]
	local y_img_7 = 438
	affiche_texte("Ubuntu",11,100,y_img_7+35,1,conky_parse("${execi 5 python2 ~/.conky/anowplaying.py -l}"))
    affiche_texte("Ubuntu",11,100,y_img_7+50,1,conky_parse("${execi 5 python2 ~/.conky/anowplaying.py -t}"))
	temp_ecoule=conky_parse("${execi 5 python2 ~/.conky/anowplaying.py -e}")
	temp_remain=conky_parse("${execi 5 python2 ~/.conky/anowplaying.py -r}")
	affiche_texte("Ubuntu",11,100,y_img_7+65,1,temp_ecoule)
	affiche_texte("Ubuntu",11,310,y_img_7+65,0.7,temp_remain)
end

function graph_variable()
    --seconde=tonumber(conky_parse("${time %S}"))
    --draw_circle_gauge(1,seconde,6,2,300,48,30,2)
end


function conky_main()
    if conky_window == nil then
        return
    end
    
    local cs = cairo_xlib_surface_create(conky_window.display,
                                         conky_window.drawable,
                                         conky_window.visual,
                                         conky_window.width,
                                         conky_window.height)
    cr = cairo_create(cs)
    local display = cairo_create(cs)
    local updates=tonumber(conky_parse('${updates}'))
    
    interval=10
    timer=(updates % interval)
    if timer==0 or conky_start==1 then
        graph_variable()
        conky_start=nil
    end
    
    if updates>5 then
        display_text()
        --affiche_variable()
		graph_line()
    end
    
    cairo_destroy(cr)
    cairo_surface_destroy(cs)
    cr=nil
end

D'autre part j'utilise les polices Heydings Icons et weather.
Pour être tout à fait complet j'ai tout changé mais je suis parti de notifyOSD de BigRZA.


"When I was in the military, they gave me a medal for killing
two men, and a descharge for loving one !" Leonard Matlovich

Hors ligne

#996 Le 20/06/2015, à 10:15

loutch

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

smilies%20(204).gif

Didier effectivement j'ai recopier le script et en effet il devait y avoir une erreur.Comme tu le dit ça fonctionne à la louche mais ça fonctionne .

J'ai fait un mélange avec mon conky parce que pour la recherche des logos cela ne correspond pas toujours , et pour les pochettes parfois c'est juste une image de l'artiste.

Quelque image du fonctionnement :

juste:

1434786185.png

1434786671.png

avec pub:

1434786290.png

et en général lorsqu'il ne trouve pas il y a ceci:

1434786385.png

loungeradio

1434788098.png

Le conkyrc:

background yes
use_xft yes
xftfont URW Chancery L:style=Bold:size=11
xftalpha 1
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
#own_window_color 000000
own_window_argb_visual yes
#own_window_argb_value 0
own_window_type normal
own_window_hints undecorated,below,skip_taskbar,skip_pager,sticky
double_buffer yes
minimum_size 250 320
maximum_width 250
text_buffer_size 2048
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_color white
default_outline_color white
alignment top_right
gap_x 0
gap_y 600
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
imlib_cache_size 0
# Fonctionne uniquement avec les polices Fixes
#use_spacer yes

# Taille des pointillés
stippled_borders 5

# Couleurs
default_color FFFFFF #blanc
default_shade_color 333333
default_outline_color black

color1                ffffff
#
color2                e8e8e8
#
color3                6495ee
#
color4                cacaca
#
color5                e7e7e7
#
color6                red

lua_load ~/.conky/draw_bg/draw_bg.lua

lua_load ~/.conky/conky-meteo/meteo_lua_2/scripts/meteo2.lua


TEXT

${voffset -30}${font URW Chancery L:style=Bold:size=20}${alignc}Radiotray ${font}
Radio : ${alignc}${font URW Chancery L:style=Bold:size=14}${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray net.sourceforge.radiotray.getCurrentRadio}$font
${alignc}${voffset 80}En ce moment :
${voffset -30}${font URW Chancery L:style=Bold:size=20}${alignc}Radiotray ${font}
Radio : ${alignc}${font URW Chancery L:style=Bold:size=14}${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray net.sourceforge.radiotray.getCurrentRadio}$font
${alignc}${voffset 80}En ce moment :
${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray getCurrentMetaData| fold -s -w40 }
${if_match "${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray net.sourceforge.radiotray.getCurrentRadio}" == "RTL"}${lua fDrawImage ~/.conky/radiotray/logos/rtl.png 90 60 60 60}${else}
${if_match "${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray net.sourceforge.radiotray.getCurrentRadio}" == "HOTMIX80"}${lua fDrawImage ~/.conky/radiotray/logos/hotmix-80.png 90 60 60 60}${else}
${if_match "${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray net.sourceforge.radiotray.getCurrentRadio}" == "MAXI80"}${lua fDrawImage ~/.conky/radiotray/logos/maxi80.png 90 50 80 80}${else}
${if_match "${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray net.sourceforge.radiotray.getCurrentRadio}" == "RTL2"}${lua fDrawImage ~/.conky/radiotray/logos/rtl2.png 90 50 80 80}${else}
${if_match "${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray net.sourceforge.radiotray.getCurrentRadio}" == "RFM"}${lua fDrawImage ~/.conky/radiotray/logos/rfm.png 40 130 120 120}${else}
${if_match "${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray net.sourceforge.radiotray.getCurrentRadio}" == "MAGNUM LA RADIO"}${lua fDrawImage ~/.conky/radiotray/logos/magnumradio.png 40 50 180 80}${else}
${endif}${endif}${endif}${endif}${endif}${endif}
${lua fDrawImage ~/.conky/radiotray/cover.png 70 200 120 120}
${voffset 600}${texeci 20 ~/.conky/radiotray/info_radio.sh}
${voffset -1000}



smilies%20(1).gif

Dernière modification par loutch (Le 20/06/2015, à 10:28)

Hors ligne

#997 Le 20/06/2015, à 23:48

Ferod

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Pour info je pense que j'ai résolu mon problème. En fait la solution avec deux conky marche : il suffit de modifier un peu les paramètres du conky qui vient en surimpression du premier. Ces paramètres sont à rajouter pour avoir vraiment une transparence.

own_window_argb_visual yes
own_window_argb_value 100

Bon du coup j'ai splitté et modifié tous mes fichiers pour avoir un conky "statique" (avec un update à 5) qui appelle un script_lua_statique et un conky "dynamique" (update à 1) avec les deux paramètres ci dessus en plus et qui appelle un script_lua_dynamique.
Au niveau performance je ne gagne pas autant que ce que je pensais.
D'autant qu'au démarrage ça me parait un peu capricieux. Des fois le dynamique ne s'affiche pas du tout. Bref. Je vais voir si je garde comme ça où si je reviens à la version "unifiée" mais avec un rafraichissement à 3...


"When I was in the military, they gave me a medal for killing
two men, and a descharge for loving one !" Leonard Matlovich

Hors ligne

#998 Le 21/06/2015, à 20:07

loutch

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

smilies%20(204).gif

Je viens de remarqué que l'image de la pochette (lorsque c'est la bonne  ) clignote toute les 20 25 secondes.Elles disparait environ 1-2 secondes puis elle réapparait.Une idée?

smilies%20(1).gif

Dernière modification par loutch (Le 22/06/2015, à 09:16)

Hors ligne

#999 Le 21/06/2015, à 23:08

ricorde

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Didier-T a écrit :

sa dépend ricorde,
s'il s’agit de deux écrans physique il faut lancer deux conky avec des positions différentes
si non il doit apparaître dans tous les espaces virtuel

peux tu me dire comment lancer 2 conky avec positions différents
merci


Processeur : Intel Core i7-3930K 3200.0 MHz Socket R (LGA2011-0)    Carte graphique : GIGABYTE GeForce GTX 680    Carte mére : ASUS SABERTOOTH X79   Memory : Kingston DDR3 SDRAM 666.7 MHz 2 fois 8 Go

Hors ligne

#1000 Le 24/06/2015, à 15:48

Didier-T

Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes

Bonjour Ferod et tous,
je me suis un laché sur ton conky, désolé big_smile
voici le lien vers le pack

parmi les changement nous avons la disparition des deux scripts météo écrit en bash, j'ai écrit un script lua pour les remplacer les infos sont toujours prise au même endroit (en fait, c'est plus un portage vers lua)
pour clementine j'ai écrit deux scripts :
        - un en python à lancer au démarrage de l'ordinateur, il sert de démon et écrit dans l'espace temporaire les informations concernant la lecture de clementine (dans mon cas cette espace est un disque virtuel).
        - un en lua qui vas chercher les informations mise a disposition par le script python.

cher moi le conky ne consomme quasiment plus de ressource système ~12 Mo entre 0 et 5 % de processeur (intel core 2 duo @2.66Ghz)
et le démon pour clementine ~7 Mo  ~0% pendant la lecture monte à ~5% au changement de titre.

pour l'utilisation il te faudra modifier .conkyrc et script.lua (les chemins et le département pour la météo).


Pour les curieux voici les scripts du conky.

playing_clementine.py

#!/usr/bin/env python2
#-*- coding: ascii -*-
#
# playing_clementine.py
# Script creer sur la base de anowplaying.py
# par Didier-T
#
# pour utilisation avec conky
#

import dbus, optparse, shutil, commands
import unicodedata
from time import sleep


class maj:
    def __init__(self):
        '''Get system bus'''
        bus = dbus.SessionBus()
        try:
            self.amarok = bus.get_object('org.mpris.clementine', '/Player')
        except:
            self.amarok=None
            return
        self.amarokdict = self.amarok.GetMetadata()
        self.holdprogress = 0
        self.init = 1

    def unaccent(self, str):
        return unicodedata.normalize('NFKD', str).encode('ascii', 'ignore')

    def init_ok(self):
        if self.amarok is not None:
            return 0
        else:
            return 1

    def maj(self):
        temp = {}
        ret = {}
        cpos = mt = mtime = etime = rtime = progress = None

        if self.amarokdict.has_key('mtime'):
            try :
                cpos = self.amarok.PositionGet()/1000
            except:
                self.amarok=None
                return
            mt = self.amarokdict['mtime']/1000
            mtime = str(mt/60)+":"+str(mt%60) if mt%60>9 else str(mt/60)+":0"+str(mt%60)
            etime = str(cpos/60)+":"+str(cpos%60) if cpos%60>9 else str(cpos/60)+":0"+str(cpos%60)
            rtime = str((mt-cpos)/60)+":"+str((mt-cpos)%60) if (mt-cpos)%60>9 else str((mt-cpos)/60)+":0"+str((mt-cpos)%60)
            progress= float(cpos)/float(mt)*100
        if etime is not None:
            temp["etime"]=etime
        if rtime is not None:
            temp["rtime"]=rtime
        if mtime is not None:
            temp["mtime"]=mtime
        if progress is not None:
            temp["progress"]=progress

        if self.holdprogress >= progress or self.init == 1:
            self.init = 0
            self.holdprogress = progress
            try :
                self.amarokdict = self.amarok.GetMetadata()
            except:
                self.amarok=None
                return
            if self.amarokdict.has_key('artist') :
                ret["artist"] = self.unaccent(self.amarokdict['artist'][0:50])
            if self.amarokdict.has_key('title'):
                ret["title"] = self.unaccent(self.amarokdict['title'][0:50])
            if self.amarokdict.has_key('album'):
                ret["album"] = self.unaccent(self.amarokdict['album'][0:35])
            if self.amarokdict.has_key('genre'):
                ret["genre"] = self.unaccent(self.amarokdict['genre'][0:50])
            if self.amarokdict.has_key('year'):
                ret["year"] = str(self.amarokdict['year'])
            if self.amarokdict.has_key('tracknumber'):
                ret["tracknumber"] = str(self.amarokdict['tracknumber'])
            if self.amarokdict.has_key('audio-bitrate'):
                ret["bitrate"] = str(self.amarokdict['audio-bitrate'])
            if self.amarokdict.has_key('audio-samplerate'):
                ret["samplerate"] = str(self.amarokdict['audio-samplerate'])

            if self.amarokdict.has_key('arturl'):
                cover = self.amarokdict['arturl']
                if cover != "" :
                    try :
                        shutil.copyfile(cover.replace('file://', ''), "/tmp/jaquet.jpg")
                    except Exception, e:
                        print e

            fiche = open("/tmp/clem_play", "w")
            fiche.write(str(ret))
            fiche.close()

        fiche = open("/tmp/clem_temp", "w")
        fiche.write(str(temp))
        fiche.close()


def demonise(init):
    x=0
    while 1 :
#        if x==240 :
#            raise SystemExit
#        x=x+1
        '''Check if clementine is running'''
        output = commands.getoutput('ps -A')
        if 'clementine' in output:
            if init==1 :
                miseajour=maj()
                init=miseajour.init_ok()
            else:
                init=miseajour.init_ok()
                if init==0:
                    miseajour.maj()

        sleep(1)


if __name__ == '__main__':
    demonise(1)

playing_clementine.lua

-- Biliothèque de récupération de donées clementine pour conky
-- Ecrit par Didier-T
-- Du forum ubuntu.fr
-- Pour les besoins d'un conky créer par Ferod
-- Le 23/06/2015


local json = require('json')
local math = require('math')
local tonumber = tonumber
local assert = assert
local os = require('os')
local io = require('io')
local collectgarbage = collectgarbage
local dermodif = nil
local info_titre, time_titre
module("playing_clementine")

do
    function info(recherche)
        local function exec(cmd)
            local cmd=cmd.." > /tmp/exec.log"
            local e=os.execute(cmd)
            local file=assert(io.open("/tmp/exec.log", "r"))
            local r=file:read()
            assert(file:close())
            return r
        end
        --Vérifier l'existence d'un fichier
        local function existe(file)
            local a = io.open(file, "r")
            local present
            if a then
                present = true
                io.close(a)
            else
                present = false
            end
            return present
        end
        if existe("/tmp/clem_play") then
            local dermodif2=exec("date -r /tmp/clem_play '+%s'")
            if dermodif == nil or dermodif ~= dermodif2 then
                dermodif=dermodif2
                local file = assert(io.open("/tmp/clem_play", "rb") )
                local line = file:read()
                info_titre = json.decode(line)
                assert(file:close())
            end
        end
        if existe("/tmp/clem_temp") then
            local dermodif4=exec("date -r /tmp/clem_temp '+%s'")
            if dermodif3 == nil or dermodif3 ~= dermodif4 then
                dermodif3=dermodif4
                local file = assert(io.open("/tmp/clem_temp", "rb") )
                local line = file:read()
                time_titre = json.decode(line)
                assert(file:close())
            end
        end

        if recherche=="artiste" then
            return info_titre["artist"] or "N/A"
        elseif recherche=="titre" then
            return info_titre["title"] or "N/A"
        elseif recherche=="album" then
            return info_titre["album"] or "N/A"
        elseif recherche=="genre" then
            return info_titre["genre"] or "N/A"
        elseif recherche=="annee" then
            return info_titre["year"] or "N/A"
        elseif recherche=="tracknumber" then
            return info_titre["tracknumber"] or "N/A"
        elseif recherche=="bitrate" then
            return info_titre["bitrate"] or "N/A"
        elseif recherche=="samplerate" then
            return info_titre["samplerate"] or "N/A"
        elseif recherche=="temp_passe" then
            return time_titre["etime"] or "0"
        elseif recherche=="temp_restant" then
            return time_titre["rtime"] or "0"
        elseif recherche=="temp_titre" then
            return time_titre["mtime"] or "0"
        elseif recherche=="avancement" then
            return time_titre["progress"] or "0"
        else
            return "Non affecté"
        end
        collectgarbage()
    end
end

meteo.lua

-- Biliothèque météo simple pour conky
-- Ecrit par Didier-T
-- Du forum ubuntu.fr
-- Pour les besoins d'un conky créer par Ferod
-- Le 23/06/2015


local json = require('json')
local math = require('math')
local tonumber = tonumber
local assert = assert
local os = require('os')
local io = require('io')
local collectgarbage = collectgarbage
local cc, sj
local print = print
local tostring = tostring
module("meteo")

-- utiliser le code postal pour trouver la ville

do
    function maj(code_postal, periode)
        print("Mise à jour météo")
        periode=periode or "all"
        code_postal=code_postal or "75000"

        local function curl(url)
            local cmd="curl -o /tmp/curl.log -s ".."\""..url.."\""
            local e=os.execute(cmd)
            local file=assert(io.open("/tmp/curl.log", "r"))
            local r=file:read()
            assert(file:close())
            return r, (e==0 or e==true)
        end
        local function cond_cour(code_postal)
            local r,e=curl("http://api.openweathermap.org/data/2.5/weather?q="..code_postal..",fr&mode=json&units=metric&lang=fr")
            local ret=json.decode(r)
            ret["weather"][1]["id"]=tostring(ret["weather"][1]["id"]):gsub("200", "i"):gsub("201", "i"):gsub("202", "i"):gsub("230", "i"):gsub("231", "i"):gsub("232", "i"):gsub("906", "i"):
                                        gsub("210", "f"):gsub("211", "f"):gsub("212", "f"):
                                        gsub("221", "W"):gsub("731", "W"):gsub("900","W"):
                                        gsub("300", "G"):gsub("301", "G"):gsub("302", "G"):gsub("310", "G"):gsub("311", "G"):gsub("312", "G"):gsub("321", "G"):
                                        gsub("500", "g"):gsub("501", "g"):gsub("520", "g"):
                                        gsub("502", "h"):gsub("503", "h"):gsub("504", "h"):gsub("521", "h"):gsub("522", "h"):
                                        gsub("511", "k"):gsub("600", "k"):gsub("601", "k"):gsub("611", "k"):gsub("621", "k"):
                                        gsub("602", "j"):
                                        gsub("701", "J"):gsub("711", "J"):
                                        gsub("721", "I"):
                                        gsub("741", "F"):
                                        gsub("800", "C"):
                                        gsub("801", "b"):
                                        gsub("802", "c"):
                                        gsub("803", "d"):
                                        gsub("804", "e"):
                                        gsub("901", "V"):gsub("902", "V"):
                                        gsub("903", "x"):
                                        gsub("904", "z"):
                                        gsub("905", "v")
            return ret
        end
        local function sept_jour(code_postal)
            local r,e=curl("http://api.openweathermap.org/data/2.5/forecast/daily?q="..code_postal..",fr&mode=json&units=metric&cnt=7&lang=fr")
            local ret=json.decode(r)
            for jour=1, 7 do
                ret["list"][jour]["weather"][1]["id"]=tostring(ret["list"][jour]["weather"][1]["id"]):
                                                    gsub("200", "i"):gsub("201", "i"):gsub("202", "i"):gsub("230", "i"):gsub("231", "i"):gsub("232", "i"):gsub("906", "i"):
                                                    gsub("210", "f"):gsub("211", "f"):gsub("212", "f"):
                                                    gsub("221", "W"):gsub("731", "W"):gsub("900","W"):
                                                    gsub("300", "G"):gsub("301", "G"):gsub("302", "G"):gsub("310", "G"):gsub("311", "G"):gsub("312", "G"):gsub("321", "G"):
                                                    gsub("500", "g"):gsub("501", "g"):gsub("520", "g"):
                                                    gsub("502", "h"):gsub("503", "h"):gsub("504", "h"):gsub("521", "h"):gsub("522", "h"):
                                                    gsub("511", "k"):gsub("600", "k"):gsub("601", "k"):gsub("611", "k"):gsub("621", "k"):
                                                    gsub("602", "j"):
                                                    gsub("701", "J"):gsub("711", "J"):
                                                    gsub("721", "I"):
                                                    gsub("741", "F"):
                                                    gsub("800", "C"):
                                                    gsub("801", "b"):
                                                    gsub("802", "c"):
                                                    gsub("803", "d"):
                                                    gsub("804", "e"):
                                                    gsub("901", "V"):gsub("902", "V"):
                                                    gsub("903", "x"):
                                                    gsub("904", "z"):
                                                    gsub("905", "v")
            end

            return ret
        end

        if periode=="all" then
            cc=cond_cour(code_postal)
            sj=sept_jour(code_postal)
        elseif periode=="cc" then
            cc=cond_cour(code_postal)
        else
            sj=sept_jour(code_postal)
        end
        collectgarbage()
    end

    function info(valeur, jour)
        jour=tonumber(jour) or 0

        if jour==0 then
            if valeur=="lon" then
                r = cc["coord"]["lon"]
            elseif valeur=="lat" then
                r = cc["coord"]["lat"]
            elseif valeur=="pays" then
                r = cc["sys"]["country"]
            elseif valeur=="leve_soleil" then
                r = cc["sys"]["sunrise"]
            elseif valeur=="coucher_soleil" then
                r = cc["sys"]["sunset"]
            elseif valeur=="meteo_id" then
                r = cc["weather"][1]["id"]
            elseif valeur=="meteo_main" then
                r = cc["weather"][1]["main"]
            elseif valeur=="meteo_description" then
                r = cc["weather"][1]["description"]
            elseif valeur=="meteo_icone" then
                r = cc["weather"][1]["icon"]
            elseif valeur=="temp" then
                r = math.floor(cc["main"]["temp"])
            elseif valeur=="temp_min" then
                r = math.floor(cc["main"]["temp_min"])
            elseif valeur=="temp_max" then
                r = math.floor(cc["main"]["temp_max"])
            elseif valeur=="pression" then
                r = cc["main"]["pressure"]
            elseif valeur=="sea_level" then
                r = cc["main"]["sea_level"]
            elseif valeur=="grnd_level" then
                r = cc["main"]["grnd_level"]
            elseif valeur=="humidite" then
                r = cc["main"]["humidity"]
            elseif valeur=="vent_vitesse" then
                r = math.floor(cc["wind"]["speed"])
            elseif valeur=="vent_direction" then
                r = cc["wind"]["deg"]
            elseif valeur=="couverture_nuageuse" then
                r = cc["clouds"]["all"]
            elseif valeur=="pluie_court_terme" then
                if cc["rain"] ~= nil then
                    r = cc["rain"]["3h"]
                else
                    r = 0
                end
            elseif valeur=="date" then
                r = cc["dt"]
            elseif valeur=="ville" then
                r = cc["name"]
            else
                r = valeur.." n'éxiste pas"
            end
        else
            if valeur=="date" then
                r = sj["list"][jour]["dt"]
            elseif valeur=="temp_jour" then
                r = math.floor(sj["list"][jour]["temp"]["day"])
            elseif valeur=="temp_min" then
                r = math.floor(sj["list"][jour]["temp"]["min"])
            elseif valeur=="temp_max" then
                r = math.floor(sj["list"][jour]["temp"]["max"])
            elseif valeur=="temp_nuit" then
                r = math.floor(sj["list"][jour]["temp"]["night"])
            elseif valeur=="temp_soir" then
                r = math.floor(sj["list"][jour]["temp"]["eve"])
            elseif valeur=="temp_matin" then
                r = math.floor(sj["list"][jour]["temp"]["morn"])
            elseif valeur=="pression" then
                r = sj["list"][jour]["pressure"]
            elseif valeur=="humidite" then
                r = sj["list"][jour]["humidity"]
            elseif valeur=="meteo_id" then
                r = sj["list"][jour]["weather"][1]["id"]
            elseif valeur=="meteo_main" then
                r = sj["list"][jour]["weather"][1]["main"]
            elseif valeur=="meteo_description" then
                r = sj["list"][jour]["weather"][1]["description"]
            elseif valeur=="meteo_icone" then
                r = sj["list"][jour]["weather"][1]["icon"]
            elseif valeur=="vent_vitesse" then
                r = math.floor(sj["list"][jour]["speed"])
            elseif valeur=="vent_direction" then
                r = sj["list"][jour]["deg"]
            elseif valeur=="couverture_nuageuse" then
                r = sj["list"][jour]["clouds"]
            elseif valeur=="pluviometrie" then
                r = sj["list"][jour]["rain"] or 0
            else
                r = valeur.." "..jour.." n'éxiste pas"
            end
        end
        return r
    end

end

script.lua

--this is a lua script for use in conky
require 'cairo'
require 'os'
local meteo=require('meteo')
local play=require('playing_clementine')

-- Parametre a modifier
local chemin="~/.conky/conky-perso/Monochrome" -- répertoire ou ce trouve vos scripts
local departement="95100" -- indiquer le département pour la météo
local disque_1="/home"
local disque_2="/"
local disque_3="~"

--[[
###################################################################################################
#  Ne pas faire de modification après cette ligne (sauf si vous savez ce que vous faite), Merci.  #
###################################################################################################
]]--
local home = os.getenv("HOME")
chemin=string.gsub(chemin,"~",home)
disque_1=string.gsub(disque_1,"~",home)
disque_2=string.gsub(disque_2,"~",home)
disque_3=string.gsub(disque_3,"~",home)
local nb_coeur=tonumber(conky_parse("${exec cat /proc/cpuinfo | grep processor | wc -l}"))
local Clementine
local T0=0
local T=0

-- Partie Fonctions
function draw_circle(alpha,progress,x_center,y_center,radius,epaisseur)
    cairo_set_source_rgba(cr,1,1,1,alpha)
    cairo_set_line_width(cr,epaisseur)
    cairo_arc(cr, x_center, y_center, radius, 0-math.pi/2, progress * 2 * math.pi / 100 - math.pi/2)
    cairo_stroke(cr)
end

function draw_circle_gauge(alpha,nb_gauge,angle_step,angle_step_ink,x_center,y_center,radius,epaisseur)
    cairo_set_source_rgba(cr,1,1,1,alpha)
    cairo_set_line_width(cr,epaisseur)
    angle_step_rad=angle_step*math.pi/180
    angle_step_ink_rad=angle_step_ink*math.pi/180
    local i = 1
    angle=-math.pi/2
    while i <= nb_gauge do
        cairo_arc(cr, x_center, y_center, radius, angle, angle + angle_step_ink_rad)
        angle=angle+angle_step_rad
        cairo_stroke(cr)
        i = i+1
    end

end

function draw_line(alpha,progress,x_ligne,y_ligne,longueur,epaisseur)
    red,green,blue=1,1,1
    cairo_set_source_rgba (cr,1,1,1,alpha)
    cairo_set_line_width (cr, epaisseur)
    cairo_set_dash(cr,1.,0,1)
    cairo_move_to (cr, x_ligne, y_ligne)
    cairo_line_to (cr, x_ligne+((progress/100)*longueur), y_ligne)
    cairo_stroke (cr)
end

function draw_dash_line(alpha,progress,x_ligne,y_ligne,longueur,epaisseur)
    red,green,blue=1,1,1
    cairo_set_source_rgba (cr,1,1,1,alpha)
    cairo_set_line_width (cr, epaisseur)
    cairo_set_dash(cr,5.,1,0)
    cairo_move_to (cr, x_ligne, y_ligne)
    cairo_line_to (cr, x_ligne+longueur*progress/100, y_ligne)
    cairo_stroke (cr)
end

function draw_scale(alpha,x_ligne,y_ligne,nb_step,long_step_ink,long_step,epaisseur)
    red,green,blue=1,1,1
    cairo_set_source_rgba (cr,1,1,1,alpha)
    cairo_set_line_width (cr, epaisseur)
    local i = 1
    x_step=x_ligne
    while i <= nb_step do
        cairo_move_to (cr, x_step, y_ligne)
        cairo_line_to (cr, x_step+long_step_ink,y_ligne)
        cairo_stroke (cr)
        x_step=x_step + long_step
        i=i+1
    end
end

function affiche_texte(police,taille,x,y,alpha,texte)
    red,green,blue,alpha=1,1,1,alpha
    cairo_select_font_face (cr, police, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL)
    cairo_set_font_size (cr, taille)
    cairo_set_source_rgba (cr,red,green,blue,alpha)
    cairo_move_to (cr,x,y)
    cairo_show_text (cr,texte)
    cairo_stroke (cr)
end

-- Partie script
function graph_line(Maj)
    -- Variable a afficher
    -- Tous les intervals (30 secondes)
    if Maj == 1 then
        -- Utilisation Disque
        used_perc1=tonumber(conky_parse("${fs_used_perc "..disque_1.."}"))
        used_perc2=tonumber(conky_parse("${fs_used_perc "..disque_2.."}"))
        used_perc3=tonumber(conky_parse("${fs_used_perc "..disque_3.."}"))
        -- Températures
        T1=tonumber(conky_parse("${exec "..chemin.."/sensors.sh 1}"))
        T2=tonumber(conky_parse("${exec "..chemin.."/sensors.sh 2}"))
    end

    -- A chaque cycle
    -- Heure
    heure=tonumber(conky_parse("${time %I}"))
    minute=tonumber(conky_parse("${time %M}"))
    seconde=tonumber(conky_parse("${time %S}"))
    -- Utilisation CPU
    local cpu={}
    for i = 1,nb_coeur do
        cpu[i]=tonumber(conky_parse("${cpu cpu"..i.."}"))
    end
    -- UP Down
    ratio_upload=tonumber(conky_parse("${upspeedf eth0}")/55*100)
    ratio_download=tonumber(conky_parse("${downspeedf eth0}")/302*100)
    -- Clementine
    Clementine=play.info("avancement") --conky_parse("${execi 5 python2 "..chemin.."/anowplaying.py -p}")

    -- Horloge
    draw_circle(0.2,100,200,48,20,2)
    draw_circle(0.2,100,200,48,25,2)
    if heure == 12 then
        heure = 0
    end
    prog_seconde=seconde/60
    prog_minute=(minute+prog_seconde)/60
    prog_heure=(heure+prog_minute)/12
    draw_circle(1.,prog_minute*100,200,48,25,2)
    draw_circle(1.,prog_heure*100,200,48,20,2)
    draw_circle_gauge(1,12,30,2,200,48,20,2)
    draw_circle_gauge(1,12,30,2,200,48,25,2)
    draw_circle_gauge(1,seconde,6,2,200,48,30,2)

    --CPU & RAM
    local y_img_4 = 219
    draw_scale(0.5,153,y_img_4+32,36,1,5,3)
    draw_scale(1,153,y_img_4+32,8,1,25,6)
    t1=T1-30
    t2=T2-30
    if t1<0 then
        t1 = 0
    end
    if t2<0 then
        t2 = 0
    end
    draw_line(t1/35,(t1/70)*100,153,y_img_4+31,176,2)
    draw_line(t2/35,(t2/70)*100,153,y_img_4+33,176,2)

    for i = 1,nb_coeur do
        if cpu[i] == nil then cpu[i]=0 end
    end
    draw_line(0.2,100,180,y_img_4+49,150,2)
    ratio_barre=(150/nb_coeur)

    -- calcul pour affichage barre ratio cpu
    local x1 = {}
    x1[1]=180 -- début barre cpu1
    for i = 1,nb_coeur do
        x1[i+1]=x1[i]+cpu[i]/100*ratio_barre
    end

    -- affichage barre occupation cpu
    ratio_trans=(0.8/nb_coeur)
    for i = 1,nb_coeur do
        draw_line(1-(i-1)*ratio_trans,cpu[i],x1[i],y_img_4+49,ratio_barre,2)
    end

    draw_line(0.2,100,180,y_img_4+72,150,2)
    mem_perc=tonumber(conky_parse("${memperc}"))
    draw_line(1,mem_perc,180,y_img_4+72,150,2)

    --utilisation disque :
    local y_img_5 = 292
    draw_line(0.2,100,160,y_img_5+33,170,2)
    draw_line(1,used_perc1,160,y_img_5+33,170,2)

    draw_line(0.2,100,160,y_img_5+53,170,2)
    draw_line(1,used_perc2,160,y_img_5+53,170,2)

    draw_line(0.2,100,160,y_img_5+83,170,2)
    draw_line(1,used_perc3,160,y_img_5+73,170,2)

    --upload
    local y_img_6 = 365
    draw_line(0.2,100,170,y_img_6+33,160,2)
    draw_line(1,ratio_upload,170,y_img_6+33,160,2)
    --download
    draw_line(0.2,100,170,y_img_6+48,160,2)
    draw_line(1,ratio_download,170,y_img_6+48,160,2)

    -- lecture musique
    if Clementine ~= "" then
        local y_img_7 = 438
        draw_line(0.2,100,100,y_img_7+70,230,2)
        progress=tonumber(Clementine)
        draw_line(1,progress,100,y_img_7+70,230,2)
    end
end

function display_text(Maj)
    -- Variable a afficher
    -- Tous les intervals (30 secondes)
    if Maj == 1 then
        h_leve=os.date("%H:%M", meteo.info("leve_soleil"))--conky_parse("${exec "..chemin.."/meteo_display.sh current 1}")
        h_couche=os.date("%H:%M", meteo.info("coucher_soleil"))--conky_parse("${exec "..chemin.."/meteo_display.sh current 2}")
        meteo_act=meteo.info("meteo_description")--conky_parse("${exec "..chemin.."/meteo_display.sh current 8}")
        pression=meteo.info("pression")--conky_parse("${exec "..chemin.."/meteo_display.sh pression 1}").." hPa"
        temp_act=meteo.info("temp")--conky_parse("${exec "..chemin.."/meteo_display.sh current 3}")
        text_meteo=meteo.info("meteo_id")--conky_parse("${exec "..chemin.."/meteo_display.sh meteo 1}")
        humidite=meteo.info("humidite")--conky_parse("${exec "..chemin.."/meteo_display.sh current 6}")
        speed=meteo.info("vent_vitesse")--conky_parse("${exec "..chemin.."/meteo_display.sh current 7}")
        precipitation=meteo.info("pluie_court_terme")--conky_parse("${exec "..chemin.."/meteo_display.sh current 9}")
        temp_min=meteo.info("temp_min", 1)--conky_parse("${exec "..chemin.."/meteo_display.sh current 4}")
        temp_max=meteo.info("temp_max", 1)--conky_parse("${exec "..chemin.."/meteo_display.sh current 5}")
        semaine_meteo_2=meteo.info("meteo_id", 2)--conky_parse("${exec "..chemin.."/meteo_display.sh meteo 2}")
        semaine_meteo_3=meteo.info("meteo_id", 3)--conky_parse("${exec "..chemin.."/meteo_display.sh meteo 3}")
        semaine_meteo_4=meteo.info("meteo_id", 4)--conky_parse("${exec "..chemin.."/meteo_display.sh meteo 4}")
        semaine_meteo_5=meteo.info("meteo_id", 5)--conky_parse("${exec "..chemin.."/meteo_display.sh meteo 5}")
        semaine_meteo_6=meteo.info("meteo_id", 6)--conky_parse("${exec "..chemin.."/meteo_display.sh meteo 6}")
        semaine_meteo_7=meteo.info("meteo_id", 7)--conky_parse("${exec "..chemin.."/meteo_display.sh meteo 7}")
        -- affichage du jour
        semaine_jour_2=os.date("%a", meteo.info("date", 2))--conky_parse("${exec "..chemin.."/meteo_display.sh jour 2}")
        semaine_jour_3=os.date("%a", meteo.info("date", 3))--conky_parse("${exec "..chemin.."/meteo_display.sh jour 3}")
        semaine_jour_4=os.date("%a", meteo.info("date", 4))--conky_parse("${exec "..chemin.."/meteo_display.sh jour 4}")
        semaine_jour_5=os.date("%a", meteo.info("date", 5))--conky_parse("${exec "..chemin.."/meteo_display.sh jour 5}")
        semaine_jour_6=os.date("%a", meteo.info("date", 6))--conky_parse("${exec "..chemin.."/meteo_display.sh jour 6}")
        semaine_jour_7=os.date("%a", meteo.info("date", 7))--conky_parse("${exec "..chemin.."/meteo_display.sh jour 7}")
        -- prévision température jour
        semaine_temp_2=meteo.info("temp_jour", 2)--conky_parse("${exec "..chemin.."/meteo_display.sh temperature 2}").."°C"
        semaine_temp_3=meteo.info("temp_jour", 3)--conky_parse("${exec "..chemin.."/meteo_display.sh temperature 3}").."°C"
        semaine_temp_4=meteo.info("temp_jour", 4)--conky_parse("${exec "..chemin.."/meteo_display.sh temperature 4}").."°C"
        semaine_temp_5=meteo.info("temp_jour", 5)--conky_parse("${exec "..chemin.."/meteo_display.sh temperature 5}").."°C"
        semaine_temp_6=meteo.info("temp_jour", 6)--conky_parse("${exec "..chemin.."/meteo_display.sh temperature 6}").."°C"
        semaine_temp_7=meteo.info("temp_jour", 7)--conky_parse("${exec "..chemin.."/meteo_display.sh temperature 7}").."°C"

        espace1=conky_parse("${fs_used_perc "..disque_1.."}").."%"
        espace2=conky_parse("${fs_used_perc "..disque_2.."}").."%"
        espace3=conky_parse("${fs_used_perc "..disque_3.."}").."%"
        esp_used1=conky_parse("${fs_used "..disque_1.."}")
        esp_used2=conky_parse("${fs_used "..disque_2.."}")
        esp_used3=conky_parse("${fs_used "..disque_3.."}")
        esp_free1=conky_parse("${fs_free "..disque_1.."}")
        esp_free2=conky_parse("${fs_free "..disque_2.."}")
        esp_free3=conky_parse("${fs_free "..disque_3.."}")


    end

    -- A chaque cycle
   local cpu=conky_parse("${cpu cpu0}")

    local y_img_1 = 0
    --[[###########################################
        Heure et Date
    ##############################################]]
    affiche_texte("Ubuntu",11,92,y_img_1+30,1,"J"..conky_parse("${time %j}").." - S"..conky_parse("${time %V}"))
    affiche_texte("Sans",50,85,y_img_1+73,1,"☼")
    affiche_texte("Ubuntu",11,130,y_img_1+50,1,h_leve)
    affiche_texte("Ubuntu",11,130,y_img_1+70,1,h_couche)
    affiche_texte("Ubuntu",12,185,y_img_1+52,1,conky_parse("${time %H:%M}"))     --heure
    affiche_texte("Ubuntu",12,282,y_img_1+34,1,conky_parse("${time %A}"))        --nom du jour
    affiche_texte("Ubuntu",12,282,y_img_1+45,1,conky_parse("${time %B}"))        --nom du mois
    affiche_texte("Ubuntu",32,245,y_img_1+45,1,conky_parse("${time %d}"))        --numeros du jour
    affiche_texte("Ubuntu",32,245,y_img_1+71,1,conky_parse("${time %Y}"))        --année

    --[[###########################################
        Météo actuelle
    ##############################################]]
    local y_img_2 = 73
    affiche_texte("Weather",65,95,y_img_2+77,1,text_meteo)
    --affiche_texte("Weather",65,95,y_img_2+77,1,"g")
    affiche_texte("Ubuntu",11,150,y_img_2+30,1,meteo_act.." - "..temp_act.." - "..pression)

    affiche_texte("Ubuntu",11,150,y_img_2+45,1,pression.." - "..humidite.." hum")
    affiche_texte("Ubuntu",11,150,y_img_2+60,1,"Vent : "..speed)
    affiche_texte("Ubuntu",11,150,y_img_2+75,1,"Pluies : "..precipitation)

    --affiche_texte("Ubuntu",11,150,y_img_2+40,1,"min : "..temp_min.." - max : "..temp_max)
    affiche_texte("Ubuntu",11,310,y_img_2+70,1,temp_min)
    affiche_texte("Ubuntu",11,310,y_img_2+45,1,temp_max)
    affiche_texte("Weather",50,295,y_img_2+75,1,"y")

    --[[###########################################
        prévision météo semaine
    ##############################################]]
    local y_img_3 = 146
    affiche_texte("Weather",50,95,y_img_3+67,1,semaine_meteo_2)
    affiche_texte("Weather",50,135,y_img_3+67,1,semaine_meteo_3)
    affiche_texte("Weather",50,175,y_img_3+67,1,semaine_meteo_4)
    affiche_texte("Weather",50,215,y_img_3+67,1,semaine_meteo_5)
    affiche_texte("Weather",50,255,y_img_3+67,1,semaine_meteo_6)
    affiche_texte("Weather",50,295,y_img_3+67,1,semaine_meteo_7)

    -- affichage du jour
    affiche_texte("Ubuntu",11,100,y_img_3+27,1,semaine_jour_2)
    affiche_texte("Ubuntu",11,140,y_img_3+27,1,semaine_jour_3)
    affiche_texte("Ubuntu",11,180,y_img_3+27,1,semaine_jour_4)
    affiche_texte("Ubuntu",11,220,y_img_3+27,1,semaine_jour_5)
    affiche_texte("Ubuntu",11,260,y_img_3+27,1,semaine_jour_6)
    affiche_texte("Ubuntu",11,300,y_img_3+27,1,semaine_jour_7)

    -- prévision température jour
    affiche_texte("Ubuntu",12,100,y_img_3+74,1,semaine_temp_2)
    affiche_texte("Ubuntu",12,140,y_img_3+74,1,semaine_temp_3)
    affiche_texte("Ubuntu",12,180,y_img_3+74,1,semaine_temp_4)
    affiche_texte("Ubuntu",12,220,y_img_3+74,1,semaine_temp_5)
    affiche_texte("Ubuntu",12,260,y_img_3+74,1,semaine_temp_6)
    affiche_texte("Ubuntu",12,300,y_img_3+74,1,semaine_temp_7)


    --[[###########################################
        CPU Temperature et RAM
    ##############################################]]
    local y_img_4 = 219
    affiche_texte("Ubuntu",13,100,y_img_4+32,1,"Temp :")
    affiche_texte("Ubuntu",13,100,y_img_4+52,1,"CPU    :")
    affiche_texte("Ubuntu",13,100,y_img_4+72,1,"RAM   :")

    affiche_texte("Ubuntu",10,147,y_img_4+26,1,"30°")
    affiche_texte("Ubuntu",10,197,y_img_4+26,1,"50°")
    affiche_texte("Ubuntu",10,247,y_img_4+26,1,"70°")
    affiche_texte("Ubuntu",10,297,y_img_4+26,1,"90°")

    if cpu == nil then cpu=0 end

    affiche_texte("Ubuntu",11,150,y_img_4+52,1,cpu.."%")

    affiche_texte("Ubuntu",11,150,y_img_4+72,1,conky_parse("${memperc}").."%")
    affiche_texte("Ubuntu",11,180,y_img_4+69,1,conky_parse("${mem}"))
    affiche_texte("Ubuntu",11,290,y_img_4+69,0.7,conky_parse("${memeasyfree}"))

    --[[###########################################
        Espace disponible
    ##############################################]]
    local y_img_5 = 292
    affiche_texte("Heydings Icons",18,100,y_img_5+34,1,"H")
    affiche_texte("Heydings Icons",18,100,y_img_5+54,1,"L")
    affiche_texte("Heydings Icons",18,100,y_img_5+74,1,"F")

    affiche_texte("Ubuntu",15,123,y_img_5+33,1,espace1)
    affiche_texte("Ubuntu",15,123,y_img_5+53,1,espace2)
    affiche_texte("Ubuntu",15,123,y_img_5+73,1,espace3)

    affiche_texte("Ubuntu",11,160,y_img_5+30,1,esp_used1)
    affiche_texte("Ubuntu",11,160,y_img_5+50,1,esp_used2)
    affiche_texte("Ubuntu",11,160,y_img_5+70,1,esp_used3)

    affiche_texte("Ubuntu",11,290,y_img_5+30,0.7,esp_free1)
    affiche_texte("Ubuntu",11,290,y_img_5+50,0.7,esp_free2)
    affiche_texte("Ubuntu",11,290,y_img_5+70,0.7,esp_free3)

    --[[###########################################
        Débit internet
    ##############################################]]
    local y_img_6 = 365
    affiche_texte("Deja",18,100,y_img_6+38,1,"↗")
    affiche_texte("Ubuntu",12,120,y_img_6+38,1,conky_parse("${upspeed eth0}"))
    affiche_texte("Deja",18,100,y_img_6+53,1,"↘")
    affiche_texte("Ubuntu",12,120,y_img_6+53,1,conky_parse("${downspeed eth0}"))
    up_total=conky_parse("${totalup eth0}")
    down_total=conky_parse("${totaldown eth0}")
    affiche_texte("Ubuntu",12,100,y_img_6+68,1,"Total : "..up_total.." / "..down_total)

    --[[###########################################
        Musique
    ##############################################]]
    if Clementine ~= "" then
        local y_img_7 = 438
        affiche_texte("Ubuntu",11,100,y_img_7+35,1,play.info("album"))--conky_parse("${execi 5 python2 "..chemin.."/anowplaying.py -l}"))
        affiche_texte("Ubuntu",11,100,y_img_7+50,1,play.info("titre"))--conky_parse("${execi 5 python2 "..chemin.."/anowplaying.py -t}"))
        temp_ecoule=play.info("temp_passe")--conky_parse("${execi 5 python2 "..chemin.."/anowplaying.py -e}")
        temp_remain=play.info("temp_restant")--conky_parse("${execi 5 python2 "..chemin.."/anowplaying.py -r}")
        affiche_texte("Ubuntu",11,100,y_img_7+65,1,temp_ecoule)
        affiche_texte("Ubuntu",11,310,y_img_7+65,0.7,temp_remain)
    end
end

function conky_main()
    if conky_window == nil then
        return
    end

    local cs = cairo_xlib_surface_create(conky_window.display,
                                         conky_window.drawable,
                                         conky_window.visual,
                                         conky_window.width,
                                         conky_window.height)
    cr = cairo_create(cs)
    local display = cairo_create(cs)
    local updates=tonumber(conky_parse('${updates}'))

    local interval=30
    local timer=(updates % interval)
    local T1 = os.time()

    if os.difftime(T1, T) >= 300 then
        if os.difftime(T1, T0) >= 3600 then
            meteo.maj(departement, "7jours")
            T0=T1
        end
        meteo.maj(departement, "cc")
        T=T1
    end

    if updates>5 then
        if timer == 0 or conky_start == 1 then
            Maj=1
            if updates > 6 then
                conky_start=nil
            end
        else
            Maj=0
        end
        display_text(Maj)
        graph_line(Maj)
    else
        conky_start = 1
    end

    cairo_destroy(cr)
    cairo_surface_destroy(cs)
    cr=nil
    collectgarbage()
end

.conkyrc

######################
# - Conky settings - #
######################
update_interval 1
total_run_times 0
net_avg_samples 1
cpu_avg_samples 1

#imlib_cache_size 0
double_buffer yes
no_buffers yes

#####################
# - Text settings - #
#####################
use_xft yes
xftfont Ubuntu:size=9
override_utf8_locale yes
text_buffer_size 2048

#############################
# - Window specifications - #
#############################
own_window_class Conky
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
#own_window_argb_visual yes
#own_window_argb_value 100

alignment tr
gap_x -2
gap_y 180
minimum_size 350 520


default_bar_size 60 10

# - Graphics settings - #
#########################
draw_shades no

default_color ffffff
default_shade_color 1d1d1d
color0 ffffff
color1 ffffff
color2 ffffff

lua_load ~/.conky/conky-perso/Monochrome/script.lua
lua_draw_hook_pre main
TEXT
#${voffset 0}
#---DATE & HEURE----
#---METEO----
#${execi 600 ~/.conky/conky-perso/Monochrome/meteo_update.sh}
#---CPU ET RAM----
#---DISQUE DUR----
#---DEBIT INTERNET----
#${if_up eth0}
#${voffset 255}
#${endif}
#---MUSIQUE----
#${if_running clementine}
#${color}
#$endif

#---IMAGES----
${image ~/.conky/conky-perso/Monochrome/base.png -p 10,0 -s 339x86}
${image ~/.conky/conky-perso/Monochrome/base.png -p 10,73 -s 339x86}
${image ~/.conky/conky-perso/Monochrome/base.png -p 10,146 -s 339x86}
${image ~/.conky/conky-perso/Monochrome/base.png -p 10,219 -s 339x86}
${image ~/.conky/conky-perso/Monochrome/base.png -p 10,292 -s 339x86}
${image ~/.conky/conky-perso/Monochrome/base.png -p 10,365 -s 339x86}
${image ~/.conky/conky-perso/Monochrome/base.png -p 10,438 -s 339x86}
${image ~/.conky/conky-perso/Monochrome/calendar.png -p 28,20 -s 45x45}
${image ~/.conky/conky-perso/Monochrome/weather.png -p 28,93 -s 45x45}
${image ~/.conky/conky-perso/Monochrome/weather.png -p 28,166 -s 45x45}
${image ~/.conky/conky-perso/Monochrome/emblem-system.png -p 28,239 -s 45x45}
${image ~/.conky/conky-perso/Monochrome/folder.png -p 28,312 -s 45x45}
${image ~/.conky/conky-perso/Monochrome/nm-signal-75.png -p 28,385 -s 45x45}
${image ~/.conky/conky-perso/Monochrome/emblem-sound.png -p 28,458 -s 45x45}

sensors.sh

#!/bin/bash
if [ $1 = 1 ] ; then
    temp=`sensors | awk ' $2=="0:" {print $3}' | cut -c 2-3`
else
    temp=`sensors | awk ' $2=="1:" {print $3}' | cut -c 2-3`
fi
echo $temp

A+,
Didier.

P.S. : je ne suis pas encore satisfait de script.lua. Mais ce sera pour une autre fois

Dernière modification par Didier-T (Le 24/06/2015, à 15:59)

Hors ligne