Page 1830 of 2343 FirstFirst ... 8301330173017801820182818291830183118321840188019302330 ... LastLast
Results 18,291 to 18,300 of 23425

Thread: Post your .conkyrc files w/ screenshots

  1. #18291
    Join Date
    Nov 2010
    Beans
    1

    Re: Post your .conkyrc files w/ screenshots

    my conky...
    Attached Images Attached Images

  2. #18292
    Join Date
    May 2009
    Beans
    0

    Re: Post your .conkyrc files w/ screenshots

    A day latter, and lots of time figuring out the syntax... this is what my final CONKY looks like.

    Thanks to VinDSL for sharing his .lau file.



    Uploaded with ImageShack.us
    Last edited by finish.06; July 4th, 2011 at 03:13 AM. Reason: Unable to figure out how to post photo properly. :/

  3. #18293
    Join Date
    Nov 2010
    Beans
    1

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by vladakru View Post
    my conky...
    conkyrc
    Code:
    ##################################
    ## VinDSL | rev. 11-06-11 18:30 ##
    ##################################
    ##        May 2011 Series       ##
    ##################################
    
    ## ¡PLEASE READ THE FINE PRINT! ##
    
    ####
    ## Development Platforms (currently)
    #
    #  Ubuntu 10.10 'Maverick Meerkat' (GNOME2)
    #  Ubuntu 11.10 'Oneiric Ocelot'   (UNITY)
    #  Screen Resolution: 1280x1024    (DELL)
    
    ####
    ## Prerequisites (required)
    #
    #  conky-all 1.8.0 or 1.8.1
    #  conkyForecast 2.16 or newer 
    #  Weather.com XML Data Feed (XOAP)
    #  UTF-8 Compatible Text Editor
    
    ####
    ## Installed fonts (required)
    #
    #  ConkyWeather (Stanko Metodiev)
    #  ConkyWindNESW (Stanko Metodiev)
    #  Cut Outs for 3D FX (Fonts & Things)
    #  Droid Font Family (Google Android SDK)
    #  KR A Round (Kat's Fun Fonts)
    #  Moon Phases (Curtis Clark)
    #  OpenLogos (Icoma)
    #  PizzaDude Bullets (Jakob Fischer)
    #  Radio Space (Iconian Fonts)
    #  StyleBats (Vinterstille)
    #  Ubuntu Font Family (Canonical Ltd)
    #  Ubuntu Title Bold (Paulo Silva)
    #  Weather (Jonathan Macagba)
    # 
    ## Tips n' Tricks from Mr. Peachy, djyoung4, and 42dorian (Thanks!)
    ## All necessary fonts can be downloaded here: http://ompldr.org/vOHdoag
    ## Unzip the fonts into your font folder, for example: /home/username/.fonts
    ## Run this command in a terminal (rebuilds font cache file): sudo fc-cache -fv
    
    ####
    ## Use XFT? Required to Force UTF8 (see below)
    #
    use_xft yes
    xftfont DroidSans:size=8.75
    xftalpha 0.1
    
    ####
    ## Force UTF8? Requires XFT (see above)
    ## Displays degree symbol, instead of °, etc.
    #
    override_utf8_locale yes
    
    ####
    ## This buffer is used for text, single lines, output from $exec, and other variables.
    ## Increasing the text buffer size (too high) will drastically reduce Conky's performance.
    ## Decreasing the size (too low) will truncate content and cause strange display output.
    ## Standard text buffer size is 256 bytes (cannot be less). Adjust YOUR buffer wisely!
    #
    text_buffer_size 640
    
    ####
    ## Daemonize Conky, aka 'fork to background'.
    #
    background yes
    
    ####
    ## Update interval in seconds.
    #
    update_interval 1
    
    ####
    ## The number of times Conky will update before quitting.
    ## Zero makes Conky run forever.
    #
    total_run_times 0
    
    ####
    ## Create own window instead of using desktop?
    #
    own_window yes
    own_window_type override
    own_window_transparent yes
    
    ####
    ## Force images to redraw when they change.
    #
    imlib_cache_size 0
    
    ####
    ## Use double buffering? Reduces flicker.
    #
    double_buffer yes
    
    ####
    ## Draw shades?
    #
    draw_shades no
    
    ####
    ## Draw outlines?
    #
    draw_outline no
    
    ####
    ## Draw borders around text?
    #
    draw_borders no
    
    ####
    ## Draw borders around graphs?
    #
    draw_graph_borders no
    
    ####
    ## Print text to stdout?
    ## Print text in console?
    #
    out_to_ncurses no
    out_to_console no
    
    ####
    ## Text alignment.
    #
    alignment top_right
    
    ####
    ## Minimum size of text area.
    #
    minimum_size 240 0
    
    ####
    ## Gap between text and screen borders.
    #
    gap_x 6      ## Left / Right
    gap_y 32  ## Top / Bottom
    
    ####
    ## Shorten MiB/GiB to M/G in stats.
    #
    short_units yes
    
    ####
    ## Pad % symbol spacing after numbers.
    #
    pad_percents 0
    
    ####
    ## Pad spacing between text and borders.
    #
    border_inner_margin 4
    
    ####
    ## Limit the length of names in "Top Processes".
    #
    top_name_width 10
    
    ####
    ## Subtract file system -/+buffers/cache from used memory?
    ## Set to yes, to produce meaningful physical memory stats.
    #
    no_buffers yes
    
    ####
    ## Set to yes, if you want all text to be in UPPERCASE.
    #
    uppercase no
    
    ####
    ## Number of cpu samples to average.
    ## Set to 1 to disable averaging.
    #
    cpu_avg_samples 2
    
    ####
    ## Number of net samples to average.
    ## Set to 1 to disable averaging.
    #
    net_avg_samples 2
    
    ####
    ## Add spaces to keep things from moving around?
    ## Only affects certain objects.
    #
    use_spacer right
    
    ####
    ## My colors (suit yourself)
    #
    color0 White        #FFFFFF
    color1 Ivory        #FFFFF0
    color2 Ivory2        #EEEEE0
    color3 Ivory3        #CDCDC1
    color4 Tan1        #FFA54F
    color5 Tan2        #EE9A49
    color6 Gray        #7E7E7E
    color7 AntiqueWhite4    #8B8378
    color8 DimGray        #696969
    color9 Tomato        #FF6347
    
    #####
    ## Load Lua for shading (optional)
    ## Set the path to your script here.
    #
    #lua_load ~/.conky/lua/draw_bg.lua 
    #lua_draw_hook_pre draw_bg
    
    ####
    ## Load Lua for bargraphs (required)
    ## Set the path to your script here.
    #
    #lua_load ~/.conky/lua/bargraph_small.lua
    #lua_draw_hook_post main_bars
    
    #### Load Lua for Rings
    #lua_load ~/.conky/lua/rings.lua
    #lua_draw_hook_post main_rings
    
    #### Load lua all scripts in lua folder "~" nije dozvoljeno
    lua_load /root/.conky/loadAll.lua
    lua_draw_hook_post main
    
    
    TEXT
    ##################################
    ##             LOGO             ##
    ##################################
    ## Uncomment for hard-coded ID (static)
    #${voffset -33}${font OpenLogos:size=103}${color2}v${font}${voffset -77}${goto 179}${font UbuntuTitleBold:size=19.8}${color4}1${offset 4}1${offset 1}.${offset 1}1${offset 1}0${font}
    ####
    ## Uncomment for soft-coded ID (dynamic)
    # ${voffset -33}${font OpenLogos:size=103}${color2}v${font}${voffset -77}${goto 179}${font UbuntuTitleBold:size=19.8}${color4}${pre_exec cat /etc/*release | grep 'RELEASE' | awk -F'=' '{print $2}'}${font}
    ##################################
    ##            SYSTEM            ##
    ##################################
    ${voffset 20}${font Radio Space Italic:bold:size=8.25}${color4}SYSTEM${offset 8}${color8}${voffset -2}${hr 2}${font}
    #${voffset 4}${font OpenLogos:size=10}${color2}u${voffset -4}${font DroidSans:size=8.65}${color3}${offset 5}${pre_exec lsb_release -sd || cat /etc/*release}${font}
    ${voffset 1}${offset -2}${font OpenLogos:size=12}${color2}u${voffset -4}${font DroidSans:size=8.65}${color3}${offset 4}${sysname}${offset 5}${kernel}${alignr}${font DroidSans:size=8.45}${machine}${font}
    ${voffset 2}${font StyleBats:size=10}${color2}A${voffset -1}${font DroidSans:size=8.65}${color3}${offset 5}Intel${offset 3}P4${offset 3}${offset 3}${alignr}${font DroidSans:size=8.3}${freq_g cpu0}${offset 1}GHz${font}
    ${voffset 2}${font StyleBats:size=10}${color2}q${voffset -1}${font DroidSans:size=8.65}${color3}${offset 5}System${offset 3}Uptime${alignr}${font DroidSans:size=8.4}${uptime_short}${font}
    ##################################
    ##          PROCESSORS          ##
    ##################################
    ${voffset 6}${font Radio Space Italic:bold:size=8}${color4}PROCESSOR${offset 8}${color8}${voffset -2}${hr 2}${font}
    ${voffset 4}${font StyleBats:size=9.9}${color2}${voffset -2}${font DroidSansFallback:size=8.39}${color3}${offset 99}${voffset 30}CPU Load${offset -32}${voffset 12}${font DroidSans:size=8.5}${cpu cpu0}%${font}
    ${color3}${offset 112}${voffset 5}${font DroidSans:size=7}Temp:
    ${color3}${offset 111}${voffset -2}${font DroidSans:size=8.5}${hwmon 0 temp 1}°C
    #${voffset 2}${font StyleBats:size=9.9}${color2}k${voffset -2}${font DroidSansFallback:size=8.39}${color3}${offset 2}CPU2${offset 5}${font DroidSans:size=8.3}${cpu cpu2}%${font}
    
    ##################################
    ##            MEMORY            ##
    ##################################
    ${voffset 6}${font Radio Space Italic:bold:size=8}${color4}MEMORY${offset 8}${color8}${voffset -2}${hr 2}${font}
    ${voffset 4}${font StyleBats:size=10}${color2}l${voffset -2}${font DroidSansFallback:size=8.3}${color3}${offset 3}RAM${goto 97}${font DroidSans:size=8.3}${mem}${goto 133}/${offset 5}${memmax}${alignr}${memperc}%${font}
    ##################################
    ##             HDD              ##
    ##################################
    ${voffset 16}${font Radio Space Italic:bold:size=8}${color4}HDD${offset 8}${color8}${voffset -2}${hr 2}${font}
    ${voffset 5}${font StyleBats:size=9.9}${color2}x${voffset -2}${font DroidSansFallback:size=8.3}${color3}${offset 4}ROOT${goto 95}${font DroidSans:size=8.3}${fs_used /}${goto 133}/${offset 5}${fs_size /}${alignr}${fs_free_perc /}%${font}
    ${voffset 15}${font StyleBats:size=9.9}${color2}x${voffset -2}${font DroidSansFallback:size=8.3}${color3}${offset 4}HOME${goto 95}${font DroidSans:size=8.3}${fs_used /home}${goto 133}/${offset 5}${fs_size /home}${alignr}${fs_free_perc /home}%${font}
    ${voffset 15}${font StyleBats:size=9.9}${color2}4${voffset -2}${font DroidSansFallback:size=8.3}${color3}${offset 4}SWAP${goto 95}${font DroidSans:size=8.3}${swap}${goto 133}/${offset 5}${swapmax}${alignr}${swapperc}%${font}
    ##################################
    ##         TOP PROCESSES        ##
    ##################################
    ${voffset 16}${font Radio Space Italic:bold:size=8}${color4}TOP PROCESSES${offset 8}${color8}${voffset -2}${hr 2}${font}
    ${voffset 4}${font StyleBats:size=10}${color1}h${voffset -3}${font DroidSans:size=8.75}${color3}${offset 5}${top_mem name 1}${goto 120}${font DroidSans:size=8.3}${top_mem mem_res 1}${alignr}${top_mem mem 1}%${font}
    ${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font DroidSans:size=8.75}${color3}${offset 5}${top_mem name 2}${goto 120}${font DroidSans:size=8.3}${top_mem mem_res 2}${alignr}${top_mem mem 2}%${font}
    ${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font DroidSans:size=8.75}${color3}${offset 5}${top_mem name 3}${goto 120}${font DroidSans:size=8.3}${top_mem mem_res 3}${alignr}${top_mem mem 3}%${font}
    #${voffset 2}${if_running rhythmbox}${voffset -16}${else}${if_running banshee}${voffset -16}${else}${font StyleBats:size=10}${color1}h${voffset -3}${font DroidSans:size=8.75}${color3}${offset 5}${top_mem name 4}${goto 120}${font DroidSans:size=8.3}${top_mem mem_res 4}${alignr}${top_mem mem 4} %${font}
    #${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font DroidSans:size=8.75}${color3}${offset 5}${top_mem name 5}${goto 120}${font DroidSans:size=8.3}${top_mem mem_res 5}${alignr}${top_mem mem 5}%${font}
    #${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font DroidSans:size=8.75}${color3}${offset 5}${top_mem name 6}${goto 120}${font DroidSans:size=8.3}${top_mem mem_res 6}${alignr}${top_mem mem 6}%${endif}${endif}${font}
    ##################################
    ##           NETWORK            ##
    ##################################
    ${voffset 6}${font Radio Space Italic:bold:size=8}${color4}NETWORK${offset 8}${color8}${voffset -2}${hr 2}${font}
    ${voffset 4}${color orange}${alignc}______________________WiFi______________________$color
    
    ${color orange}(AP name: ${color White}${wireless_essid wlan0}${color orange}) ${color orange}${wireless_link_qual_perc wlan0}%
    
    Down: ${color}${downspeed eth0} ${alignr}${color orange}Up: ${color}${upspeed eth0}
    ${downspeedgraph eth0 25,70 000000 00ff00} ${alignr}${upspeedgraph eth0 25,70 000000 ff0000}
    ${color orange} Total: ${color}${totaldown eth0} ${alignr}${color orange}Total: ${color}${totalup eth0}
    
    ${font PizzaDudeBullets:size=9.5}${color6}a${font DroidSans:size=8.5}${color3}${offset 5}Private${offset 3}IP WLAN${alignr}${font DroidSans:size=8.3}${addr wlan0}${font}
    ${font PizzaDudeBullets:size=9.5}${color6}a${font DroidSans:size=8.5}${color3}${offset 5}Private${offset 3}IP LAN${alignr}${font DroidSans:size=8.3}${addr eth0}${font}
    ${font PizzaDudeBullets:size=9.5}${color6}a${font DroidSans:size=8.5}${color3}${offset 5}Public${offset 7}IP${alignr}${font DroidSans:size=8.3}${pre_exec wget -O - http://www.whatismyip.org}${font}
    #${voffset 4}${font PizzaDudeBullets:size=9.5}${color6}T${font DroidSans:size=8.5}${color3}
    #${offset 5}Down${alignr}${font DroidSans:size=8.3}${downspeed eth0}${font}
    #${voffset 0}${font PizzaDudeBullets:size=9.5}${color6}N${font DroidSans:size=8.5}${color3}
    #${offset 5}Up${alignr}${font DroidSans:size=8.3}${upspeed eth0}${font}
    #${voffset 4}${font PizzaDudeBullets:size=9.5}${color6}T${font DroidSans:size=8.5}${color3}
    #${offset 5}Downloaded${alignr}${font DroidSans:size=8.3}${totaldown eth0}${font}
    #${voffset 0}${font PizzaDudeBullets:size=9.5}${color6}N${font DroidSans:size=8.5}${color3}
    #${offset 5}Uploaded${alignr}${font DroidSans:size=8.3}${totalup eth0}${font}
    
    ##################################
    ##           BATTERY            ##
    ##################################
    ${voffset 0}${font Radio Space Italic:bold:size=8}${color4}BATTERY STATUS${offset 8}${color8}${voffset -2}${hr 2}${font}
    ${voffset 0}${color orange}Battery ${battery BAT0}
    LUA

    bargraph_small.lua
    Code:
    --[[
    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 colours 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, parallel, 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 available 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
                values 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={
            {    --[ Graph for Memory ]--
                name="memperc",
                arg="",
                max=100,
                alarm=50,
                alarm_colour={0xFF0000,0.72},
                bg_colour={0xFFFFFF,0.25},
                fg_colour={0x00FF00,0.55},
                mid_colour={{0.45,0xFFFF00,0.70}},
                x=15,y=245,
                blocks=77,
                space=1,
                height=2,width=5,
                angle=90,
                smooth=true
                },
            {    --[ Graph for Root ]--
                            name="fs_used_perc",
                arg="/",
                max=100,
                alarm=50,
                alarm_colour={0xFF0000,0.72},
                bg_colour={0xFFFFFF,0.25},
                fg_colour={0x00FF00,0.55},
                mid_colour={{0.45,0xFFFF00,0.70}},
                x=15,y=292,
                blocks=77,
                space=1,
                height=2,width=5,
                angle=90,
                smooth=true
                },    
            {    --[ Graph for Home ]--
                name="fs_used_perc",
                arg="/home",
                max=100,
                alarm=50,
                alarm_colour={0xFF0000,0.72},
                bg_colour={0xFFFFFF,0.25},
                fg_colour={0x00FF00,0.55},
                mid_colour={{0.45,0xFFFF00,0.70}},
                x=15,y=320,
                blocks=77,
                space=1,
                height=2,width=5,
                angle=90,
                smooth=true
                },    
                {    --[ Graph for Swap ]--
                            name="swapperc",
                arg="",
                max=100,
                alarm=50,
                alarm_colour={0xFF0000,0.72},
                bg_colour={0xFFFFFF,0.25},
                fg_colour={0x00FF00,0.55},
                mid_colour={{0.45,0xFFFF00,0.70}},
                x=15,y=348,
                blocks=77,
                space=1,
                height=2,width=5,
                angle=90,
                smooth=true
                },
    
                     {    --[ Graph for Wlan ]--
                            name="wireless_link_qual_perc",
                arg="wlan0",
                max=100,
                angle=90,
                height=5,
                space=2,
                angle_bar=20,
                radius=9,
                x=139,y=476,
                blocks=13,
                skew_y=1,
                skew_x=1,
                alarm=30,
                alarm_colour={0x00FF00,0.55},
                bg_colour={0xFFFFFF,0.25},
                fg_colour={0xFF0000,0.42},
                mid_colour={{0.45,0xFFFF00,0.70}},
                smooth=true
                },
            {    --[ Graph for Battery ]--
                            name="battery_percent",
                arg="BAT0",
                max=100,
                alarm=50,
                alarm_colour={0x00FF00,0.55},
                bg_colour={0xFFFFFF,0.25},
                fg_colour={0xFF0000,0.72},
                mid_colour={{0.45,0xFFFF00,0.70}},
                x=8,y=662,
                blocks=80,
                space=1,
                height=2,width=7,
                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
    ----------------------------------------------------------------------------
    draw_bg.lua
    Code:
    --[[    Background by londonali1010 (2009)
        VinDSL Background Hack (2010-2011)
    
    This script draws a background to the Conky window. It covers the whole of the Conky window, but you can specify rounded corners, if you wish.
    
    To call this script in Conky, use (assuming you have saved this script to ~/scripts/):
        lua_load ~/scripts/draw_bg.lua
        lua_draw_hook_pre draw_bg
    
    Changelog:
        + v3.0    VinDSL Hack (01.28.2011) Killed memory leak.
        + v2.4    VinDSL Hack (01.25.2011) Declared all variables in local.
        + v2.3    VinDSL Hack (12.31.2010) Added shading example(s).
        + v2.2    VinDSL Hack (12.30.2010) Cleaned up the code a bit.
        + v2.1    VinDSL Hack (12.24.2010) Added cairo destroy function(s).
        + v2.0    VinDSL Hack (12.21.2010) Added height adjustment variable.
        + v1.0    Original release (07.10.2009)
    
    ]]
    
    --------------START OF PARAMETERS ------------
    -- Change these settings to affect your background:
    
    -- "corner_r" is the radius, in pixels, of the rounded corners. If you don't want rounded corners, use 0.
    
        local corner_r = 20
    
    -- Set the colour and transparency (alpha) of your background (0.00 - 0.99).
    
    --    (Light Shading Example)
    --    local bg_colour = 0x4d4d4d
    --    local bg_alpha = 0.50
    
    --    (Medium Shading Example)
    --    local bg_colour = 0x222222
    --    local bg_alpha = 0.50
    
    --    (Dark Shading Example)
    --    local bg_colour = 0x000000
    --    local bg_alpha = 0.50
    
        local bg_colour = 0x222222
        local bg_alpha = 0.20
    
    -- Tweaks the height of your background, in pixels. If you don't need to adjust the height, use 0.
    
    --    (Default Setting)
    --    local vindsl_hack_height = 0
    
        local vindsl_hack_height = -50
    ---------------END OF PARAMETERS -------------
    
    require 'cairo'
    local    cs, cr = nil
    
    local function rgb_to_r_g_b(colour,alpha)
        return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
        end
    
    function conky_draw_bg()
        if conky_window == nil then return end
        if cs == nil then cairo_surface_destroy(cs) end
        if cr == nil then cairo_destroy(cr) end
        local w = conky_window.width
        local h = conky_window.height
        local v = vindsl_hack_height
        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)
        
        cairo_move_to(cr,corner_r,0)
        cairo_line_to(cr,w-corner_r,0)
        cairo_curve_to(cr,w,0,w,0,w,corner_r)
        cairo_line_to(cr,w,h+v-corner_r)
        cairo_curve_to(cr,w,h+v,w,h+v,w-corner_r,h+v)
        cairo_line_to(cr,corner_r,h+v)
        cairo_curve_to(cr,0,h+v,0,h+v,0,h+v-corner_r)
        cairo_line_to(cr,0,corner_r)
        cairo_curve_to(cr,0,0,0,0,corner_r,0)
        cairo_close_path(cr)
    
        cairo_set_source_rgba(cr,rgb_to_r_g_b(bg_colour,bg_alpha))
        cairo_fill(cr)
    
        cairo_surface_destroy(cs)
        cairo_destroy(cr)
        end
    rings.lua
    Code:
    --[[ RINGS with SECTORS widget
        v1.1 by wlourf (07 Jan. 2011)
        this widget draws a ring with differents effects 
        http://u-scripts.blogspot.com/2010/08/rings-sectors-widgets.html
        
    To call the script in a conky, use, before TEXT
        lua_load /path/to/the/script/rings.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:
    xc,yc        - coordinates of the center of the ring,
                  default = middle of the conky window
    radius        - external radius of the ring, in pixels,
                  default = quarter of the width of the conky window
    thickness    - thickness of the ring, in pixels, default = 10 pixels
    start_angle    - starting angle of the ring, in degrees, value can be negative,
                  default = 0 degree
    end_angle    - ending angle of the ring, in degrees,
                  value must be greater than start_angle, default = 360 degrees
    sectors        - number of sectors in the ring, default = 10
    gap_sectors - gap between two sectors, in pixels, default = 1 pixel
    cap            - the way to close a sector, available values are
                    "p" for parallel , default value 
                    "r" for radial (follow the radius)
    inverse_arc    - if set to true, arc will be anticlockwise, default=false
    border_size    - size of the border, in pixels, default = 0 pixel i.e. no border
    fill_sector    - if set to true, each sector will be completely filled,
                  default=false, this parameter is inoperate if sectors=1
    background    - if set to false, background will not be drawn, default=true
    foreground    - if set to false, foreground will not be drawn, default=true
    
    Colours tables below are defined into braces :
    {position in the gradient (0 to 1), colour in hexadecimal, alpha (0 to 1)}
    example for a single colour table : 
    {{0,0xFFAA00,1}} position parameter doesn't matter
    example for a two-colours table : 
    {{0,0xFFAA00,1},{1,0x00AA00,1}} or {{0.5,0xFFAA00,1},{1,0x00AA00,1}}
    example for a three-colours table : 
    {{0,0xFFAA00,1},{0.5,0xFF0000,1},{1,0x00AA00,1}}
    
    bg_colour1    - colour table for background,
                  default = {{0,0x00ffff,0.1},{0.5,0x00FFFF,0.5},{1,0x00FFFF,0.1}}
    fg_colour1    - colour table for foreground,
                  default = {{0,0x00FF00,0.1},{0.5,0x00FF00,1},{1,0x00FF00,0.1}}
    bd_colour1    - colour table for border,
                  default = {{0,0xFFFF00,0.5},{0.5,0xFFFF00,1},{1,0xFFFF00,0.5}}              
    
    Seconds tables for radials gradients :
    bg_colour2    - second colour table for background, default = no second colour
    fg_colour2    - second colour table for foreground, default = no second colour
    bd_colour2    - second colour table for border, default = no second colour
    
    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 (08 Aug. 2010) original release
    v1.1 (07 Jan. 2011) Add draw_me parameter and correct memory leaks, thanks to "Creamy Goodness"
                        text is parsed inside the function, not in the array of settings
    
    --      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'
    
    function conky_main_rings()
    
    -- START PARAMETERS HERE
    local rings_settings={
        {
        name="cpu",
        arg="cpu0",
        max=100,
        xc=130,
        yc=165,
        thickness=20,
        radius=60,
        sectors=20,
        bg_colour1={{0,0xFFFFFF,0.1},{0.5,0xFFFFFF,0.4},{1,0xFFFFFF,0.1}},
        fg_colour1={{0,0x00FF00,0.1},{0.5,0x00FF00,1.0},{1,0x00FF00,1.1}},
        fg_colour2={{0,0xFF0000,1.1},{0.5,0xFF0000,1.0},{1,0xFF0000,1.1}},
        start_angle=-90,
        end_angle=90,
        cap="r",
        gap_sectors=1,
        border_size=0,
        },
        {
        name="hwmon 0 temp 1",
        arg="hwmon 0",
        max=100,
        xc=130,
        yc=170,
        thickness=15,
        radius=40,
        sectors=20,
        bg_colour1={{0,0xFFFFFF,0.1},{0.5,0xFFFFFF,0.4},{1,0xFFFFFF,0.1}},
        fg_colour1={{0,0x00FF00,1.1},{0.5,0x00FF00,1.0},{1,0x00FF00,0.1}},
        fg_colour2={{0,0xFF0000,1.1},{0.5,0xFF0000,1.0},{1,0xFF0000,1.1}},
        start_angle=-90,
        end_angle=-270,
        inverse_arc=true,
        gap_sectors=0,
        border_size=0,
        },
        
        
    }
    --END OF PARAMETERS HERE
    
    --main function
    
        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)    
    
        if tonumber(conky_parse('${updates}'))>3 then
            for i in pairs(rings_settings) do
                draw_ring(cr,rings_settings[i])
            end
        end
    
        cairo_destroy(cr)
    
    end
    
    
    
    
    function draw_ring(cr, t)
    
        local function rgba_to_r_g_b_a(tcolour)
            local colour,alpha=tcolour[2],tcolour[3]
            return ((colour / 0x10000) % 0x100) / 255., 
                ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
        end
                
                
        local function calc_delta(tcol1,tcol2)
            --calculate deltas P R G B A to table_colour 1
    
            for x = 1, #tcol1 do
                tcol1[x].dA    = 0
                tcol1[x].dP = 0
                 tcol1[x].dR = 0
                tcol1[x].dG = 0
                tcol1[x].dB = 0
                if tcol2~=nil and #tcol1 == #tcol2 then
                    local r1,g1,b1,a1 = rgba_to_r_g_b_a(tcol1[x])
                    local r2,g2,b2,a2 = rgba_to_r_g_b_a(tcol2[x])
                    tcol1[x].dP = (tcol2[x][1]-tcol1[x][1])/t.sectors
                     tcol1[x].dR = (r2-r1)/t.sectors
                    tcol1[x].dG = (g2-g1)/t.sectors
                    tcol1[x].dB = (b2-b1)/t.sectors
                    tcol1[x].dA = (a2-a1)/t.sectors        
                    
                end
            end
            
            return tcol1
        end
    
        --check values
        local function setup(t)
            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'")
                print ("for name=" .. t.name)
                print ("with arg=" .. t.arg)
                return
            end
            if t.name==nil then t.name="" end
            if t.arg==nil then t.arg="" end
    
            if t.xc==nil then t.xc=conky_window.width/2 end
            if t.yc==nil then t.yc=conky_window.height/2 end
            if t.thickness ==nil then t.thickness = 10 end
            if t.radius ==nil then t.radius =conky_window.width/4 end
            if t.start_angle==nil then t.start_angle =0 end
            if t.end_angle==nil then t.end_angle=360 end
            if t.bg_colour1==nil then 
                t.bg_colour1={{0,0x00ffff,0.1},{0.5,0x00FFFF,0.5},{1,0x00FFFF,0.1}}
            end
            if t.fg_colour1==nil then
                t.fg_colour1={{0,0x00FF00,0.1},{0.5,0x00FF00,1},{1,0x00FF00,0.1}}
            end
            if t.bd_colour1==nil then
                t.bd_colour1={{0,0xFFFF00,0.5},{0.5,0xFFFF00,1},{1,0xFFFF00,0.5}}
            end
            if t.sectors==nil then t.sectors=10 end
            if t.gap_sectors==nil then t.gap_sectors=1 end 
            if t.fill_sector==nil then t.fill_sector=false end
            if t.sectors==1 then t.fill_sector=false end
            if t.border_size==nil then t.border_size=0 end
            if t.cap==nil then t.cap="p" end
            --some checks
            if t.thickness>t.radius then t.thickness=t.radius*0.1 end
            t.int_radius = t.radius-t.thickness
    
            --check colors tables 
            for i=1, #t.bg_colour1 do 
                if #t.bg_colour1[i]~=3 then t.bg_colour1[i]={1,0xFFFFFF,0.5} end
            end
            for i=1, #t.fg_colour1 do 
                if #t.fg_colour1[i]~=3 then t.fg_colour1[i]={1,0xFF0000,1} end
            end
            for i=1, #t.bd_colour1 do 
                if #t.bd_colour1[i]~=3 then t.bd_colour1[i]={1,0xFFFF00,1} end
            end
        
            if t.bg_colour2~=nil then
                for i=1, #t.bg_colour2 do 
                    if #t.bg_colour2[i]~=3 then t.bg_colour2[i]={1,0xFFFFFF,0.5} end
                end
            end
            if t.fg_colour2~=nil then
                for i=1, #t.fg_colour2 do 
                    if #t.fg_colour2[i]~=3 then t.fg_colour2[i]={1,0xFF0000,1} end
                end
            end
            if t.bd_colour2~=nil then
                for i=1, #t.bd_colour2 do 
                    if #t.bd_colour2[i]~=3 then t.bd_colour2[i]={1,0xFFFF00,1} end
                end
            end     
            
            if t.start_angle>=t.end_angle then
             local tmp_angle=t.end_angle
             t.end_angle= t.start_angle
             t.start_angle = tmp_angle
             -- print ("inversed angles")
                if t.end_angle-t.start_angle>360 and t.start_angle>0 then
                    t.end_angle=360+t.start_angle
                    print ("reduce angles")
                end
            
                if t.end_angle+t.start_angle>360 and t.start_angle<=0 then
                    t.end_angle=360+t.start_angle
                    print ("reduce angles")
                end
            
                if t.int_radius<0 then t.int_radius =0 end
                if t.int_radius>t.radius then
                    local tmp_radius=t.radius
                    t.radius=t.int_radius
                    t.int_radius=tmp_radius
                    print ("inversed radius")
                end
                if t.int_radius==t.radius then
                    t.int_radius=0
                    print ("int radius set to 0")
                end 
            end
            
            t.fg_colour1 = calc_delta(t.fg_colour1,t.fg_colour2)
            t.bg_colour1 = calc_delta(t.bg_colour1,t.bg_colour2)
            t.bd_colour1 = calc_delta(t.bd_colour1,t.bd_colour2)
        end
        
        if t.draw_me == true then t.draw_me = nil end
        if t.draw_me ~= nil and conky_parse(tostring(t.draw_me)) ~= "1" then return end    
        --initialize table
        setup(t)
        
        --initialize cairo context
        cairo_save(cr)
        cairo_translate(cr,t.xc,t.yc)
        cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND)
        cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND)
    
        --get value
        local value = 0
        if t.name ~="" then
            value = tonumber(conky_parse(string.format('${%s %s}', t.name, t.arg)))
        else
            value = tonumber(t.arg)
        end
        if value==nil then value =0 end
    
        --initialize sectors
        --angle of a sector :
        local angleA = ((t.end_angle-t.start_angle)/t.sectors)*math.pi/180
        --value of a sector : 
        local valueA = t.max/t.sectors
        --first angle of a sector : 
        local lastAngle = t.start_angle*math.pi/180
    
    
        local function draw_sector(type_arc,angle0,angle,valpc, idx)
         
            --this function draws a portion of arc
             --type of arc, angle0 = strating angle, angle= angle of sector,
             --valpc = percentage inside the sector, idx = sctor number #
             local tcolor
             if type_arc=="bg" then         --background
                 if valpc==1 then return end
                 tcolor=t.bg_colour1
             elseif type_arc=="fg" then    --foreground
                 if valpc==0 then return end
                 tcolor=t.fg_colour1
             elseif type_arc=="bd" then    --border
                 tcolor=t.bd_colour1
             end 
    
            --angles equivalents to gap_sector
            local ext_delta=math.atan(t.gap_sectors/(2*t.radius))
            local int_delta=math.atan(t.gap_sectors/(2*t.int_radius))
    
            --angles of arcs
            local ext_angle=(angle-ext_delta*2)*valpc
            local int_angle=(angle-int_delta*2)*valpc
    
            --define colours to use for this sector
            if #tcolor==1 then 
                --plain color
                local vR,vG,vB,vA = rgba_to_r_g_b_a(tcolor[1])
                cairo_set_source_rgba(cr,vR+tcolor[1].dR*idx,
                                        vG+tcolor[1].dG*idx,
                                        vB+tcolor[1].dB*idx,
                                        vA+tcolor[1].dA*idx    )
            else
                --radient color
                local pat=cairo_pattern_create_radial(0,0,t.int_radius,0,0,t.radius)
                for i=1, #tcolor do
                    local vP,vR,vG,vB,vA = tcolor[i][1], rgba_to_r_g_b_a(tcolor[i])
                    cairo_pattern_add_color_stop_rgba (pat, 
                                        vP+tcolor[i].dP*idx,
                                        vR+tcolor[i].dR*idx,
                                        vG+tcolor[i].dG*idx,
                                        vB+tcolor[i].dB*idx,
                                        vA+tcolor[i].dA*idx    )
                end
                cairo_set_source (cr, pat)
                cairo_pattern_destroy(pat)
            end
    
            --start drawing
             cairo_save(cr)
            --x axis is parrallel to start of sector
            cairo_rotate(cr,angle0-math.pi/2)
    
            local ri,re = t.int_radius ,t.radius
    
            --point A 
            local angle_a
        
            if t.cap == "p" then 
                angle_a = int_delta
                if t.inverse_arc and type_arc ~="bg" then
                    angle_a = angle-int_angle-int_delta
                end
                if not(t.inverse_arc) and type_arc =="bg" then
                    angle_a = int_delta+int_angle
                end
            else --t.cap=="r"
                angle_a = ext_delta
                if t.inverse_arc and type_arc~="bg" then
                    angle_a = angle-ext_angle-ext_delta
                end
                if not(t.inverse_arc) and type_arc=="bg" then
                    angle_a = ext_delta+ext_angle
                end
            end
            local ax,ay = ri*math.cos(angle_a),ri*math.sin(angle_a)
    
    
            --point B
            local angle_b = ext_delta
            if t.cap == "p" then 
                if t.inverse_arc and type_arc ~="bg" then
                    angle_b = angle-ext_angle-ext_delta
                end
                if not(t.inverse_arc) and type_arc=="bg" then
                    angle_b = ext_delta+ext_angle
                end
            else
                if t.inverse_arc and type_arc ~="bg" then
                    angle_b = angle-ext_angle-ext_delta
                end
                if not(t.inverse_arc) and type_arc=="bg" then
                    angle_b = ext_delta+ext_angle
                end
            end
            local bx,by = re*math.cos(angle_b),re*math.sin(angle_b)
    
            -- EXTERNAL ARC B --> C
            local b0,b1
            if t.inverse_arc then
                if type_arc=="bg" then
                    b0,b1= ext_delta, angle-ext_delta-ext_angle
                else
                    b0,b1= angle-ext_angle-ext_delta, angle-ext_delta
                end
            else
                if type_arc=="bg" then
                    b0,b1= ext_delta+ext_angle, angle-ext_delta
                else
                    b0,b1= ext_delta, ext_angle+ext_delta
                end
            end
            
            ---POINT D
            local angle_c, angle_d
            if t.cap == "p" then 
                angle_d = angle-int_delta
                if t.inverse_arc and type_arc=="bg" then
                    angle_d = angle-int_delta-int_angle    
                end
                if not(t.inverse_arc) and type_arc~="bg" then
                    angle_d=int_delta+int_angle
                end
            else
                angle_d = angle-ext_delta
                if t.inverse_arc and type_arc=="bg" then
                    angle_d =angle-ext_delta-ext_angle
                end
                if not(t.inverse_arc) and type_arc~="bg" then
                    angle_d = ext_angle+ext_delta
                end
            end
            local dx,dy = ri*math.cos(angle_d),ri*math.sin(angle_d)
            
            -- INTERNAL ARC D --> A
            local d0,d1
            if t.cap=="p" then    
                if t.inverse_arc then    
                    if type_arc=="bg" then
                        d0,d1= angle-int_delta-int_angle,int_delta
                    else
                        d0,d1= angle-int_delta, angle- int_angle-int_delta
                    end
                else
                    if type_arc=="bg" then
                        d0,d1= angle-int_delta, int_delta+int_angle
                    else
                        d0,d1= int_delta+int_angle, int_delta
                    end
                end
            else
                if t.inverse_arc then    
                    if type_arc=="bg" then    
                        d0,d1= angle-ext_delta-ext_angle,ext_delta
                    else
                        d0,d1= angle-ext_delta, angle- ext_angle-ext_delta
                    end
                else
                    if type_arc=="bg" then    
                        d0,d1= angle-ext_delta,ext_delta+ext_angle
                    else    
                        d0,d1= ext_angle+ext_delta, ext_delta
                    end
                end            
            end
                
            --draw sector
            cairo_move_to(cr,ax,ay)
            cairo_line_to(cr,bx,by)
            cairo_arc(cr,0,0,re,b0,b1)
            cairo_line_to(cr,dx,dy) 
            cairo_arc_negative(cr,0,0,ri,d0,d1)
             cairo_close_path (cr);
    
            --stroke or fill sector
             if type_arc=="bd" then
                 cairo_set_line_width(cr,t.border_size)
                 cairo_stroke(cr)
             else
                 cairo_fill(cr)
             end
    
             cairo_restore(cr)
    
         end
        --draw sectors
        local n0,n1,n2 = 1,t.sectors,1
        if t.inverse_arc then n0,n1,n2 = t.sectors,1,-1 end
        local index = 0
        for i = n0,n1,n2 do 
            index = index +1
            local valueZ=1
            local cstA, cstB = (i-1),i
            if t.inverse_arc then cstA,cstB = (t.sectors-i), (t.sectors-i+1) end
            
            if value>valueA *cstA and value<valueA*cstB then
                if not t.fill_sector then
                    valueZ = (value-valueA*cstA)/valueA
                end
            else
                if value<valueA*cstB then valueZ=0 end
            end
            
            local start_angle= lastAngle+(i-1)*angleA
            if t.foreground ~= false then 
                draw_sector("fg",start_angle,angleA,valueZ, index)
            end
            if t.background ~= false then 
                draw_sector("bg",start_angle,angleA,valueZ, i)
            end
            if t.border_size>0 then draw_sector("bd",start_angle,angleA,1, i) end
        end
    
        cairo_restore(cr)
    end
    
    
    --[[END OF RING-SECTORS WIDGET]]
    loadAll.lua
    Code:
    do
        package.path = "~/.conky/lua/?.lua"
        require 'bargraph_small' --for scriptA.lua ".lua" is not required here
        require 'rings'
    
    
        function conky_main()
                     main_bars()
                  main_rings()
         
        end
    
    end
    Attached Images Attached Images
    • File Type: jpg 1.jpg (33.1 KB, 174 views)
    Last edited by vladakru; July 4th, 2011 at 03:25 PM.

  4. #18294
    Join Date
    Jun 2010
    Beans
    699

    Re: Post your .conkyrc files w/ screenshots

    Hi!

    What would be the best approach for temperature monitoring of CPU, motherboard, GPU and and fan speeds? Thanks!

  5. #18295
    Join Date
    Jun 2005
    Location
    Buenavista, ADN, Phils
    Beans
    285

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by EgoGratis View Post
    Hi!

    What would be the best approach for temperature monitoring of CPU, motherboard, GPU and and fan speeds? Thanks!
    This thread is full of the information your looking for. Please read it before asking redundant questions. Then if you run into technical issues trying to implement the code. Then we would be delighted to help.
    Mac Mini: OSX 10.9 Mavericks, i7-3720QM 2.6Ghz, 16GB RAM, 1.25TB Fusion Array, Intel HD4000 iGPU
    Photo Blog on Youtube: www.youtube.com/user/ExodistPhotoBlog
    Linux User: 380654

  6. #18296
    Join Date
    Jun 2010
    Beans
    699

    Re: Post your .conkyrc files w/ screenshots

    This thread is full of the information your looking for. Please read it before asking redundant questions. Then if you run into technical issues trying to implement the code. Then we would be delighted to help.
    That was first thing that i did. I took some configuration from different .conkyrc files and only one worked:

    ${hwmon 0 temp 1}

    Based on senors command in the terminal it shows CPU temp!

    Sensors command show CPU and motherboard temperature and fan speeds. How to get that information in Conky? GPU is harder (Nvidia)?
    Last edited by EgoGratis; July 4th, 2011 at 04:16 PM.

  7. #18297
    Join Date
    Jun 2005
    Location
    Buenavista, ADN, Phils
    Beans
    285

    Re: Post your .conkyrc files w/ screenshots

    This thread shows at least 3 different ways to get hardware temps. I know there is a lot of pages and it really needs to be put in a proper updated wiki. Start from this page and read on. You will find the information your seek.
    Mac Mini: OSX 10.9 Mavericks, i7-3720QM 2.6Ghz, 16GB RAM, 1.25TB Fusion Array, Intel HD4000 iGPU
    Photo Blog on Youtube: www.youtube.com/user/ExodistPhotoBlog
    Linux User: 380654

  8. #18298
    Join Date
    Jun 2010
    Beans
    699

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by Bandit View Post
    This thread shows at least 3 different ways to get hardware temps. I know there is a lot of pages and it really needs to be put in a proper updated wiki. Start from this page and read on. You will find the information your seek.
    Yes the config for Right Conky (COOLING) is what i am after. The only problem is there are two Left Conky configuration files in that post!

  9. #18299
    Join Date
    Jun 2010
    Beans
    699

    Re: Post your .conkyrc files w/ screenshots

    OK i didn't find anything useful in this topic so i went elsewhere (Google). With some help of | grep | cut and testing in terminal i manged to get everything that i wanted to get and it was rather simple!

    HDD temp : hddtemp + | cut
    Nvidia GPU : nvidia-settings
    CPU temp, MB temp and FAN speeds : sensors + | grep | cut
    Last edited by EgoGratis; July 4th, 2011 at 09:41 PM.

  10. #18300
    Join Date
    Dec 2008
    Location
    The Desert
    Beans
    281
    Distro
    Ubuntu 12.04 Precise Pangolin

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by Bandit View Post
    This thread shows at least 3 different ways to get hardware temps. I know there is a lot of pages and it really needs to be put in a proper updated wiki. Start from this page and read on. You will find the information your seek.
    Conky Pitstop
    I'm a super power user

Page 1830 of 2343 FirstFirst ... 8301330173017801820182818291830183118321840188019302330 ... LastLast

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •