#76 Le 12/08/2010, à 19:39
- wlourf
Re : Postez vos scripts Lua pour Conky !
Pacito,
Déjà, je trouve que ce n'est pas une bonne idée d'avoir le même nom pour le fichier Lua et la fonction, ça prête à confusion !
Pour le texte, à mon avis, tu as supprimé plus de choses que prévu, alors recommence depuis le début ! Copie le script du post 15 dans un fichier et enregistre le sous load_text.lua si tu veux. Ce fichier fait 436 lignes.
Dans ton conky, change
lua_draw_hook_post load_text
en
lua_draw_hook_post draw_text
Si tu lances le conky ça doit t'afficher des choses à présent.
Ensuite tu modifies les paramètres entre la ligne 70 et la ligne 235 pour afficher ce que tu veux : tu adaptes la table "text_settings" à tes goûts mais là je crois que tu as compris le principe de sous-tables dans la table principale.
Et si vraiment ça ne fonctionne pas avec cette méthode, poste ton fichier load_text modifié!
Pour le script rings, juste avant
draw_ring(cr,pct,pt)
écrit
print (name, arg, value,max)
Ca ne te corrigera pas le problème mais permettra de voir ce qui cloche, après on pourra le corriger (j'espère) !
Hors ligne
#77 Le 12/08/2010, à 19:51
- Pacito
Re : Postez vos scripts Lua pour Conky !
Merci bcp wlourf !!!
draw_text fonctionne maintenant (tout ce qui suit la ligne 92 est necessaire ? ca fait beaucoup pour afficher juste du texte, non ?)
pour le probleme de rings.lua j ai utilise la ram et le cpu
name='memperc'
arg=''
--------------
name='cpu'
arg='cpu0'
j obtiens
Conky: llua_do_call: function conky_ring_stats execution failed: /home/pacito/Developpement/Conky/info/rings.lua:120: attempt to perform arithmetic on local 'value' (a nil value)
nil nil 23 nil
Conky: llua_do_call: function conky_ring_stats execution failed: /home/pacito/Developpement/Conky/info/rings.lua:120: attempt to perform arithmetic on local 'value' (a nil value)
nil nil 23 nil
nil nil 5 nil
nil nil 23 nil
nil nil 7 nil
nil nil 23 nil
nil nil 2 nil
nil nil 23 nil
nil nil 2 nil
nil nil 23 nil
nil nil 5 nil
Dernière modification par Pacito (Le 12/08/2010, à 19:57)
Hors ligne
#78 Le 12/08/2010, à 19:58
- wlourf
Re : Postez vos scripts Lua pour Conky !
Vérifie ou poste ta table "settings_table" du fichier des anneaux on dirait qu'il y a un problème dans une sous table car ce que tu écris donne veut dire :
name=nil, arg=nil, value=23,max=nil
, tu n'aurais pas une sous-table sans parametres "name" "arg" et "max" par hasard ?
Hors ligne
#79 Le 12/08/2010, à 20:24
- Pacito
Re : Postez vos scripts Lua pour Conky !
J ai pas l impression d avoir de sous table
je te mes mon fichier rings.lua
settings_table = {
{
name='memperc',
arg='',
max=60,
alarm=30,
bg_colour=0x000000,
bg_alpha=0.1,
fg_colour=0x0DAE00,
fg_alpha=0.8,
alarm_colour=0xAE0000,
x=150, y=400,
radius=50,
thickness=5,
start_angle=0,
end_angle=360
},
{
name='cpu',
arg='cpu0',
max=60,
alarm=30,
bg_colour=0x000000,
bg_alpha=0.1,
fg_colour=0x0DAE00,
fg_alpha=0.8,
alarm_colour=0xAE0000,
x=150, y=550,
radius=50,
thickness=5,
start_angle=0,
end_angle=360
},
}
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)
pct=value/pt['max']
print (name, arg, value,max) -- test probleme
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
setup_rings(cr,settings_table[i])
end
end
end
Est ce qu on peut utiliser alarm et alarm_colour pour les anneaux (comme pour tes barres ?)
Merci pour l aide et bonne nuit !!!
Dernière modification par Pacito (Le 12/08/2010, à 20:37)
Hors ligne
#80 Le 12/08/2010, à 20:47
- wlourf
Re : Postez vos scripts Lua pour Conky !
Ta settings_table marche parfaitement chez moi, tu n'aurais pas supprimé des lignes du script par accident.
Voici celui que j'utilise:
--[[
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 on line 145 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.lua
lua_draw_hook_pre ring_stats
Changelog:
+ 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)
]]
settings_table = {
{
name='memperc',
arg='',
max=60,
alarm=30,
bg_colour=0x000000,
bg_alpha=0.1,
fg_colour=0x0DAE00,
fg_alpha=0.8,
alarm_colour=0xAE0000,
x=150, y=400,
radius=50,
thickness=5,
start_angle=0,
end_angle=360
},
{
name='cpu',
arg='cpu0',
max=60,
alarm=30,
bg_colour=0x000000,
bg_alpha=0.1,
fg_colour=0x0DAE00,
fg_alpha=0.8,
alarm_colour=0xAE0000,
x=150, y=550,
radius=50,
thickness=5,
start_angle=0,
end_angle=360
},
}
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)
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
setup_rings(cr,settings_table[i])
end
end
end
A appeler avec le nom original :
lua_draw_hook_pre ring_stats
Je n'avais pas vu que tu avais édité ton message précédent. Sinon, non tu ne peux pas supprimer des lignes dans mon script pour le texte, sauf si tu sais ce que tu fais! Si un jour tu as envie d'ajouter de la réflexion à tes textes, le script sera prêt, en attendant, si tu n'appliques pas d'effets, le code n'est pas exécuté donc ça ne dérange pas.
Pour ce qui est des alarmes, je pense que c'est possible avec deux anneaux mais je n'ai pas essayé avec ce script. Par exemple si tu veux un cercle de 360° qui va de 0 à 100, et si tu veux une alarm à 75, tu peux faire un arc de 0 à 270° (75% de 360°) d'une couleur et un autre arc de 270 à 360° d'une autre couleur.
Le plus dur sera de dire au script que le minimum du deuxième cercle est 75 et non 0, je sais pas si le script de londonali gère ça.
J'espère que je suis assez clair.
PS : J'ai sous la main un script pour des anneaux d'un autre genre, je finis 2, 3 trucs et je le poste
Hors ligne
#81 Le 13/08/2010, à 11:48
- wlourf
Re : Postez vos scripts Lua pour Conky !
Hello, voici une nouvelle race d'anneaux :
Quelques exemples de config (c'est bien le même script qui fait tous ces anneaux, il permet aussi d'en faire des plats comme ceux de londonali):
Le premier est adapté à mon PC, donc si vous l'essayez, il y a des modifs à faire mais c'est expliqué dans le README
Le second doit fonctionner tout de suite car il n'affiche que les secondes.
Vous pouvez les télécharger sur dA (pas besoin de s'inscrire) :
http://wlourf.deviantart.com/art/Rings- … -174492752
et
http://wlourf.deviantart.com/art/Rings- … -174493100
a+
Dernière modification par wlourf (Le 12/01/2011, à 21:36)
Hors ligne
#82 Le 13/08/2010, à 14:29
- Pacito
Re : Postez vos scripts Lua pour Conky !
Bon en fait j ai supprimer le probleme en lancant conky grace a ce script :
#!/bin/bash
sleep 5
killall conky
conky -c /home/pacito/Developpement/Conky/info/conky_info;
exit 0
Pourtant j utilisais cette commande en faisant killall avant.
En tout cas merci beaucoup wlouf pour ton aide et je jeterais un coup d oueil a tes anneaux plus tard quand j aurais installe openbox !!!
++
Dernière modification par Pacito (Le 13/08/2010, à 20:19)
Hors ligne
#83 Le 25/08/2010, à 12:18
- maaduck
Re : Postez vos scripts Lua pour Conky !
Salut j'voudrais savoir si quelqu'un sait comment utiliser les ring pour Rhythmbox svp ? j'arrive pas a utiliser amarok
Hors ligne
#84 Le 26/08/2010, à 04:00
- lifala
Re : Postez vos scripts Lua pour Conky !
salut, je m'abonne.
je suis très intéresser par lua car je voudrai faire de mon conky un compteur. je n'arrive pas a decoupé les cercle comme le poste #81 et je voudrai ajouter des aiguille aussi.
vous pouver allé jeté un oeil ici
Dernière modification par lifala (Le 26/08/2010, à 04:00)
conky 1 --- conky 2 --- conkyForecast 2.09 --- Tuto Finch
Lucid minimal + openbox
Hors ligne
#85 Le 30/08/2010, à 08:00
- wlourf
Re : Postez vos scripts Lua pour Conky !
salut, je m'abonne.
je suis très intéresser par lua car je voudrai faire de mon conky un compteur. je n'arrive pas a decoupé les cercle comme le poste #81 et je voudrai ajouter des aiguille aussi.
vous pouver allé jeté un oeil ici
salut,
tu n'arrives pas à découper les cercles car tu utilises le script de londonali qui ne permet pas cela, mon script du post 82 le permet, donc c'est celui-ci que tu dois utiliser. Il se configure de la même façon, utilies la variable "sectors" pour ajuster le nombre de ... secteurs.
Pour les aiguilles, il me semble en avoir déjà vu mais je n'ai pas de lien sous la main (peut être conky hardcore)...
@maaduck, tu as trouvé une solution pour rhythmbox ? J'en ai une mais ça nécessite de modifier le script conkyRhythmbox
Hors ligne
#86 Le 30/08/2010, à 12:49
- maaduck
Re : Postez vos scripts Lua pour Conky !
Plop wlourf, non pas trouvé, si t'as ça sous la main
par contre je comprend pas tes modif (cf: voir clignotement hddtemp)
ps : je t'ai ajouter a mon jabber
Hors ligne
#87 Le 30/08/2010, à 16:35
- wlourf
Re : Postez vos scripts Lua pour Conky !
maaduck,
En fait pour hddtemp, j'ai le même problème, parfois il m'affiche la température, parfois N/A, ce qui provoque le clignotement dans Lua (N/A est compris comme un zéro). Donc voici une méthode simple (qui ne necessite pas de modifier le script) que j'avais posté sur le forum en même temps que fenouille !
utiliser ${exec hddtemp /dev/sda | cut -c36-37}, ce qui donne dans le script Lua :
name="exec",
arg="hddtemp /dev/sda | cut -c36-37",
max=50,
Ligne a adapter à ton PC, attention il y a un piège, chez moi ces deux lignes renvoient la même température sauf que la deuxième comprend un caractère qui ne s'affiche pas dans le terminal, sans doute le ° de °C et le script Lua comprend cela comme un zéro.
hddtemp /dev/sda | cut -c36-37
hddtemp /dev/sda | cut -c36-38
Pour rhythmbox, c'est en fait assez simple, il suffit d'installer conkyRhythmbox qui est dans les dépôts (ou ici http://ubuntuforums.org/showthread.php?t=928168), lire l'aide conkyRhythmbox --help, taper dans une console
conkyRhythmbox --datatype=PP
pour avoir le pourcentage lu du morceau et d'intégrer cette commande dans le script Lua, comme ceci :
name="exec",
arg='conkyRhythmbox --datatype=PP',
max=100,
ou comme cela, ce doit être plus rapide à l'execution
name="",
arg=io.popen('conkyRhythmbox --datatype=PP','r'):read(),
max=100,
J'espère que c'est assez clair !
Hors ligne
#88 Le 30/08/2010, à 20:44
- lifala
Re : Postez vos scripts Lua pour Conky !
salut, j'ai changé de script et sa fonctionne. si vous voulez voire les quelques changement que j'ai effectué utilisé le ien conky 2 de ma signature.
si je souhaite ajouté des barres comme le post #60, je doit lancer un nouveau script ou il faut que je rajoute des choses?
@+
Dernière modification par lifala (Le 30/08/2010, à 23:11)
conky 1 --- conky 2 --- conkyForecast 2.09 --- Tuto Finch
Lucid minimal + openbox
Hors ligne
#89 Le 31/08/2010, à 06:25
- chepioq
Re : Postez vos scripts Lua pour Conky !
maaduck,
En fait pour hddtemp, j'ai le même problème, parfois il m'affiche la température, parfois N/A, ce qui provoque le clignotement dans Lua (N/A est compris comme un zéro). Donc voici une méthode simple (qui ne necessite pas de modifier le script) que j'avais posté sur le forum en même temps que fenouille !
utiliser ${exec hddtemp /dev/sda | cut -c36-37}, ce qui donne dans le script Lua :name="exec", arg="hddtemp /dev/sda | cut -c36-37", max=50,
Ligne a adapter à ton PC, attention il y a un piège, chez moi ces deux lignes renvoient la même température sauf que la deuxième comprend un caractère qui ne s'affiche pas dans le terminal, sans doute le ° de °C et le script Lua comprend cela comme un zéro.
hddtemp /dev/sda | cut -c36-37 hddtemp /dev/sda | cut -c36-38
Pourquoi ne pas utiliser awk à la place de cut?
hddtemp /dev/sda | awk '{print $4}'
t'affichera 36°C
et si le ° te gène il suffit de l'enlever avec un sed
hddtemp /dev/sda | awk '{print $4}' | sed 's/°//g'
t'affichera 36C
Dernière modification par chepioq (Le 31/08/2010, à 06:28)
Tout est dans tout et réciproquement....
Hors ligne
#90 Le 31/08/2010, à 09:50
- wlourf
Re : Postez vos scripts Lua pour Conky !
salut chepioq, pour le script Lua en question, on a besoin d'une valeur numérique alors je trouve la solution cut plus simple que awk + sed, c'est une question de goût
@lifala, le plus simple est d'avoir le second script Lua dans un fichier à part et tu peux appeler 2 scripts avec ton conky avec les fonctions
lua_draw_hook_pre
lua_draw_hook_post
Le premier s'exécutera avant le reste du conky, le second après. J'ai expliqué ça un peu plus haut
Mais comme tu semble à l'aise avec Lua, tu peux aussi mettre les deux scripts dans le même fichier puis l'appeler avec lua_draw_hook_pre et créer une fonction spéciale qui appelera les 2 autres scripts, exemple
function conky_lanceur()
conky_anneaux()
conky_barres()
end
Il y a d'autres façons de faire, notamment si tu veux mettre les couleurs dans des variables et éviter de les retaper d'un script à l'autre, surtout quand on fait les réglages , je t'explique si ça t'interesse.
Hors ligne
#91 Le 31/08/2010, à 10:32
- lifala
Re : Postez vos scripts Lua pour Conky !
salut,
je suis pas particulièrement à l'aise avec lua, je me souviens la 1er fois que j'avais testé c'était, avec ce script de Vermouth.. Mais je n'y connais rien. j'ai essayé de trouvé un cours mais rien sur la façon de dessiner. alors oui si tu m'explique je veux bien, ça sera plus interessant que de copié ce que je trouve.
Merci
Dernière modification par lifala (Le 31/08/2010, à 10:33)
conky 1 --- conky 2 --- conkyForecast 2.09 --- Tuto Finch
Lucid minimal + openbox
Hors ligne
#92 Le 31/08/2010, à 17:19
- testament01
Re : Postez vos scripts Lua pour Conky !
bonjour tout le monde j'espere que quelqu'un poura m'aider
enfaite les anneaux qui sont sous mon conky je voudrai les avoir au milieu de mon ecran mais ils sont coincé dans la "fenetre" de conky, comment je dois faire?? svp
noob en linux mais demande a apprendre
Hors ligne
#93 Le 31/08/2010, à 19:14
- lifala
Re : Postez vos scripts Lua pour Conky !
salut, post ton script stp.
conky 1 --- conky 2 --- conkyForecast 2.09 --- Tuto Finch
Lucid minimal + openbox
Hors ligne
#94 Le 31/08/2010, à 19:52
- testament01
Re : Postez vos scripts Lua pour Conky !
alors voila mon conky-start.sh
#!/bin/bash
conky -c ~/etc/conky/Conky-system &
conky -c ~/etc/conky/Conky-time
exit 0
mon conky-systeme
alignment top_right
background yes
double_buffer yes
use_xft yes
xftfont Sans:size=8
xftalpha 1
update_interval 0.5
total_run_times 0
own_window yes
own_window_transparent yes
own_window_type desktop
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
minimum_size 300
maximum_width 260
draw_shades yes
draw_outline no
draw_borders no
draw_graph_borders yes
default_color white
default_shade_color black
default_outline_color white
gap_x 12
gap_y 30
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale no
TEXT
bonjour maitre
testament01
${font sans-serif:bold:size=8}SYSTEM ${hr 2}
${font sans-serif:normal:size=8}$sysname $kernel $alignr $machine
Uptime:$alignr$uptime
File System: $alignr${fs_type}
${color2}IP Passerelle : $color$gw_ip $alignr
${color2}Interface Passerelle : $color$gw_iface
${font sans-serif:bold:size=8}PROCESSORS ${hr 2}
${font sans-serif:normal:size=8}${cpugraph cpu1}
CPU1: ${cpu cpu1}% ${cpubar cpu1}
${font sans-serif:bold:size=8}MEMORY ${hr 2}
${font sans-serif:normal:size=8}RAM $alignc $mem / $memmax $alignr $memperc%
$membar
${font sans-serif:bold:size=8}DISKS ${hr 2}
${font sans-serif:normal:size=8}/ $alignc ${fs_used /} / ${fs_size /} $alignr ${fs_used_perc /}%
SWAP $alignc ${swap} / ${swapmax} $alignr ${swapperc}%
${font sans-serif:bold:size=8}TOP PROCESSES ${hr 2}
${font sans-serif:normal:size=8}${top_mem name 1}${alignr}${top mem 1} %
${top_mem name 2}${alignr}${top mem 2} %
$font${top_mem name 3}${alignr}${top mem 3} %
$font${top_mem name 4}${alignr}${top mem 4} %
$font${top_mem name 5}${alignr}${top mem 5} %
le conky-time
background yes
double_buffer yes
use_xft yes
xftfont Sans:size=8
xftalpha 1
update_interval 0.5
total_run_times 0
own_window yes
own_window_transparent yes
own_window_type desktop
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
minimum_size 200 200
maximum_width 200
draw_shades yes
draw_outline no
draw_borders no
draw_graph_borders yes
default_color white
default_shade_color black
default_outline_color white
alignment mm
gap_x 12
gap_y 12
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale no
color1 ffffff #blanc
color2 96979b #gris
color3 4fdff0 #bleu
color4 990000 #rouge
color5 faac59 #orange
color6 062d6e #bleu foncé
# — Lua Load — #
lua_load /home/testament01/conky/rings.lua
lua_draw_hook_post ring_stats
TEXT
${color1}${font Neuropol:pixelsize=14}${voffset 130}${offset 235}Ram${offset 30}Cpu${offset 50}Down${offset 100}Home
et pour finir le rings.lua
settings_table = {
{
name='memperc',
arg='',
max=100,
bg_colour=0xffffff,
bg_alpha=0.1,
fg_colour=0xffffff,
fg_alpha=0.4,
x=100, y=150,
radius=30,
thickness=5,
start_angle=-90,
end_angle=360
},
{
name='cpu',
arg='cpu0',
max=100,
bg_colour=0xffffff,
bg_alpha=0.1,
fg_colour=0xffffff,
fg_alpha=0.4,
x=100, y=150,
radius=50,
thickness=7,
start_angle=-90,
end_angle=360
},
{
name='downspeedf',
arg='eth0',
max=8000,
bg_colour=0xffffff,
bg_alpha=0.1,
fg_colour=0xffffff,
fg_alpha=0.4,
x=100, y=150,
radius=80,
thickness=10,
start_angle=-90,
end_angle=360
},
{
name='fs_used_perc',
arg='/home',
max=100,
bg_colour=0xffffff,
bg_alpha=0.1,
fg_colour=0xffffff,
fg_alpha=0.4,
x=100, y=150,
radius=120,
thickness=15,
start_angle=-90,
end_angle=360
},
}
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)
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
setup_rings(cr,settings_table[i])
end
end
end
dsl de vous faire relire tous sa mdr
Dernière modification par testament01 (Le 31/08/2010, à 20:00)
noob en linux mais demande a apprendre
Hors ligne
#95 Le 31/08/2010, à 20:03
- wlourf
Re : Postez vos scripts Lua pour Conky !
c'est pas une bonne idée de poster ton problème dans 2 topics, testament01.
Apparemment tu as tes conkys dans ~/etc/conky/, des scripts Lua dans /home/testament01/conky/ ... je sais pas comment tu t'y retrouves ! vérifie déjà que tu appelle les bons fichiers
Merci de continuer la discussion sur le topic que tu as ouvert : http://forum.ubuntu-fr.org/viewtopic.php?id=414415
Hors ligne
#96 Le 31/08/2010, à 20:15
- testament01
Re : Postez vos scripts Lua pour Conky !
desolé plus personne ne repondais sur l'anciens et sa fait au moins 3 jours que je suis dessus je pete un plomb mdr mais oui ils appel les bon script au bon endroit
noob en linux mais demande a apprendre
Hors ligne
#97 Le 01/09/2010, à 17:34
- maaduck
Re : Postez vos scripts Lua pour Conky !
Salut all
Merci wlourf, j'avance un peu dans le conky LUA
http://img683.imageshack.us/img683/7825/capture3x.png
Quelque dernier soucis :
1°) j'ai toujours le cadre, pas très joli je trouve plus le code pour l'enlever EDIT: j'ai rien dis /// own_window_type desktop
2°) il y a un moyen d'afficher comme toi l'image de la lecture rhythmbox en cour, apparament il faudrait utiliser " conkyRhythmbox --datatype=CA" mais bisarement ça donne rien, tu saurais faire en sorte que ça soit dans le "ring" comme pour le tien d'amarok ?
sinon j'avance a taton
merci tout le monde
Dernière modification par maaduck (Le 01/09/2010, à 17:38)
Hors ligne
#98 Le 01/09/2010, à 22:33
- wlourf
Re : Postez vos scripts Lua pour Conky !
salut,
je suis pas particulièrement à l'aise avec lua, je me souviens la 1er fois que j'avais testé c'était, avec ce script de Vermouth.. Mais je n'y connais rien. j'ai essayé de trouvé un cours mais rien sur la façon de dessiner. alors oui si tu m'explique je veux bien, ça sera plus interessant que de copié ce que je trouve.
Merci
Déjà pour dessiner, il faut regarder du côté de la doc de cairo, il y a pas mal d'exemples compréhensibles en python sur cette page http://www.cairographics.org/samples/ , ensuite il faut regarder les fonctions plus en détail http://www.cairographics.org/manual/ .Il y a aussi cette page qui liste les fonctions de cairo non implémentées dans Lua : http://www.dynaset.org/dogusanh/luacairo.html
Pour ce qui est du regroupement de plusieurs scripts, voilà comment je procède (je ne dis pas que c'est la façon la plus réglementaire hein !)
Je prends pour exemple le script que j'ai posté ici ce matin : http://forum.ubuntu-fr.org/viewtopic.php?pid=3700202#p3700202
Il utilise un script Lua pour le cercle (rings.lua) et un autre script pour le text (text.lua).
Dans mon conky, j'appelle un troisième fichier Lua que je vais créer :
lua_load ~/conky/conky-music/player.lua
lua_draw_hook_pre main
Le fichier player.lua ressemblera à ça :
dofile ("./rings.lua")
dofile ("./text.lua")
function conky_main()
conky_main_rings()
conky_draw_text()
end
Disons que dofile "charge" mes autres fichiers comme s'ils étaient présents dans rings.lua (je ne pourrai pas t'expliquer ça mieux !)
Note que j'utilise un chemin relatif car j'appelle mon conky avec
cd /path du conky
conky -c conkyrc
mais on peut mettre un chemin absolu dans dofile
ensuite la fonction conky_main appelera les 2 autres fonctions pour le texte et les anneaux.
Rien de bien compliqué, jusque là. Maintenant si je veux utiliser les mêmes couleurs dans les deux scripts, je défini des variables au début du fichier player.lua:
--couleurs de premier plan
fg_col1=0x97EF93
fg_col2=0xF61330
--couleur d'arrière plan
bg_col1=0xC9C6C6
--choix du player
player = "rhythmbox"
--player = "amarok"
Ces variables sont par défaut globales, elles serviront donc pour toutes les fonctions, même celles de rings.lua et text.lua. Donc dans ces deux fichiers, il suffit de mettre les noms des variables au bons endroits :
Dans ring.lua :
bg_colour1={{0,bg_col1,0.25},{0.5,bg_col1,1}, {1,bg_col1,0}},
fg_colour1={{0,fg_col1,0.25},{0.5,fg_col1,1}, {1,fg_col1,0}},
fg_colour2={{0,fg_col2,0.25},{0.5,fg_col2,1}, {1,fg_col2,0}},
Dans text.lua :
colour={{0,bg_col1,0.5},{0.5,bg_col1,1}, {1,bg_col1,0.5}},
Finalement, il suffit de modifier les couleurs dans player.lua pour quelles se répercutent sur les x fichiers Lua utilisés lorsqu'on en utilise plusieurs. Si on utilise qu'un seul fichier Lua, c'est pas bien utile
C'est ma façon de faire, il y en a sûrement d'autres.
Hors ligne
#99 Le 01/09/2010, à 22:42
- wlourf
Re : Postez vos scripts Lua pour Conky !
Salut all
Merci wlourf, j'avance un peu dans le conky LUA
http://img683.imageshack.us/img683/7825/capture3x.png
Quelque dernier soucis :
1°) j'ai toujours le cadre, pas très joli je trouve plus le code pour l'enlever EDIT: j'ai rien dis /// own_window_type desktop
2°) il y a un moyen d'afficher comme toi l'image de la lecture rhythmbox en cour, apparament il faudrait utiliser " conkyRhythmbox --datatype=CA" mais bisarement ça donne rien, tu saurais faire en sorte que ça soit dans le "ring" comme pour le tien d'amarok ?
sinon j'avance a taton
merci tout le monde
En fait l'image est pas gérée par Lua mais par conky et un script bash, pour rhythmbox, regarde du côté de ce conky : http://forum.ubuntu-fr.org/viewtopic.php?pid=3700202#p3700202 qui reprend en partie celui que tu utilises :
En gros, voici la manip : dans le conky on utilise un script pour récupérer l'image et la transformer en cercle avec l'effet bombé puis on affiche l'image où on veut avec le conky
${execi 10 ~/conky/conky-music/cover/getcover_sphere.sh}${image ~/conky/conky-music/cover/cover_sphere.png -p 150,150}
et dans le script get_cover_sphere.sh que tu as, pour récupérer la pochette, mets ça (pour rhythmbox) :
cover="$(conkyRhythmbox --datatype=CA)"
#enlève le charactère \ de la sortie de conkyRhythmbox
cover=${cover//\\/}
à la place de ça (pour amarok) :
cover="$(dcop amarok player coverImage)"
Et voilà, faut juste que tu installe conkyRhythmbox (il pourra te servir pour le temps écoulé également) :
http://ubuntuforums.org/showthread.php?t=928168
La taille de l'image est réglée dans le script getcover_sphere.sh si tu la modifie, modifie aussi la taille des maques utilisés.
Sinon oui tu avances, mais faudra virer ces vilaines couleurs !:P
Dernière modification par wlourf (Le 01/09/2010, à 22:43)
Hors ligne
#100 Le 02/09/2010, à 18:09
- lifala
Re : Postez vos scripts Lua pour Conky !
salut.
merci pour ces precieuse infos wlourf. j'ai pas le temps de m'attardé mais je donnerai des new...
je suis de nuit
Dernière modification par lifala (Le 02/09/2010, à 18:09)
conky 1 --- conky 2 --- conkyForecast 2.09 --- Tuto Finch
Lucid minimal + openbox
Hors ligne