Conky

Bureaux,conky et autres personnalisations esthétiques.
Avatar du membre
Arizona
Messages : 9
Enregistré le : mar. 31 janv. 2017 11:49

Re: Conky

Messagepar Arizona » mar. 29 août 2017 17:12

Dernier message de la page précédente :

Bonjour,

Dans ton conky assure toi que la ligne suivante :

lua_load ./seamod_rings.lua corresponds bien à ton répertoire ou se trouve ton fichier.

@+
Kernel: 4.4.0-53-generic x86_64 (64 bit) Desktop: MATE 1.16.1 Distro: Linux Mint 18.1 Serena
Mobo: ASUSTeK model: Z87-DELUXE
CPU: Quad core Intel Core i7-4770K
Graphics: Card: Advanced Micro Devices [AMD/ATI] Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X]

Jim777
Messages : 41
Enregistré le : mar. 21 juil. 2015 16:22

Re: Conky

Messagepar Jim777 » mar. 29 août 2017 17:33

merci mon loulou!!!t'est un champion du monde!!!Nickel est grand merci.
Modifié en dernier par zebulon le mar. 29 août 2017 23:05, modifié 1 fois.
Raison : suppression d'une citation reprenant à 100% le message précédent.
Linux Mint 18.2 Sonya - x64
SSD SanDisk Ultra®Plus
CPU : Intel® Core™ i7-870
RAM 8 Go DDR3
Carte Graphique: Radeon HD 4870

Avatar du membre
Gsxr
Messages : 134
Enregistré le : ven. 25 août 2017 15:49

Re: Conky

Messagepar Gsxr » mar. 29 août 2017 22:17

Super , problème réglé :mrgreen:
Modifié en dernier par Gsxr le mar. 29 août 2017 22:29, modifié 1 fois.
Mate 18.04 - x64 - Kernel 4.16.13 - SSD 128 Go + 2 x HDD 2 To
Asus P8Z77-V LX2 - I5 3570K @ 4,5Ghz - 16Go DDR3 G.Skill Extreme Series
MSI GTX 1080Ti Gaming X - 11Go + Tuner DVB T2/T/C TBS 6221 + Webcam Logitech C920
Imprimante Samsung ML-2165W - Moniteur Alienware A3418DW - Pingouin dans les champs, hiver méchant !

Jim777
Messages : 41
Enregistré le : mar. 21 juil. 2015 16:22

Re: Conky

Messagepar Jim777 » mar. 5 sept. 2017 20:27

conky modifié ;) merci a mon ami arizona pour son aide :B

Image
Linux Mint 18.2 Sonya - x64
SSD SanDisk Ultra®Plus
CPU : Intel® Core™ i7-870
RAM 8 Go DDR3
Carte Graphique: Radeon HD 4870

Avatar du membre
zebulon
Administrateur du site
Messages : 12580
Enregistré le : ven. 19 juin 2015 22:13
Localisation : Au pays du mistral

Re: Conky

Messagepar zebulon » mar. 5 sept. 2017 22:00

Salut ;)
Je rappelle qu'il serait sympa de mettre le code avec vos conkys 8-)

Merci ;)
LMDE3 cinnamon 64-bit + Lm 17.3 MATE.
Proc: intel I5 4440, Cm: Gigabyte GA-B85M-D3H, Alim: Corsair CX Bronze 430 W, Ram: Crucial Ballistix Sport, 2 x 2 Go.
SSD: 2.5 sandisk ultra+ 64 Go pour /+home, DD: Seagate Barracuda 500 Go pour mes données persos, DD maxtor 160 Go pour la sauvegarde ciblée via luckybackup.
Impr: HP Envy 4502.

Jim777
Messages : 41
Enregistré le : mar. 21 juil. 2015 16:22

Re: Conky

Messagepar Jim777 » mer. 6 sept. 2017 18:18

Image

Code : Tout sélectionner

# Conky settings #
background no
update_interval 1

cpu_avg_samples 2
net_avg_samples 2

override_utf8_locale yes

double_buffer yes
no_buffers yes

text_buffer_size 2048
#imlib_cache_size 0

temperature_unit celsius

# Window specifications #
own_window_class Conky
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below

border_inner_margin 0
border_outer_margin 0

minimum_size 520 600
maximum_width 520

alignment tr
gap_x -20
gap_y 100

# Graphics settings #
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no

default_color gray
default_shade_color red
default_outline_color green

# Text settings #
use_xft yes
override_utf8_locale yes
xftfont Pf Tempesta Five:bold:size=6
xftalpha 0.9
uppercase no

temperature_unit celsius

default_color 999999
color0 d00420
color1 999999
color2 1994D1
#color3 1994D1

# Lua Load  ##${voffset 750}
lua_load /home/eric/dark/rings-v1.2.1.lua_dark
#lua_draw_hook_pre ring_stats
lua_draw_hook_pre conky_main

TEXT
${font Pf Tempesta Five:bold:size=6}${voffset 16}${goto 128}${color1}${freq_g cpu0} Ghz ${nvidia temp} °C

${font Pf Tempesta Five:bold:size=6}${voffset -1}${goto 128}${color1}CPU 1${alignr 330}${color1}${cpu cpu0}%
${font Pf Tempesta Five:bold:size=6}${voffset 4}${goto 128}${color1}CPU 2${alignr 330}${color1}${cpu cpu1}%
${font Pf Tempesta Five:bold:size=6}${voffset 4}${goto 128}${color1}CPU 3${alignr 330}${color1}${cpu cpu2}%
${font Pf Tempesta Five:bold:size=6}${voffset 2}${goto 128}${color1}CPU 4${alignr 330}${color1}${cpu cpu3}%
${goto 50}${voffset 12}${font Pf Tempesta Five:bold:size=6}${color1}${top name 1}${alignr 306}${top cpu 1}%
${goto 50}${font Pf Tempesta Five:bold:size=6}${color1}${top name 2}${alignr 306}${top cpu 2}%
${goto 50}${font Pf Tempesta Five:bold:size=6}${color1}${top name 3}${alignr 306}${top cpu 3}%
${font Ubuntu:normal:size=18}${color3}${goto 80}${voffset 10}CPU   
${font Ubuntu:normal:size=18}${color3}${goto 400}${voffset 42}MÉMOIRE
${goto 320}${voffset -6}${font Pf Tempesta Five:bold:size=6}${color1}${top_mem name 1}${alignr 40}${top_mem mem 1}%
${goto 320}${font Pf Tempesta Five:bold:size=6}${color1}${top_mem name 2}${alignr 40}${top_mem mem 2}%
${goto 320}${font Pf Tempesta Five:bold:size=6}${color1}${top_mem name 3}${alignr 40}${top_mem mem 3}%
${goto 320}${font Pf Tempesta Five:bold:size=6}${color1}${top_mem name 4}${alignr 40}${top_mem mem 4}%
${goto 320}${font Pf Tempesta Five:bold:size=6}${color1}${top_mem name 5}${alignr 40}${top_mem mem 5}%
${font Pf Tempesta Five:bold:size=6}${voffset 6}${goto 350}${color1}SWAP${alignr 30}${color1}${swap} / ${color1}${swapmax}
${font Pf Tempesta Five:bold:size=6}${voffset 4}${goto 350}${color1}RAM ${alignr 30}${color1}${mem} / ${color1}${memmax}
${font Pf Tempesta Five:bold:size=6}${goto 80}${voffset -70}Root${color1}${alignr 310}${fs_used /} / ${fs_size /}
${font Pf Tempesta Five:bold:size=6}${goto 80}${voffset 2}Home${alignr 310}${color1}${fs_used /home} / ${fs_size /home}
${font Pf Tempesta Five:bold:size=6}${goto 80}${voffset 1}Usr${alignr 310}${color1}${fs_used /usr} / ${fs_size /usr}
${font Ubuntu:normal:size=18}${color3}${goto 30}${voffset 12}DISQUE DUR
${font Ubuntu:normal:size=18}${color3}${voffset 27}${goto 330}INTERNET
# |--ETH0
${font Pf Tempesta Five:bold:size=6}${color1}${goto 300}${voffset -10}Up${goto 350}${color1}${totalup enp5s0} / ${color1}${upspeed enp5s0}
${font Pf Tempesta Five:bold:size=6}${goto 300}${color1}Down${goto 350}${color1}${totaldown enp5s0} / ${color1}${downspeed enp5s0}
${font Pf Tempesta Five:bold:size=7}${goto 300}${voffset 2}Local IP${goto 350}${addr enp5s0}
${font Pf Tempesta Five:bold:size=7}${goto 300}${voffset -1}Public IP${goto 350}${texeci 1000 wget -q -O - checkip.dyndns.org | sed -e 's/[^[:digit:]\|.]//g'}
${font Ubuntu:normal:size=18}${goto 10}${voffset -45}${color3}${time %a} ${color3}${time %x}
${font Ubuntu:normal:size=22}${goto 70}${color3}${voffset 10}${time %H}:${time %M}
#${font Ubuntu:normal:size=18}${color0}${goto 300}${voffset 26}BATTERIE
#${font Ubuntu:normal:size=16}${color0}${goto 282}${voffset -2}${color1}${battery_percent BAT1}%${endif}${endif}


#${execpi 53 $HOME/conky/nagios.sh}



Code : Tout sélectionner

--[[
Ring Meters by londonali1010 (2009)

This script draws percentage meters as rings. It is fully customisable; all options are described in the script.

IMPORTANT: if you are using the 'cpu' function, it will cause a segmentation fault if it tries to draw a ring straight away. The if statement near the end of the script uses a delay to make sure that this doesn't happen. It calculates the length of the delay by the number of updates since Conky started. Generally, a value of 5s is long enough, so if you update Conky every 1s, use update_num > 5 in that if statement (the default). If you only update Conky every 2s, you should change it to update_num > 3; conversely if you update Conky every 0.5s, you should use update_num > 10. ALSO, if you change your Conky, is it best to use "killall conky; conky" to update it, otherwise the update_num will not be reset and you will get an error.

To call this script in Conky, use the following (assuming that you save this script to ~/scripts/rings.lua):
   lua_load ~/scripts/rings-v1.2.1.lua
   lua_draw_hook_pre ring_stats
   
Changelog:
+ v1.2.1 -- Fixed minor bug that caused script to crash if conky_parse() returns a nil value (20.10.2009)
+ v1.2 -- Added option for the ending angle of the rings (07.10.2009)
+ v1.1 -- Added options for the starting angle of the rings, and added the "max" variable, to allow for variables that output a numerical value rather than a percentage (29.09.2009)
+ v1.0 -- Original release (28.09.2009)

        arg=conky_parse("${if_up wlan0}wlan0${else}eth0${endif}"),
        fg_colour=0xf0651f,
        fg_colour=conky_parse("${if_up wlan0}wlan0${else}eth0${endif}"),
        conky_parse("${cpu}")
        name=conky_parse("${acpitemp}"),
]]

-- A TESTER
--set alarm value, this is the value at which bar color will change
--alarm_value=80
----set alarm bar color, 1,0,0,1 = red fully opaque
--ar,ag,ab,aa=1,0,0,1

-- couleurs 1
-- ffffff
-- f0651f
-- f01f42
-- couleurs 2 + flashy
-- 008cff
-- ff7200
-- ff000d

--normal_temp="0xffffff"
--warn_temp="0xf0651f"
--crit_temp="0xf01f42"
-- Un mélange des deux
normal="0xffffff"
warn="0xff7200"
crit="0xff000d"

-- seulement quand fond nécessaire
corner_r=35
bg_colour=0x2a2a2a
bg_alpha=0.2


settings_table = {
   
    {
        name='nvidia temp',
        arg='',
        max=90,
        bg_colour=0x2a2a2a,
        bg_alpha=0.8,
        fg_colour=0xffffff,
        fg_alpha=0.8,
        x=200, y=120,
        radius=97,
        thickness=4,
        start_angle=0,
        end_angle=240
    },
    {
        name='cpu',
        arg='cpu0',
        max=100,
        bg_colour=0x2a2a2a,
        bg_alpha=0.8,
        fg_colour=0xffffff,
        fg_alpha=0.8,
        x=200, y=120,
        radius=86,
        thickness=13,
        start_angle=0,
        end_angle=240
    },
    {
        name='cpu',
        arg='cpu1',
        max=100,
        bg_colour=0x2a2a2a,
        bg_alpha=0.8,
        fg_colour=0xffffff,
        fg_alpha=0.8,
        x=200, y=120,
        radius=71,
        thickness=12,
        start_angle=0,
        end_angle=240
    },
    {
        name='cpu',
        arg='cpu2',
        max=100,
        bg_colour=0x2a2a2a,
        bg_alpha=0.6,
        fg_colour=0xffffff,
        fg_alpha=0.8,
        x=200, y=120,
        radius=57,
        thickness=11,
        start_angle=0,
        end_angle=240
    },
    {
        name='cpu',
        arg='cpu3',
        max=100,
        bg_colour=0x2a2a2a,
        bg_alpha=0.5,
        fg_colour=0xffffff,
        fg_alpha=0.8,
        x=200, y=120,
        radius=44,
        thickness=10,
        start_angle=0,
        end_angle=240
    },
    {
        name='memperc',
        arg='',
        max=100,
        bg_colour=0x2a2a2a,
        bg_alpha=0.8,
        fg_colour=0xffffff,
        fg_alpha=0.8,
        x=340, y=234,
        radius=60,
        thickness=15,
        start_angle=180,
        end_angle=420
    },
    {
        name='swapperc',
        arg='',
        max=100,
        bg_colour=0x2a2a2a,
        bg_alpha=0.4,
        fg_colour=0xffffff,
        fg_alpha=0.8,
        x=340, y=234,
        radius=45,
        thickness=10,
        start_angle=180,
        end_angle=420
    },
    {
        name='fs_used_perc',
        arg='/',
        max=100,
        bg_colour=0x2a2a2a,
        bg_alpha=0.8,
        fg_colour=0xffffff,
        fg_alpha=0.8,
        x=220, y=280,
        radius=40,
        thickness=10,
        start_angle=0,
        end_angle=240
    },
    {
        name='fs_used_perc',
        arg='/home',
        max=100,
        bg_colour=0x2a2a2a,
        bg_alpha=0.6,
        fg_colour=0xffffff,
        fg_alpha=0.8,
        x=220, y=280,
        radius=28,
        thickness=10,
        start_angle=0,
        end_angle=240
    },
    {
        name='fs_used_perc',
        arg='/usr',
        max=100,
        bg_colour=0x2a2a2a,
        bg_alpha=0.4,
        fg_colour=0xffffff,
        fg_alpha=0.8,
        x=220, y=280,
        radius=16,
        thickness=10,
        start_angle=0,
        end_angle=240
    },
    {
        name='downspeedf',
        arg='enp5s0',
        max=1000,
        bg_colour=0x2a2a2a,
        bg_alpha=0.8,
        fg_colour=0xffffff,
        fg_alpha=0.8,
        x=290, y=346,
        radius=30,
        thickness=12,
        start_angle=180,
        end_angle=420
    },
    {
        name='upspeedf',
        arg='enp5s0',
        max=100,
        bg_colour=0x2a2a2a,
        bg_alpha=0.6,
        fg_colour=0xffffff,
        fg_alpha=0.8,
        x=290, y=346,
        radius=18,
        thickness=8,
        start_angle=180,
        end_angle=420
    },
    {
        name='time',
        arg='%S',
        max=60,
        bg_colour=0x2a2a2a,
        bg_alpha=0.8,
        fg_colour=0xffffff,
        fg_alpha=0.8,
        x=230, y=410,
        radius=30,
        thickness=12,
        start_angle=0,
        end_angle=240
    },
    {
        name='time',
        arg='%M',
        max=60,
        bg_colour=0x2a2a2a,
        bg_alpha=0.6,
        fg_colour=0xffffff,
        fg_alpha=0.8,
        x=230, y=410,
        radius=18,
        thickness=8,
        start_angle=0,
        end_angle=240
    },
    {
        name='time',
        arg='%H',
        max=24,
        bg_colour=0x2a2a2a,
        bg_alpha=0.4,
        fg_colour=0xffffff,
        fg_alpha=0.8,
        x=230, y=410,
        radius=10,
        thickness=4,
        start_angle=0,
        end_angle=240
    },
}

require 'cairo'

function rgb_to_r_g_b(colour,alpha)
   return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end

function draw_ring(cr,t,pt)

   local w,h=conky_window.width,conky_window.height
   
   local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle']
   local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha']

   local angle_0=sa*(2*math.pi/360)-math.pi/2
   local angle_f=ea*(2*math.pi/360)-math.pi/2
   local t_arc=t*(angle_f-angle_0)

   -- Draw background ring

   cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f)
   cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga))
   cairo_set_line_width(cr,ring_w)
   cairo_stroke(cr)
   
   -- Draw indicator ring

   cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc)
   cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga))
   cairo_stroke(cr)      
end

function conky_ring_stats()
   local function setup_rings(cr,pt)
      local str=''
      local value=0
      
      str=string.format('${%s %s}',pt['name'],pt['arg'])
      str=conky_parse(str)
      
      value=tonumber(str)
      if value == nil then value = 0 end
      pct=value/pt['max']
      
      draw_ring(cr,pct,pt)
   end

   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)
   
   local cr=cairo_create(cs)   
   
   local updates=conky_parse('${updates}')
   update_num=tonumber(updates)

   if update_num>5 then
       for i in pairs(settings_table) do
                display_temp=temp_watch()
      setup_rings(cr,settings_table[i])
       end
   end
   cairo_surface_destroy(cs)
  cairo_destroy(cr)
end

function disk_watch()

    warn_disk=93
    crit_disk=98

    -- poser une boucle plus tard... pas simple

    disk=tonumber(conky_parse("${fs_used_perc /}"))

    if disk<warn_disk then
        settings_table[8]['fg_colour']=normal
    elseif disk<crit_disk then
        settings_table[8]['fg_colour']=warn
    else
        settings_table[8]['fg_colour']=crit
    end

    disk=tonumber(conky_parse("${fs_used_perc /home}"))

    if disk<warn_disk then
        settings_table[9]['fg_colour']=normal
    elseif disk<crit_disk then
        settings_table[9]['fg_colour']=warn
    else
        settings_table[9]['fg_colour']=crit
    end

    disk=tonumber(conky_parse("${fs_used_perc /usr}"))

    if disk<warn_disk then
        settings_table[10]['fg_colour']=normal
    elseif disk<crit_disk then
        settings_table[10]['fg_colour']=warn
    else
        settings_table[10]['fg_colour']=crit
    end
end

function temp_watch()

    warn_value=70
    crit_value=80

    temperature=tonumber(conky_parse("${acpitemp}"))

    if temperature<warn_value then
        settings_table[1]['fg_colour']=normal
    elseif temperature<crit_value then
        settings_table[1]['fg_colour']=warn
    else
        settings_table[1]['fg_colour']=crit
    end
end

function conky_draw_bg()
    if conky_window==nil then return end
    local w=conky_window.width
    local h=conky_window.height
    local cs=cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, w, h)
    cr=cairo_create(cs)
   
    cairo_move_to(cr,corner_r,0)
    cairo_line_to(cr,w-corner_r,0)
    cairo_curve_to(cr,w,0,w,0,w,corner_r)
    cairo_line_to(cr,w,h-corner_r)
    cairo_curve_to(cr,w,h,w,h,w-corner_r,h)
    cairo_line_to(cr,corner_r,h)
    cairo_curve_to(cr,0,h,0,h,0,h-corner_r)
    cairo_line_to(cr,0,corner_r)
    cairo_curve_to(cr,0,0,0,0,corner_r,0)
    cairo_close_path(cr)
   
    cairo_set_source_rgba(cr,rgb_to_r_g_b(bg_colour,bg_alpha))
    cairo_fill(cr)
end


function conky_main()
    temp_watch()
    disk_watch()
    conky_ring_stats()
-- quand fond nécessaire
--    conky_draw_bg()
end
Linux Mint 18.2 Sonya - x64
SSD SanDisk Ultra®Plus
CPU : Intel® Core™ i7-870
RAM 8 Go DDR3
Carte Graphique: Radeon HD 4870

Avatar du membre
débitant
modérateur
Messages : 8353
Enregistré le : mar. 14 juil. 2015 18:22
Localisation : Lorraine France

Re: Conky

Messagepar débitant » mer. 6 sept. 2017 18:21

merci pour les balises :lol: j'étais justement en train de les reprendre :lol: ;)

EDIT: d'où l'intérêt de faire "aperçu" avant d'envoyer, tu t'en serais rendu compte ;)

Avatar du membre
loutch
Messages : 341
Enregistré le : lun. 13 juil. 2015 17:32

Re: Conky

Messagepar loutch » ven. 8 sept. 2017 09:53

Hello

Image

conky position soleil et lune haut à droite
soleil

Code : Tout sélectionner

background no
use_xft yes
xftfont URW Chancery L:style=Bold:size=10
xftalpha 1
update_interval 1
total_run_times 0
own_window yes
own_window_transparent yes
own_window_argb_visual yes
own_window_type normal
own_window_hints undecorated,below,skip_taskbar,skip_pager
double_buffer yes
minimum_size 380 310
maximum_width 380
text_buffer_size 2048
draw_shades no
draw_outline no
draw_borders no
border_width 1
draw_graph_borders no
default_outline_color cacaca
alignment top_right
gap_x 5
gap_y 100
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
#
color1                ffff00


lua_load ~/.conky/v11/conky/soleil.lua
lua_draw_hook_pre draw_fig

default_color 8b8b8b
   


lua_load ~/.conky/lua/image.lua

TEXT

${lua fDrawImage /home/loutch/.conky/v11/conky/terre.png 170 170 60 64 0}




soleil.lua

Code : Tout sélectionner

--sun position lua script by mrpeachy 2010 version 2 includes moon position
--############################################################
--############################################################
--input latitude
--for northern hemisphere enter positive
--for southern hemisphere enter negative
latitude=49.1
longitude=7.06
--input hemisphere
--for northern enter 1
--for southern enter 2
hemisphere=1
--daylight saving? 1=yes, 0=no
dst=0
--position - this is the point where the N-S line crosses the horizon line
--the .5 helps make lines look sharper
across=200.5
down=200.5
--############################################################
--############################################################
require 'cairo'

function cos(x)
a=math.cos(math.rad(x))
return a
end

function sin(x)
a=math.sin(math.rad(x))
return a
end

function tan(x)
a=math.tan(math.rad(x))
return a
end

function addzero10(num)
if tonumber(num) < 10 then
return "0" .. num
else
return num
end
end

function round(val, decimal)
  if (decimal) then
    return math.floor( (val * 10^decimal) + 0.5) / (10^decimal)
  else
    return math.floor(val+0.5)
  end
end

function string:split(delimiter)
local result = { }
local from  = 1
local delim_from, delim_to = string.find( self, delimiter, from  )
while delim_from do
table.insert( result, string.sub( self, from , delim_from-1 ) )
from  = delim_to + 1
delim_from, delim_to = string.find( self, delimiter, from  )
end
table.insert( result, string.sub( self, from  ) )
return result
end

function datan2(y, x)
    if x == 0 and y == 0 then
        return 0
        else a = math.atan(math.rad(y / x))
    end
    if (x < 0) then
    a = a + 180
        else if y < 0 and x > 0 then
        a = a + 360
        end
    end
return math.rad(a)
end

function ipart(x)
if (x> 0) then
a = math.floor(x)
else a = math.ceil(x);
end
return a
end

function range(x)
    b = x / 360;
    a = 360 * (b - ipart(b));
    if a  < 0 then
        a = a + 360
end
    return a
end

function ranget(x)
    b = x / 24;
    a = 24 * (b - ipart(b));
    if a  < 0 then
        a = a + 24
end
    return a
end

function rangei(x)
    b = x / 1440;
    a = 1440 * (b - ipart(b));
    if a  < 0 then
        a = a + 1440
end
    return a
end
--################################################################################################################################################
--###########   MAIN FUNCTION   ########################################################################################################
--################################################################################################################################################
--################################################################################################################################################
function conky_draw_fig()
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 updates=tonumber(conky_parse('${updates}'))
--###########   START FUNCTION   ########################################################################################################
if updates > 5 then
--###########   SET HEMISPHERE   ########################################################################################################
if hemisphere==1 then
start=0
else
start=180
end
--################ sets daylignt saving #####################################3
if dst==1 then ds=-1 else ds=0 end
--################################################################################################################################################
--################################################################################################################################################
--###########  calculate julian time   ########################################################################################################
--################################################################################################################################################
--################################################################################################################################################
M=os.date("%m") --month
K=os.date("%G") --4 digit year
I=(os.date("%d"))--day of month
H=ranget((os.date("%H"))+ds) --hours
Min=os.date("%M")
Mi=(os.date("%M"))/60 --minutes expressed as hours
--current Julian time-----------------------------------------------------------------
JD=round((367*K)-((7*(K+((M+9)/12)))/4)+((275*M)/9)+I+1721013.5,0)+0.5+((H+Mi)/24)
--------------------------------------------------------------------------------------
days=(JD)-2451545.0 --correct
T=days/36525 --correct
--Julian time at preceeding midnight
JD0=round((367*K)-((7*(K+((M+9)/12)))/4)+((275*M)/9)+I+1721013.5,0)+0.5
D0=JD0-2451545.0
--###########  calculate sidereal time   ########################################################################################################
--current sidereal time
CST=6.697374558+(0.06570982441908*D0)+(1.00273790935*(H+Mi))
-----------------------------------------------------------------
GMST = 6.697374558 + (0.06570982441908*D0) + (1.00273790935*(H+Mi)) + (0.000026*(T^2))
ADJ=longitude/15
GMST24=ranget(GMST)
GMST24S=string.split(GMST24, "%p")
GMST24H=GMST24S[1]
GMST24M=string.len(GMST24S[2])
GMST24M=GMST24S[2]/(10^(GMST24M))*60
GMST24M=string.split(GMST24M,"%p")
GMST24M=GMST24M[1]
sgtime=(GMST24H*60)+GMST24M
-------------------------------------------------------------
day=os.date("%j")
B=(360/365)*(day-81)
eot=(9.87*math.sin(2*B))-(7.53*math.cos(B))-(1.5*math.sin(B))
LSTM=15*10
TC=(4*(LSTM-longitude))+eot
LT=((H)*60)+Min
LST=LT+(TC/60)
---------------------------------------
LST24=ranget(LST/60)
LST24S=string.split(LST24, "%p")
LST24H=LST24S[1]
LST24M=string.len(LST24S[2])
LST24M=(LST24S[2]/(10^(LST24M)))*60
LST24M=string.split(LST24M,"%p")
LST24M=LST24M[1]
--below is current solar time
stime=(LST24H*60)+LST24M
--################################################################################################################################################
--#############  END TIME CALCS ###########################################################################################################
--################################################################################################################################################
--################################################################################################################################################
--#############  SUN CACULATIONS AND DISPLAY ###########################################################################################################
--################################################################################################################################################
--################################################################################################################################################
--################################################################################################################################################
--    Sun formulas
--
--    L1    - Mean longitude
--    M1    - Mean anomaly
--    C1    - Equation of centre
--    V1    - True anomaly
--    Ec1    - Eccentricity
--    R1    - Sun distance
--    Th1    - Theta (true longitude)
--    Om1    - Long Asc Node (Omega)
--    Lam1- Lambda (apparent longitude)
--    Obl    - Obliquity of ecliptic
--    Ra1    - Right Ascension
--    Dec1- Declination
t=T
L1 = range(280.466 + 36000.8 * t)
M1 = range(357.529+35999*t - 0.0001536* t*t + t*t*t/24490000)
sinm1=math.sin(math.rad(M1))
C1 = (1.915 - 0.004817* t - 0.000014* t * t)* sinm1;     
C1 = C1 + (0.01999 - 0.000101 * t)* sinm1;
C1 = C1 + 0.00029 * sinm1;
V1 = M1 + C1;
cosv1=math.cos(math.rad(V1))
Ec1 = 0.01671 - 0.00004204 * t - 0.0000001236 * t*t;
R1 = 0.99972 / (1 + Ec1 * cosv1);--correct
Th1 = L1 + C1
Om1 = range(125.04 - 1934.1 * t)
om1sin=math.sin(math.rad(Om1))
Lam1 = Th1 - 0.00569 - 0.00478 * math.deg(om1sin);
Obl = (84381.448 - 46.815 * t)/3600; --correct
th1sin=math.sin(math.rad(Th1))
th1cos=math.cos(math.rad(Th1))
th1tan=math.tan(math.rad(Th1))
oblsin=math.sin(math.rad(Obl))
oblcos=math.cos(math.rad(Obl))
obltan=math.tan(math.rad(Obl))
zsin=math.sin(math.rad(0))
zcos=math.cos(math.rad(0))
ztan=math.tan(math.rad(0))
Ra1 = datan2((th1sin * oblcos - ztan* zsin),th1cos)--close ish
Dec1 = math.asin(zsin* oblcos + zcos*oblsin*th1sin)--very close
--SUN CALCULATIONS---------------------------------------------------------------
-------------------------------------------------------
delta=math.deg(Dec1)
------------------------------------------------------
sdec=delta
--calculate hangle in relation to altitude in relation to time
althrtab={}
shartab={}
total=1440
for i=1,total do
sha=180+(i*(360/total))
cossha=math.cos(math.rad(sha))
cossundec=math.cos(math.rad(sdec))
coslat=math.cos(math.rad(latitude))
cosmath=cossha*cossundec*coslat
sinsundec=math.sin(math.rad(sdec))
sinlat=math.sin(math.rad(latitude))
sinmath=sinsundec*sinlat
sinelevation=cosmath+sinmath
elevation=math.deg(math.asin(sinelevation))
curaltlong=elevation
curalt=round(curaltlong,2)
althrtab[i]=curalt
shartab[i]=sha-360
end
--#############################################
--calculate sunrise and sunset
for i=1,(total-1) do
if althrtab[i]<0 and althrtab[i+1]>0 then
rise=i
end
if althrtab[i]>0 and althrtab[i+1]<0 then
set=i
end
end
rise=rise/60
rises=string.split(rise,"%p")
sriseh=rises[1]
riseml=string.len(rises[2])
risem=(rises[2]/(10^riseml))*60
risems=string.split(risem,"%p")
srisem=risems[1]
set=set/60
sets=string.split(set,"%p")
sseth=sets[1]
setml=string.len(sets[2])
setm=(sets[2]/(10^setml))*60
setms=string.split(setm,"%p")
ssetm=setms[1]
--#############################################
--calculate azimuth for all above points
if hemisphere==1 then
azitab={}
for i=1,total do
azmath1=(math.cos(math.rad(shartab[i]))*cossundec*sinlat)-(sinsundec*coslat)
azmath2=math.cos(math.rad(althrtab[i]))
cosaz=azmath1/azmath2
azi1=math.deg(math.acos(cosaz))
aziplot=azi1
if shartab[i]<0 then
azitab[i]=(aziplot-180)*-1
else
azitab[i]=aziplot+180
end
end
end--if hemishpere
if hemisphere==2 then
azitab={}
for i=1,total do
azmath1=(math.cos(math.rad(shartab[i]))*cossundec*sinlat)-(sinsundec*coslat)
azmath2=math.cos(math.rad(althrtab[i]))
cosaz=azmath1/azmath2
azi1=math.deg(math.acos(cosaz))
aziplot=azi1
if shartab[i]<0 then
azitab[i]=(aziplot-360)*-1
else
azitab[i]=aziplot--+180
end
end
end--if hemishpere
------------------------------------------------------------------------------
--diplay sun plot
for i = 1,total do
circrad=0.25
circx=across-180+azitab[i]
circy=down-althrtab[i]
cairo_arc(cr,circx,circy,circrad,0,2*math.pi)
cairo_close_path(cr)
cairo_set_source_rgba(cr,0.4,0.4,0.4,1)
cairo_fill (cr)
end
--plot current sun position
circrad=7
circx=across-180+azitab[stime]
circy=down-althrtab[stime]
cairo_arc(cr,circx,circy,circrad,0,2*math.pi)
cairo_close_path(cr)
cairo_set_source_rgba(cr,1,1,0,1)
cairo_fill (cr)
-------------------------------
--curerent sun alt and azi
sunalt=althrtab[stime]
sunazi=azitab[stime]
--------------------------------------------
--############################################################################
--draw vertical N-S line
cairo_set_line_width (cr, 1)
cairo_set_source_rgba(cr,0.5,0.5,0.5,1)
cairo_move_to (cr, across, down+100)
cairo_line_to (cr, across, down-100)
cairo_stroke (cr)
--draw horizon
cairo_move_to (cr, across-180, down)
cairo_line_to (cr, across+180, down)
cairo_stroke (cr)
if hemisphere==1 then
cairo_move_to (cr, across-4, down-102)
cairo_show_text (cr, "S")
cairo_move_to (cr, across-4, down+109)
cairo_show_text (cr, "N")
else
cairo_move_to (cr, across-4, down-102)
cairo_show_text (cr, "N")
cairo_move_to (cr, across-4, down+109)
cairo_show_text (cr, "S")
cairo_stroke (cr)
end
--################################################################################################################################################
--################################################################################################################################################
--################################################################################################################################################
--################################################################################################################################################
--################################################################################################################################################
--#############  MOON CACULATIONS AND DISPLAY ###########################################################################################################
--################################################################################################################################################
--################################################################################################################################################
--################################################################################################################################################
--calculate moon data----------------------------------------------------------------
--moon stuff
F = range(93.2721 + 483202 * t - 0.003403 * t* t - t * t * t/3526000);
L2 = range(218.316 + 481268 * t);
Om2 = range(125.045 - 1934.14 * t + 0.002071 * t * t + t * t * t/450000);
M2 = range(134.963 + 477199 * t + 0.008997 * t * t + t * t * t/69700);
cosm2=math.cos(math.rad(M2))
D = range(297.85 + 445267 * t - 0.00163 * t * t + t * t * t/545900);
D2 = 2*D;
cosd2m2=math.cos(math.rad(D2-M2))
cosd2=math.cos(math.rad(D2))
R2 = 1 + (-20954 * cosm2 - 3699 * cosd2m2 - 2956 * cosd2 / 385000);
R3 = (R2 / R1) / 379.168831168831;
sinf=math.sin(math.rad(F))
sinm2f=math.sin(math.rad(M2-F))
sind2f=math.sin(math.rad(D2-F))
Bm = 5.128 * sinf + 0.2806 * sinm2f;
Bm = Bm + 0.2777 * sinm2f + 0.1732 * sind2f;
sinm2=math.sin(math.rad(M2))
sind2m2=math.sin(math.rad(D2-M2))
sind2=math.sin(math.rad(D2))
Lm = 6.289 * sinm2 + 1.274 * sind2m2 + 0.6583 * sind2;
sin2m2=math.sin(math.rad(2*M2))
sin2f=math.sin(math.rad(2*F))
Lm = Lm + 0.2136 * sin2m2 - 0.1851 * sinm1 - 0.1143 * sin2f;
sind22m2=math.sin(math.rad(D2-(2*M2)))
Lm = Lm +0.0588 * sind22m2
sind2m1m2=math.sin(math.rad(D2-M1-M2))
sind2m22=math.sin(math.rad(D2+M2))
Lm = Lm + 0.0572* sind2m1m2 + 0.0533* sind2m22;
Lm = Lm + L2;
tanbm=math.tan(math.rad(Bm))
sinbm=math.sin(math.rad(Bm))
cosbm=math.cos(math.rad(Bm))
sinlm=math.sin(math.rad(Lm))
coslm=math.cos(math.rad(Lm))
Ra2 = math.atan((sinlm * oblcos - tanbm* oblsin));
Dec2 = math.asin(sinbm* oblcos + cosbm*oblsin*sinlm);
sinlam1lm=math.sin(math.rad(Lam1-Lm))
HLm = range(Lam1 + 180 + (180/math.pi) * R3 * cosbm * sinlam1lm);
HBm = R3 * Bm;
--------------------------------------------------------------------
--obliquity of ecliptic:
eps = 23.0 + 26.0/60.0 + 21.448/3600.0 - (46.8150*T+ 0.00059*T*T- 0.001813*T*T*T)/3600;
X = cos(Bm)*cos(Lm)
Y = cos(eps)*cos(Bm)*sin(Lm) - sin(eps)*sin(Bm)
Z = sin(eps)*cos(Bm)*sin(Lm) - cos(eps)*sin(Bm)
R = math.sqrt(1.0-Z*Z);
delta = (180/math.pi)*math.atan(Z/R); -- in degrees-- declination
RA = (24/math.pi)*math.atan(Y/(X+R)); -- in hours
-------------------------------------------------------
delta=math.deg(Dec2)
------------------------------------------------------
sdec=delta
althrtab={}
shartab={}
total=1440
cossundec=math.cos(math.rad(sdec))
coslat=math.cos(math.rad(latitude))
sinlat=math.sin(math.rad(latitude))
sinsundec=math.sin(math.rad(sdec))
sinmath=sinsundec*sinlat
for i=0,total do
sha=180+(i*(360/total))
cossha=math.cos(math.rad(sha))
cosmath=cossha*cossundec*coslat
sinelevation=cosmath+sinmath
elevation=math.deg(math.asin(sinelevation))
curaltlong=elevation
curalt=round(curaltlong,2)
althrtab[i]=curalt
shartab[i]=sha-360
end
--#############################################
--calculate moonrise and moonset
for i=1,(total-1) do
if althrtab[i]<0 and althrtab[i+1]>0 then
rise=i
end
if althrtab[i]>0 and althrtab[i+1]<0 then
set=i
end
end
rise=rise/60
rises=string.split(rise,"%p")
mriseh=rises[1]
riseml=string.len(rises[2])
risem=(rises[2]/(10^riseml))*60
risems=string.split(risem,"%p")
mrisem=risems[1]
set=set/60
sets=string.split(set,"%p")
mseth=sets[1]
setml=string.len(sets[2])
setm=(sets[2]/(10^setml))*60
setms=string.split(setm,"%p")
msetm=setms[1]
--#############################################
--calculate azimuth for all above points
if hemisphere==1 then
azitab={}
for i=1,total do
azmath1=(math.cos(math.rad(shartab[i]))*cossundec*sinlat)-(sinsundec*coslat)
azmath2=math.cos(math.rad(althrtab[i]))
cosaz=azmath1/azmath2
azi1=math.deg(math.acos(cosaz))
aziplot=azi1
if shartab[i]<0 then
azitab[i]=(aziplot-180)*-1
else
azitab[i]=aziplot+180
end
end
end--if hemishpere
if hemisphere==2 then
azitab={}
for i=1,total do
azmath1=(math.cos(math.rad(shartab[i]))*cossundec*sinlat)-(sinsundec*coslat)
azmath2=math.cos(math.rad(althrtab[i]))
cosaz=azmath1/azmath2
azi1=math.deg(math.acos(cosaz))
aziplot=azi1
if shartab[i]<0 then
azitab[i]=(aziplot-360)*-1
else
azitab[i]=aziplot
end
end
end--if hemishpere
------------------------------------------------------------------------------
--diplay moon plot
for i = 1,total do
circrad=0.25
circx=across-180+azitab[i]
circy=down-althrtab[i]
cairo_arc(cr,circx,circy,circrad,0,2*math.pi)
cairo_close_path(cr)
cairo_set_source_rgba(cr,0.7,0.7,0.7,1)
cairo_fill (cr)
end
--plot current moon position
madj=tostring(rangei(sgtime+360))
mtime=madj
circrad=5
circx=across-180+(azitab[tonumber(mtime)])
circy=down-(althrtab[tonumber(mtime)])
cairo_arc(cr,circx,circy,circrad,0,2*math.pi)
cairo_close_path(cr)
cairo_set_source_rgba(cr,1,1,1,1)
cairo_fill (cr)
-------------------------------
--curerent moon alt and azi
moonalt=althrtab[tonumber(mtime)]
moonazi=azitab[tonumber(mtime)]
---------------------------------------------
--################################################################################################################################################
--################################################################################################################################################
--#############  TEXT DISPLAYS ###########################################################################################################
--################################################################################################################################################
--################################################################################################################################################
--################################################################################################################################################
--draws text label
font="Mono"
fontsize=10
cairo_select_font_face (cr, font, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
cairo_set_font_size (cr, fontsize);
cairo_set_source_rgba (cr, 0.1, 0.1, 0.1, 0.5);
--top left - sun moon alt and azi

tlx=20
tly=20
adj=10
cairo_move_to (cr, tlx, tly)
cairo_show_text (cr, "Positions")
gap=10
add=fontsize+((fontsize/100)*adj)+gap
cairo_move_to (cr, tlx, tly+add)
cairo_show_text (cr, "Soleil")
add=fontsize+((fontsize/100)*adj)+add
cairo_move_to (cr, tlx, tly+add)
cairo_show_text (cr, "Azimut " .. round(sunazi,2) .. "°")
add=fontsize+((fontsize/100)*adj)+add
cairo_move_to (cr, tlx, tly+add)
cairo_show_text (cr, "Altitude " .. sunalt .. "°")
gap=10
add=fontsize+((fontsize/100)*adj)+add+gap
cairo_move_to (cr, tlx, tly+add)
cairo_show_text (cr, "Lune")
add=fontsize+((fontsize/100)*adj)+add
cairo_move_to (cr, tlx, tly+add)
cairo_show_text (cr, "Azimut " .. round(moonazi,2) .. "°")
add=fontsize+((fontsize/100)*adj)+add
cairo_move_to (cr, tlx, tly+add)
cairo_show_text (cr, "Altitude " .. moonalt .. "°")

tlx=180
tly=20
adj=10
cairo_move_to (cr, tlx, tly)
cairo_show_text (cr, "Heure")
gap=10
add=fontsize+((fontsize/100)*adj)+gap
cairo_move_to (cr, tlx, tly+add)
cairo_show_text (cr, "Heure  Locale: " .. H .. ":" .. Min)
add=fontsize+((fontsize/100)*adj)+add
cairo_move_to (cr, tlx, tly+add)
cairo_show_text (cr, "Heure Sidérale: " .. GMST24H .. ":" .. GMST24M )
add=fontsize+((fontsize/100)*adj)+add
cairo_move_to (cr, tlx, tly+add)
cairo_show_text (cr, "Heure Solaire : " .. LST24H .. ":" .. LST24M)
cairo_stroke (cr)
--#######################################################################
--###########################################################################################
--###########################################################################################
--###########################################################################################
--###########################################################################################
end-- end if updates =
end--end main function


terre+lune

Code : Tout sélectionner

background no
use_xft yes
xftfont GE Inspira:size=10
xftalpha 1
update_interval 1
total_run_times 0
own_window yes
own_window_transparent yes
own_window_argb_visual yes
own_window_type normal
own_window_hints undecorated,below,skip_taskbar,skip_pager
double_buffer yes
minimum_size 210 210
maximum_width 210
text_buffer_size 2048
draw_shades no
draw_outline no
draw_borders no
border_width 1
draw_graph_borders no
default_color gray30
default_outline_color cacaca
alignment top_right
gap_x 470
gap_y 54
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
#
color1                ffff00

lua_load ~/.conky/lua/image.lua

TEXT

${voffset 120}
${goto 5}${font ConkyWeather:size=12}a ${voffset -3}${font monofur:bold:size=12:}↑$font ${execi 3600 sed -n '15p' $HOME/1_accuweather/curr_cond}              ${goto 120}${voffset  3}${font ConkyWeather:size=12}A ${voffset -3}${font monofur:bold:size=12:}↑$font ${execi 3600 sed -n '19p' $HOME/1_accuweather/curr_cond}
${goto 21}${font monofur:bold:size=12:}↓$font ${execi 3600 sed -n '16p' $HOME/1_accuweather/curr_cond}                                                         ${goto 136}${font monofur:bold:size=12:}↓$font ${execi 3600 sed -n '20p' $HOME/1_accuweather/curr_cond}
${goto 5}Durée ${execi 3600 sed -n '17p' $HOME/1_accuweather/curr_cond}                                                                                       ${goto 120}Durée ${execi 3600 sed -n '21p' $HOME/1_accuweather/curr_cond}
${goto 14}${execi 3600 sed -n '6p' $HOME/2b_Wunderground_API/Moon_Sun} Visibilité ${execi 3600 sed -n '2p' $HOME/2b_Wunderground_API/Moon_Sun} %

${execi 30 sh /home/loutch/.conky/v11/scripts/terrejn.sh}
${lua fDrawImage /home/loutch/.conky/v11/image/image1.png 0 10 168 142 0}
${lua fDrawImage $HOME/2b_Wunderground_API/Moon_phase.png 150 5 40 40 0}


terrejn.sh

Code : Tout sélectionner

#!/bin/bash
#http://www.goes.noaa.gov/FULLDISK/GMIR.JPG
#http://www.ruwenzori.net/earth/Earth_EMEA+Atlantic_1280x1024.jpg
#http://oiswww.eumetsat.org/IPPS/html/latestImages/EUMETSAT_MSG_IR039Color-all.jpg

# script detour_terre.sh
wget -q -O   /home/loutch/.conky/v11/image/image1.jpg http://www.ruwenzori.net/earth/Earth_EMEA+Atlantic_1280x1024.jpg
# pour le cadrage et le diametre si il ya lieu jouer sur 630,50
convert -size 1280x1024 xc:none -fill blue -draw 'circle 640,512 630,50' -alpha extract /tmp/mask.png
convert  /home/loutch/.conky/v11/image/image1.jpg  /tmp/mask.png  -alpha off -compose CopyOpacity -composite /home/loutch/.conky/v11/image/image1.png
rm /tmp/mask.png
#attention l'image finale et en .png a modifier dans ton conky
# ${image  /home/idem/image1.png -p 0,0 -s 500x400 -f 60}


Square to round.lua(pour avoir la terre ronde)

Code : Tout sélectionner

--[[ SQUARE_TO_ROUND WIDGET by Wlourf (07 April 2010, version 1.0.1)
http://u-scripts.blogspot.com/

This widget display a rounded image on your conky from a square image only.

Parameters are
filename        --nom de l'image carrée en entrée
xc,yc           --coordonnées du centre de l'image ronde par rapport au coin en haut à gauche de la fenêtre conky
radius           --rayon du cercle final
angle           --angle de rotation de l'image
radius_crop       --dans l'image carrée, pourcentage du cercle à extraire par rapport au côté du carré(1-100)
period       --converti l'image de carré à rond toutes les  'period' secondes

]]

require 'cairo'
require 'imlib2'

function convert_square(fileIn,fileOut,radius,angle,radius_crop)
    --convert Input file from jpg to png, scale it and rotate it
    local imageInput = imlib_load_image(fileIn)
    local out_size = radius*2/(radius_crop/100)
    imlib_context_set_image(imageInput)
    w = imlib_image_get_width();
    h = imlib_image_get_height();
    imlib_image_set_format("png")
    buffer = imlib_create_image(out_size,out_size);
    imlib_context_set_image(buffer);

    imlib_blend_image_onto_image(imageInput, 0,
                                               0, 0, w, h,
                                               0,0, out_size,out_size)
    rot_img=imlib_create_rotated_image(angle*math.pi/180)
    imlib_context_set_image(rot_img) 
    imlib_save_image(fileOut)
    imlib_free_image()
   
    imlib_context_set_image(buffer)
    imlib_free_image()
    imlib_context_set_image(imageInput)
    imlib_free_image()
end

function crop_square_to_round(filename,xc,yc,radius)
    local surface = cairo_image_surface_create_from_png(filename)
    local img_w = cairo_image_surface_get_width (surface);
   
    local cw,ch = conky_window.width, conky_window.height
    local cs=cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, cw,ch)
    local cr=cairo_create(cs)
    cairo_translate(cr,xc-img_w/2,yc-img_w/2)
    cairo_arc (cr, img_w/2,img_w/2, radius, 0, 2*math.pi)
    cairo_clip (cr)
    cairo_new_path (cr)   
    cairo_set_source_surface (cr, surface, 0, 0)

    cairo_paint (cr)
    cairo_destroy(cr)
    cairo_surface_destroy (cs)
    cairo_surface_destroy (surface)
   
end

function display_round(filename,xc,yc,radius,angle,radius_crop,period)
    if conky_window == nil then return end

    if tonumber(conky_parse('${updates}')) <2  then return end
    local filepng = filename .. ".png"
    local actual_time  = os.time()
   
    if last_time == nil then last_time=0 end
    local actual_img = io.open(filepng,"r")   
    if  last_time+period < actual_time or last_time == 0 or actual_img == nil then
        print ('convert image ' .. filename)
        convert_square(filename,filepng,radius,angle,radius_crop)
        last_time=actual_time
    end
    crop_square_to_round(filepng,xc,yc,radius)
    io.close()
end


--[[END OF SQUARE TO ROUND WIDGET]]

function conky_main(filename)
    if conky_window == nil then return end
    display_round(filename,
                275,275,120,  --xc,yc,radius
                5,            --angle
                98,           --radius_crop (1-100)
                3600        --period
    )
end



conkyrc en bas à droite

Code : Tout sélectionner

 
background no
use_xft yes
xftfont GE Inspira:size=10
xftalpha 1
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_argb_visual yes
own_window_type normal
own_window_hints undecorated,below,skip_taskbar,skip_pager
double_buffer yes
minimum_size 350
maximum_width 350
text_buffer_size 1024
draw_shades no
draw_outline no
draw_borders no
border_width 1
draw_graph_borders no
default_color gray10
default_outline_color cacaca
alignment tr
gap_x 20
gap_y 500
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
color1 62891A
color2 gray
color3 gray30
color4 gray30
color5 gray30
color6 gray30
color7 gray30
color8 Forestgreen
color9 white

TEXT
${font webdings: size=15}${if_match ${memperc} >0}${color6}${else}${color2}${endif}=${if_match ${memperc} >10}${color6}${else}${color2}${endif}=${if_match ${memperc} >20}${color5}${else}${color2}${endif}=${if_match ${memperc} >30}${color5}${else}${color2}${endif}=${if_match ${memperc} >40}${color4}${else}${color2}${endif}=${if_match ${memperc} >50}${color4}${else}${color2}${endif}=${if_match ${memperc} >60}${color3}${else}${color2}${endif}=${if_match ${memperc} >70}${color3}${else}${color2}${endif}=${if_match ${memperc} >80}${color1}${else}${color2}${endif}=${if_match ${memperc} >90}${color1}${else}${color2}${endif}=${font}${color} $mem/$memmax ${goto 235}mem ${goto 262}: ${color5}${top_mem name 1}${color}${goto 291}
${font webdings: size=15}${if_match ${cpu} >0}${color6}${else}${color2}${endif}=${if_match ${cpu} >10}${color6}${else}${color2}${endif}=${if_match ${cpu} >20}${color5}${else}${color2}${endif}=${if_match ${cpu} >30}${color5}${else}${color2}${endif}=${if_match ${cpu} >40}${color4}${else}${color2}${endif}=${if_match ${cpu} >50}${color4}${else}${color2}${endif}=${if_match ${cpu} >60}${color3}${else}${color2}${endif}=${if_match ${cpu} >70}${color3}${else}${color2}${endif}=${if_match ${cpu} >80}${color1}${else}${color2}${endif}=${if_match ${cpu} >90}${color1}${else}${color2}${endif}=${font}${color} ${cpu cpu0}%  ${goto 235}cpu ${goto 262}: ${color5}${top name 1}${color}${goto 291}
${font webdings: size=15}${if_match ${fs_used_perc /} >0}${color6}${else}${color2}${endif}=${if_match ${fs_used_perc /} >10}${color6}${else}${color2}${endif}=${if_match ${fs_used_perc /} >20}${color5}${else}${color2}${endif}=${if_match ${fs_used_perc /} >30}${color5}${else}${color2}${endif}=${if_match ${fs_used_perc /} >40}${color4}${else}${color2}${endif}=${if_match ${fs_used_perc /} >50}${color4}${else}${color2}${endif}=${if_match ${fs_used_perc /} >60}${color3}${else}${color2}${endif}=${if_match ${fs_used_perc /} >70}${color3}${else}${color2}${endif}=${if_match ${fs_used_perc /} >80}${color3}${else}${color2}${endif}=${if_match ${fs_used_perc /} >90}${color1}${else}${color2}${endif}=${font}${color} ${fs_used_perc /}%${goto 220}${fs_used /} / ${fs_size /} ${goto 300} Racine
Fréquences: ${alignr}n°1: ${color3}${freq_g 1}GHz   ${color}n°2: ${color3}${freq_g 2}GHz   ${color}n°3: ${color3}${freq_g 3}GHz   ${color}n°4: ${color3}${freq_g 4}GHz $color
Charge:  $cpu% ${cpubar 6,140}$alignr ${cpugraph 6,135 gray30 gray30}
Température: ${color3}${execi 300 sensors | grep Physical | cut -c18-24} $alignr${color} Tâches en cours: ${color3}${running_threads}$color

kernel:${goto 171}${color3}${kernel}$color
loadaverage:${goto 171}${color3}${loadavg 1} ${loadavg 2} ${loadavg 3}$color
uptime:${goto 171}${color3}${uptime}$color
hdd: ${goto 171}${color3}${hddtemp /dev/sda}°C $color Carte: ${color3}${hwmon temp 1}°C $color
batterie ${battery BAT0}
${goto 171}${color5}$stippled_hr${color}${if_existing /proc/net/route wlp2s0}
wifi:${goto 171}${color3}" ${wireless_essid wlp2s0} "$color
essid quality:${goto 171}${color3}${wireless_bitrate wlp2s0}${goto 291}${wireless_link_qual_perc wlp2s0}%$color
entrant:${goto 117}${color3}${downspeed wlp2s0}$color${goto 171}total entré:${color3}${goto 291}${totaldown wlp2s0}$color
sortant:${goto 117}${color3}${upspeed wlan0}$color${goto 171}total sorti:${goto 291}${color3}${totalup wlp2s0} $color
${goto 171}local IP:${goto 291}${color3}${addr wlp2s0}$color
${goto 171}public IP:${goto 289}${color3}${execi 1800 ~/.conky/v11/conky/ip.sh}$color
${goto 171}${color5}$stippled_hr${color}
vnstat${goto 100}aujourd'hui ${goto 169} ${execi 60 vnstat -i wlp2s0 --oneline | cut -d\; -f8}${goto 291}total
sortant ${color3}#
${goto 100}${execi 60 vnstat -i wlp2s0 --oneline | cut -d\; -f5}#
${goto 172}${execi 60 vnstat -i wlp2s0 --oneline | cut -d\; -f10}#
${goto 291}${execi 60 vnstat -i wlp2s0 --oneline | cut -d\; -f14}$color
entrant ${color3}#
${goto 100}${execi 60 vnstat -i wlp2s0 --oneline | cut -d\; -f4}#
${goto 172}${execi 60 vnstat -i wlp2s0 --oneline | cut -d\; -f9}#
${goto 291}${execi 60 vnstat -i wlp2s0 --oneline | cut -d\; -f13}$color
total ${color3}#
${goto 100}${execi 60 vnstat -i wlp2s0 --oneline | cut -d\; -f6}#
${goto 172}${execi 60 vnstat -i wlp2s0 --oneline | cut -d\; -f11}#
${goto 291}${execi 60 vnstat -i wlp2s0 --oneline | cut -d\; -f15}$color
${endif}
${if_existing /proc/net/route eth0}
wlan:${goto 117}
download:${goto 117}${downspeed eth0}${goto 170} total download:${goto 291}${totaldown eth0}
upload:${goto 117}${upspeed eth0}${goto 170} total upload:${goto 291}${totalup eth0}
${goto 170} local IP:${goto 291}${addr eth0}
${goto 170} public IP:${goto 289}${execi 1800 ~/.conky/ip.sh}
${goto 171}${color5}$stippled_hr${color}
vnstat${goto 100}today ${goto 169} ${execi 60 vnstat -i eth0 --oneline | cut -d\; -f8}${goto 291}total
up#
${goto 100}${execi 60 vnstat -i eth0 --oneline | cut -d\; -f5}#
${goto 172}${execi 60 vnstat -i eth0 --oneline | cut -d\; -f10}#
${goto 291}${execi 60 vnstat -i eth0 --oneline | cut -d\; -f14}
down#
${goto 100}${execi 60 vnstat -i eth0 --oneline | cut -d\; -f4}#
${goto 172}${execi 60 vnstat -i eth0 --oneline | cut -d\; -f9}#
${goto 291}${execi 60 vnstat -i eth0 --oneline | cut -d\; -f13}
total#
${goto 100}${execi 60 vnstat -i eth0 --oneline | cut -d\; -f6}#
${goto 172}${execi 60 vnstat -i eth0 --oneline | cut -d\; -f11}#
${goto 291}${color5}${execi 60 vnstat -i eth0 --oneline | cut -d\; -f15}
${endif}



Pour la meteo c'est le pack wunderground_API à prendre sur le forum bunsenlabs
meteo

Code : Tout sélectionner

background yes
use_xft yes
xftfont  GE Inspira:size=10 #URW Chancery L:style=Bold:size=10 monofur:bold pour ←↓→↑
xftalpha 1
imlib_cache_size 0
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_argb_visual yes
own_window_type normal
own_window_hints undecorated,below,skip_taskbar,skip_pager
double_buffer yes
minimum_size 350
maximum_width 350
text_buffer_size 2048
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_color gray30 #ffd579
default_outline_color white
alignment top_right
gap_x 390
gap_y 570
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes

lua_load ~/.conky/lua/image.lua
 
 
 TEXT
 
${execi 1800 bash $HOME/1_accuweather/1_accuweather -f2015 -h2015}${execi 1800 bash $HOME/2b_Wunderground_API/2b}
${voffset -32}${goto 90}${font GE Inspira:size=12}Sarreguemines , MO , France${font}$color
${goto 104}Station  ${execi 600  sed -n '34p' $HOME/2b_Wunderground_API/Conditions} - ${execi 600  sed -n '45p' $HOME/2b_Wunderground_API/Conditions}
${goto 90}Dernière mise à jour : ${execi 600  sed -n '53p' $HOME/2b_Wunderground_API/Conditions-fr | cut -c18-22}
### conditions actuelles + Cette nuit et aujourd'hui ####
${goto 40}${voffset 10}Condition                                                                                                                               ${goto 240} ${execi 600 sed -n '1p' $HOME/1_accuweather/first_days}
${goto 30}${execi 90 sed -n '2p' $HOME/1_accuweather/curr_cond} °C ± ${execi 90 sed -n '3p' $HOME/1_accuweather/curr_cond} °C                                  ${goto 260}${execi 600 sed -n '3p' $HOME/1_accuweather/first_days}°C
${goto 15}${execi 600 sed -n '4p' $HOME/1_accuweather/curr_cond}                                                                                               ${goto 220}${execi 600 sed -n '5p' $HOME/1_accuweather/first_days}
${goto 30}${execi 600 sed -n '5p' $HOME/1_accuweather/curr_cond} à ${execi 90 sed -n '7p' $HOME/1_accuweather/curr_cond}                                       ${goto 230}${execi 600  sed -n '98p' $HOME/2b_Wunderground_API/Simple_Forecast}  à  ${execi 600  sed -n '96p' $HOME/2b_Wunderground_API/Simple_Forecast}km/h
#### demain + après demain ####
${goto 40}${voffset 40} Demain                                                                                                                                 ${goto 234}Après-demain                                 
${goto 30}${execi 600 sed -n '9p' $HOME/1_accuweather/first_days} - ${execi 600 sed -n '8p' $HOME/1_accuweather/first_days}°C                                  ${goto 252}${execi 600 sed -n '14p' $HOME/1_accuweather/first_days} - ${execi 600 sed -n '13p' $HOME/1_accuweather/first_days}°C
${goto 15}${execi 600 sed -n '10p' $HOME/1_accuweather/first_days}                                                                                             ${goto 220}${execi 600 sed -n '15p' $HOME/1_accuweather/first_days}
${goto 30}${execi 600  sed -n '204p' $HOME/2b_Wunderground_API/Simple_Forecast}  à  ${execi 600  sed -n '202p' $HOME/2b_Wunderground_API/Simple_Forecast}km/h  ${goto 230}${execi 600  sed -n '310p' $HOME/2b_Wunderground_API/Simple_Forecast}  à  ${execi 600  sed -n '308p' $HOME/2b_Wunderground_API/Simple_Forecast}km/h
#### icones ####
${lua fDrawImage $HOME/1_accuweather/forecast_2015/forecast_0.png  32  96 70 40}\
${lua fDrawImage $HOME/1_accuweather/forecast_2015/forecast_1.png 234  96 70 40}\
${lua fDrawImage $HOME/1_accuweather/forecast_2015/forecast_2.png  32 196 70 40}\
${lua fDrawImage $HOME/1_accuweather/forecast_2015/forecast_3.png 234 196 70 40}\



image couverture nuageuse
nuage

Code : Tout sélectionner

background no
use_xft yes
xftfont URW Chancery L:style=Bold:size=10
xftalpha 1
update_interval 1
total_run_times 0
own_window yes
own_window_transparent yes
own_window_argb_visual yes
own_window_type normal
own_window_hints undecorated,below,skip_taskbar,skip_pager
double_buffer yes
minimum_size 250 250
maximum_width 250
text_buffer_size 2048
draw_shades no
draw_outline no
draw_borders no
border_width 1
draw_graph_borders no
default_color ffffff
default_outline_color cacaca
alignment tl
gap_x 620
gap_y 590
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
#
color1                ffff00

lua_load ~/.conky/lua/image.lua

TEXT
${execi 300 ~/.conky/v11/scripts/couvnuage.sh}
${lua fDrawImage /home/loutch/.conky/v11/nuage/nuage.png 0 0 250 250 0}


nuage.sh

Code : Tout sélectionner

#!/bin/bash

# Crée par JPDipsy
# script de recupération imagesat couverture nuageuse http://www.sat24.com
# et mise en forme polaroïd imagemagick et pagecurl  doivent être installés
# ce script et le script pagecurl doivent être dans le même rep.
#----------------------------------------------------------------------------------`
# ce que vous voulez
path=`dirname $0`
heuremodif=`date +%H`; minmodif=`date +%M`
fonte=Ubuntu
nomimage=nuage
tailleimage=100 # ceci est en pourcentage
tailledecoupe=180x180
rotation=0
libelle="Mise à jour : "

wget -q -O  ~/.conky/v11/nuage/$nomimage.gif "http://www.sat24.com/image.ashx?country=eu&type=zoom&format=640x480001001&rnd=610703"

function mise_en_forme_image {
convert  ~/.conky/v11/nuage/$nomimage.png \
-fill white -font $fonte -pointsize 16 -annotate 0x0+10+274 "$libelle $heuremodif h $minmodif" ~/.conky/v11/nuage/$nomimage.png
\( +clone  -alpha extract \
        -draw 'fill black polygon 0,0 0,15 15,0 fill white circle 0,15 15,0' \
        \( +clone -flip \) -compose Multiply -composite \
        \( +clone -flop \) -compose Multiply -composite \
     \) -alpha off -compose CopyOpacity -composite  ~/.conky/v11/nuage/$nomimage.png
     
}


function ombre {
convert   ~/.conky/v11/nuage/$nomimage.png  -background  black  \( +clone -shadow 60x4+2+2 \) +swap -background  none   -flatten ~/.conky/v11/nuage/$nomimage.png   
}   

if [[ -e ~/.conky/v11/nuage/$nomimage.gif ]] ; then
   # decoupage de la partie utile
   convert ~/.conky/v11/nuage/$nomimage.gif -filter Lanczos -crop  $tailledecoupe+240+290\! ~/.conky/v11/nuage/$nomimage.png
   mise_en_forme_image ; ombre ; rm ~/.conky/v11/nuage/$nomimage.gif
else
   # comme ça votre conky aura toujours une image au cas ou
   convert -size $tailledecoupe plasma:  ~/.conky/v11/nuage/$nomimage.png
   libelle="Désolé pas d'image radar à "
   mise_en_forme_image ; ombre
fi
 




Voili

@+
HP Pavilion g 7 1357 sf
Multiboot 7-Mageia 5 KDE - Serena Cinnamon - Sarah XFCE

Avatar du membre
loutch
Messages : 341
Enregistré le : lun. 13 juil. 2015 17:32

Re: Conky

Messagepar loutch » sam. 20 janv. 2018 10:04

Image


conky olgmen

le conkyrc

Code : Tout sélectionner

background no
use_xft yes
xftfont URW Chancery L:style=Bold:size=10
xftalpha 1
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_argb_visual yes
own_window_type normal
own_window_hints undecorated,below,skip_taskbar,skip_pager
double_buffer yes
minimum_size 100 640
maximum_width 100
text_buffer_size 1024
draw_shades no
draw_outline no
draw_borders no
border_width 1
draw_graph_borders no
default_color ffffff
default_outline_color cacaca
alignment top_left
gap_x 0
gap_y 100
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
#
color1                ffff00
#
color2                6495ee
#
color3                ffffff
#
color4                ffffff
#
color5                6495ee
#   
color6                red
 #cornflowerblue
# — Lua Load — #
lua_load ~/.conky/olgmen/scripts/data_comp.lua
lua_draw_hook_pre conky_widgets
TEXT


le lua principal

Code : Tout sélectionner

--[[data_comp.lua par olgmen le 25/12/2011
Francisation par loutch
fonction affiche des données sur le fonctionnement du processeur, de la mémoire, de l'Internet
pour exécuter cette fonction, il est nécessaire dans conkyrc, au-dessus du mot TEXT ajouter les lignes suivantes
# - Lua Load - #
lua_load ~ / scripts / data_comp.lua
lua_draw_hook_pre conky_widgets
Toutes les données sont calculées pour une utilisation dans la fenêtre conky avec la taille de 1260x675 (dans tout mon écran)
]]
require "cairo"
-- définir la section d'accueil, pour la capacité de travailler à partir de n'importe quel ordinateur
usrhome = os.getenv("HOME")
-- les scripts nécessaires sont dans le dossier des scripts
--dofile (usrhome .."/scripts/backgraund.lua")    -- arrière-plan de sortie de script, cadres
dofile (usrhome .."/.conky/olgmen/scripts/text1.lua")            -- script sorties textes
dofile (usrhome .."/.conky/olgmen/scripts/scale1.lua")            -- sorties de script échelles
text_color = {{0, 0xffffff, 1},{0.5, 0xffffff, 1},{1, 0xffffff, 1}}
-- fonction qui démarre tout affiché dans la fenêtre conky. Toutes les données sont calculées pour une utilisation dans la fenêtre conky avec la taille de 1260x675 (dans tout mon écran)
function conky_widgets()
    text_settings = {
      {
    text ="Processeurs" ,
    x = 20,
    y = 10,
    font_size = 12,
    bold = false,
    h_align = "l",
    v_align = "m",
    colour = text_color,
    orientation="nn",
    },
    {
    text ="CPU1" .. "                   " .. "°C",
    x = 15,
    y = 25,
    font_size = 9,
    bold = false,
    h_align = "l",
    v_align = "m",
    colour = text_color,
    orientation="nn",
    },
   
    {
    text ="CPU2" .. "                   " .. "°C",
    x = 15,
    y = 100,
    font_size = 9,
    bold = false,
    h_align = "l",
    v_align = "m",
    colour = text_color,
    orientation="nn",
    },
    {
    text ="Mémoire" ,
    x = 30,
    y = 175,
    font_size = 12,
    bold = false,
    h_align = "l",
    v_align = "m",
    colour = text_color,
    orientation="nn",
    },
    {
    text ="Ram" .."                   ".."Swap" ,
    x = 15,
    y = 190,
    font_size = 9,
    bold = false,
    h_align = "l",
    v_align = "m",
    colour = text_color,
    orientation="nn",
    },
   
    {
    text ="Disques" ,
    x = 36,
    y = 275,
    font_size = 12,
    bold = false,
    h_align = "l",
    v_align = "m",
    colour = text_color,
    orientation="nn",
    },
   
    {
    text ="/" .."                     ".."/Home" ,
    x = 25,
    y = 290,
    font_size = 9,
    bold = false,
    h_align = "l",
    v_align = "m",
    colour = text_color,
    orientation="nn",
    },
   
    {
    text ="Températures" ,
    x = 16,
    y = 375,
    font_size = 12,
    bold = false,
    h_align = "l",
    v_align = "m",
    colour = text_color,
    orientation="nn",
    },
   
    {
    text ="Sda" .."                     ".."Carte" ,
    x = 15,
    y = 390,
    font_size = 9,
    bold = false,
    h_align = "l",
    v_align = "m",
    colour = text_color,
    orientation="nn",
    },
   
   
    {
    text ="Internet" ,
    x = 36,
    y = 475,
    font_size = 12,
    bold = false,
    h_align = "l",
    v_align = "m",
    colour = text_color,
    orientation="nn",
    },
    {
    text = "Entrant" .. "             " .. "Sortant",
    x = 15,
    y = 490,
    font_size = 9,
    bold = false,
    h_align = "l",
    v_align = "m",
    colour = text_color,
    orientation="nn",
    },
    {
    text = conky_parse("${totaldown wlp2s0}"),
    x = 10,
    y = 565,
    font_size = 8,
    bold = false,
    h_align = "l",
    v_align = "m",
    colour = text_color,
    orientation="nn",
    },
   
    {
    text = conky_parse("${totalup wlp2s0}"),
    x = 70,
    y = 565,
    font_size = 8,
    bold = false,
    h_align = "l",
    v_align = "m",
    colour = text_color,
    orientation="nn",
    },
   
    {
    text ="Processus" .. "    " .. "Mém" .. "    " .. "Cpu",
    x = 10,
    y = 585,
    font_size = 9,
    bold = false,
    h_align = "l",
    v_align = "m",
    colour = text_color,
    orientation="nn",
    },
    {
    text = conky_parse("${top name 1}"),
    x = 5,
    y = 600,
    font_size = 7,
    bold = false,
    h_align = "l",
    v_align = "m",
    colour = text_color,
    orientation="nn",
    },
    {
    text = conky_parse("${top mem 1)}%"),
    x = 65,
    y = 600,
    font_size = 7,
    bold = false,
    h_align = "c",
    v_align = "m",
    colour = text_color ,--{{0, 0x550000, 1},{0.5, 0xff0000, 1},{1, 0x550000, 1}},
    orientation="nn",
    },
    {
    text = conky_parse("${top cpu 1}%"),
    x = 95,
    y = 600,
    font_size = 7,
    bold = false,
    h_align = "c",
    v_align = "m",
    colour = text_color ,--{{0, 0x550000, 1},{0.5, 0xff0000, 1},{1, 0x550000, 1}},
    orientation="nn",
    },
    {
    text = conky_parse("${top name 2}"),
    x = 5,
    y = 610,
    font_size = 7,
    bold = false,
    h_align = "l",
    v_align = "m",
    colour = text_color , --{{0, 0x550000, 1},{0.5, 0xcf5500, 1},{1, 0x550000, 1}},
    orientation="nn",
    },
    {
    text = conky_parse("${top mem 2)}%"),
    x = 65,
    y = 610,
    font_size = 7,
    bold = false,
    h_align = "c",
    v_align = "m",
    colour = text_color ,--{{0, 0x550000, 1},{0.5, 0xcf5500, 1},{1, 0x550000, 1}},
    orientation="nn",
    },
    {
    text = conky_parse("${top cpu 2}%"),
    x = 95,
    y = 610,
    font_size = 7,
    bold = false,
    h_align = "c",
    v_align = "m",
    colour = text_color , --{{0, 0x550000, 1},{0.5, 0xcf5500, 1},{1, 0x550000, 1}},
    orientation="nn",
    },
    {
    text = conky_parse("${top name 3}"),
    x = 5,
    y = 620,
    font_size = 7,
    bold = false,
    h_align = "l",
    v_align = "m",
    colour = text_color , --{{0, 0x550000, 1},{0.5, 0xcfa500, 1},{1, 0x550000, 1}},
    orientation="nn",
    },
    {
    text = conky_parse("${top mem 3)}%"),
    x = 65,
    y = 620,
    font_size = 7,
    bold = false,
    h_align = "c",
    v_align = "m",
    colour = text_color ,--{{0, 0x550000, 1},{0.5, 0xcfa500, 1},{1, 0x550000, 1}},
    orientation="nn",
    },
    {
    text = conky_parse("${top cpu 3}%"),
    x = 95,
    y = 620,
    font_size = 7,
    bold = false,
    h_align = "c",
    v_align = "m",
    colour = text_color ,--{{0, 0x550000, 1},{0.5, 0xcfa500, 1},{1, 0x550000, 1}},
    orientation="nn",
    },
    {
    text = conky_parse("${top name 4}"),
    x = 5,
    y = 630,
    font_size = 7,
    bold = false,
    h_align = "l",
    v_align = "m",
    colour = text_color ,--{{0, 0x555500, 1},{0.5, 0xcfcf00, 1},{1, 0x555500, 1}},
    orientation="nn",
    },
    {
    text = conky_parse("${top mem 4)}%"),
    x = 65,
    y = 630,
    font_size = 7,
    bold = false,
    h_align = "c",
    v_align = "m",
    colour = text_color ,--{{0, 0x555500, 1},{0.5, 0xcfcf00, 1},{1, 0x555500, 1}},
    orientation="nn",
    },
    {
    text = conky_parse("${top cpu 4}%"),
    x = 95,
    y = 630,
    font_size = 7,
    bold = false,
    h_align = "c",
    v_align = "m",
    colour = text_color ,--{{0, 0x555500, 1},{0.5, 0xcfcf00, 1},{1, 0x555500, 1}},
    orientation="nn",
    },
    {
    text = conky_parse("${top name 5}"),
    x = 5,
    y = 640,
    font_size = 7,
    bold = false,
    h_align = "l",
    v_align = "m",
    colour = text_color,
    orientation="nn",
    },
    {
    text = conky_parse("${top mem 5)}%"),
    x = 65,
    y = 640,
    font_size = 7,
    bold = false,
    h_align = "c",
    v_align = "m",
    colour = text_color,
    orientation="nn",
    },
    {
    text = conky_parse("${top cpu 5}%"),
    x = 95,
    y = 640,
    font_size = 7,
    bold = false,
    h_align = "c",
    v_align = "m",
    colour = text_color,
    orientation="nn",
    },
    }
-- dériver des échelles
    scale_settings = {
    {
    name = "cpu",
    arg = "cpu0",
    x = 10,
    y = 30,
    width = 35,
    height = 60,
    scale = 16,
    colour_scale = {{0, 0xffffff, 1},{0.5, 0xffffff, 1},{1, 0xffffff, 1}},
    font_size = 9,
    },
{
    name = "exec",
    arg = "expr `cat /sys/class/hwmon/hwmon2/temp1_input` / 1000",
    x = 70,
    y = 30,
    width = 35,
    height =60,
    scale = 16,
    colour_scale = {{0, 0xff0000, 1},{0.5, 0xffffff, 1},{1, 0x0000ff, 1}},
    font_size = 9,
    },
   
    {
    name = "cpu",
    arg = "cpu1",
    x = 10,
    y = 105,
    width = 35,
    height = 60,
    scale = 16,
    colour_scale = {{0, 0xffffff, 1},{0.5, 0xffffff, 1},{1, 0xffffff, 1}},
    font_size = 9,
    },
   
    {
    name = "exec",
    arg = "expr `cat /sys/class/hwmon/hwmon2/temp2_input` / 1000",
    x = 70,
    y = 105,
    width = 35,
    height = 60,
    scale = 16,
    colour_scale = {{0, 0xff0000, 1},{0.5, 0xffffff, 1},{1, 0x0000ff, 1}},
    font_size = 9,
    },
    {
    name = "memperc",
    arg = "",
    x = 10,
    y = 200,
    width = 35,
    height = 60,
    scale = 16,
    colour_scale = {{0, 0xffffff, 1},{0.5, 0xffffff, 1},{1, 0xffffff, 1}},
    font_size = 9,
    },
   
    {
    name = "swapperc",
    arg = "",
    x = 70,
    y = 200,
    width = 35,
    height = 60,
    scale = 16,
    colour_scale = {{0, 0xffffff, 1},{0.5, 0xffffff, 1},{1, 0xffffff, 1}},
    font_size = 9,
    },
   
    {
    name = "fs_used_perc",
    arg = "/",
    x = 10,
    y = 300,
    width = 35,
    height = 60,
    scale = 16,
    colour_scale = {{0, 0xffffff, 1},{0.5, 0xffffff, 1},{1, 0xffffff, 1}},
    font_size = 9,
    },
   
    {
    name = "fs_used_perc",
    arg = "/home",
    x = 70,
    y = 300,
    width = 35,
    height = 60,
    scale = 16,
    colour_scale = {{0, 0xffffff, 1},{0.5, 0xffffff, 1},{1, 0xffffff, 1}},
    font_size = 9,
    },
   
    {
    name = "execi",
    arg = "120 hddtemp -n /dev/sda",
    x = 10,
    y = 400,
    width = 35,
    height = 60,
    scale = 16,
    colour_scale = {{0, 0xff0000, 1},{0.5, 0xffffff, 1},{1, 0x0000ff, 1}},
    font_size = 9,
    },
   
    {
    name = "hwmon",
    arg = "1 temp 1",
    x = 70,
    y = 400,
    width = 35,
    height = 60,
    scale = 16,
    colour_scale = {{0, 0xff0000, 1},{0.5, 0xffffff, 1},{1, 0x0000ff, 1}},
    font_size = 9,
    },
    {
    name = "",
    arg = math.ceil(conky_parse("${downspeedf wlp2s0}")),
    x = 10,
    y = 500,
    width = 35,
    height = 60,
    scale = 16,
        colour_scale = {{0, 0xffffff, 1},{0.5, 0xffffff, 1},{1, 0xffffff, 1}},   
    font_size = 9,
    },
    {
    name = "",
    arg = math.ceil(conky_parse("${upspeedf wlp2s0}")),
    x = 70,
    y = 500,
    width = 35,
    height = 60,
    scale = 16,
    colour_scale = {{0, 0xffffff, 1},{0.5, 0xffffff, 1},{1, 0xffffff, 1}},
    font_size = 9,
    },
   
    }
-- --------------------------------------------------------------------
--[[ Ici, l'entrée de toutes les données se termine ]]
    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)
--[[ ÉCHELLES ]]
    for i,v in pairs(scale_settings) do
        cr = cairo_create (cs)
        dialgraph(v)
        cairo_destroy(cr)
    end
-- sortie de texte
    for i,v in pairs(text_settings) do
        cr = cairo_create (cs)
        display_text(v)
        cairo_destroy(cr)
    end
end    -- fonction de fermeture


text.lua

Code : Tout sélectionner

--[[TEXT WIDGET v1.42 par Wlourf le 07 février 2011
Ce widget peut dessiner des textes dans la table "text_settings" avec quelques paramètres
http://u-scripts.blogspot.com/2010/06/text-widget.html
Pour appeler le script dans un conky, utilisez, avant TEXT
lua_load /path/to/the/script/graph.lua
lua_draw_hook_pre main_graph
et ajoutez une ligne (vide ou non) après TEXT
Les paramètres (tous les optionnels) sont:
texte - texte à afficher, défaut = "Conky est bon pour vous"
              il peut être utilisé avec des variables conky, c'est-à-dire text = "mon cpu1 est $ {cpu cpu1}%")
            - les coordonnées ci-dessous sont relatives au coin supérieur gauche de la fenêtre conique
x - x coordonnée de la première lettre (en bas à gauche), par défaut = centre de la fenêtre conky
y - y coordonnée de la première lettre (en bas à gauche), par défaut = centre de la fenêtre conky
h_align - alignement horizontal du texte par rapport au point (x, y), défaut = "l"
les valeurs disponibles sont "l": gauche, "c": centre, "r": droite
v_align - alignement vertical du texte par rapport au point (x, y), défaut = "b"
valeurs disponibles "t": haut, "m": milieu, "b": bas
font_name - nom de la police à utiliser, default = Free Sans
font_size - taille de la police à utiliser, par défaut = 14
italique - affiche le texte en italique (vrai / faux), défaut = faux
oblique - affiche le texte en oblique (vrai / faux), défaut = faux (je ne vois pas la différence avec italique!)
bold - affiche le texte en gras (vrai / faux), défaut = faux
angle - rotation du texte en degrés, par défaut = 0 (horizontal)
couleur - table de couleurs pour le texte, par défaut = blanc uni {{1,0xFFFFFF, 1}}
cette table contient une ou plusieurs tables au format {P, C, A}
              P = position du dégradé (0 = début du texte, 1 = fin du texte)
              C = couleur hexadécimale
              A = alpha (opacité) de la couleur (0 = invisible, 1 = opacité 100%)
              Exemples :
              pour une couleur unie {{1,0x00FF00,0.5}}
              pour un dégradé avec deux couleurs {{0,0x00FF00,0.5}, {1,0x000033,1}}
              ou {{0.5,0x00FF00,1}, {1,0x000033,1}} - avec celui-ci, le dégradé commencera au milieu du texte
              pour un dégradé avec trois couleurs {{0,0x00FF00,0.5}, {0.5,0x000033,1}, {1,0x440033,1}}
etc ...
orientation - en cas de gradient, "orientation" définit le point de départ du dégradé, défaut = "ww"
il y a 8 points de départ disponibles: "nw", "nn", "ne", "ee", "se", "ss", "sw", "ww"
(n pour le nord, w pour l'ouest ...)
thèses 8 points sont les 4 coins + les 4 milieux du contour du texte
donc un gradient "nn" passera de "nn" à "ss" (de haut en bas, parallélisé au texte)
un gradient "nw" passera de "nw" à "se" (coin supérieur gauche à coin inférieur droit)
radial - définit un gradient radial (si présent en même temps que "orientation", "orientation" n'aura aucun effet)
ce paramètre est une table avec 6 nombres: {xa, ya, ra, xb, yb, rb}
ils définissent deux cercles pour le dégradé:
xa, ya, xb et yb sont relatifs aux valeurs x et y ci-dessus
reflection_alpha - ajoute un effet de réflexion (valeurs de 0 à 1) défaut = 0 = pas de réflexion
                      autres valeurs = début de l'opacité
reflection_scale - échelle de la réflexion (par défaut = 1 = hauteur du texte)
reflection_length - longueur de la réflexion, définir où l'opacité sera mise à zéro
calues ​​de 0 à 1, défaut = 1
skew_x, skew_y - incline le texte autour de l'axe x ou y
draw_me - si défini sur false, le texte n'est pas dessiné (par défaut = true ou 1)
              il peut être utilisé avec une chaîne conky, si la chaîne renvoie 1, le texte est dessiné:
              exemple: "$ {if_empty $ {sans fil wlan0}} $ {else} 1 $ endif",
             
v1.0 07/06/2010, Version originale
v1.1 10/06/2010 Ajouter un paramètre "orientation"
v1.2 15/06/2010 Ajout des paramètres "h_align", "v_align" et "radial"
v1.3 25/06/2010 Ajouter "reflection_alpha", "reflection_length", "reflection_scale",
                    "skew_x" et "skew_y"
v1.4 07/01/2011 Ajout du paramètre draw_me et correction des fuites de mémoire grâce à "Creamy Goodness"
                    le texte est analysé à l'intérieur de la fonction, pas dans le tableau de paramètres
v1.41 26/01/2011 Correction d'un bug pour h_align = "c"
v1.42 09/02/2011 Corriger bug pour l'orientation = "ee"
- Ce programme est un logiciel libre; vous pouvez le redistribuer et / ou modifier
- sous les termes de la Licence Publique Générale GNU telle que publiée par
- la Free Software Foundation version 3 (GPLv3)
-
- Ce programme est distribué dans l'espoir qu'il sera utile,
- mais SANS AUCUNE GARANTIE; sans même la garantie implicite de
- QUALITÉ MARCHANDE ou ADAPTATION À UN USAGE PARTICULIER. Voir le
- Licence publique générale GNU pour plus de détails.
-
- Vous devriez avoir reçu une copie de la Licence Publique Générale GNU
- avec ce programme; sinon, écrivez au logiciel libre
- Foundation, Inc., 51 rue Franklin, cinquième étage, Boston,
- MA 02110-1301, États-Unis.
Suggérer une modification
]]
require 'cairo'
function conky_draw_text()
    local text_settings={
        --BEGIN OF PARAMETERS
        {--display a text at coordinates 20,20
        text="unformatted text",
        x=20,
        y=20,
        },
--[[
        {--display a text at coordinates 20,40, with selected font and size, true and bold
        text="bold and italic text",
        x=20,
        y=40,
        font_name="Verdana",
        font_size=18,
        italic=true,
        bold=true,
        draw_me="${if_empty ${wireless_essid wlan0}}${else}1$endif",
        },
       
        {--display a text at coordinates 20,70, in green with opacity 0.8 and "oblique"
        text="green text",
        x=20,
        y=70,
        font_name="Verdana",
        font_size=18,
        oblique=true,
        --colour table contains one or more tables with 3 elements, here:
        --1 = starting point for gradient (0= beginning of the text, 1= end of the text)
        --0x00FF00    = colour in hexadecimal
        --0.8         = opacity (0=invisible, 1=opacity 100%)
        colour={{1,0x00FF00,0.8}}
        },
        {--display a text at coordinates 20,100, with a red green blue gradient
        text="text with gradient (ww)", --(default orientation=ww)
        x=20,
        y=100,
        font_name="Clarendon",
        font_size=25,
        colour={{0,0xFF0000,0.9},{0.5,0x00FF00,1},{1,0xFFFF00,0.9}},
        },
        {--display a text at coordinates 20,130, with a red green yellow gradient
        text="text with gradient (nn)",
        x=20,
        y=130,
        font_name="Clarendon",
        font_size=25,
        orientation="nn",
        colour={{0,0xFF0000,1},{0.5,0x00FF00,1},{1,0xFFFF00,1}},
        },
       
        {--display a text at coordinates 40,290, with a yellow blue yellow gradient
        --with a 30° angle
        text="text at 30 degrees",
        x=400,
        y=190,
        colour={{0,0xFFFF00,1},{0.5,0x0000FF,1},{1,0xFFFF00,1}},
        angle=-30,
        font_name="Clarendon",
        font_size=32
        },
       
        {--text with 5 colours gradient
        text="vertical text",
        x=50,
        y=450,
        colour={{0         ,0xFF0000,1},
                {0.25    ,0xFFFF00,1},
                {0.50    ,0x00FF00,1},
                {0.75    ,0x00FFFF,1},
                {1         ,0x0000FF,1}
                },
        angle=-90,
        font_name="Clarendon",
        font_size=40,
        orientation="nw"
        },
        {--vertical text with 3 colours gradient
        text="\"bumped\" effect",
        x=250,
        y=270,
        colour={{0         ,0xDDDDDD,0.15},
                {0.50    ,0xFFFFFF,1},
                {1         ,0xDDDDDD,0.15}
                },
        font_name="Clarendon",
        font_size=35,
        orientation="nn"
        },
 
--radial gradient
         {
        text="radial gradient",
        x=400,
        y=350,
        font_name="Clarendon",
        font_size="48",
        colour={
                {0.8,0xF0FFF0,1},
                {1.00,0xF0F0FF,0.1},
                },
           h_align="c",
           radial={0,300,0,0,300,370}
        },
         {
        text="another radial gradient",
        x=400,
        y=400,
        font_name="Clarendon",
        font_size="48",
        colour={
                {0.98,    0xFFFF00,1},
                {0.99,    0xFF0000,1},
                {1.00,    0xFF00FF,1},
                },
           h_align="c",
           v_align="m",
        radial={0,-1000,0,0,-1000,1020}
           
        },
         {--display a text with some conly variables
        --use two dots to concatenate texts
        text="text with some conky, cpu= ${cpu} %",
        x=20,
        y=660,
        colour={{0,0xFFFF00,1},{0.5,0xFF0000,1},{1,0xFFFF00,1}},
        font_name="Purisa",
        bold=true,
        font_size=38
        },       
       
--text with shadow:
]]
        {
        text=conky_parse("${uptime}"),
        x=50,
        y=100,
        font_name="Clarendon",
        font_size=24,
        colour={{0,0xFFFF00,1},{0.5,0xFF0000,1},{1,0xFFFF00,1}},
           orientation="ww",
        },
          {
        text='text with shadow #1',
        x=298,
        y=498,
        font_name="Clarendon",
        font_size=50,
        colour={{0,0xFFFF00,1}},
            orientation="ww",
        },       
       
 --blur effect
        {
        text='blur effect',
        x=300,
        y=550,
        font_name="Clarendon",
        font_size=50,
        colour={{0.00,0x00FF00,0.35},
                },
        },   
         {
        text='blur effect',
        x=299,
        y=549,
        font_name="Clarendon",
        font_size=50,
        colour={{0.00,0x00FF00,0.35},
                },
        },         
         {
        text='blur effect',
        x=301,
        y=551,
        font_name="Clarendon",
        font_size=50,
        colour={{0.00,0x00FF00,0.35},
                },
        },   
                                           
--focus effect
         {
        text='focus effect #1',
        x=300,
        y=600,
        font_name="Clarendon",
        font_size=50,
        colour={{0.00,0x00FFFF,0},
                {0.50,0x00FFFF,1},
                {1.00,0x00FFFF,0},
                },
           orientation="ww",
        },
         {
        text='focus effect #1',
        x=300,
        y=599,
        font_name="Clarendon",
        font_size=50,
        colour={{0.00,0x00FFFF,0.5},
                {0.50,0x00FFFF,0},
                {1.00,0x00FFFF,0.5},
                },
           orientation="ww",
        },
         {
        text='focus effect #1',
        x=300,
        y=601,
        font_name="Clarendon",
        font_size=50,
        colour={{0.00,0x00FFFF,0.5},
                {0.50,0x00FFFF,0},
                {1.00,0x00FFFF,0.5},
                },
           orientation="ww",
        },
       
--focus effect 2       
         {
        text='focus effect #2',
        x=300,
        y=720,
        font_name="Clarendon",
        font_size=50,
        colour={{0.00,0x00FFFF,1},
                {1,0x00FFFF,0},
                },
        },
         {
        text='focus effect #2',
        x=299,
        y=719,
        font_name="Clarendon",
        font_size=50,
        colour={{0.00,0x00FFFF,0},
                {1,0x00FFFF,0.25},
                },
        },
         {
        text='focus effect #2',
        x=301,
        y=721,
        font_name="Clarendon",
        font_size=50,
        colour={{0.00,0x00FFFF,0},
                {1,0x00FFFF,0.25},               
                },
        },
 
--text with reflection       
        {
        text="${time %H:%M:%S}",
        y=730,
        x=50,
        font_name="Ubuntu-title",
        font_size=50,
        colour={{0,0xFF0000,1},{1,0xCCCCCC,1}},
        orientation="nn",
        reflection_alpha=0.8,
        reflection_length=0.9
        },     
 
--skew x       
        {
        text="skew x",
        font_size=24,
        colour={{0,0x00FF00,1},{1,0x00FFFF,1}},
        x=30,
        y=500,
        skew_x=-10
        },
--skew y
        {
        text="skew y",
        font_size=24,
        colour={{0,0x00FF00,1},{1,0x00FFFF,1}},
        x=150,
        y=500,
        skew_y=10
        },
--skew x + skew y
        {
        text="skew x-y",
        font_size=24,
        colour={{0,0x00FF00,1},{1,0x00FFFF,1}},
        x=30,
        y=550,
        skew_y=10,
        skew_x=10
        },
--skew x + skew y
        {
        text="skew x-y",
        font_size=24,
        colour={{0,0x00FF00,1},{1,0x00FFFF,1}},
        x=150,
        y=550,
        skew_y=10,
        skew_x=10,
        reflection_alpha=0.8,
        reflection_scale=2,
        reflection_length=1.5
        },
       
       
    }
   
   
--------------END OF PARAMETERS----------------
    if conky_window == nil then return end
    if tonumber(conky_parse("$updates"))<3 then return end
       
    local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)
    for i,v in pairs(text_settings) do   
        cr = cairo_create (cs)
        display_text(v)
        cairo_destroy(cr)
        cr = nil
    end
   
    cairo_surface_destroy(cs)
end
function rgb_to_r_g_b2(tcolour)
    local colour,alpha=tcolour[2],tcolour[3]
    return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
function display_text(t)
    if t.draw_me==true then t.draw_me = nil end
    if t.draw_me~=nil and conky_parse(tostring(t.draw_me)) ~= "1" then return end
    local function set_pattern(te)
        --this function set the pattern
        if #t.colour==1 then
            cairo_set_source_rgba(cr,rgb_to_r_g_b2(t.colour[1]))
        else
            local pat
           
            if t.radial==nil then
                local pts=linear_orientation(t,te)
                pat = cairo_pattern_create_linear (pts[1],pts[2],pts[3],pts[4])
            else
                pat = cairo_pattern_create_radial (t.radial[1],t.radial[2],t.radial[3],t.radial[4],t.radial[5],t.radial[6])
            end
       
            for i=1, #t.colour do
                cairo_pattern_add_color_stop_rgba (pat, t.colour[i][1], rgb_to_r_g_b2(t.colour[i]))
            end
            cairo_set_source (cr, pat)
            cairo_pattern_destroy(pat)
        end
    end
   
    --set default values if needed
    if t.text==nil then t.text="Conky is good for you !" end
    if t.x==nil then t.x = conky_window.width/2 end
    if t.y==nil then t.y = conky_window.height/2 end
    if t.colour==nil then t.colour={{1,0xFFFFFF,1}} end
    if t.font_name==nil then t.font_name="Free Sans" end
    if t.font_size==nil then t.font_size=14 end
    if t.angle==nil then t.angle=0 end
    if t.italic==nil then t.italic=false end
    if t.oblique==nil then t.oblique=false end
    if t.bold==nil then t.bold=false end
    if t.radial ~= nil then
        if #t.radial~=6 then
            print ("error in radial table")
            t.radial=nil
        end
    end
    if t.orientation==nil then t.orientation="ww" end
    if t.h_align==nil then t.h_align="l" end
    if t.v_align==nil then t.v_align="b" end   
    if t.reflection_alpha == nil then t.reflection_alpha=0 end
    if t.reflection_length == nil then t.reflection_length=1 end
    if t.reflection_scale == nil then t.reflection_scale=1 end
    if t.skew_x==nil then t.skew_x=0 end
    if t.skew_y==nil then t.skew_y=0 end   
    cairo_translate(cr,t.x,t.y)
    cairo_rotate(cr,t.angle*math.pi/180)
    cairo_save(cr)       
     
    local slant = CAIRO_FONT_SLANT_NORMAL
    local weight = CAIRO_FONT_WEIGHT_NORMAL
    if t.italic then slant = CAIRO_FONT_SLANT_ITALIC end
    if t.oblique then slant = CAIRO_FONT_SLANT_OBLIQUE end
    if t.bold then weight = CAIRO_FONT_WEIGHT_BOLD end
   
    cairo_select_font_face(cr, t.font_name, slant,weight)
 
    for i=1, #t.colour do   
        if #t.colour[i]~=3 then
            print ("error in color table")
            t.colour[i]={1,0xFFFFFF,1}
        end
    end
    local matrix0 = cairo_matrix_t:create()
    tolua.takeownership(matrix0)
    local skew_x,skew_y=t.skew_x/t.font_size,t.skew_y/t.font_size
    cairo_matrix_init (matrix0, 1,skew_y,skew_x,1,0,0)
    cairo_transform(cr,matrix0)
    cairo_set_font_size(cr,t.font_size)
    local te=cairo_text_extents_t:create()
    tolua.takeownership(te)
    t.text=conky_parse(t.text)
    cairo_text_extents (cr,t.text,te)
    set_pattern(te)
           
    local mx,my=0,0
   
    if t.h_align=="c" then
        mx=-te.width/2-te.x_bearing
    elseif t.h_align=="r" then
        mx=-te.width
    end
    if t.v_align=="m" then
        my=-te.height/2-te.y_bearing
    elseif t.v_align=="t" then
        my=-te.y_bearing
    end
    cairo_move_to(cr,mx,my)
   
    cairo_show_text(cr,t.text)
     
       
       
   if t.reflection_alpha ~= 0 then
        local matrix1 = cairo_matrix_t:create()
        tolua.takeownership(matrix1)         
        cairo_set_font_size(cr,t.font_size)
        cairo_matrix_init (matrix1,1,0,0,-1*t.reflection_scale,0,(te.height+te.y_bearing+my)*(1+t.reflection_scale))
        cairo_set_font_size(cr,t.font_size)
        te=nil
        local te=cairo_text_extents_t:create()
        tolua.takeownership(te)
        cairo_text_extents (cr,t.text,te)
       
               
        cairo_transform(cr,matrix1)
        set_pattern(te)
        cairo_move_to(cr,mx,my)
        cairo_show_text(cr,t.text)
        local pat2 = cairo_pattern_create_linear (0,
                                        (te.y_bearing+te.height+my),
                                        0,
                                        te.y_bearing+my)
        cairo_pattern_add_color_stop_rgba (pat2, 0,1,0,0,1-t.reflection_alpha)
        cairo_pattern_add_color_stop_rgba (pat2, t.reflection_length,0,0,0,1)   
       
        --line is not drawn but with a size of zero, the mask won't be nice
        cairo_set_line_width(cr,1)
        local dy=te.x_bearing
        if dy<0 then dy=dy*(-1) end
        cairo_rectangle(cr,mx+te.x_bearing,te.y_bearing+te.height+my,te.width+dy,-te.height*1.05)
        cairo_clip_preserve(cr)
        cairo_set_operator(cr,CAIRO_OPERATOR_CLEAR)
        --cairo_stroke(cr)
        cairo_mask(cr,pat2)
        cairo_pattern_destroy(pat2)
        cairo_set_operator(cr,CAIRO_OPERATOR_OVER)
        te=nil
    end
   
end
function linear_orientation(t,te)
    local w,h=te.width,te.height
    local xb,yb=te.x_bearing,te.y_bearing
   
    if t.h_align=="c" then
        xb=xb-w/2
    elseif t.h_align=="r" then
        xb=xb-w
       end   
    if t.v_align=="m" then
        yb=-h/2
    elseif t.v_align=="t" then
        yb=0
       end   
    local p=0
    if t.orientation=="nn" then
        p={xb+w/2,yb,xb+w/2,yb+h}
    elseif t.orientation=="ne" then
        p={xb+w,yb,xb,yb+h}
    elseif t.orientation=="ww" then
        p={xb,h/2,xb+w,h/2}
    elseif vorientation=="se" then
        p={xb+w,yb+h,xb,yb}
    elseif t.orientation=="ss" then
        p={xb+w/2,yb+h,xb+w/2,yb}
    elseif t.orientation=="ee" then
        p={xb+w,h/2,xb,h/2}       
    elseif t.orientation=="sw" then
        p={xb,yb+h,xb+w,yb}
    elseif t.orientation=="nw" then
        p={xb,yb,xb+w,yb+h}
    end
    return p
end



scale.lua

Code : Tout sélectionner

--[[cadrans mrpeachy mai 2011
créé par olgmen 11/12/2011
pour le travail il faut ajouter conkyrc au-dessus du mot TEXT
lua_load / chemin d'accès au fichier / scale.lua - modifier pour n'importe quoi et où vous avez enregistré le fichier
lua_draw_hook_pre draw_fig - doit être inchangé
x - coordonnées du coin supérieur gauche de l'échelle horizontalement
y - les coordonnées du coin supérieur droit de l'échelle verticalement
largeur - largeur de l'échelle
hauteur - hauteur de l'échelle
échelle - le nombre total de divisions affichées
couleur - la couleur des divisions et des chiffres affichés
color_middle - couleur des lignes centrales
alpha - saturation des couleurs
nom_fonte - nom de la police
font_size - Taille de la police
dernière mise à jour 02.01.2012
]]
require 'cairo'
function conky_draw_fig()
scale_settings = {
{
name = "",
arg = math.ceil(conky_parse("${time %S}")),
x = 100,
y = 50.5,
width = 60,
height = 200,
scale = 40,                --combien de divisions peuvent être vus dans le cadran
font = "Ubuntu",
font_size = 12,        --number font and font size
colour_scale = {{0, 0xff0000, 1},{0.5, 0xffffff, 1},{1, 0x0000ff, 1}},
},
}
    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)
    for i,v in pairs(scale_settings) do   
            cr = cairo_create (cs)
            dialgraph(v)
            cairo_destroy(cr)
    end
end
-- ---------------------------------------------------------------------
-- функция перекодировки цвета
--[[
function rgb_to_r_g_b(colour,alpha)
    return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
]]
-- ---------------------------------------------------------------------
function dialgraph (t)
--    local function rgb_to_r_g_b2(tcolour)
--        colour, alpha = tcolour[2], tcolour[3]
--        return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
--    end
   
    local function rgb_to_r_g_b(colour,alpha)
        return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
    end
-- vérifier les données et ajouter les données par défaut
    if t.x                == nil then t.x = conky_window.width/2 end
    if t.y                == nil then t.y = conky_window.height/2 end
    if t.width             == nil then t.width = 50 end
    if t.height            == nil then t.height = 100 end
    if t.scale            == nil then t.scale = 20 end
    if t.alpha            == nil then t.alpha = 1 end
    if t.colour_middle    == nil then t.colour_middle = 0xff5500 end
    if t.font_name        == nil then t.font_name = "Ubuntu" end
    if t.font_size        == nil then t.font_size = 14 end
    if t.orientation    == nil then t.orientation = "nn" end
    if t.colour_scale     == nil then
        t.colour_scale = {{0, 0x333333, 0.75},{0.5, 0xffffff, 1},{1, 0x333333, 0.75}}
    end
   
    if t.draw_me == true then t.draw_me = nil end
    if t.draw_me ~= nil and conky_parse(tostring(t.draw_me)) ~= "1" then return end
   
    local value = 0
    if t.name ~= "" then
        value = tonumber(conky_parse(string.format('${%s %s}', t.name, t.arg)))
    else
        value = tonumber(t.arg)
    end
    if value == nil then value = 0 end
--valuegraph
    local adj = (value % 5)
    local lines = tonumber(t.scale)
    local gap = t.height/lines
    cairo_set_line_width (cr, 1)
   
--    cairo_set_source_rgba(cr, rgb_to_r_g_b(t.colour, t.alpha))
   
    cairo_select_font_face (cr, t.font_name, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL)
    cairo_set_font_size (cr, t.font_size)
    if #t.colour_scale == 1 then
        cairo_set_source_rgba(cr,rgb_to_r_g_b2(t.colour_scale[1]))
    else
        local pat
        local pts=linear_orientation_bg(t)
        pat = cairo_pattern_create_linear (pts[1], pts[2], pts[3], pts[4])
        for i=1, #t.colour_scale do
            cairo_pattern_add_color_stop_rgba (pat, t.colour_scale[i][1], rgb_to_r_g_b2(t.colour_scale[i]))
        end
        cairo_set_source (cr, pat)
    end
--calculate line and number positions
    for i = 2,lines do
        n = i
        for i = 1, lines, 5 do
--print (i)
            if n == (lines/2)+(5-adj)+i or n == (lines/2)+(5-adj)+(-i-3) then
                len = -2*(t.width/5)
            else
                len = -1*(t.width/5)
            end
            if n == (lines/2)+(5-adj)+i then
                num = value - adj + (i + 4)
                elseif n == (lines/2)+(5-adj)+(-i-3) then
                    num = value - adj-(i-1)
                else
                    num = ""
            end
--print lines
            cairo_move_to (cr, t.x+(t.width/2), t.y+t.height-(gap*(n-1)))
            cairo_rel_line_to (cr, len, 0)
--            cairo_stroke (cr)
--print numbers
            cairo_move_to (cr, t.x+(t.width/2)+2, t.y+t.height-(gap*(n-1))+(t.font_size/3))
            cairo_show_text (cr, num)
            cairo_stroke (cr)
        end--for
    end--for
--middle lines
    cairo_set_source_rgba(cr, rgb_to_r_g_b(t.colour_middle, t.alpha))
    cairo_move_to (cr, t.x + t.width, t.y + (t.height/2)+2)
    cairo_rel_line_to (cr, -t.width, 0)
    cairo_stroke (cr)
    cairo_move_to (cr, t.x + t.width, t.y + (t.height/2)-2)
    cairo_rel_line_to (cr, -t.width, 0)
    cairo_stroke (cr)
    cairo_pattern_destroy (pat)
   
--[[    local function linear_orientation_bg(t)
        if t.orientation    == "nn" then
            p = {t.x + t.width/2, t.y, t.x + t.width/2, t.y + t.height}
        elseif t.orientation    == "ne" then
            p = {t.x + t.width, t.y, t.x, t.y + t.height}
        elseif t.orientation    == "ee" then
            p = {t.x + t.width, t.y + t.height/2, t.x, t.y + t.height/2}
        elseif t.orientation    == "se" then
            p = {t.x +t.width, t.y + t.height, t.x, t.y}
        elseif t.orientation    == "ss" then
            p = {t.x + t.width/2, t.y + t.height, t.x + t.width/2, t.y}
        elseif t.orientation    == "sw" then
            p = {t.x, t.y + t.height, t.x + t.width, t.y}
        elseif t.orientation    == "ww" then
            p = {t.x, t.y + t.height/2, t.x + t.width, t.y + t.height/2}
        else
            p = {t.x, t.y, t.x + t.width, t.y + t.height}
        end
        return p
    end
]]
end
function rgb_to_r_g_b2(tcolour)
    colour, alpha = tcolour[2], tcolour[3]
    return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
function linear_orientation_bg(t)
    if t.orientation    == "nn" then
        p = {t.x + t.width/2, t.y, t.x + t.width/2, t.y + t.height}
    elseif t.orientation    == "ne" then
        p = {t.x + t.width, t.y, t.x, t.y + t.height}
    elseif t.orientation    == "ee" then
        p = {t.x + t.width, t.y + t.height/2, t.x, t.y + t.height/2}
    elseif t.orientation    == "se" then
        p = {t.x +t.width, t.y + t.height, t.x, t.y}
    elseif t.orientation    == "ss" then
        p = {t.x + t.width/2, t.y + t.height, t.x + t.width/2, t.y}
    elseif t.orientation    == "sw" then
        p = {t.x, t.y + t.height, t.x + t.width, t.y}
    elseif t.orientation    == "ww" then
        p = {t.x, t.y + t.height/2, t.x + t.width, t.y + t.height/2}
    else
        p = {t.x, t.y, t.x + t.width, t.y + t.height}
    end
    return p
end


Image

Image
HP Pavilion g 7 1357 sf
Multiboot 7-Mageia 5 KDE - Serena Cinnamon - Sarah XFCE

Avatar du membre
zebulon
Administrateur du site
Messages : 12580
Enregistré le : ven. 19 juin 2015 22:13
Localisation : Au pays du mistral

Re: Conky

Messagepar zebulon » sam. 20 janv. 2018 10:39

salut loutch 8-)
Cool, il sort des sentiers battus avec les cercles et autres que nous avons l'habitude de voir ;)

Je risque fort de m'en inspirer pour un prochain 8-) 8-)

Merci !
LMDE3 cinnamon 64-bit + Lm 17.3 MATE.
Proc: intel I5 4440, Cm: Gigabyte GA-B85M-D3H, Alim: Corsair CX Bronze 430 W, Ram: Crucial Ballistix Sport, 2 x 2 Go.
SSD: 2.5 sandisk ultra+ 64 Go pour /+home, DD: Seagate Barracuda 500 Go pour mes données persos, DD maxtor 160 Go pour la sauvegarde ciblée via luckybackup.
Impr: HP Envy 4502.


Retourner vers « Personnalisation »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité