Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails) *** mise à jour 12/10/2014 ***

#76 Le 12/08/2010, à 20: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, à 20: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, à 20:57)

Hors ligne

#78 Le 12/08/2010, à 20: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, à 21: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, à 21:37)

Hors ligne

#80 Le 12/08/2010, à 21: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, à 12:48

wlourf

Re : Postez vos scripts Lua pour Conky !

Hello, voici une nouvelle race d'anneaux :

En pleine action :
1281696101.png

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):
1281696148.png

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, à 22:36)

Hors ligne

#82 Le 13/08/2010, à 15: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, à 21:19)

Hors ligne

#83 Le 25/08/2010, à 13: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 roll

Hors ligne

#84 Le 26/08/2010, à 05: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, à 05:00)


conky 1 --- conky 2 --- conkyForecast 2.09 --- Tuto Finch
Lucid minimal + openbox

Hors ligne

#85 Le 30/08/2010, à 09:00

wlourf

Re : Postez vos scripts Lua pour Conky !

lifala a écrit :

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, à 13:49

maaduck

Re : Postez vos scripts Lua pour Conky !

Plop wlourf,  non pas trouvé, si t'as ça sous la main smile

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, à 17: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, à 21: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 31/08/2010, à 00:11)


conky 1 --- conky 2 --- conkyForecast 2.09 --- Tuto Finch
Lucid minimal + openbox

Hors ligne

#89 Le 31/08/2010, à 07:25

chepioq

Re : Postez vos scripts Lua pour Conky !

wlourf a écrit :

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, à 07:28)


Tout est dans tout et réciproquement....

Hors ligne

#90 Le 31/08/2010, à 10: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 smile

@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, à 11: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, à 11:33)


conky 1 --- conky 2 --- conkyForecast 2.09 --- Tuto Finch
Lucid minimal + openbox

Hors ligne

#92 Le 31/08/2010, à 18:19

testament01

Re : Postez vos scripts Lua pour Conky !

bonjour tout le monde j'espere que quelqu'un poura m'aider
mini_100831062044643970.png
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, à 20: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, à 20: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, à 21:00)


noob en linux mais demande a apprendre

Hors ligne

#95 Le 31/08/2010, à 21: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, à 21: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, à 18: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 big_smile

merci tout le monde

Dernière modification par maaduck (Le 01/09/2010, à 18:38)

Hors ligne

#98 Le 01/09/2010, à 23:33

wlourf

Re : Postez vos scripts Lua pour Conky !

lifala a écrit :

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 big_smile

C'est ma façon de faire, il y en a sûrement d'autres.

Hors ligne

#99 Le 01/09/2010, à 23:42

wlourf

Re : Postez vos scripts Lua pour Conky !

maaduck a écrit :

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 big_smile

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, à 23:43)

Hors ligne

#100 Le 02/09/2010, à 19: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 mad

Dernière modification par lifala (Le 02/09/2010, à 19:09)


conky 1 --- conky 2 --- conkyForecast 2.09 --- Tuto Finch
Lucid minimal + openbox

Hors ligne

Haut de page ↑