[LUA] comment executer un script Lua ? (contourné)

Questions et astuces concernant l'installation et la configuration d'archlinux
Répondre
Avatar de l’utilisateur
banditblue
Elfe
Messages : 591
Inscription : dim. 10 janv. 2010, 10:19

[LUA] comment executer un script Lua ? (contourné)

Message par banditblue »

tout est dans le titre

en suivant ce lien celui-la

j'installe lua - cairo - imlib2

Code : Tout sélectionner

yaourt -S lua cairo imlib2
 
je fait un conky -v qui me retourne
Conky 1.8.2_preNONE compiled Mon Nov 7 05:30:51 UTC 2011 for Linux 3.1.0-3-ARCH (x86_64)

Compiled in features:

System config file: /etc/conky/conky.conf
Package library path: /usr/lib/conky

X11:
* Xdamage extension
* XDBE (double buffer extension)
* Xft
* ARGB visual

Music detection:
* MPD
* MOC

General:
* math
* hddtemp
* portmon
* Curl
* RSS
* Weather (METAR)
* Weather (XOAP)
* wireless
* support for IBM/Lenovo notebooks
* config-output
* Imlib2
* apcupsd
* iostats
* ncurses



par contre sur le site ubuntu cité plus haut les gars on ca quand il lance la commande conky -v

Conky 1.8.0 compiled Thu May 13 15:01:31 UTC 2010 for Linux 2.6.24-27-xen (i686)

Compiled in features:

System config file: /etc/conky/conky.conf
Package library path: /usr/lib/conky

X11:
* Xdamage extension
* XDBE (double buffer extension)
* Xft
* ARGB visual

Music detection:
* MPD
* MOC

General:
* math
* hddtemp
* portmon
* Curl
* RSS
* Weather (METAR)
* Weather (XOAP)
* wireless
* support for IBM/Lenovo notebooks
* nvidia
* eve-online
* config-output
* Imlib2
* ALSA mixer support
* apcupsd
* iostats
* ncurses
* Lua

Lua bindings:
* Cairo
* Imlib2

en rouge ce que je n'ai pas :shock:

merci de m'aider
Dernière modification par banditblue le mar. 17 mars 2020, 17:08, modifié 3 fois.
La connaîssance n'a pas de limite.
Mais sa valeur, est d'autant plus grande, une fois partagé


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

Screenshot + Les Conky ===> http://forums.archlinux.fr/post85405.html#p85405
Avatar de l’utilisateur
banditblue
Elfe
Messages : 591
Inscription : dim. 10 janv. 2010, 10:19

Re: [LUA] comment executer un script Lua ? (en cours)

Message par banditblue »

personne pour m'aiguiller????? :roll:
La connaîssance n'a pas de limite.
Mais sa valeur, est d'autant plus grande, une fois partagé


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

Screenshot + Les Conky ===> http://forums.archlinux.fr/post85405.html#p85405
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17187
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [LUA] comment executer un script Lua ? (en cours)

Message par benjarobin »

Ce n'est pas un peut tôt pour un UP ?
Sinon non tout n'est pas dans le titre (Il faudrait ailleurs le changer), car celui-ci n'a strictement rien avoir avec ton problème... Tu veux pouvoir utiliser des script lua avec conky et non savoir comment exécute un script lua

As tu au moins cherché ? http://aur.archlinux.org/packages.php?ID=31589
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
banditblue
Elfe
Messages : 591
Inscription : dim. 10 janv. 2010, 10:19

Re: [LUA] comment executer un script Lua ? (en cours)

Message par banditblue »

merci

bon ca avance un peu en ayant installé conky-lua-arch
mais voila je n'arrive pas a afficher le script lua
La connaîssance n'a pas de limite.
Mais sa valeur, est d'autant plus grande, une fois partagé


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

Screenshot + Les Conky ===> http://forums.archlinux.fr/post85405.html#p85405
Avatar de l’utilisateur
banditblue
Elfe
Messages : 591
Inscription : dim. 10 janv. 2010, 10:19

Re: [LUA] comment executer un script Lua ? (en cours)

Message par banditblue »

bonne nouvel

jai juste copier les fichier qui etait donner et voila ca fonctionne

je m'épatte,je m'épatte,je m'épatte,
La connaîssance n'a pas de limite.
Mais sa valeur, est d'autant plus grande, une fois partagé


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

Screenshot + Les Conky ===> http://forums.archlinux.fr/post85405.html#p85405
Avatar de l’utilisateur
banditblue
Elfe
Messages : 591
Inscription : dim. 10 janv. 2010, 10:19

Re: [LUA] comment executer un script Lua ? (en cours)

Message par banditblue »

salut la team
je me casse la tête sur un conky avec des paramètres lua

en fait à l’époque j'arrivais facilement a mettre au lancement de conky deux script lua
maintenant c'est soit l'un soit l'autre, je ne comprend pas ou se situe le problème

en image
capture d'écran conky_grey.lua pour l'horloge
Image



capture d'écran bargraph.lua qui me donne en temps reel les infos du cpu et des disques dur
Image


ce que j'obtient avec conky-v

Code : Tout sélectionner

conky 1.11.3_pre compiled dim. 15 mars 2020 12:42:53 CET for Linux 5.5.9-arch1-2 x86_64

Compiled in features:

System config file: /etc/conky/conky.conf
Package library path: /usr/lib/conky


 General:
  * math
  * hddtemp
  * portmon
  * IPv6
  * Curl
  * RSS
  * Weather (METAR)
  * wireless
  * support for IBM/Lenovo notebooks
  * builtin default configuration
  * old configuration syntax
  * Imlib2
  * OSS mixer support
  * apcupsd
  * iostats
  * ncurses
  * Internationalization support

 Lua bindings:
  * Cairo
  * Imlib2
  * RSVG
 X11:
  * Xdamage extension
  * Xinerama extension (virtual display)
  * Xshape extension (click through)
  * XDBE (double buffer extension)
  * Xft
  * ARGB visual
  * Own window

 Music detection:
  * CMUS
  * MPD
  * MOC

 Default values:
  * Netdevice: eth0
  * Local configfile: $HOME/.conkyrc
  * Localedir: /usr/share/locale
  * Maximum netdevices: 64
  * Maximum text size: 16384
  * Size text buffer: 256
[moi@ArchLinuxI7 ~]$

je vous poste les deux scripts

bargraphe.lua

Code : Tout sélectionner

--[[ BARGRAPH WIDGET
   v2.1 by wlourf (07 Jan. 2011)
   this widget draws a bargraph with different effects 
   http://u-scripts.blogspot.com/2010/07/bargraph-widget.html
   
To call the script in a conky, use, before TEXT
   lua_load /path/to/the/script/bargraph.lua
   lua_draw_hook_pre main_rings
and add one line (blank or not) after TEXT

   
Parameters are :
3 parameters are mandatory
name   - the name of the conky variable to display, for example for {$cpu cpu0}, just write name="cpu"
arg      - the argument of the above variable, for example for {$cpu cpu0}, just write arg="cpu0"
        arg can be a numerical value if name=""
max      - the maximum value the above variable can reach, for example, for {$cpu cpu0}, just write max=100
   
Optional parameters:
x,y      - coordinates of the starting point of the bar, default = middle of the conky window
cap      - end of cap line, ossibles values are r,b,s (for round, butt, square), default="b"
        http://www.cairographics.org/samples/set_line_cap/
angle   - angle of rotation of the bar in degress, default = 0 (i.e. a vertical bar)
        set to 90 for an horizontal bar
skew_x   - skew bar around x axis, default = 0
skew_y   - skew bar around y axis, default = 0
blocks  - number of blocks to display for a bar (values >0) , default= 10
height   - height of a block, default=10 pixels
width   - width of a block, default=20 pixels
space   - space between 2 blocks, default=2 pixels
angle_bar   - this angle is used to draw a bar on a circular way (ok, this is no more a bar !) default=0
radius      - for cicular bars, internal radius, default=0
           with radius, parameter width has no more effect.

Colours below are defined into braces {colour in hexadecimal, alpha}
fg_colour   - colour of a block ON, default= {0x00FF00,1}
bg_colour   - colour of a block OFF, default = {0x00FF00,0.5}
alarm      - threshold, values after this threshold will use alarm_colour colour , default=max
alarm_colour - colour of a block greater than alarm, default=fg_colour
smooth      - (true or false), create a gradient from fg_colour to bg_colour, default=false 
mid_colour   - colours to add to gradient, with this syntax {position into the gradient (0 to1), colour hexa, alpha}
           for example, this table {{0.25,0xff0000,1},{0.5,0x00ff00,1},{0.75,0x0000ff,1}} will add
           3 colurs to gradient created by fg_colour and alarm_colour, default=no mid_colour
led_effect   - add LED effects to each block, default=no led_effect
           if smooth=true, led_effect is not used
           possibles values : "r","a","e" for radial, parallelel, perdendicular to the bar (just try!)
           led_effect has to be used with theses colours :
fg_led      - middle colour of a block ON, default = fg_colour
bg_led      - middle colour of a block OFF, default = bg_colour
alarm_led   - middle colour of a block > ALARM,  default = alarm_colour

reflection parameters, not avaimable for circular bars
reflection_alpha    - add a reflection effect (values from 0 to 1) default = 0 = no reflection
                      other values = starting opacity
reflection_scale    - scale of the reflection (default = 1 = height of text)
reflection_length   - length of reflection, define where the opacity will be set to zero
                 calues from 0 to 1, default =1
reflection         - position of reflection, relative to a vertical bar, default="b"
                 possibles values are : "b","t","l","r" for bottom, top, left, right
draw_me     - if set to false, text is not drawn (default = true or 1)
              it can be used with a conky string, if the string returns 1, the text is drawn :
              example : "${if_empty ${wireless_essid wlan0}}${else}1$endif",

v1.0 (10 Feb. 2010) original release
v1.1 (13 Feb. 2010) numeric values can be passed instead conky stats with parameters name="", arg = numeric_value   
v1.2 (28 Feb. 2010) just renamed the widget to bargraph
v1.3 (03 Mar. 2010) added parameters radius & angle_bar to draw the bar in a circular way
v2.0 (12 Jul. 2010) rewrite script + add reflection effects and parameters are now set into tables
v2.1 (07 Jan. 2011) Add draw_me parameter and correct memory leaks, thanks to "Creamy Goodness"

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

]]

require 'cairo'

----------------START OF PARAMETERS ----------
function conky_main_bars()
   local bars_settings={
      {
         name="cpu",
         arg="cpu1",
         max=100,
         bg_colour={0x0000ff,0.5},
         fg_colour={0x00ff00,1},
         mid_colour={{0.25,0xFFFF00,1},{0.5,0xFFFFFF,1},{0.75,0xFF0000,1}},
         x=100,y=70,
         blocks=15,
         space=0.5,
         height=5,width=5,
         angle=90,
         smooth = true,
      },   
      {
         name="cpu",
         arg="cpu2",
         max=169,
         bg_colour={0x0000ff,0.5},
         fg_colour={0x00ff00,1},
         mid_colour={{0.25,0xFFFF00,1},{0.5,0xFFFFFF,1},{0.75,0xFF0000,1}},
         x=100,y=82,
         blocks=15,
         space=0.5,
         height=5,width=5,
         angle=90,
         smooth = true,
      },                     
      {
         name="cpu",
         arg="cpu3",
         max=100,
         bg_colour={0x0000ff,0.5},
         fg_colour={0x00ff00,1},
         mid_colour={{0.25,0xFFFF00,1},{0.5,0xFFFFFF,1},{0.75,0xFF0000,1}},
         x=100,y=94,
         blocks=15,
         space=0.5,
         height=5,width=5,
         angle=90,
         smooth = true,
      },   
      {
         name="cpu",
         arg="cpu4",
         max=169,
         bg_colour={0x0000ff,0.5},
         fg_colour={0x00ff00,1},
         mid_colour={{0.25,0xFFFF00,1},{0.5,0xFFFFFF,1},{0.75,0xFF0000,1}},
         x=100,y=106,
         blocks=15,
         space=0.5,
         height=5,width=5,
         angle=90,
         smooth = true,
      },
       {
         name="cpu",
         arg="cpu5",
         max=100,
         bg_colour={0x0000ff,0.5},
         fg_colour={0x00ff00,1},
         mid_colour={{0.25,0xFFFF00,1},{0.5,0xFFFFFF,1},{0.75,0xFF0000,1}},
         x=100,y=118,
         blocks=15,
         space=0.5,
         height=5,width=5,
         angle=90,
         smooth = true,
      },   
      {
         name="cpu",
         arg="cpu6",
         max=169,
         bg_colour={0x0000ff,0.5},
         fg_colour={0x00ff00,1},
         mid_colour={{0.25,0xFFFF00,1},{0.5,0xFFFFFF,1},{0.75,0xFF0000,1}},
         x=100,y=130,
         blocks=15,
         space=0.5,
         height=5,width=5,
         angle=90,
         smooth = true,
      },                     
      {
         name="cpu",
         arg="cpu7",
         max=100,
         bg_colour={0x0000ff,0.5},
         fg_colour={0x00ff00,1},
         mid_colour={{0.25,0xFFFF00,1},{0.5,0xFFFFFF,1},{0.75,0xFF0000,1}},
         x=100,y=142,
         blocks=15,
         space=0.5,
         height=5,width=5,
         angle=90,
         smooth = true,
      },   
      {
         name="cpu",
         arg="cpu8",
         max=169,
         bg_colour={0x0000ff,0.5},
         fg_colour={0x00ff00,1},
         mid_colour={{0.25,0xFFFF00,1},{0.5,0xFFFFFF,1},{0.75,0xFF0000,1}},
         x=100,y=154,
         blocks=15,
         space=0.5,
         height=5,width=5,
         angle=90,
         smooth = true,
      },     
      {
         name="memperc",
         arg="",
         max=170,
         bg_colour={0x0000ff,0.5},
         fg_colour={0x00ff00,1},
         mid_colour={{0.25,0xFFFF00,1},{0.5,0xFFFFFF,1},{0.75,0xFF0000,1}},
         x=12,y=242,
         blocks=15,
         space=0.5,
         height=5,width=5,
         angle=90,
         smooth = true,
      },
      {
         name="fs_used_perc",
         arg="/",
         max=100,
         bg_colour={0x0000ff,0.5},
         fg_colour={0x00ff00,1},
         mid_colour={{0.25,0xFFFF00,1},{0.5,0xFFFFFF,1},{0.75,0xFF0000,1}},
         x=12,y=205,
         blocks=15,
         space=0.5,
         height=5,width=5,
         angle=90,
         smooth = true,
      },
      {
         name="fs_used_perc",
         arg="/home/moi",
         max=100,
         bg_colour={0x0000ff,0.5},
         fg_colour={0x00ff00,1},
         mid_colour={{0.25,0xFFFF00,1},{0.5,0xFFFFFF,1},{0.75,0xFF0000,1}},
         x=105,y=205,
         blocks=15,
         space=0.5,
         height=5,width=5,
         angle=90,
         smooth = true,
      },
      {
         name='upspeedf',
         arg='enp4s0',
         max=1000,
         bg_colour={0x0000ff,0.5},
         fg_colour={0x00ff00,1},
         mid_colour={{0.25,0xFFFF00,1},{0.5,0xFFFFFF,1},{0.75,0xFF0000,1}},
         x=100,y=268,
         blocks=15,
         space=0.5,
         height=5,width=5,
         angle=90,
         smooth = true,
      },      
      {
         name='downspeedf',
         arg='enp4s0',
         max=1000,
         bg_colour={0x0000ff,0.5},
         fg_colour={0x00ff00,1},
         mid_colour={{0.25,0xFFFF00,1},{0.5,0xFFFFFF,1},{0.75,0xFF0000,1}},
         x=100,y=279,
         blocks=15,
         space=0.5,
         height=5,width=5,
         angle=90,
         smooth = true,
      },
   }
   
-----------END OF PARAMETERS--------------


    
   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)    
   --prevent segmentation error when reading cpu state
    if tonumber(conky_parse('${updates}'))>3 then
        for i in pairs(bars_settings) do
           
           draw_multi_bar_graph(bars_settings[i])
           
        end
    end
   cairo_destroy(cr)
   cairo_surface_destroy(cs)
   cr=nil

end



function draw_multi_bar_graph(t)
   cairo_save(cr)
   --check values
   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   
   if t.name==nil and t.arg==nil then 
      print ("No input values ... use parameters 'name' with 'arg' or only parameter 'arg' ") 
      return
   end
   if t.max==nil then
      print ("No maximum value defined, use 'max'")
      return
   end
   if t.name==nil then t.name="" end
   if t.arg==nil then t.arg="" end

   --set default values   
   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.blocks == nil   then t.blocks=10 end
   if t.height == nil   then t.height=10 end
   if t.angle == nil    then t.angle=0 end
   t.angle = t.angle*math.pi/180
   --line cap style
   if t.cap==nil      then t.cap = "b" end
   local cap="b"
   for i,v in ipairs({"s","r","b"}) do 
      if v==t.cap then cap=v end
   end
   local delta=0
   if t.cap=="r" or t.cap=="s" then delta = t.height end
   if cap=="s" then    cap = CAIRO_LINE_CAP_SQUARE
   elseif cap=="r" then
      cap = CAIRO_LINE_CAP_ROUND
   elseif cap=="b" then
      cap = CAIRO_LINE_CAP_BUTT
   end
   --end line cap style
   --if t.led_effect == nil   then t.led_effect="r" end
   if t.width == nil   then t.width=20 end
   if t.space == nil   then t.space=2 end
   if t.radius == nil   then t.radius=0 end
   if t.angle_bar == nil   then t.angle_bar=0 end
   t.angle_bar = t.angle_bar*math.pi/360 --halt angle
   
   --colours
   if t.bg_colour == nil    then t.bg_colour = {0x00FF00,0.5} end
   if #t.bg_colour~=2       then t.bg_colour = {0x00FF00,0.5} end
   if t.fg_colour == nil    then t.fg_colour = {0x00FF00,1} end
   if #t.fg_colour~=2       then t.fg_colour = {0x00FF00,1} end
   if t.alarm_colour == nil    then t.alarm_colour = t.fg_colour end
   if #t.alarm_colour~=2       then t.alarm_colour = t.fg_colour end

   if t.mid_colour ~= nil then   
      for i=1, #t.mid_colour do    
          if #t.mid_colour[i]~=3 then 
             print ("error in mid_color table")
             t.mid_colour[i]={1,0xFFFFFF,1} 
          end
      end
    end
    
   if t.bg_led ~= nil and #t.bg_led~=2   then t.bg_led = t.bg_colour end
   if t.fg_led ~= nil and #t.fg_led~=2   then t.fg_led = t.fg_colour end
   if t.alarm_led~= nil and #t.alarm_led~=2 then t.alarm_led = t.fg_led end
   
   if t.led_effect~=nil then
      if t.bg_led == nil then t.bg_led = t.bg_colour end
      if t.fg_led == nil    then t.fg_led = t.fg_colour end
      if t.alarm_led == nil  then t.alarm_led = t.fg_led end
   end
   

   if t.alarm==nil then t.alarm = t.max end --0.8*t.max end
   if t.smooth == nil then t.smooth = false end

   if t.skew_x == nil then 
      t.skew_x=0 
   else
      t.skew_x = math.pi*t.skew_x/180   
   end
   if t.skew_y == nil then 
      t.skew_y=0
   else
      t.skew_y = math.pi*t.skew_y/180   
   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
   
   --end of default values
   

   local function rgb_to_r_g_b(col_a)
      return ((col_a[1] / 0x10000) % 0x100) / 255., ((col_a[1] / 0x100) % 0x100) / 255., (col_a[1] % 0x100) / 255., col_a[2]
   end
   
   
   --functions used to create patterns

   local function create_smooth_linear_gradient(x0,y0,x1,y1)
      local pat = cairo_pattern_create_linear (x0,y0,x1,y1)
      cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(t.fg_colour))
      cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(t.alarm_colour))
      if t.mid_colour ~=nil then
         for i=1, #t.mid_colour do
            cairo_pattern_add_color_stop_rgba (pat, t.mid_colour[i][1], rgb_to_r_g_b({t.mid_colour[i][2],t.mid_colour[i][3]}))
         end
      end
      return pat
   end

   local function create_smooth_radial_gradient(x0,y0,r0,x1,y1,r1)
      local pat =  cairo_pattern_create_radial (x0,y0,r0,x1,y1,r1)
      cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(t.fg_colour))
      cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(t.alarm_colour))
      if t.mid_colour ~=nil then
         for i=1, #t.mid_colour do
            cairo_pattern_add_color_stop_rgba (pat, t.mid_colour[i][1], rgb_to_r_g_b({t.mid_colour[i][2],t.mid_colour[i][3]}))
         end
      end
      return pat
   end
   
   local function create_led_linear_gradient(x0,y0,x1,y1,col_alp,col_led)
      local pat = cairo_pattern_create_linear (x0,y0,x1,y1) ---delta, 0,delta+ t.width,0)
      cairo_pattern_add_color_stop_rgba (pat, 0.0, rgb_to_r_g_b(col_alp))
      cairo_pattern_add_color_stop_rgba (pat, 0.5, rgb_to_r_g_b(col_led))
      cairo_pattern_add_color_stop_rgba (pat, 1.0, rgb_to_r_g_b(col_alp))
      return pat
   end

   local function create_led_radial_gradient(x0,y0,r0,x1,y1,r1,col_alp,col_led,mode)
      local pat = cairo_pattern_create_radial (x0,y0,r0,x1,y1,r1)
      if mode==3 then
         cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(col_alp))            
         cairo_pattern_add_color_stop_rgba (pat, 0.5, rgb_to_r_g_b(col_led))
         cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(col_alp))            
      else
         cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(col_led))
         cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(col_alp))            
      end
      return pat
   end






   local function draw_single_bar()
      --this fucntion is used for bars with a single block (blocks=1) but 
      --the drawing is cut in 3 blocks : value/alarm/background
      --not zvzimzblr for circular bar
      local function create_pattern(col_alp,col_led,bg)
         local pat
         
         if not t.smooth then
            if t.led_effect=="e" then
               pat = create_led_linear_gradient (-delta, 0,delta+ t.width,0,col_alp,col_led)
            elseif t.led_effect=="a" then
               pat = create_led_linear_gradient (t.width/2, 0,t.width/2,-t.height,col_alp,col_led)
            elseif  t.led_effect=="r" then
               pat = create_led_radial_gradient (t.width/2, -t.height/2, 0, t.width/2,-t.height/2,t.height/1.5,col_alp,col_led,2)
            else
               pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(col_alp))
            end
         else
            if bg then
               pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(t.bg_colour))
            else
               pat = create_smooth_linear_gradient(t.width/2, 0, t.width/2,-t.height)
            end
         end
         return pat
      end
      
      local y1=-t.height*pct/100
      local y2,y3
      if pct>(100*t.alarm/t.max) then 
         y1 = -t.height*t.alarm/100
         y2 = -t.height*pct/100
         if t.smooth then y1=y2 end
      end
      
      if t.angle_bar==0 then
      
         --block for fg value
         local pat = create_pattern(t.fg_colour,t.fg_led,false)
         cairo_set_source(cr,pat)
         cairo_rectangle(cr,0,0,t.width,y1)
         cairo_fill(cr)
         cairo_pattern_destroy(pat)
      
         -- block for alarm value         
         if not t.smooth and y2 ~=nil then 
            pat = create_pattern(t.alarm_colour,t.alarm_led,false)
            cairo_set_source(cr,pat)
            cairo_rectangle(cr,0,y1,t.width,y2-y1)
            cairo_fill(cr)
            y3=y2
            cairo_pattern_destroy(pat)
         else
            y2,y3=y1,y1
         end
         -- block for bg value
         cairo_rectangle(cr,0,y2,t.width,-t.height-y3)
         pat = create_pattern(t.bg_colour,t.bg_led,true)
         cairo_set_source(cr,pat)
         cairo_pattern_destroy(pat)
         cairo_fill(cr)
      end      
   end  --end single bar
   





   local function draw_multi_bar()
      --function used for bars with 2 or more blocks
      for pt = 1,t.blocks do 
         --set block y
         local y1 = -(pt-1)*(t.height+t.space)
         local light_on=false
         
         --set colors
         local col_alp = t.bg_colour
         local col_led = t.bg_led
         if pct>=(100/t.blocks) or pct>0 then --ligth on or not the block
            if pct>=(pcb*(pt-1))  then 
               light_on = true
               col_alp = t.fg_colour
               col_led = t.fg_led
               if pct>=(100*t.alarm/t.max) and (pcb*pt)>(100*t.alarm/t.max) then 
                  col_alp = t.alarm_colour 
                  col_led = t.alarm_led 
               end
            end
         end

         --set colors
         --have to try to create gradients outside the loop ?
         local pat 
         
         if not t.smooth then
            if t.angle_bar==0 then
               if t.led_effect=="e" then
                  pat = create_led_linear_gradient (-delta, 0,delta+ t.width,0,col_alp,col_led)
               elseif t.led_effect=="a" then
                  pat = create_led_linear_gradient (t.width/2, -t.height/2+y1,t.width/2,0+t.height/2+y1,col_alp,col_led)               
               elseif  t.led_effect=="r" then
                  pat = create_led_radial_gradient (t.width/2, y1, 0, t.width/2,y1,t.width/1.5,col_alp,col_led,2)   
               else
                  pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(col_alp))
               end
            else
                if t.led_effect=="a"  then
                   pat = create_led_radial_gradient (0, 0, t.radius+(t.height+t.space)*(pt-1),
                                           0, 0, t.radius+(t.height+t.space)*(pt),                   
                                  col_alp,col_led,3)   
               else
                  pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(col_alp))               
               end
               
            end
         else
            
            if light_on then
               if t.angle_bar==0 then
                  pat = create_smooth_linear_gradient(t.width/2, t.height/2, t.width/2,-(t.blocks-0.5)*(t.height+t.space))
               else
                  pat = create_smooth_radial_gradient(0, 0, (t.height+t.space),  0,0,(t.blocks+1)*(t.height+t.space),2)
               end
            else      
               pat = cairo_pattern_create_rgba  (rgb_to_r_g_b(t.bg_colour))
            end
         end
         cairo_set_source (cr, pat)
         cairo_pattern_destroy(pat)

         --draw a block
         if t.angle_bar==0 then
            cairo_move_to(cr,0,y1)
            cairo_line_to(cr,t.width,y1)
         else      
            cairo_arc( cr,0,0,
               t.radius+(t.height+t.space)*(pt)-t.height/2,
                -t.angle_bar -math.pi/2 ,
                t.angle_bar -math.pi/2)
         end
         cairo_stroke(cr)
      end   
   end
   
   
   
   
   local function setup_bar_graph()
      --function used to retrieve the value to display and to set the cairo structure
      if t.blocks ~=1 then t.y=t.y-t.height/2 end
      
      local value = 0
      if t.name ~="" then
         value = tonumber(conky_parse(string.format('${%s %s}', t.name, t.arg)))
         --$to_bytes doesn't work when value has a decimal point,
         --https://garage.maemo.org/plugins/ggit/browse.php/?p=monky;a=commitdiff;h=174c256c81a027a2ea406f5f37dc036fac0a524b;hp=d75e2db5ed3fc788fb8514121f67316ac3e5f29f
         --http://sourceforge.net/tracker/index.php?func=detail&aid=3000865&group_id=143975&atid=757310
         --conky bug?
         --value = (conky_parse(string.format('${%s %s}', t.name, t.arg)))
         --if string.match(value,"%w") then
         --   value = conky_parse(string.format('${to_bytes %s}',value))
         --end
      else
         value = tonumber(t.arg)
      end

      if value==nil then value =0 end
      
      pct = 100*value/t.max
      pcb = 100/t.blocks
      
      cairo_set_line_width (cr, t.height)
      cairo_set_line_cap  (cr, cap)
      cairo_translate(cr,t.x,t.y)
      cairo_rotate(cr,t.angle)

      local matrix0 = cairo_matrix_t:create()
      tolua.takeownership(matrix0)
      cairo_matrix_init (matrix0, 1,t.skew_y,t.skew_x,1,0,0)
      cairo_transform(cr,matrix0)

   
      
      --call the drawing function for blocks
      if t.blocks==1 and t.angle_bar==0 then
         draw_single_bar()
         if t.reflection=="t" or t.reflection=="b" then cairo_translate(cr,0,-t.height) end
      else
         draw_multi_bar()
      end

      --dot for reminder
      --[[
      if t.blocks ~=1 then
         cairo_set_source_rgba(cr,1,0,0,1)
         cairo_arc(cr,0,t.height/2,3,0,2*math.pi)
         cairo_fill(cr)
      else
         cairo_set_source_rgba(cr,1,0,0,1)
         cairo_arc(cr,0,0,3,0,2*math.pi)
         cairo_fill(cr)
      end]]
      
      --call the drawing function for reflection and prepare the mask used      
      if t.reflection_alpha>0 and t.angle_bar==0 then
         local pat2
         local matrix1 = cairo_matrix_t:create()
         tolua.takeownership(matrix1)
         if t.angle_bar==0 then
            pts={-delta/2,(t.height+t.space)/2,t.width+delta,-(t.height+t.space)*(t.blocks)}
            if t.reflection=="t" then
               cairo_matrix_init (matrix1,1,0,0,-t.reflection_scale,0,-(t.height+t.space)*(t.blocks-0.5)*2*(t.reflection_scale+1)/2)
               pat2 = cairo_pattern_create_linear (t.width/2,-(t.height+t.space)*(t.blocks),t.width/2,(t.height+t.space)/2)
            elseif t.reflection=="r" then
               cairo_matrix_init (matrix1,-t.reflection_scale,0,0,1,delta+2*t.width,0)
               pat2 = cairo_pattern_create_linear (delta/2+t.width,0,-delta/2,0)
            elseif t.reflection=="l" then
               cairo_matrix_init (matrix1,-t.reflection_scale,0,0,1,-delta,0)
               pat2 = cairo_pattern_create_linear (-delta/2,0,delta/2+t.width,-0)
            else --bottom
               cairo_matrix_init (matrix1,1,0,0,-1*t.reflection_scale,0,(t.height+t.space)*(t.reflection_scale+1)/2)
               pat2 = cairo_pattern_create_linear (t.width/2,(t.height+t.space)/2,t.width/2,-(t.height+t.space)*(t.blocks))
            end
         end
         cairo_transform(cr,matrix1)

         if t.blocks==1 and t.angle_bar==0 then
            draw_single_bar()
            cairo_translate(cr,0,-t.height/2) 
         else
            draw_multi_bar()
         end
         
         
         cairo_set_line_width(cr,0.01)
         cairo_pattern_add_color_stop_rgba (pat2, 0,0,0,0,1-t.reflection_alpha)
         cairo_pattern_add_color_stop_rgba (pat2, t.reflection_length,0,0,0,1)
         if t.angle_bar==0 then
            cairo_rectangle(cr,pts[1],pts[2],pts[3],pts[4])
         end
         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)
         
      end --reflection
      pct,pcb=nil
   end --setup_bar_graph()
   
   --start here !
   setup_bar_graph()
   cairo_restore(cr)
end

conky_grey.lua

Code : Tout sélectionner

--==============================================================================
--                                 conky_grey.lua
--
--  author  : SLK
--  version : v2011062101
--  license : Distributed under the terms of GNU GPL version 2 or later
--
--==============================================================================

require 'cairo'

--------------------------------------------------------------------------------
--                                                                    clock DATA
-- HOURS
clock_h = {
    {
    name='time',                   arg='%H',                    max_value=12,
    x=90,                         y=80,
    graph_radius=57,
    graph_thickness=3,
    graph_unit_angle=30,           graph_unit_thickness=30,
    graph_bg_colour=0xffffff,      graph_bg_alpha=0.0,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.9,
    txt_radius=30,
    txt_weight=1,                  txt_size=12.0,
    txt_fg_colour=0xFFFFFF,        txt_fg_alpha=1.0,
    graduation_radius=53,
    graduation_thickness=6,        graduation_mark_thickness=2,
    graduation_unit_angle=30,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=1.0,
    },
}
-- MINUTES
clock_m = {
    {
    name='time',                   arg='%M',                    max_value=60,
    x=90,                         y=80,
    graph_radius=52,
    graph_thickness=2,
    graph_unit_angle=6,            graph_unit_thickness=6,
    graph_bg_colour=0xffffff,      graph_bg_alpha=0.0,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.9,
    txt_radius=70,
    txt_weight=1,                  txt_size=12.0,
    txt_fg_colour=0xfffffff,        txt_fg_alpha=1.9,
    graduation_radius=57,
    graduation_thickness=5,        graduation_mark_thickness=2,
    graduation_unit_angle=30,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=1.0,
    },
}
-- SECONDS
clock_s = {
    {
    name='time',                   arg='%S',                    max_value=60,
    x=90,                         y=80,
    graph_radius=49,
    graph_thickness=2,
    graph_unit_angle=6,            graph_unit_thickness=2,
    graph_bg_colour=0xffffff,      graph_bg_alpha=0.0,
    graph_fg_colour=0xFFFFFF,      graph_fg_alpha=1.0,
    txt_radius=40,
    txt_weight=0,                  txt_size=10.0,
    txt_fg_colour=0xFFFFFF,        txt_fg_alpha=0.7,
    graduation_radius=0,
    graduation_thickness=0,        graduation_mark_thickness=0,
    graduation_unit_angle=0,
    graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.0,
    },
}

-------------------------------------------------------------------------------
--                                                                 rgb_to_r_g_b
-- converts color in hexa to decimal
--
function rgb_to_r_g_b(colour, alpha)
    return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end

-------------------------------------------------------------------------------
--                                                            angle_to_position
-- convert degree to rad and rotate (0 degree is top/north)
--
function angle_to_position(start_angle, current_angle)
    local pos = current_angle + start_angle
    return ( ( pos * (2 * math.pi / 360) ) - (math.pi / 2) )
end

-------------------------------------------------------------------------------
--                                                              draw_clock_ring
-- displays clock
--
function draw_clock_ring(display, data, value)
    local max_value = data['max_value']
    local x, y = data['x'], data['y']
    local graph_radius = data['graph_radius']
    local graph_thickness, graph_unit_thickness = data['graph_thickness'], data['graph_unit_thickness']
    local graph_unit_angle = data['graph_unit_angle']
    local graph_bg_colour, graph_bg_alpha = data['graph_bg_colour'], data['graph_bg_alpha']
    local graph_fg_colour, graph_fg_alpha = data['graph_fg_colour'], data['graph_fg_alpha']

    -- background ring
    cairo_arc(display, x, y, graph_radius, 0, 2 * math.pi)
    cairo_set_source_rgba(display, rgb_to_r_g_b(graph_bg_colour, graph_bg_alpha))
    cairo_set_line_width(display, graph_thickness)
    cairo_stroke(display)

    -- arc of value
    local val = (value % max_value)
    local i = 1
    while i <= val do
        cairo_arc(display, x, y, graph_radius,(  ((graph_unit_angle * i) - graph_unit_thickness)*(2*math.pi/360)  )-(math.pi/2),((graph_unit_angle * i) * (2*math.pi/360))-(math.pi/2))
        cairo_set_source_rgba(display,rgb_to_r_g_b(graph_fg_colour,graph_fg_alpha))
        cairo_stroke(display)
        i = i + 1
    end
    local angle = (graph_unit_angle * i) - graph_unit_thickness

    -- graduations marks
    local graduation_radius = data['graduation_radius']
    local graduation_thickness, graduation_mark_thickness = data['graduation_thickness'], data['graduation_mark_thickness']
    local graduation_unit_angle = data['graduation_unit_angle']
    local graduation_fg_colour, graduation_fg_alpha = data['graduation_fg_colour'], data['graduation_fg_alpha']
    if graduation_radius > 0 and graduation_thickness > 0 and graduation_unit_angle > 0 then
        local nb_graduation = 360 / graduation_unit_angle
        local i = 1
        while i <= nb_graduation do
            cairo_set_line_width(display, graduation_thickness)
            cairo_arc(display, x, y, graduation_radius, (((graduation_unit_angle * i)-(graduation_mark_thickness/2))*(2*math.pi/360))-(math.pi/2),(((graduation_unit_angle * i)+(graduation_mark_thickness/2))*(2*math.pi/360))-(math.pi/2))
            cairo_set_source_rgba(display,rgb_to_r_g_b(graduation_fg_colour,graduation_fg_alpha))
            cairo_stroke(display)
            cairo_set_line_width(display, graph_thickness)
            i = i + 1
        end
    end

    -- text
    local txt_radius = data['txt_radius']
    local txt_weight, txt_size = data['txt_weight'], data['txt_size']
    local txt_fg_colour, txt_fg_alpha = data['txt_fg_colour'], data['txt_fg_alpha']
    local movex = txt_radius * (math.cos((angle * 2 * math.pi / 360)-(math.pi/2)))
    local movey = txt_radius * (math.sin((angle * 2 * math.pi / 360)-(math.pi/2)))
    cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, txt_weight);
    cairo_set_font_size (display, txt_size);
    cairo_set_source_rgba (display, rgb_to_r_g_b(txt_fg_colour, txt_fg_alpha));
    cairo_move_to (display, x + movex - (txt_size / 2), y + movey + 3);
    cairo_show_text (display, value);
    cairo_stroke (display);
end

-------------------------------------------------------------------------------
--                                                              draw_gauge_ring
-- displays gauges
--
function draw_gauge_ring(display, data, value)
    local max_value = data['max_value']
    local x, y = data['x'], data['y']
    local graph_radius = data['graph_radius']
    local graph_thickness, graph_unit_thickness = data['graph_thickness'], data['graph_unit_thickness']
    local graph_start_angle = data['graph_start_angle']
    local graph_unit_angle = data['graph_unit_angle']
    local graph_bg_colour, graph_bg_alpha = data['graph_bg_colour'], data['graph_bg_alpha']
    local graph_fg_colour, graph_fg_alpha = data['graph_fg_colour'], data['graph_fg_alpha']
    local hand_fg_colour, hand_fg_alpha = data['hand_fg_colour'], data['hand_fg_alpha']
    local graph_end_angle = (max_value * graph_unit_angle) % 360

    -- background ring
    cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, 0), angle_to_position(graph_start_angle, graph_end_angle))
    cairo_set_source_rgba(display, rgb_to_r_g_b(graph_bg_colour, graph_bg_alpha))
    cairo_set_line_width(display, graph_thickness)
    cairo_stroke(display)

    -- arc of value
    local val = value % (max_value + 1)
    local start_arc = 0
    local stop_arc = 0
    local i = 1
    while i <= val do
        start_arc = (graph_unit_angle * i) - graph_unit_thickness
        stop_arc = (graph_unit_angle * i)
        cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
        cairo_set_source_rgba(display, rgb_to_r_g_b(graph_fg_colour, graph_fg_alpha))
        cairo_stroke(display)
        i = i + 1
    end
    local angle = start_arc

    -- hand
    start_arc = (graph_unit_angle * val) - (graph_unit_thickness * 2)
    stop_arc = (graph_unit_angle * val)
    cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
    cairo_set_source_rgba(display, rgb_to_r_g_b(hand_fg_colour, hand_fg_alpha))
    cairo_stroke(display)

    -- graduations marks
    local graduation_radius = data['graduation_radius']
    local graduation_thickness, graduation_mark_thickness = data['graduation_thickness'], data['graduation_mark_thickness']
    local graduation_unit_angle = data['graduation_unit_angle']
    local graduation_fg_colour, graduation_fg_alpha = data['graduation_fg_colour'], data['graduation_fg_alpha']
    if graduation_radius > 0 and graduation_thickness > 0 and graduation_unit_angle > 0 then
        local nb_graduation = graph_end_angle / graduation_unit_angle
        local i = 0
        while i < nb_graduation do
            cairo_set_line_width(display, graduation_thickness)
            start_arc = (graduation_unit_angle * i) - (graduation_mark_thickness / 2)
            stop_arc = (graduation_unit_angle * i) + (graduation_mark_thickness / 2)
            cairo_arc(display, x, y, graduation_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
            cairo_set_source_rgba(display,rgb_to_r_g_b(graduation_fg_colour,graduation_fg_alpha))
            cairo_stroke(display)
            cairo_set_line_width(display, graph_thickness)
            i = i + 1
        end
    end

    -- text
    local txt_radius = data['txt_radius']
    local txt_weight, txt_size = data['txt_weight'], data['txt_size']
    local txt_fg_colour, txt_fg_alpha = data['txt_fg_colour'], data['txt_fg_alpha']
    local movex = txt_radius * math.cos(angle_to_position(graph_start_angle, angle))
    local movey = txt_radius * math.sin(angle_to_position(graph_start_angle, angle))
    cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, txt_weight)
    cairo_set_font_size (display, txt_size)
    cairo_set_source_rgba (display, rgb_to_r_g_b(txt_fg_colour, txt_fg_alpha))
    cairo_move_to (display, x + movex - (txt_size / 2), y + movey + 3)
    cairo_show_text (display, value)
    cairo_stroke (display)

    -- caption
    local caption = data['caption']
    local caption_weight, caption_size = data['caption_weight'], data['caption_size']
    local caption_fg_colour, caption_fg_alpha = data['caption_fg_colour'], data['caption_fg_alpha']
    local tox = graph_radius * (math.cos((graph_start_angle * 2 * math.pi / 360)-(math.pi/2)))
    local toy = graph_radius * (math.sin((graph_start_angle * 2 * math.pi / 360)-(math.pi/2)))
    cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, caption_weight);
    cairo_set_font_size (display, caption_size)
    cairo_set_source_rgba (display, rgb_to_r_g_b(caption_fg_colour, caption_fg_alpha))
    cairo_move_to (display, x + tox + 5, y + toy + 1)
    -- bad hack but not enough time !
    if graph_start_angle < 105 then
        cairo_move_to (display, x + tox - 30, y + toy + 1)
    end
    cairo_show_text (display, caption)
    cairo_stroke (display)
end

-------------------------------------------------------------------------------
--                                                               go_clock_rings
-- loads data and displays clock
--
function go_clock_rings(display)
    local function load_clock_rings(display, data)
        local str, value = '', 0
        str = string.format('${%s %s}',data['name'], data['arg'])
        str = conky_parse(str)
        value = tonumber(str)
        draw_clock_ring(display, data, value)
    end
    
    for i in pairs(clock_h) do
        load_clock_rings(display, clock_h[i])
    end
    for i in pairs(clock_m) do
        load_clock_rings(display, clock_m[i])
    end
    for i in pairs(clock_s) do
        load_clock_rings(display, clock_s[i])
    end
end

-------------------------------------------------------------------------------
--                                                               go_gauge_rings
-- loads data and displays gauges
--
function go_gauge_rings(display)
    local function load_gauge_rings(display, data)
        local str, value = '', 0
        str = string.format('${%s %s}',data['name'], data['arg'])
        str = conky_parse(str)
        value = tonumber(str)
        draw_gauge_ring(display, data, value)
    end
    
    for i in pairs(gauge) do
        load_gauge_rings(display, gauge[i])
    end
end

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

    local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)
    local display = cairo_create(cs)
    
    local updates = conky_parse('${updates}')
    update_num = tonumber(updates)
    
    if update_num > 5 then
        go_clock_rings(display)
        go_gauge_rings(display)
    end
    
    cairo_surface_destroy(cs)
    cairo_destroy(display)
end

le .conkyrc

Code : Tout sélectionner

alignment tl
background no
border_width 1
cpu_avg_samples 2
default_color white
default_outline_color white
default_shade_color white
double_buffer yes
draw_borders no
draw_graph_borders yes
draw_outline no
draw_shades no
gap_x 10
gap_y 10
minimum_size 50 50
net_avg_samples 2
out_to_console no
out_to_stderr no
extra_newline no
own_window_transparent yes
own_window yes
own_window_type normal
own_window_title conky
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
stippled_borders 0
show_graph_scale no
show_graph_range no
update_interval 1.0
uppercase no
use_spacer none
use_xft yes
text_buffer_size 2048
xftfont DejaVu:size=9
#lua_load ~/.conky/bargraphe.lua <=== je suis obligé de decommenter ces deux ligne pour faire fonctionner conky_grey.lua 
#lua_draw_hook_post main_bars  <=== 
lua_load ~/.conky/conky_grey.lua     <=== et inversement si je veux faire fonctioner bargraphe.lua
lua_draw_hook_post main               <====

TEXT

${offset 40}${voffset 130}
${font SF Square Head:size=10}Ordinateur${font} ${hr 2} 
  ${voffset -4}${font DejaVu:size=7}Systeme${font}
  ${offset 50}${voffset -17}:
  ${font DejaVu:size=7}${offset 100}${voffset -15}Archlinux${font}
  ${voffset -8}${font DejaVu:size=7}Kernel${font}
  ${offset 50}${voffset -17}:
  ${font DejaVu:size=7}${offset 100}${voffset -15}$kernel${font}
  ${voffset -8}${font DejaVu:size=7}Temps${font}
  ${offset 50}${voffset -17}:
  ${font DejaVu:size=7}${offset 100}${voffset -15}$uptime${font}
${font SF Square Head:size=10}${voffset -5}Systeme${font} ${hr 1} 
  ${font DejaVu:size=7}${voffset -2}Core 1
  ${offset 45}${voffset -12}:
  ${offset 52}${voffset -11}${cpu cpu1}${font}
  ${offset 70}${voffset -17}%
  ${font DejaVu:size=7}${voffset -5}Core 2
  ${offset 45}${voffset -12}:
  ${offset 52}${voffset -11}${cpu cpu2}${font}
  ${offset 70}${voffset -17}%
  ${font DejaVu:size=7}${voffset -5}Core 3
  ${offset 45}${voffset -12}:
  ${offset 52}${voffset -11}${cpu cpu3}${font}
  ${offset 70}${voffset -17}%
  ${font DejaVu:size=7}${voffset -5}Core 4
  ${offset 45}${voffset -12}:
  ${offset 52}${voffset -11}${cpu cpu4}${font}
  ${offset 70}${voffset -17}%
  ${font DejaVu:size=7}${voffset -5}Core 5
  ${offset 45}${voffset -12}:
  ${offset 52}${voffset -11}${cpu cpu5}${font}
  ${offset 70}${voffset -17}%
  ${font DejaVu:size=7}${voffset -5}Core 6
  ${offset 45}${voffset -12}:
  ${offset 52}${voffset -11}${cpu cpu6}${font}
  ${offset 70}${voffset -17}%
  ${font DejaVu:size=7}${voffset -5}Core 7
  ${offset 45}${voffset -12}:
  ${offset 52}${voffset -11}${cpu cpu7}${font}
  ${offset 70}${voffset -17}%
  ${font DejaVu:size=7}${voffset -5}Core 8
  ${offset 45}${voffset -12}:
  ${offset 52}${voffset -11}${cpu cpu8}${font}
  ${offset 70}${voffset -17}%
${font SF Square Head:size=10}${voffset -2}Disque Dur${font} ${hr 2} 
  ${voffset -4}${font DejaVu:size=7}Systeme
  ${offset 100}${voffset -12}Home
  ${fs_used /}/${fs_size /}
  ${offset 100}${voffset -12}${fs_used /home}/${fs_size /home}
#${offset 100}${voffset -10}${font}
#${font DejaVu:size=7}${voffset -7}Disque externe
#${offset 2}${fs_free /run/media/moi/DDexterne}/${fs_size /run/media/moi/DDexterne}
#${offset 3}${font}
${font SF Square Head:size=10}${voffset 5}Memoire${font} ${hr 2}
  ${font DejaVu:size=7}${voffset -5}
  ${voffset -10}${mem} / ${memmax}
#${offset 100}${voffset -10}${font}
#${font DejaVu:size=7}${voffset -7}Disque externe
#${offset 2}${fs_free /run/media/moi/DDexterne}/${fs_size /run/media/moi/DDexterne}
#${offset 3}${font}
${voffset 7}${font SF Square Head:size=10}Resaux${font} ${hr 2} 
  ${voffset -5}${font DejaVu:size=7} Down
  ${offset 35}${voffset -11}:
  ${offset 44}${voffset -12}${downspeed lo}
  ${offset 80}${voffset -12}/s
  Upload
  ${offset 37}${voffset -11}:
  ${offset 44}${voffset -12}${upspeed lo}
  ${offset 80}${voffset -12}/s${font}
${voffset -3}${font SF Square Head:size=10}Mise a jour${font} ${hr 2}
  ${voffset -2}${offset 30}${font DejaVu:size=7}mise a jour de disponible 
  ${offset 15}${voffset -12}${execpi 600 yaourt -Sya --logfile /dev/null > /dev/null; yaourt -Qu | wc -l}
${hr 2}

tout le probleme est la, je n'arrive pas a mettre les deux ensemble conky_grey.lua et bargraphe.lua
Dernière modification par banditblue le mar. 17 mars 2020, 17:30, modifié 1 fois.
La connaîssance n'a pas de limite.
Mais sa valeur, est d'autant plus grande, une fois partagé


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

Screenshot + Les Conky ===> http://forums.archlinux.fr/post85405.html#p85405
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17187
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [LUA] comment executer un script Lua ? (en cours)

Message par benjarobin »

Bonjour,
Avec ta méthode cela n'a jamais été possible. Je te conseil la 2ième solution proposée ici : http://u-scripts.blogspot.com/2011/02/h ... conky.html
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
banditblue
Elfe
Messages : 591
Inscription : dim. 10 janv. 2010, 10:19

Re: [LUA] comment executer un script Lua ? (en cours)

Message par banditblue »

tres instructif mais je ne comprend rien a ce qu'il faut faire
La connaîssance n'a pas de limite.
Mais sa valeur, est d'autant plus grande, une fois partagé


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

Screenshot + Les Conky ===> http://forums.archlinux.fr/post85405.html#p85405
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17187
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [LUA] comment executer un script Lua ? (en cours)

Message par benjarobin »

En gros tu dois créer un fichier lua qui appelle les 2 autres fonctions lua.
Et au final lua_load charge ce fichier lua que tu auras créé, et lua_draw_hook_post appelera la fonction lua que tu auras ajouté dans ce fichier
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
banditblue
Elfe
Messages : 591
Inscription : dim. 10 janv. 2010, 10:19

Re: [LUA] comment executer un script Lua ? (en cours)

Message par banditblue »

d'aprés ce que j'ai compris il me faut créer un fichier nommé script A.lua puis un second lui aussi scriptB.lua
ensuite d'en créer un troisieme qui s’appelerai loadAll.lua

ce que j'ai dans scriptA

Code : Tout sélectionner

lua_load /home/moi/.conky/lua/bargraphe.lua
lua_draw_hook_pre main-bars
ce que j'ai dans scriptB

Code : Tout sélectionner

lua_load /home/wlourf/lua/conky_grey.lua
lua_draw_hook_post functionB
ce que j'ai dans loadAll

Code : Tout sélectionner

package.path = "/home/moi/.conky/lua/"
require 'scriptA' --for scriptA.lua ".lua" is not required here
require 'scriptB'

function conky_main()
     conky_functionA()
     conky_functionB()
end


avec tout ca il me faut ecrire les ligne suivante dans le conky de la maniere suivante

Code : Tout sélectionner

lua_load /home/moi/.conky/lua/loadAll.lua
lua_draw_hook_pre main
j'ai beau faire plein d'essais mais ca ne fonctionne pas
je pige quedale :? :? :?
La connaîssance n'a pas de limite.
Mais sa valeur, est d'autant plus grande, une fois partagé


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

Screenshot + Les Conky ===> http://forums.archlinux.fr/post85405.html#p85405
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17187
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [LUA] comment executer un script Lua ? (en cours)

Message par benjarobin »

En supposant que tous les fichiers lua soit dans "/home/moi/.conky/"

Tu dois juste créer un fichier loadAll.lua dans ce dossier avec ce contenu :

Code : Tout sélectionner

package.path = "/home/moi/.conky/"
require 'bargraphe'
require 'conky_grey'

function conky_main_all()
     conky_main_bars()
     conky_main()
end
Et dans ton conkyrc :

Code : Tout sélectionner

lua_load ~/.conky/loadAll.lua
lua_draw_hook_post main_all
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
banditblue
Elfe
Messages : 591
Inscription : dim. 10 janv. 2010, 10:19

Re: [LUA] comment executer un script Lua ? (en cours)

Message par banditblue »

j'ai reussi a faire ce que je voulais mais sans utiliser les script lua
je ne comprend pas comment faire executer deux script
pas grave j'apprendrais dans le temps

en créant deux fichier .conkyrc et .conkyrc1

.conkyrc

Code : Tout sélectionner

alignment tr
background no
border_width 1
cpu_avg_samples 2
default_color white
default_outline_color white
default_shade_color white
double_buffer yes
draw_borders no
draw_graph_borders yes
draw_outline no
draw_shades no
gap_x 10
gap_y 385
minimum_size 5 5
net_avg_samples 2
out_to_console no
out_to_stderr no
extra_newline no
own_window_transparent no
own_window yes
own_window_type normal
own_window_title conky
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
stippled_borders 0
show_graph_scale no
show_graph_range no
update_interval 1.0
uppercase no
use_spacer none
use_xft yes
text_buffer_size 2048
xftfont DejaVu:size=9
lua_load /home/moi/.conky/lua/bargraphe.lua
lua_draw_hook_pre main_bars

TEXT

${offset 40}${voffset -35}
${font SF Square Head:size=10}Ordinateur${font} ${hr 2} 
  ${voffset -4}${font DejaVu:size=7}Systeme${font}
  ${offset 50}${voffset -17}:
  ${font DejaVu:size=7}${offset 100}${voffset -15}Archlinux${font}
  ${voffset -8}${font DejaVu:size=7}Kernel${font}
  ${offset 50}${voffset -17}:
  ${font DejaVu:size=7}${offset 100}${voffset -15}$kernel${font}
  ${voffset -8}${font DejaVu:size=7}Temps${font}
  ${offset 50}${voffset -17}:
  ${font DejaVu:size=7}${offset 100}${voffset -15}$uptime${font}
${font SF Square Head:size=10}${voffset -5}Systeme${font} ${hr 1} 
  ${font DejaVu:size=7}${voffset -2}Core 1
  ${offset 45}${voffset -12}:
  ${offset 52}${voffset -11}${cpu cpu1}${font}
  ${offset 70}${voffset -17}%
  ${font DejaVu:size=7}${voffset -5}Core 2
  ${offset 45}${voffset -12}:
  ${offset 52}${voffset -11}${cpu cpu2}${font}
  ${offset 70}${voffset -17}%
  ${font DejaVu:size=7}${voffset -5}Core 3
  ${offset 45}${voffset -12}:
  ${offset 52}${voffset -11}${cpu cpu3}${font}
  ${offset 70}${voffset -17}%
  ${font DejaVu:size=7}${voffset -5}Core 4
  ${offset 45}${voffset -12}:
  ${offset 52}${voffset -11}${cpu cpu4}${font}
  ${offset 70}${voffset -17}%
  ${font DejaVu:size=7}${voffset -5}Core 5
  ${offset 45}${voffset -12}:
  ${offset 52}${voffset -11}${cpu cpu5}${font}
  ${offset 70}${voffset -17}%
  ${font DejaVu:size=7}${voffset -5}Core 6
  ${offset 45}${voffset -12}:
  ${offset 52}${voffset -11}${cpu cpu6}${font}
  ${offset 70}${voffset -17}%
  ${font DejaVu:size=7}${voffset -5}Core 7
  ${offset 45}${voffset -12}:
  ${offset 52}${voffset -11}${cpu cpu7}${font}
  ${offset 70}${voffset -17}%
  ${font DejaVu:size=7}${voffset -5}Core 8
  ${offset 45}${voffset -12}:
  ${offset 52}${voffset -11}${cpu cpu8}${font}
  ${offset 70}${voffset -17}%
${font SF Square Head:size=10}${voffset -2}Disque Dur${font} ${hr 2} 
  ${voffset -4}${font DejaVu:size=7}Systeme
  ${offset 100}${voffset -12}Home
  ${fs_used /}/${fs_size /}
  ${offset 100}${voffset -12}${fs_used /home}/${fs_size /home}
#${offset 100}${voffset -10}${font}
#${font DejaVu:size=7}${voffset -7}Disque externe
#${offset 2}${fs_free /run/media/moi/DDexterne}/${fs_size /run/media/moi/DDexterne}
#${offset 3}${font}
${font SF Square Head:size=10}${voffset 5}Memoire${font} ${hr 2}
  ${font DejaVu:size=7}${voffset -5}
  ${voffset -10}${mem} / ${memmax}
#${offset 100}${voffset -10}${font}
#${font DejaVu:size=7}${voffset -7}Disque externe
#${offset 2}${fs_free /run/media/moi/DDexterne}/${fs_size /run/media/moi/DDexterne}
#${offset 3}${font}
${voffset 7}${font SF Square Head:size=10}Resaux${font} ${hr 2} 
  ${voffset -5}${font DejaVu:size=7} Down
  ${offset 35}${voffset -11}:
  ${offset 44}${voffset -12}${downspeed lo}
  ${offset 80}${voffset -12}/s
  Upload
  ${offset 37}${voffset -11}:
  ${offset 44}${voffset -12}${upspeed lo}
  ${offset 80}${voffset -12}/s${font}
${voffset -3}${font SF Square Head:size=10}Mise a jour${font} ${hr 2}
  ${voffset -2}${offset 30}${font DejaVu:size=7}mise a jour de disponible 
  ${offset 15}${voffset -12}${execpi 600 yaourt -Sya --logfile /dev/null > /dev/null; yaourt -Qu | wc -l}
${hr 2}
le .conkyrc1 (idem au premier mais sans commentaire apres TEXT)

Code : Tout sélectionner

alignment tr
background no
border_width 1
cpu_avg_samples 2
default_color white
default_outline_color white
default_shade_color white
double_buffer yes
draw_borders no
draw_graph_borders yes
draw_outline no
draw_shades no
gap_x 30
gap_y 15
minimum_size 150 150
net_avg_samples 2
out_to_console no
out_to_stderr no
extra_newline no
own_window_transparent yes
own_window yes
own_window_type normal
own_window_title conky
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
stippled_borders 0
show_graph_scale no
show_graph_range no
update_interval 1.0
uppercase no
use_spacer none
use_xft yes
text_buffer_size 2048
xftfont DejaVu:size=9
lua_load /home/moi/.conky/lua/conky_grey.lua
lua_draw_hook_pre main

TEXT
et l'executable dans ~/.config/openbox/autostart.sh

Code : Tout sélectionner

#
# These things are run when an Openbox X Session is started.
# You may place a similar script in $HOME/.config/openbox/autostart
# to run user-specific things.
#

# If you want to use GNOME config tools...
#
#if test -x /usr/lib/openbox/gnome-settings-daemon >/dev/null; then
#  /usr/lib/openbox/gnome-settings-daemon &
#elif which gnome-settings-daemon >/dev/null 2>&1; then
#  gnome-settings-daemon &
#fi

# If you want to use XFCE config tools...
#
#xfce-mcs-manager &


numlockx on &
#fond d'écran 
/home/moi/.config/openbox/Diapo/Script_diapo.sh &
fbpanel &
#tint2 &
#conky -c /home/moi/.conky/.conkyrc &
conky -c /home/moi/.conky/.conkyrc1 &
La connaîssance n'a pas de limite.
Mais sa valeur, est d'autant plus grande, une fois partagé


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

Screenshot + Les Conky ===> http://forums.archlinux.fr/post85405.html#p85405
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17187
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [LUA] comment executer un script Lua ? (contourné)

Message par benjarobin »

Je t'ai pourtant expliqué...
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Répondre