[Conky] Vos .conkyrc !

Ce qui ne concerne ni le forum ni des problèmes
Avatar de l’utilisateur
onyx67
Elfe
Messages : 766
Inscription : dim. 06 nov. 2011, 18:12
Localisation : Alsace

Re: [Conky] Vos .conkyrc !

Message par onyx67 »

Rikles a écrit : Si quelqu'un sait comment je peux le caler tout en bas de mon écran je suis preneur, j'ai beau modifier des valeurs, rien y fait, au boot du PC il se recale à cet endroit, je sais pas si c'est à cause de Gnome Shell.
Avec gap_y ca ne fonctionne pas?
"La complication est un effet de la simplicité mal acquise"

Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
Rikles
Hankyu
Messages : 36
Inscription : dim. 15 mai 2011, 11:10

Re: [Conky] Vos .conkyrc !

Message par Rikles »

non :(
Avatar de l’utilisateur
Anghirrim
Elfe
Messages : 701
Inscription : mar. 28 févr. 2012, 11:09
Localisation : Loire-Atlantique

Re: [Conky] Vos .conkyrc !

Message par Anghirrim »

Onyx, tu as tes .sh pour la météo? Le résultat est super sympa!!
Optiplex 3060 Micro Intel© Core™ i5-8500T, 16Go RAM, Arch Linux Cinnamon + Windows 10
Asus X53S, Linux Mint Cinnamon
Avatar de l’utilisateur
onyx67
Elfe
Messages : 766
Inscription : dim. 06 nov. 2011, 18:12
Localisation : Alsace

Re: [Conky] Vos .conkyrc !

Message par onyx67 »

Ah oui, j'ai oublié!

- meteo.sh:

Code : Tout sélectionner

#!/bin/bash

# Répertoire de ce script et du XSLT
RUNDIR=~/.conky
# Emplacement du XSLT
XSLT=$RUNDIR/meteo.xslt
# Fichier de destination des informations
DESTFILE=/tmp/conky_meteo.txt
# Emplacement de xsltproc
XSLTCMD=/usr/bin/xsltproc

# Traitement
URL="http://xml.weather.com/weather/local/$1?cc=*&unit=m&dayf=2"
w3m -dump $URL | $XSLTCMD $XSLT - > $DESTFILE
meteo2.sh:

Code : Tout sélectionner

#!/bin/bash

# Fichier où sont stockées les informations
SRCFILE=/tmp/conky_meteo.txt

# Traitement
RESULTAT=$(grep "$1" $SRCFILE | awk -F " : " '{print $2}')

# Transformation de la condition en lettre qui deviendra une icône
if echo "$1" | grep -i -q 'condition'; then
	  if echo "$RESULTAT" | grep -i -q 'partly cloudy'; then
		RESULTAT='c'
	elif echo "$RESULTAT" | grep -i -q 'fair'; then
		RESULTAT='b'
	elif echo "$RESULTAT" | grep -i -q 'sunny'; then
		RESULTAT='D'
	elif echo "$RESULTAT" | grep -i -q 'cloudy'; then
		RESULTAT='d'
	elif echo "$RESULTAT" | grep -E -i -q 'storm|thunder'; then
		RESULTAT='i'
	elif echo "$RESULTAT" | grep -i -q 'snow'; then
		RESULTAT='k'
	elif echo "$RESULTAT" | grep -i -q 'rain'; then
		RESULTAT='h'
	elif echo "$RESULTAT" | grep -i -q 'shower'; then
		RESULTAT='g'
	fi

# Transformation des heures à l'américaine (5:50 AM) en heures à la française (5h50)
elif echo "$1" | grep -i -q 'soleil'; then
	RESULTAT=$(echo "$RESULTAT" | awk '{print $1}' | sed -e s/:/h/g)

	# Transformation des heures PM (9h38 PM) en heures françaises (21h38)
	if echo "$1" | grep -i -q 'coucher'; then
		HEURES=$(echo "$RESULTAT" | awk -F "h" '{print $1}')
		MINUTES=$(echo "$RESULTAT" | awk -F "h" '{print $2}')
		HEURES=$(($HEURES + 12))
		RESULTAT="${HEURES}h${MINUTES}"
	fi

# Transformation de "Ville, Pays" en "Ville"
elif echo "$1" | grep -i -q 'ville'; then
	RESULTAT=$(echo "$RESULTAT" | awk -F "," '{print $1}')

fi

# Affichage du résultat
echo $RESULTAT
et le meteo.xslt:

Code : Tout sélectionner

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
        <xsl:output method="text" disable-output-escaping="yes"/>
        <xsl:template match="weather">
                <xsl:text>Ville : </xsl:text><xsl:value-of select="/weather/loc/dnam"/>
                <xsl:apply-templates select="cc"/>
                <xsl:apply-templates select="dayf/day[@d='1']"/>
                <xsl:text>
Lever du soleil : </xsl:text><xsl:value-of select="/weather/loc/sunr"/>
                <xsl:text>
Coucher du soleil : </xsl:text><xsl:value-of select="/weather/loc/suns"/>
        </xsl:template>

        <xsl:template match="cc">
<xsl:text>
Température aujourd'hui : </xsl:text><xsl:value-of select="tmp"/>°<xsl:value-of select="/weather/head/ut"/>
<xsl:if test="tmp != flik">
<xsl:text> (</xsl:text>
<xsl:value-of select="flik"/>°<xsl:value-of select="/weather/head/ut"/>
<xsl:text> ressenti)</xsl:text>
</xsl:if>
<xsl:text>
Conditions aujourd'hui : </xsl:text><xsl:value-of select="t"/>
<xsl:text>
Vent aujourd'hui : </xsl:text>
<xsl:choose>
<xsl:when test="wind/s = 'calm'"><xsl:text>0</xsl:text></xsl:when>
<xsl:otherwise><xsl:value-of select="wind/s"/></xsl:otherwise>
</xsl:choose>
<xsl:text> </xsl:text>
<xsl:value-of select="/weather/head/us"/>
</xsl:template>

<xsl:template match="dayf/day[@d='1']">
<xsl:text>
Température demain : de </xsl:text><xsl:value-of select="low"/>°<xsl:value-of select="/weather/head/ut"/>
<xsl:text> à </xsl:text><xsl:value-of select="hi"/>°<xsl:value-of select="/weather/head/ut"/>
<xsl:text>
Conditions demain : </xsl:text><xsl:value-of select="part[@p='d']/t"/>
</xsl:template>
</xsl:stylesheet>

Voilà :)
"La complication est un effet de la simplicité mal acquise"

Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
Avatar de l’utilisateur
Anghirrim
Elfe
Messages : 701
Inscription : mar. 28 févr. 2012, 11:09
Localisation : Loire-Atlantique

Re: [Conky] Vos .conkyrc !

Message par Anghirrim »

Merci beaucoup!!!
Optiplex 3060 Micro Intel© Core™ i5-8500T, 16Go RAM, Arch Linux Cinnamon + Windows 10
Asus X53S, Linux Mint Cinnamon
Rikles
Hankyu
Messages : 36
Inscription : dim. 15 mai 2011, 11:10

Re: [Conky] Vos .conkyrc !

Message par Rikles »

Je partage également un vieux conky que j'ai créé il y a quelques années :
Image

Si vous voulez l'utiliser, le code est complètement adapté à une résolution 1440x900, si la résolution est différente il faudra modifier l'ensemble des fichiers. De plus la météo est basé sur conkyforecast qui à l'heure actuelle ne marche plus à cause des abonnement qui sont devenu payant et très cher.

conkyrc

Code : Tout sélectionner

background        no
update_interval        1.0
double_buffer        yes
use_xft            yes
override_utf8_locale
xftfont            Sans:size=8
xftalpha        0.8
own_window        yes
own_window_transparent    yes
own_window_type        override
own_window_hints    undecorated,below,sticky,skip_taskbar,skip_pager
on_bottom        yes
minimum_size        250 0
maximum_width 0
draw_shades        no
draw_outline        no
draw_borders        no
draw_graph_borders    yes
stippled_borders    8
border_margin        4
border_width        1
default_color        white
default_shade_color    black
default_outline_color    black
alignment top_right
gap_x            30
gap_y            24
no_buffers        yes
cpu_avg_samples 2
net_avg_samples 2
override_utf8_locale yes
use_spacer right
text_buffer_size 2048

######

TEXT
${font A bite:size=18}${color #689098}system$font$color${color black}
${voffset -12}${color #689098}${hr 2}

${color #626262}${execi 86400 lsb_release -si} ${execi 86400 lsb_release -sr} ${execi 86400 lsb_release -sc}${alignr}$machine
Kernel${alignr}$kernel
Intel Core Duo ${alignr}$freq_g GHz
Uptime ${alignr}$uptime
File System ${alignr}$fs_type

${font A bite:size=18}${color #79cbd6}processor$font$color${color black}
${voffset -12}${color #79cbd6}${hr 2}

${color #626262}CPU1  ${cpu cpu1}% ${goto 90}$alignc${cpubar cpu1 8,135}$alignr${platform coretemp.0 temp 1}°C
CPU2  ${cpu cpu2}% ${goto 90}$alignc${cpubar cpu2 8,135}$alignr${platform coretemp.1 temp 1}°C

TOP PROCESSES
${top name 1} $alignr${top cpu 1} %
${top name 2} $alignr${top cpu 2} %
${top name 3} $alignr${top cpu 3} %
${top name 4} $alignr${top cpu 4} %

${font A bite:size=18}${color #bcde57}memdisk$font$color${color black}
${voffset -12}${color #bcde57}${hr 2}

${color #626262}RAM${alignc}$mem / $memmax$alignc${alignr}$memperc %$alignr
$membar
SWAP${alignc}$swap / $swapmax$alignc${alignr}$swapperc %$alignr
$swapbar
/${alignc}$fs_used / $fs_size$alignc${alignr}$fs_used_perc %$alignr
${fs_bar /}
Home${alignc}${fs_used /home} / ${fs_size /home}$alignc${alignr}${fs_used_perc /home} %$alignr
${fs_bar /home}

${font A bite:size=18}${color #fbd109}network$font$color${color black}
${voffset -12}${color #fbd109}${hr 2}

${color #626262}External IP ${alignr}${exec cat $HOME/.conky/ip}
IP on wlan0${alignr}${addr wlan0}
Download Speed${alignr}${downspeed wlan0}/s
Uploaded Speed${alignr}${upspeed wlan0}/s
Total Downloads${alignr}${totaldown wlan0}
Total Uploads${alignr}${totalup wlan0}

${font A bite:size=18}${color #fe94a8}weather$font$color$color
${voffset -12}${color #fe94a8}${hr 2}

${color #626262}${execpi 1800 conkyForecast --location=FRXX0128 --template=/$HOME/.conky/conkyForecast.template}
conkyForecast.template

Code : Tout sélectionner

${alignr}[--datatype=OB], [--datatype=CO]

${alignr}Wind : [--datatype=WS --speedunit]
${alignr}Humidity : [--datatype=HM]
${alignr}Precipitation : [--datatype=PC]
${alignr}Sunrise : [--datatype=SR]
${alignr}Sunset : [--datatype=SS]
[--datatype=CC] : [--datatype=HT]${alignr}Visibility : [--datatype=VI]
${voffset -110}${font ConkyWeather:style=Bold:size=70}[--datatype=WF]${font}



    [--datatype=DW --startday=1 --shortweekday]${goto 90}[--datatype=DW --startday=2 --shortweekday]${goto 167}[--datatype=DW --startday=3 --shortweekday]${goto 245}[--datatype=DW --startday=4 --shortweekday]
${goto 13}${font ConkyWeather:size=32}[--datatype=WF --startday=1 --endday=4 --spaces=3]${font}

$alignr Laste Update [--datatype=LU]
date

Code : Tout sélectionner

background        no
update_interval        1.0
double_buffer        yes
use_xft            yes
override_utf8_locale
xftfont            Purisa:size=8
xftalpha        0.8
own_window        yes
own_window_transparent    yes
own_window_type        override
own_window_hints    undecorated,below,sticky,skip_taskbar,skip_pager
on_bottom        yes
minimum_size        352 0
maximum_width 0
draw_shades        no
draw_outline        no
draw_borders        no
draw_graph_borders    yes
stippled_borders    8
border_margin        4
border_width        1
default_color        white
default_shade_color    black
default_outline_color    black
alignment top_left
gap_x            713
gap_y            284
no_buffers        yes
cpu_avg_samples 2
net_avg_samples 2
override_utf8_locale yes
use_spacer right
text_buffer_size 2048

######

TEXT

${color #626262}${hr 2}
${voffset -38}${goto 250}${font A bite:size=18}date
${goto 24}${font SANTOS DUMONT:size=25}${color #6c95a0}${time %A %d %B %Y}
time

Code : Tout sélectionner

background        no
update_interval        1.0
double_buffer        yes
use_xft            yes
override_utf8_locale
xftfont            Purisa:size=8
xftalpha        0.8
own_window        yes
own_window_transparent    yes
own_window_type        override
own_window_hints    undecorated,below,sticky,skip_taskbar,skip_pager
on_bottom        yes
minimum_size        468 0
maximum_width 0
draw_shades        no
draw_outline        no
draw_borders        no
draw_graph_borders    yes
stippled_borders    8
border_margin        4
border_width        1
default_color        white
default_shade_color    black
default_outline_color    black
alignment top_left
gap_x            597
gap_y            502
no_buffers        yes
cpu_avg_samples 2
net_avg_samples 2
override_utf8_locale yes
use_spacer right
text_buffer_size 2048

######

TEXT







${color #fe94a8}${hr 2}
${voffset -150}${goto 125}${font SANTOS DUMONT:size=118}${color #7ecbd5}${time %H:%M}
${voffset -144}${goto 377}${font A bite:size=18}${color #626262}time
fml

Code : Tout sélectionner

background        no
update_interval        1.0
double_buffer        yes
use_xft            yes
override_utf8_locale
xftfont            Purisa:size=8
xftalpha        0.8
own_window        yes
own_window_transparent    yes
own_window_type        override
own_window_hints    undecorated,below,sticky,skip_taskbar,skip_pager
on_bottom        yes
minimum_size        465 0
maximum_width 465
draw_shades        no
draw_outline        no
draw_borders        no
draw_graph_borders    yes
stippled_borders    8
border_margin        4
border_width        1
default_color        white
default_shade_color    black
default_outline_color    black
alignment top_right
gap_x            954
gap_y            362
no_buffers        yes
cpu_avg_samples 2
net_avg_samples 2
override_utf8_locale yes
use_spacer right
text_buffer_size 2048

######

TEXT

${color #cfe59d}${hr 2}
${voffset -39}${font A bite:size=18}${goto 12}${color #626262}fuck   my   life
$alignc${font Purisa:size=7.5}${color #6c95a0}${execi 120 $HOME/.conky/fortune.sh}
html2text.py

Code : Tout sélectionner

#!/usr/bin/env python
"""html2text: Turn HTML into equivalent Markdown-structured text."""
__version__ = "2.38"
__author__ = "Aaron Swartz (me@aaronsw.com)" # R.I.P.
__copyright__ = "(C) 2004-2008 Aaron Swartz. GNU GPL 3."
__contributors__ = ["Martin 'Joey' Schulze", "Ricardo Reyes", "Kevin Jay North"]

# TODO:
#   Support decoded entities with unifiable.

if not hasattr(__builtins__, 'True'): True, False = 1, 0
import re, sys, urllib, htmlentitydefs, codecs, StringIO, types
import sgmllib
import urlparse
sgmllib.charref = re.compile('&#([xX]?[0-9a-fA-F]+)[^0-9a-fA-F]')

try: from textwrap import wrap
except: pass

# Use Unicode characters instead of their ascii psuedo-replacements
UNICODE_SNOB = 0

# Put the links after each paragraph instead of at the end.
LINKS_EACH_PARAGRAPH = 0

# Wrap long lines at position. 0 for no wrapping. (Requires Python 2.3.)
BODY_WIDTH = 78

# Don't show internal links (href="#local-anchor") -- corresponding link targets
# won't be visible in the plain text file anyway.
SKIP_INTERNAL_LINKS = False

### Entity Nonsense ###

def name2cp(k):
    if k == 'apos': return ord("'")
    if hasattr(htmlentitydefs, "name2codepoint"): # requires Python 2.3
        return htmlentitydefs.name2codepoint[k]
    else:
        k = htmlentitydefs.entitydefs[k]
        if k.startswith("&#") and k.endswith(";"): return int(k[2:-1]) # not in latin-1
        return ord(codecs.latin_1_decode(k)[0])

unifiable = {'rsquo':"'", 'lsquo':"'", 'rdquo':'"', 'ldquo':'"', 
'copy':'(C)', 'mdash':'--', 'nbsp':' ', 'rarr':'->', 'larr':'<-', 'middot':'*',
'ndash':'-', 'oelig':'oe', 'aelig':'ae',
'agrave':'a', 'aacute':'a', 'acirc':'a', 'atilde':'a', 'auml':'a', 'aring':'a', 
'egrave':'e', 'eacute':'e', 'ecirc':'e', 'euml':'e', 
'igrave':'i', 'iacute':'i', 'icirc':'i', 'iuml':'i',
'ograve':'o', 'oacute':'o', 'ocirc':'o', 'otilde':'o', 'ouml':'o', 
'ugrave':'u', 'uacute':'u', 'ucirc':'u', 'uuml':'u'}

unifiable_n = {}

for k in unifiable.keys():
    unifiable_n[name2cp(k)] = unifiable[k]

def charref(name):
    if name[0] in ['x','X']:
        c = int(name[1:], 16)
    else:
        c = int(name)
    
    if not UNICODE_SNOB and c in unifiable_n.keys():
        return unifiable_n[c]
    else:
        return unichr(c)

def entityref(c):
    if not UNICODE_SNOB and c in unifiable.keys():
        return unifiable[c]
    else:
        try: name2cp(c)
        except KeyError: return "&" + c
        else: return unichr(name2cp(c))

def replaceEntities(s):
    s = s.group(1)
    if s[0] == "#": 
        return charref(s[1:])
    else: return entityref(s)

r_unescape = re.compile(r"&(#?[xX]?(?:[0-9a-fA-F]+|\w{1,8}));")
def unescape(s):
    return r_unescape.sub(replaceEntities, s)
    
def fixattrs(attrs):
    # Fix bug in sgmllib.py
    if not attrs: return attrs
    newattrs = []
    for attr in attrs:
        newattrs.append((attr[0], unescape(attr[1])))
    return newattrs

### End Entity Nonsense ###

def onlywhite(line):
    """Return true if the line does only consist of whitespace characters."""
    for c in line:
        if c is not ' ' and c is not '  ':
            return c is ' '
    return line

def optwrap(text):
    """Wrap all paragraphs in the provided text."""
    if not BODY_WIDTH:
        return text
    
    assert wrap, "Requires Python 2.3."
    result = ''
    newlines = 0
    for para in text.split("\n"):
        if len(para) > 0:
            if para[0] is not ' ' and para[0] is not '-' and para[0] is not '*':
                for line in wrap(para, BODY_WIDTH):
                    result += line + "\n"
                result += "\n"
                newlines = 2
            else:
                if not onlywhite(para):
                    result += para + "\n"
                    newlines = 1
        else:
            if newlines < 2:
                result += "\n"
                newlines += 1
    return result

def hn(tag):
    if tag[0] == 'h' and len(tag) == 2:
        try:
            n = int(tag[1])
            if n in range(1, 10): return n
        except ValueError: return 0

class _html2text(sgmllib.SGMLParser):
    def __init__(self, out=None, baseurl=''):
        sgmllib.SGMLParser.__init__(self)
        
        if out is None: self.out = self.outtextf
        else: self.out = out
        self.outtext = u''
        self.quiet = 0
        self.p_p = 0
        self.outcount = 0
        self.start = 1
        self.space = 0
        self.a = []
        self.astack = []
        self.acount = 0
        self.list = []
        self.blockquote = 0
        self.pre = 0
        self.startpre = 0
        self.lastWasNL = 0
        self.abbr_title = None # current abbreviation definition
        self.abbr_data = None # last inner HTML (for abbr being defined)
        self.abbr_list = {} # stack of abbreviations to write later
        self.baseurl = baseurl
    
    def outtextf(self, s): 
        self.outtext += s
    
    def close(self):
        sgmllib.SGMLParser.close(self)
        
        self.pbr()
        self.o('', 0, 'end')
        
        return self.outtext
        
    def handle_charref(self, c):
        self.o(charref(c))

    def handle_entityref(self, c):
        self.o(entityref(c))
            
    def unknown_starttag(self, tag, attrs):
        self.handle_tag(tag, attrs, 1)
    
    def unknown_endtag(self, tag):
        self.handle_tag(tag, None, 0)
        
    def previousIndex(self, attrs):
        """ returns the index of certain set of attributes (of a link) in the
            self.a list
 
            If the set of attributes is not found, returns None
        """
        if not attrs.has_key('href'): return None
        
        i = -1
        for a in self.a:
            i += 1
            match = 0
            
            if a.has_key('href') and a['href'] == attrs['href']:
                if a.has_key('title') or attrs.has_key('title'):
                        if (a.has_key('title') and attrs.has_key('title') and
                            a['title'] == attrs['title']):
                            match = True
                else:
                    match = True

            if match: return i

    def handle_tag(self, tag, attrs, start):
        attrs = fixattrs(attrs)
    
        if hn(tag):
            self.p()
            if start: self.o(hn(tag)*"#" + ' ')

        if tag in ['p', 'div']: self.p()
        
        if tag == "br" and start: self.o("  \n")

        if tag == "hr" and start:
            self.p()
            self.o("* * *")
            self.p()

        if tag in ["head", "style", 'script']: 
            if start: self.quiet += 1
            else: self.quiet -= 1

        if tag in ["body"]:
            self.quiet = 0 # sites like 9rules.com never close <head>
        
        if tag == "blockquote":
            if start: 
                self.p(); self.o('> ', 0, 1); self.start = 1
                self.blockquote += 1
            else:
                self.blockquote -= 1
                self.p()
        
        if tag in ['em', 'i', 'u']: self.o("_")
        if tag in ['strong', 'b']: self.o("**")
        if tag == "code" and not self.pre: self.o('`') #TODO: `` `this` ``
        if tag == "abbr":
            if start:
                attrsD = {}
                for (x, y) in attrs: attrsD[x] = y
                attrs = attrsD
                
                self.abbr_title = None
                self.abbr_data = ''
                if attrs.has_key('title'):
                    self.abbr_title = attrs['title']
            else:
                if self.abbr_title != None:
                    self.abbr_list[self.abbr_data] = self.abbr_title
                    self.abbr_title = None
                self.abbr_data = ''
        
        if tag == "a":
            if start:
                attrsD = {}
                for (x, y) in attrs: attrsD[x] = y
                attrs = attrsD
                if attrs.has_key('href') and not (SKIP_INTERNAL_LINKS and attrs['href'].startswith('#')): 
                    self.astack.append(attrs)
                    self.o("[")
                else:
                    self.astack.append(None)
            else:
                if self.astack:
                    a = self.astack.pop()
                    if a:
                        i = self.previousIndex(a)
                        if i is not None:
                            a = self.a[i]
                        else:
                            self.acount += 1
                            a['count'] = self.acount
                            a['outcount'] = self.outcount
                            self.a.append(a)
                        self.o("][" + `a['count']` + "]")
        
        if tag == "img" and start:
            attrsD = {}
            for (x, y) in attrs: attrsD[x] = y
            attrs = attrsD
            if attrs.has_key('src'):
                attrs['href'] = attrs['src']
                alt = attrs.get('alt', '')
                i = self.previousIndex(attrs)
                if i is not None:
                    attrs = self.a[i]
                else:
                    self.acount += 1
                    attrs['count'] = self.acount
                    attrs['outcount'] = self.outcount
                    self.a.append(attrs)
                self.o("![")
                self.o(alt)
                self.o("]["+`attrs['count']`+"]")
        
        if tag == 'dl' and start: self.p()
        if tag == 'dt' and not start: self.pbr()
        if tag == 'dd' and start: self.o('    ')
        if tag == 'dd' and not start: self.pbr()
        
        if tag in ["ol", "ul"]:
            if start:
                self.list.append({'name':tag, 'num':0})
            else:
                if self.list: self.list.pop()
            
            self.p()
        
        if tag == 'li':
            if start:
                self.pbr()
                if self.list: li = self.list[-1]
                else: li = {'name':'ul', 'num':0}
                self.o("  "*len(self.list)) #TODO: line up <ol><li>s > 9 correctly.
                if li['name'] == "ul": self.o("* ")
                elif li['name'] == "ol":
                    li['num'] += 1
                    self.o(`li['num']`+". ")
                self.start = 1
            else:
                self.pbr()
        
        if tag in ["table", "tr"] and start: self.p()
        if tag == 'td': self.pbr()
        
        if tag == "pre":
            if start:
                self.startpre = 1
                self.pre = 1
            else:
                self.pre = 0
            self.p()
            
    def pbr(self):
        if self.p_p == 0: self.p_p = 1

    def p(self): self.p_p = 2
    
    def o(self, data, puredata=0, force=0):
        if self.abbr_data is not None: self.abbr_data += data
        
        if not self.quiet: 
            if puredata and not self.pre:
                data = re.sub('\s+', ' ', data)
                if data and data[0] == ' ':
                    self.space = 1
                    data = data[1:]
            if not data and not force: return
            
            if self.startpre:
                #self.out(" :") #TODO: not output when already one there
                self.startpre = 0
            
            bq = (">" * self.blockquote)
            if not (force and data and data[0] == ">") and self.blockquote: bq += " "
            
            if self.pre:
                bq += "    "
                data = data.replace("\n", "\n"+bq)
            
            if self.start:
                self.space = 0
                self.p_p = 0
                self.start = 0

            if force == 'end':
                # It's the end.
                self.p_p = 0
                self.out("\n")
                self.space = 0


            if self.p_p:
                self.out(('\n'+bq)*self.p_p)
                self.space = 0
                
            if self.space:
                if not self.lastWasNL: self.out(' ')
                self.space = 0

            if self.a and ((self.p_p == 2 and LINKS_EACH_PARAGRAPH) or force == "end"):
                if force == "end": self.out("\n")

                newa = []
                for link in self.a:
                    if self.outcount > link['outcount']:
                        self.out("   ["+`link['count']`+"]: " + urlparse.urljoin(self.baseurl, link['href'])) 
                        if link.has_key('title'): self.out(" ("+link['title']+")")
                        self.out("\n")
                    else:
                        newa.append(link)

                if self.a != newa: self.out("\n") # Don't need an extra line when nothing was done.

                self.a = newa
            
            if self.abbr_list and force == "end":
                for abbr, definition in self.abbr_list.items():
                    self.out("  *[" + abbr + "]: " + definition + "\n")

            self.p_p = 0
            self.out(data)
            self.lastWasNL = data and data[-1] == '\n'
            self.outcount += 1

    def handle_data(self, data):
        if r'\/script>' in data: self.quiet -= 1
        self.o(data, 1)
    
    def unknown_decl(self, data): pass

def wrapwrite(text): sys.stdout.write(text.encode('utf8'))

def html2text_file(html, out=wrapwrite, baseurl=''):
    h = _html2text(out, baseurl)
    h.feed(html)
    h.feed("")
    return h.close()

def html2text(html, baseurl=''):
    return optwrap(html2text_file(html, None, baseurl))

if __name__ == "__main__":
    baseurl = ''
    if sys.argv[1:]:
        arg = sys.argv[1]
        if arg.startswith('http://'):
            baseurl = arg
            j = urllib.urlopen(baseurl)
            try:
                from feedparser import _getCharacterEncoding as enc
            except ImportError:
                   enc = lambda x, y: ('utf-8', 1)
            text = j.read()
            encoding = enc(j.headers, text)[0]
            if encoding == 'us-ascii': encoding = 'utf-8'
            data = text.decode(encoding)

        else:
            encoding = 'utf8'
            if len(sys.argv) > 2:
                encoding = sys.argv[2]
            data = open(arg, 'r').read().decode(encoding)
    else:
        data = sys.stdin.read().decode('utf8')
    wrapwrite(html2text(data, baseurl))
fortune.sh

Code : Tout sélectionner

#!/bin/bash
# Fortunes aléatoires [VDM]
#
# Par Rikles66 ~ style.boubou [AT] gmail [POINT] com
# 
#
# Il faut html2text.py pour le faire fonctionner
# * Le télécharger sur http://www.aaronsw.com/2002/html2text/html2text.py  [Auteur : Aaron Swartz (http://www.aaronsw.com/)]
# * Copier le fichier html2text.py dans le répertoire où se trouve ce script
#
#
#
#    ~ Have Fun ~


function VDM_RANDOM {

  VDM_Source=`wget 'http://api.viedemerde.fr/1.2/view/random?key=readonly' -O- -q`
  VDM_Auteur=`expr match "$VDM_Source" '.*<auteur>\(.*\)<\/auteur>' | python html2text.py`
  VDM_Categorie=`expr match "$VDM_Source" '.*<categorie>\(.*\)<\/categorie>'`
  VDM_Texte=$(expr match "$VDM_Source" '.*<texte>\(.*\)<\/texte>' | python $HOME/.conky/html2text.py | sed 's/"/"/g')

  if [[ $VDM_Auteur = "" ]]; then VDM_Auteur="Anonyme "; fi

  echo "$VDM_Texte

				Par $VDM_Auteur(${VDM_Categorie})"

}

  VDM_RANDOM
Et enfin pour terminer un script pour lancer le tout en même temps au démarrage :

lanceur.sh

Code : Tout sélectionner

#!/bin/bash
killall conky
	if  ! killall conky ; 
		sleep 15
		then conky -c $HOME/.conky/time & conky -c $HOME/.conky/date & conky -c $HOME/.conky/conkyrc & conky -c $HOME/.conky/fml
	echo ok
	fi
exit 0
Les polices :
http://www.dafont.com/fr/santos-dumont.font
http://www.dafont.com/fr/a-bite.font
http://www.dafont.com/fr/weather.font

Le Wallpaper (Necessite quelques petites retouches dans Gimp pour effacer certains éléments):
http://customize.org/wallpapers/42074

Voili voilou, s'il manque un truc faites le moi savoir :)
Dernière modification par Rikles le jeu. 17 janv. 2013, 22:11, modifié 1 fois.
Avatar de l’utilisateur
acid_cloridrix
archer
Messages : 117
Inscription : mer. 17 oct. 2012, 15:18

Re: [Conky] Vos .conkyrc !

Message par acid_cloridrix »

salut,

Voici mes conkys.

Pour le conky principal je me suis inspiré de ce conky: http://freeazy.deviantart.com/art/Conky ... -186251285 entièrement retravaillé.

Conky météo fonctionnant avec weather_daemon (merci à son auteur au passage).

http://pix.toile-libre.org/?img=1358454502.png

conkyrc:

Code : Tout sélectionner

#######################################################################   SETTINGS   ########################################################################
background yes										## permet à conky de tourner en arrière-plan
use_xft yes										## utilise la police xft
xftfont Liberation Sans:size=8								## nom de la police xft à utiliser
xftalpha 1										## opacité de la police xft, ici 1=opaque
update_interval 1.0									## conky se recharge toutes les secondes
total_run_times 0									## conky se relance à l'infini
own_window yes										## conky utilise sa propre fenêtre
own_window_transparent yes								## conky dessine une fenêtre transparente
own_window_type desktop									## type de fenêtre de conky: bureau
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager			## propriétés de la fenêtre
double_buffer yes									## empêche le clignotement
minimum_size 1273 150									## taille minimale largeur, hauteur
maximum_width 1273									## largeur maximale
draw_shades no										## n'affiche pas les ombres sous le texte
draw_outline no										## n'affiche pas le contour de la police
draw_borders no										## n'affiche pas les bordures
draw_graph_borders no									## n'affiche pas le contour des graphiques
default_shade_color e0dfde								## couleur des ombres
default_outline_color e0dfde								## couleur du contour de la police
alignment bottom_left									## alignement de conky, ici en bas à gauche
gap_x 0											## décalage horizontal
gap_y 10										## décalage vertical
no_buffers yes										## 'buffers' non pris en compte dans le calcul de mémoire.
uppercase min										## police en mode normal (Maj/min)
cpu_avg_samples 2									## nombre de processeurs pris en compte: ici 2
override_utf8_locale yes								## pour avoir les caractères accentués
default_color e0dfde									## couleur des textes et bordures par défaut
#default_color 7a7a7a									## couleur des textes et bordures par défaut
color1 00ff00										## couleur vert
color2 ed7f10										## couleur orange
color3 ff0000										## couleur rouge
color4 1691cf										## bleu arch

########################################################################   OUTPUT   #########################################################################
TEXT

################################################################   Ligne 1 - Désignations   #################################################################

${goto 30}${image ~/.conky/pix/system.png -p 20,5 -s 45x45}${GOTO 85}${font Liberation Sans:bold:italic:size=10}Système\
#
${GOTO 347}${image ~/.conky/pix/resources.png -p 337,5 -s 45x45}${goto 402}Ressources\
#
${GOTO 664}${image ~/.conky/pix/file-system.png -p 654,5 -s 45x45}${goto 719}Disque dur\
#
${GOTO 981}${image ~/.conky/pix/wireless.png -p  971,5 -s 45x45}${goto 1036}${if_up wlan0}${wireless_essid wlan0}${endif}${font}
#
#############################################################   Ligne 2 - Freq. Temp. Signal   ##############################################################
#
${GOTO 519}Freq. pr.  :  ${freq_g} GHz\
#
${goto 867}Temp.  :  ${if_match ${hddtemp /dev/sda}>47}${color3}${hddtemp /dev/sda} °C${else}\
${if_match ${hddtemp /dev/sda}>44}${color2}${hddtemp /dev/sda} °C${else}\
${if_match ${hddtemp /dev/sda}>01}${color1}${hddtemp /dev/sda} °C${endif}${endif}${endif}${color}\
#
${GOTO 1176}Signal   :  ${if_match ${wireless_link_qual_perc wlan0}>69}${color1}${wireless_link_qual_perc wlan0} %${else}\
${if_match ${wireless_link_qual_perc wlan0}>01}${color2}${wireless_link_qual_perc wlan0} %${endif}${endif}${color}${font}
#
#################################################################   Ligne 4 - Ordinateur   ##################################################################

${GOTO 30}${font Liberation Sans:bold:size=8}Ordinateur${font}${GOTO 130}:${GOTO 160}${nodename}\
#
${GOTO 347}${font Liberation Sans:bold:size=8}RAM${font}${GOTO 447}:${GOTO 477}${mem} / ${memmax}\
#
${GOTO 664}${font Liberation Sans:bold:size=8}Partition${GOTO 764}|${GOTO 820}Utilisation${font}\
#
${GOTO 981}${font Liberation Sans:bold:size=8}IP publique${font}${GOTO 1081}:${GOTO 1111} ${execi 1800 ~/.conky/scripts/ip.sh}
#
###################################################################   Ligne 5 - Noyau   #####################################################################
#
${GOTO 30}${font Liberation Sans:bold:size=8}Noyau${font}${GOTO 130}:${GOTO 160}${sysname}   ${kernel}\
#
${GOTO 477}${membar 6,100}${goto 586}-${alignr 551}${memperc} %\
#
${GOTO 981}${font Liberation Sans:bold:size=8}IP locale${font}${GOTO 1081}:${GOTO 1111} ${addr wlan0}
#
################################################################   Ligne 6 - Architecture   #################################################################
#
${GOTO 30}${font Liberation Sans:bold:size=8}Architecture${font}${GOTO 130}:${GOTO 160}$machine\
#
${GOTO 347}${font Liberation Sans:bold:size=8}Core 1${goto 402}${font}${if_match ${hwmon 1 temp 2}>80}${color3}${hwmon 1 temp 2} °C${else}\
${if_match ${hwmon 1 temp 2}>75}${color2}${hwmon 1 temp 2} °C$else${if_match ${hwmon 1 temp 2}>01}${color1}${hwmon 1 temp 2} °C${endif}${endif}${endif}${color}\
${font}${GOTO 447}:${GOTO 477}${cpubar cpu1 6,100}${goto 586}-${alignr 659}${cpu cpu1} %
#
################################################################   Ligne 7 - Actif depuis   #################################################################
#
${GOTO 30}${font Liberation Sans:bold:size=8}Actif depuis${font}${GOTO 130}:${GOTO 160}${uptime}\
#
${GOTO 347}${font Liberation Sans:bold:size=8}Core 2${goto 402}${font}${if_match ${hwmon 1 temp 3}>80}${color3}${hwmon 1 temp 3} °C${else}\
${if_match ${hwmon 1 temp 3}>75}${color2}${hwmon 1 temp 3} °C$else\
${if_match ${hwmon 1 temp 3}>01}${color1}${hwmon 1 temp 3} °C${endif}${endif}${endif}${color}${font}\
#
${GOTO 447}:${GOTO 477}${cpubar cpu2 6,100}${goto 586}-${alignr 659}${cpu cpu2} %
#
####################################################################   Ligne 8 - Swap   #####################################################################
#
${GOTO 347}${font Liberation Sans:bold:size=8}SWAP${Goto 447}${font}:${GOTO 477}${swapbar 6,100}${goto 586}-${alignr 659}${swapperc} %
#
####################################################################   Ligne 9 - Date   #####################################################################
#
${GOTO 30}${font Liberation Sans:bold:size=8}Date${font}${GOTO 130}:${GOTO 160}${time %A %d %B %Y}\
#
${GOTO 347}${font Liberation Sans:bold:size=8}Load${font}${GOTO 447}:${GOTO 477}$loadavg\
#
${GOTO 664}${font Liberation Sans:bold:size=8}Documents${font}${GOTO 764}:${GOTO 794}${fs_used /media/Documents}${GOTO 840}/${GOTO 850}${fs_size /media/Documents}\
${goto 910}${if_match ${fs_used_perc /media/Documents}<10}${goto 917}${fs_used_perc /media/Documents} %${else}${fs_used_perc /media/Documents} %${endif}\
#
${GOTO 981}${font Liberation Sans:bold:size=8}Envoi${font}${GOTO 1081}:${GOTO 1111}${upspeedf wlan0} /s
#
###################################################################   Ligne 10 - Heure   ####################################################################
#
${GOTO 30}${font Liberation Sans:bold:size=8}Heure${font}${GOTO 130}:${GOTO 160}${time %Hh %M %Ss}\
#
${GOTO 347}${font Liberation Sans:bold:size=8}Processus${font}${GOTO 447}:${GOTO 477}$processes${goto 548}En cours   :   $running_processes\
#
${GOTO 664}${font Liberation Sans:bold:size=8}ArchLinux${font}${GOTO 764}:${GOTO 794}${fs_used /home}${GOTO 840}/${GOTO 850}${fs_size /home}\
${goto 910}${if_match ${fs_used_perc /home}<10}${goto 917}${fs_used_perc /home} %${else}${fs_used_perc /home} %${endif}\
#
${GOTO 981}${font Liberation Sans:bold:size=8}Total envoi${font}${GOTO 1081}:${GOTO 1111}${totalup wlan0}
#
#######################################################################   En décalé   #######################################################################
#
${GOTO 664}${voffset -48}${font Liberation Sans:bold:size=8}Windows 7${font}${GOTO 764}:${goto 794}${fs_used /media/Windows_7}${GOTO 840}/${GOTO 850}${fs_size /media/Windows_7}\
${goto 910}${if_match ${fs_used_perc /media/Windows_7}<10}${goto 917}${fs_used_perc /media/Windows_7} %${else}${fs_used_perc /media/Windows_7} %${endif}\
${GOTO 981}${font Liberation Sans:bold:size=8}Reception${font}${GOTO 1081}:${GOTO 1111}${downspeedf wlan0} /s${voffset 48}
#
${GOTO 664}${voffset -48}${font Liberation Sans:bold:size=8}En attente${font}${GOTO 764}:${GOTO 794}${fs_used /media/Libre}${GOTO 840}/${GOTO 850}${fs_size /media/Libre}\
${goto 910}${if_match ${fs_used_perc /media/Libre}<10}${goto 916}${fs_used_perc /media/Libre} %${else}${fs_used_perc /media/Libre} %\
${endif}${GOTO 981}${font Liberation Sans:bold:size=8}Total Reçu${font}${GOTO 1081}:${GOTO 1111}${totaldown wlan0}\
${GOTO 664}${voffset -35}_____________________________________________${voffset -35}
conky_meteo:

Code : Tout sélectionner

#######################################################################   SETTINGS   ########################################################################
background yes										## permet à conky de tourner en arrière-plan, no pour les tests
use_xft yes										## utilise la police xft
xftfont Liberation Sans:size=8								## nom de la police xft à utiliser
xftalpha 1										## opacité de la police xft, ici 1=opaque
update_interval 600									## conky se recharge toutes les secondes
total_run_times 0									## conky se relance à l'infini
own_window yes										## conky utilise sa propre fenêtre
own_window_transparent yes								## conky dessine une fenêtre transparente
own_window_type desktop									## type de fenêtre de conky: bureau
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager			## propriétés de la fenêtre
double_buffer yes									## empêche le clignotement
minimum_size 272 150									## taille minimale largeur, hauteur
maximum_width 272									## largeur maximale
draw_shades no										## n'affiche pas les ombres sous le texte
draw_outline no										## n'affiche pas le contour de la police
draw_borders no										## n'affiche pas les bordures
draw_graph_borders no									## n'affiche pas le contour des graphiques
default_shade_color e0dfde								## couleur des ombres
default_outline_color e0dfde								## couleur du contour de la police
alignment bottom_right									## alignement de conky, ici en haut à droite
gap_x 35										## décalage horizontal
gap_y 10										## décalage vertical
no_buffers yes										## 'buffers' non pris en compte dans le calcul de mémoire.
uppercase min										## police en mode normal (Maj/min)
cpu_avg_samples 2									## nombre de processeurs pris en compte: ici 2
override_utf8_locale yes								## pour avoir les caractères accentués
default_color e0dfde									## couleur des textes et bordures par défaut: gris
color1 00ff00										## couleur vert
color2 ed7f10										## couleur orange
color3 ff0000										## couleur rouge

## pour mémo ( /etc/weather_daemon.conf):
## url: http://api.wunderground.com/api/MON_CODE/forecast/geolookup/conditions/lang:FR/q/France/CHEZ_MOI.json

########################################################################   OUTPUT   #########################################################################
TEXT

#######################################################################   Météo à   #########################################################################

${execp grep Now_conky_icon /tmp/weather | awk -F " " '{print $3 " " $4 " -p 0,5 -s 45x45" $5}'}\
${goto 65}${font Liberation Sans:bold:italic:size=10}Météo à ${exec grep City /tmp/weather | cut -f 3 -d " "}${font}
#
################################################################   Dernières mise à jour   ##################################################################
#
${font}${alignr}Maj  :  ${execp grep Update_time /tmp/weather | awk -F " " '{print $8}'}
#
########################################################   Conditions du moment + Précipitations   ##########################################################

${font Liberation Sans:bold:size=8}Actuellement${font}${goto 85}:  ${exec grep Condition /tmp/weather | awk -F " " '{print $3 " " $4 " " $5 " " $6 }'}\
${goto 225}${font Liberation Sans:bold:size=8}P${font}${goto 240}:${alignr}${exec grep Precipitation /tmp/weather |cut -f 3 -d " "} mm
#
###############################################################   Température + ressentie   #################################################################
#
${font Liberation Sans:bold:size=8}Température${font}${goto 85}:  ${exec grep Temperature /tmp/weather |cut -f 3 -d " "} °C\
${goto 225}${font Liberation Sans:bold:size=8}R${font}${goto 240}:${goto 252}${exec grep Feelslike_c /tmp/weather |cut -f 3 -d " "} °C
#
########################################################################   Jours   ##########################################################################

${GOTO 38}${exec grep today_weekday_short /tmp/weather | cut -f 3 -d " "}\
${goto 106}${exec grep tomorrow_weekday_short /tmp/weather | cut -f 3 -d " "}\
${goto 174}${exec grep after_weekday_short /tmp/weather | cut -f 3 -d " "}\
${goto 242}${exec grep latest_weekday_short /tmp/weather | cut -f 3 -d " "}
#
########################################################################   Icônes   #########################################################################
#
${execp grep today_conky_icon /tmp/weather | awk -F " " '{print $3 " " $4 " -p 24,115 -s 40x40" $5}'}\
${goto 83}${execp grep tomorrow_conky_icon /tmp/weather | awk -F " " '{print $3 " " $4 " -p 92,115 -s 40x40" $5}'}\
${goto 151}${execp grep after_conky_icon /tmp/weather | awk -F " " '{print $3 " " $4 " -p 160,115 -s 40x40" $5}'}\
${goto 219}${execp grep latest_conky_icon /tmp/weather | awk -F " " '{print $3 " " $4 " -p 228,115 -s 40x40" $5}'}
#
###################################################################   Températures MIN   ####################################################################
#
${if_match ${exec grep today_temp_min /tmp/weather | cut -f 3 -d " "}>9}${goto 8}${exec grep today_temp_min /tmp/weather | cut -f 3 -d " "}°${else}\
${if_match ${exec grep today_temp_min /tmp/weather | cut -f 3 -d " "}>-1}${goto 13}${exec grep today_temp_min /tmp/weather | cut -f 3 -d " "}°${else}\
${if_match ${exec grep today_temp_min /tmp/weather | cut -f 3 -d " "}>-10}${goto 9}${exec grep today_temp_min /tmp/weather | cut -f 3 -d " "}°\
${endif}${endif}${endif}\
#
${if_match ${exec grep tomorrow_temp_min /tmp/weather | cut -f 3 -d " "}>9}${goto 75}${exec grep tomorrow_temp_min /tmp/weather | cut -f 3 -d " "}°${else}\
${if_match ${exec grep tomorrow_temp_min /tmp/weather | cut -f 3 -d " "}>-1}${goto 81}${exec grep tomorrow_temp_min /tmp/weather | cut -f 3 -d " "}°${else}\
${if_match ${exec grep tomorrow_temp_min /tmp/weather | cut -f 3 -d " "}>-10}${goto 77}${exec grep tomorrow_temp_min /tmp/weather | cut -f 3 -d " "}°\
${endif}${endif}${endif}\
#
${if_match ${exec grep after_temp_min /tmp/weather | cut -f 3 -d " "}>9}${goto 143}${exec grep after_temp_min /tmp/weather | cut -f 3 -d " "}°${else}\
${if_match ${exec grep after_temp_min /tmp/weather | cut -f 3 -d " "}>-1}${goto 149}${exec grep after_temp_min /tmp/weather | cut -f 3 -d " "}°${else}\
${if_match ${exec grep after_temp_min /tmp/weather | cut -f 3 -d " "}>-10}${goto 145}${exec grep after_temp_min /tmp/weather | cut -f 3 -d " "}°\
${endif}${endif}${endif}\
#
${if_match ${exec grep latest_temp_min /tmp/weather | cut -f 3 -d " "}>9}${goto 211}${exec grep latest_temp_min /tmp/weather | cut -f 3 -d " "}°${else}\
${if_match ${exec grep latest_temp_min /tmp/weather | cut -f 3 -d " "}>-1}${goto 217}${exec grep latest_temp_min /tmp/weather | cut -f 3 -d " "}°${else}\
${if_match ${exec grep latest_temp_min /tmp/weather | cut -f 3 -d " "}>-10}${goto 213}${exec grep latest_temp_min /tmp/weather | cut -f 3 -d " "}°\
${endif}${endif}${endif}
#
###################################################################   Températures MAX   ####################################################################
#
${if_match ${exec grep today_temp_max /tmp/weather | cut -f 3 -d " "}>9}${goto 8}${exec grep today_temp_max /tmp/weather | cut -f 3 -d " "}°${else}\
${if_match ${exec grep today_temp_max /tmp/weather | cut -f 3 -d " "}>-1}${goto 13}${exec grep today_temp_max /tmp/weather | cut -f 3 -d " "}°${else}\
${if_match ${exec grep today_temp_max /tmp/weather | cut -f 3 -d " "}>-10}${goto 9}${exec grep today_temp_max /tmp/weather | cut -f 3 -d " "}°\
${endif}${endif}${endif}\
#
${if_match ${exec grep tomorrow_temp_max /tmp/weather | cut -f 3 -d " "}>9}${goto 75}${exec grep tomorrow_temp_max /tmp/weather | cut -f 3 -d " "}°${else}\
${if_match ${exec grep tomorrow_temp_max /tmp/weather | cut -f 3 -d " "}>-1}${goto 81}${exec grep tomorrow_temp_max /tmp/weather | cut -f 3 -d " "}°${else}\
${if_match ${exec grep tomorrow_temp_max /tmp/weather | cut -f 3 -d " "}>-10}${goto 77}${exec grep tomorrow_temp_max /tmp/weather | cut -f 3 -d " "}°\
${endif}${endif}${endif}\
#
${if_match ${exec grep after_temp_max /tmp/weather | cut -f 3 -d " "}>9}${goto 143}${exec grep after_temp_max /tmp/weather | cut -f 3 -d " "}°${else}\
${if_match ${exec grep after_temp_max /tmp/weather | cut -f 3 -d " "}>-1}${goto 149}${exec grep after_temp_max /tmp/weather | cut -f 3 -d " "}°${else}\
${if_match ${exec grep after_temp_max /tmp/weather | cut -f 3 -d " "}>-10}${goto 145}${exec grep after_temp_max /tmp/weather | cut -f 3 -d " "}°\
${endif}${endif}${endif}\
#
${if_match ${exec grep latest_temp_max /tmp/weather | cut -f 3 -d " "}>9}${goto 211}${exec grep latest_temp_max /tmp/weather | cut -f 3 -d " "}°${else}\
${if_match ${exec grep latest_temp_max /tmp/weather | cut -f 3 -d " "}>-1}${goto 217}${exec grep latest_temp_max /tmp/weather | cut -f 3 -d " "}°${else}\
${if_match ${exec grep latest_temp_max /tmp/weather | cut -f 3 -d " "}>-10}${goto 213}${exec grep latest_temp_max /tmp/weather | cut -f 3 -d " "}°\
${endif}${endif}${endif}
HP 500-261ef full 64 bits - Samsung 24 pcs 1920x1080 px
CPU : 4 X Intel ® Core™ i5-4440 @ 3.1 Ghz | RAM : 8 Go
HD : Western Digital 1 To | CG Radeon R5 235


Multiboot UEFI : ArchLinux - Windows 7 - Autre base Debian

Openbox (LXqt)
KDE Plasma 5
Avatar de l’utilisateur
Anghirrim
Elfe
Messages : 701
Inscription : mar. 28 févr. 2012, 11:09
Localisation : Loire-Atlantique

Re: [Conky] Vos .conkyrc !

Message par Anghirrim »

Joli!
Optiplex 3060 Micro Intel© Core™ i5-8500T, 16Go RAM, Arch Linux Cinnamon + Windows 10
Asus X53S, Linux Mint Cinnamon
Avatar de l’utilisateur
chipster
Maître du Kyudo
Messages : 2063
Inscription : ven. 11 août 2006, 22:25
Localisation : Saint-Étienne (42)
Contact :

Re: [Conky] Vos .conkyrc !

Message par chipster »

@acid_cloridrix merci ;)
Avatar de l’utilisateur
Anghirrim
Elfe
Messages : 701
Inscription : mar. 28 févr. 2012, 11:09
Localisation : Loire-Atlantique

Re: [Conky] Vos .conkyrc !

Message par Anghirrim »

Bon j'ai testé le truc d'Onyx.

Il me manquait l'install de w3m et weather_daemon. Mais c'est OK.

En revanche, les températures me sont affichées comme ça : -1ðC (il me semble que c'est l'acquisition de la température dans meteo.xslt qui chie).

Et les icones ne s'affichent pas.

Une idée?

Merci,
Optiplex 3060 Micro Intel© Core™ i5-8500T, 16Go RAM, Arch Linux Cinnamon + Windows 10
Asus X53S, Linux Mint Cinnamon
Avatar de l’utilisateur
chipster
Maître du Kyudo
Messages : 2063
Inscription : ven. 11 août 2006, 22:25
Localisation : Saint-Étienne (42)
Contact :

Re: [Conky] Vos .conkyrc !

Message par chipster »

souci d'encodage ? :D
Avatar de l’utilisateur
Anghirrim
Elfe
Messages : 701
Inscription : mar. 28 févr. 2012, 11:09
Localisation : Loire-Atlantique

Re: [Conky] Vos .conkyrc !

Message par Anghirrim »

Qu'est-ce que tu appelles souci d'encodage?
Optiplex 3060 Micro Intel© Core™ i5-8500T, 16Go RAM, Arch Linux Cinnamon + Windows 10
Asus X53S, Linux Mint Cinnamon
Avatar de l’utilisateur
banditblue
Elfe
Messages : 591
Inscription : dim. 10 janv. 2010, 10:19

Re: [Conky] Vos .conkyrc !

Message par banditblue »

remplace les "@" par "é" gans le fichier meteo.xslt:

<xsl:text>
Temp@rature demain : de </xsl:text><xsl:value-of select="low"/>°<xsl:value-of select="/weather/head/ut"/>
<xsl:text> à </xsl:text><xsl:value-of select="hi"/>°<xsl:value-of select="/weather/head/ut"/>
<xsl:text>

regarde aussi les infos
La connaîssance n'a pas de limite.
Mais sa valeur, est d'autant plus grande, une fois partagé


Pc fixe --- MSI MPG Z490 Gaming Edge WiFi, I9-9900Kf, RTX3070Ti, 64Go DDR4, SSD 1Tera nvme gen4 Samsung 980 pro, SSD 1Tera WD Blacksn850X,3HDD 5Tera
Eeepc Asus 1015pem --- Intel Atom N550 Dual-core 1.5Ghz / DD 1Tera 7200rpm / Ram 2Go

Screenshot + Les Conky ===> http://forums.archlinux.fr/post85405.html#p85405
Avatar de l’utilisateur
Anghirrim
Elfe
Messages : 701
Inscription : mar. 28 févr. 2012, 11:09
Localisation : Loire-Atlantique

Re: [Conky] Vos .conkyrc !

Message par Anghirrim »

Bon, j'avais fait ce changement des @ en é. Sous mon Arch de test sous Virtualbox, ça plantait, mais sur mon PC ce soir, ça fonctionne... des fois faut pas chercher.

Les icones plantaient, puis près un redémarrage je les ai.

Les icônes prenant de la place, j'ai séparé mon conky en deux. Un normal, puis un dédié météo.

Ca donne ça pour le bureau:
Image

Et ça pour le conky Meteo:
Image

Les icones des conditions météo de demain sont étranges non?? J'ai l'impression qu'il m'affiche toutes les icones possibles...
Dernière modification par Anghirrim le ven. 18 janv. 2013, 21:30, modifié 2 fois.
Optiplex 3060 Micro Intel© Core™ i5-8500T, 16Go RAM, Arch Linux Cinnamon + Windows 10
Asus X53S, Linux Mint Cinnamon
Avatar de l’utilisateur
chipster
Maître du Kyudo
Messages : 2063
Inscription : ven. 11 août 2006, 22:25
Localisation : Saint-Étienne (42)
Contact :

Re: [Conky] Vos .conkyrc !

Message par chipster »

bah il devait y avoir un souci d'encodage du fichier.
Sinon il a l'air de tout t'afficher oui
Avatar de l’utilisateur
banditblue
Elfe
Messages : 591
Inscription : dim. 10 janv. 2010, 10:19

Re: [Conky] Vos .conkyrc !

Message par banditblue »

met en ligne ton conkyrc on comprendra mieux le probléme
je suppose que les conditions qui te sont affiché sont erroné et veule certainement traduire un mots
Image

regarde si tu ne t'est pas tromper dans les fonts
La connaîssance n'a pas de limite.
Mais sa valeur, est d'autant plus grande, une fois partagé


Pc fixe --- MSI MPG Z490 Gaming Edge WiFi, I9-9900Kf, RTX3070Ti, 64Go DDR4, SSD 1Tera nvme gen4 Samsung 980 pro, SSD 1Tera WD Blacksn850X,3HDD 5Tera
Eeepc Asus 1015pem --- Intel Atom N550 Dual-core 1.5Ghz / DD 1Tera 7200rpm / Ram 2Go

Screenshot + Les Conky ===> http://forums.archlinux.fr/post85405.html#p85405
Avatar de l’utilisateur
onyx67
Elfe
Messages : 766
Inscription : dim. 06 nov. 2011, 18:12
Localisation : Alsace

Re: [Conky] Vos .conkyrc !

Message par onyx67 »

"conditions" ne devrait pas s'afficher dans conky, seul les icônes. Une pour les conditions solaire et une pour les conditions lunaires
Comme dit banditblue, faut poster ce que tu as, qu'on puisse comparer, particulièrement cette ligne ci:
${execi 120 ~/.conky/meteo2.sh "Conditions demain"}${color}${font} Te manquerai pas un séparateur (" )?
Bien que les icônes me semblent les bonnes, tu les a bien cherché ici?
Il me manquait l'install de w3m et weather_daemon. Mais c'est OK.
w3m ok, il te le faut, quand à weater_daemon c'est un conky météo à part entière (de chipster). Ce sont 2 scripts différents.
Il te faut également le paquet libxslt (dans extra)
"La complication est un effet de la simplicité mal acquise"

Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
Avatar de l’utilisateur
Anghirrim
Elfe
Messages : 701
Inscription : mar. 28 févr. 2012, 11:09
Localisation : Loire-Atlantique

Re: [Conky] Vos .conkyrc !

Message par Anghirrim »

Ah ok pour weather_daemon. Le "Conditions:" c'est moi qui l'ai rajouté dans mon .conkyrc .

Bon, bizarrement ce matin je n'ai qu'une icone en bas:
Image

Pour le .conkyrc_meteo (juste la partie qui nous intéresse):

Code : Tout sélectionner

TEXT

${image /home/thomas/.conky/images/weather.png -p 0,5 -s 25x25}          ${color ffffff}${font StyleBats:size=12}${execi 120 ~/.conky/meteo.sh FRXX3473}Météo à ${execi 120 ~/.conky/meteo2.sh "Ville"}
${color ffffff}${font StyleBats:size=10}Aujourd'hui : ${execi 120 ~/.conky/meteo2.sh "Température aujourd'hui"}   ${color ffffff}${font StyleBats:size=10} /  Conditions :
${color}${font weather:size=20}${voffset -20}${offset 320}${execi 120 ~/.conky/meteo2.sh "Conditions aujourd'hui"}${font}
${color ffffff}${font StyleBats:size=10}Vent : ${execi 120 ~/.conky/meteo2.sh "Vent aujourd'hui"}
${color ffffff}${font StyleBats:size=10}Lever du soleil : ${execi 120 ~/.conky/meteo2.sh "Lever du soleil"}
${color ffffff}${font StyleBats:size=10}Coucher du soleil : ${execi 120 ~/.conky/meteo2.sh "Coucher du soleil"}
${color ffffff}${font StyleBats:size=10}Demain : ${execi 120 ~/.conky/meteo2.sh "Température demain"}   ${color ffffff}${font StyleBats:size=10} /  Conditions :
${color}${font weather:size=20}${voffset -20}${offset 260}${execi 120 ~/.conky/meteo2.sh "Conditions demain"}${color}${font}
Sinon, meteo.xslt n'a pas été modifié.
Optiplex 3060 Micro Intel© Core™ i5-8500T, 16Go RAM, Arch Linux Cinnamon + Windows 10
Asus X53S, Linux Mint Cinnamon
Avatar de l’utilisateur
onyx67
Elfe
Messages : 766
Inscription : dim. 06 nov. 2011, 18:12
Localisation : Alsace

Re: [Conky] Vos .conkyrc !

Message par onyx67 »

Anghirrim a écrit : Bon, bizarrement ce matin je n'ai qu'une icone en bas:
Je crois savoir. Parce que hier 18 il y a eu une changement de phase lunaire (et c'est même pas de l'humour!), au lieu d'afficher l'icône adéquate, il les affichent toutes. A mon avis c'est à ce niveau que cà coince.
(prochain bug prévu le 27 janvier, :humour: :pastaper: )
Non sérieusement, faudrait voir ce qui peut-être corrigé (voir supprimé cette partie si tu n'en veux pas).
Mais c'est bizarre, je n'ai pas eu ce problème.
Sinon ton .conkyrc me semble correcte. Désolé de ne pouvoir t'aider d'avantage.
"La complication est un effet de la simplicité mal acquise"

Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
Avatar de l’utilisateur
chipster
Maître du Kyudo
Messages : 2063
Inscription : ven. 11 août 2006, 22:25
Localisation : Saint-Étienne (42)
Contact :

Re: [Conky] Vos .conkyrc !

Message par chipster »

J'avais passé un script en perl qui faisait office de calendrier sous conky mais il y avait des bugs assez complexes dus aux calculs des dates. Je me suis tourné vers python qui dispose d'un module calendar ce qui évite d'avoir tout à calculer comme je le faisais en perl. J'ai supprimé les --aligneadroite, ..., qui ne servait pas vraiment en fin de compte.
À la place j'ai rajouter 2 options: --num_week et --next. Le premier permet d'afficher le numéro des semaines alors que le second permet d'afficher le mois suivant. Les deux options peuvent être couplées ;)
Par rapport à l'ancien script, vous pouvez donc garder le même fichier conky. J'ai juste échangé color1 et color0 pour faire quelque chose de plus logique.
Voici le code python3:

Code : Tout sélectionner

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import calendar, sys
from datetime import date


def create_a_month(cal, str_month):
	# Si on affiche les numéros des semaines il faut faire un décalage sur le mois et
	# sur les jours de la semaine
	if cal.is_num_week:
		str_month = '   ' + str_month + '   '

	# On ajoute les jours de la semaine à la chaine
	str_month += "Lu Ma Me Je Ve " + cal.col_wknd + "Sa Di" + cal.col_init + "\n"

	# On parcourt la matrice
	for i in cal.matrix_cur:
		for c, j in enumerate(i):
			# On regarde si l'on doit afficher les numéros de semaine
			if cal.is_num_week:
				if c == 0:
					if cal.num_week_cur < 10:
						str_month += ' '

					str_month        += cal.col_numw + str(cal.num_week_cur) + cal.col_init + ' '
					cal.num_week_cur += 1

			# Si c'est un jour qui n'existe pas il est représenté par 0 et on le remplace par
			# 3 espaces et on ne fait pas la suite
			if j == 0:
				str_month += '   '
				continue

			# Si le jour est inférieur à 10, il faut mettre un espace pour compenser
			elif j < 10:
				str_month += ' '

			# Si on se trouve en colonne 5 ou 6, c'est que l'on se trouve en week-end
			if c == 5 or c == 6:
				# Si le jour d'aujourd'hui est un jour de week-end on ne lui met pas la même
				# couleur
				if not cal.already_passed and cal.day.day == j:
					str_month += cal.col_date + str(j) + cal.col_init
					cal.already_passed = True
				else:
					str_month += cal.col_wknd + str(j) + cal.col_init
			else:
				if not cal.already_passed and cal.day.day == j:
					str_month += cal.col_date + str(j) + cal.col_init
					cal.already_passed = True
				else:
					str_month += str(j)

			# Si on ne se trouve pas dans la dernière colonne, on rajoute un espace
			if c != 6:
				str_month += ' '

		# On saute va à la ligne
		str_month += '\n'

	# On retourne la chaîne construite
	return str_month



# Début de la classe Cal
class Cal():
	def __init__(self):
		self.day            = date.today()
		self.matrix_cur     = calendar.monthcalendar(self.day.year, self.day.month)
		self.col_init       = '${color0}' # Couleur initiale
		self.col_date       = '${color1}' # Couleur de la date courante
		self.col_wknd       = '${color2}' # Couleur du week end
		self.col_numw       = '${color3}' # Couleur des numéros de semaine
		self.num_week_cur   = date(self.day.year, self.day.month, 1).isocalendar()[1]
		self.num_week_next  = str()
		self.matrix_next    = str()
		self.is_next_cal    = False
		self.is_num_week    = False
		self.already_passed = False




# Début du programme principal
if __name__ == "__main__":
	# On définit un object Cal
	cal    = Cal()
	# On écrit les mois de l'année dans un tableau
	month  = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre']
	# On initialise les 2 chaînes
	string1 = str()
	string2 = str()

	# Si l'utilisateur souhaite avoir le mois prochain
	if '--next' in sys.argv:
		cal.is_next_cal = True

	# Si l'utilisateur souhaite avoir le numéro des semaines
	if '--num_week' in sys.argv:
		cal.is_num_week = True

	# On passe dans la partie où l'utilisateur souhaite avoir le mois suivant
	if cal.is_next_cal:
		# Si le mois actuel est est décembre, il faut changer l'année
		if cal.day.month == 12:
			cal.matrix_next   = calendar.monthcalendar(cal.day.year + 1, 0)
			cal.num_week_next = date(cal.day.year + 1, 1, 1).isocalendar()[1]
			string2           = month[0].center(20) + '\n'
		# Autrement on calcule le mois suivant le mois actuel
		else:
			cal.matrix_next   = calendar.monthcalendar(cal.day.year, cal.day.month + 1)
			cal.num_week_next = date(cal.day.year, cal.day.month + 1, 1).isocalendar()[1]
			string2           = month[cal.day.month].center(20) + '\n'

		# Si un des deux mois à plus de semaines que l'autre, on ajoute un semaine vide
		if len(cal.matrix_cur) < len(cal.matrix_next):
			cal.matrix_cur.append([0, 0, 0, 0, 0, 0, 0])
		elif len(cal.matrix_cur) > len(cal.matrix_next):
			cal.matrix_next.append([0, 0, 0, 0, 0, 0, 0])

		string1 = month[cal.day.month - 1].center(20) + '\n'
		string1 = create_a_month(cal, string1)[:-2]

		# On copie toutes les valeurs de next dans cur
		cal.matrix_cur   = cal.matrix_next
		cal.num_week_cur = cal.num_week_next
		string2 = create_a_month(cal, string2)

		# On découpe les chaînes toutes les lignes
		string1 = string1.split('\n')
		string2 = string2.split('\n')

		# On met les deux chaines bout-à-bout
		string_tot = str()
		for i in range(len(string1)):
			string_tot += string1[i] + '   ' + string2[i] + '\n'

		print(string_tot, end='')

	# Partie où on n'affiche pas le mois suivant
	else:
		string1 = month[cal.day.month - 1].center(20) + '\n'
		string1 = create_a_month(cal, string1)
		print(string1, end='')
Un exemple de conkyrc:

Code : Tout sélectionner

default_outline_color black
#color0 7ca9f0
color0 FFFFFF   # blanc
color1 ff4747	# rouge pastel pour la date
color2 3079e7   # Bleu pastel foncé pour le texte du week end (samedi et dimanche)
color3 6fb0e7   # Bleu pastel clair pour les chiffres du week end

# set to yes if you want Conky to be forked in the background
background no

# Use Xft?
use_xft yes

# Xft font when Xft is enabled
xftfont DejaVu Sans Mono:size=10

xftalpha 1
# out_to_console no
# out_to_console no
update_interval 60
total_run_times 0
own_window yes
#own_window_type desktop
own_window_transparent yes
own_window_colour f9f9f9
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
minimum_size 0 0
draw_shades yes
draw_outline no
draw_borders no
draw_graph_borders yes
stippled_borders 0
border_margin 0
border_width 0

text_buffer_size 1024

#alignment top_left
#alignment top_right
#alignment bottom_left
alignment bottom_right
#alignment none

# Gap between borders of screen and text
# same thing as passing -x at command line
gap_x 6
gap_y 26

uppercase no
override_utf8_locale yes
use_spacer none

TEXT
${execp python /home/julien/.Scripts/Calendrier/cal.py --num_week --next}
Le screenshot qui va bien:
Image
Si vous avez des questions, des conseils (car le code est un peu caca par endroit), n'hésitez pas

[edit] À oui, une chose quand même. Le fichier python, par pitié, ne lui donnez pas le nom calendar.py sinon vous allez droit aux ennuis puisque python chargera le programme que vous essayez de lancer en lieu et place du module du calendrier :twisted:
Répondre