Page 2130 of 2348 FirstFirst ... 1130163020302080212021282129213021312132214021802230 ... LastLast
Results 21,291 to 21,300 of 23480

Thread: Post your .conkyrc files w/ screenshots

  1. #21291
    Join Date
    May 2006
    Location
    Milwaukee,WI
    Beans
    6,280
    Distro
    Xubuntu 14.04 Trusty Tahr

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by dk75 View Post
    Code:
    sensors -f | awk '/Core0 Temp/ {gsub(/\+/,"",$3); gsub(/\..+/,"",$3); print $3}'

    legend:
    Code:
    /Core0 Temp/
    match line with 'Core0 Temp' in it


    Code:
    gsub(/\+/,"",$3)
    removes "+" sign from substring $3 - it replaces regexp match "/\+/" ("+" sign is escaped with "\", as it is a special character in regexps), with string "" (empty) in a substring $3 ($1 = "Core0", $2="Temp")

    Since $3="+122.0°F", it removes "+" from it giving $3="122.0°F" after.


    Code:
    gsub(/\..+/,"",$3)
    replaces regexp "/\..+/" with string "" in substring $3 (again - why not? since it is already processed by one "gsub"...)

    in match "/\..+/" there are few special characters:

    '\.' - escaped dot (dot in regexp means "any one character", escaped "dot" means just "dot")

    '.+' - "dot plus" means "any one character repeated at least once" ("+" character is "repeat at least once" in regexp)

    Combined, it is "dot and at least one character after".

    Since $3="122.0°F", it removes ".0°F" from it, making $3="122" after.
    trying the following line results in no temperature at all now.
    Code:
    ${exec sensors -f | awk '/Core0 Temp/ {gsub(/\+/,"",$3); gsub(/\..+/,"",$3); print $3}'}° F


    any help please? i am totally lost with awk, sed, grep and all that stuff. LOL

  2. #21292
    Join Date
    Apr 2011
    Location
    USA
    Beans
    1

    Re: Post your .conkyrc files w/ screenshots

    @danyboy79

    your sensors output for CPU temps is "Core 0" and "Core 1" (as I recall); so change the:

    Code:
    /Core0 Temp/
    to

    Code:
    /Core 0/
    The code you're using is for my sensors output.

    That code works as advertised on my system. Thanks dk75.

  3. #21293
    Join Date
    Dec 2009
    Location
    greenville sc
    Beans
    283
    Distro
    Ubuntu Studio 13.10 Saucy Salamander

    Re: Post your .conkyrc files w/ screenshots

    My conky configuration
    consists of four scripts and four lua scripts
    conkyrc
    Code:
    #==============================================================================
    #                               conkyrc_lunatico
    #
    #  Date    : 22/06/2011
    #  author  : DCM
    #  version : v0.2
    #  license : Distributed under the terms of GNU GPL version 2 or later
    #  This version is a modification of conkyrc_orange found at
    #    http://gnome-look.org/content/show.php?content=137503&forumpage=0
    #
    #==============================================================================
    
    background yes
    update_interval 1
    
    cpu_avg_samples 2
    net_avg_samples 2
    temperature_unit celsius
    
    double_buffer yes
    no_buffers yes
    text_buffer_size 2048
    
    gap_x 20
    gap_y 20
    minimum_size 300 500
    maximum_width 400
    own_window yes
    own_window_type desktop
    own_window_transparent no
    own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
    own_window_argb_visual yes
    own_window_argb_value 120
    
    border_inner_margin 0
    border_outer_margin 0
    alignment tr
    
    draw_shades no
    draw_outline no
    draw_borders no
    draw_graph_borders no
    
    override_utf8_locale yes
    use_xft yes
    xftfont caviar dreams:size=8
    xftalpha 0.5
    uppercase no
    
    default_color FFFFFF
    color1 DDDDDD
    color2 AAAAAA
    color3 888888
    color4 3399FF
    
    lua_load ~/conky_lunatico.lua
    lua_draw_hook_post main
    
    
    TEXT
    ${font Ubuntu:size=10,weight:bold}${color4}SYSTEM ${hr 2}
    ${offset 10}${font Ubuntu:size=10,weight:normal}${color1}$sysname $kernel
    ${offset 10}${font Ubuntu:size=10,weight:normal}${color1}$nodename
    ${offset 10}${font Ubuntu:size=10,weight:normal}${color1}Uptime: $uptime
    
    ${voffset 14}
    ${offset 140}${cpugraph 20,110 FFEE38 FF0000}${voffset -15}
    ${offset 75}${font Ubuntu:size=10,weight:bold}${color}CPU
    ${offset 85}${font Ubuntu:size=10,weight:normal}${color4}${top name 1}${alignr}${top cpu 1}%
    ${offset 85}${font Ubuntu:size=10,weight:normal}${color1}${top name 2}${alignr}${top cpu 2}%
    ${offset 85}${font Ubuntu:size=10,weight:normal}${color2}${top name 3}${alignr}${top cpu 3}%
    ${offset 85}${font Ubuntu:size=10,weight:normal}${color3}${top name 4}${alignr}${top cpu 4}%
    ${offset 85}${font Ubuntu:size=10,weight:normal}${color3}${top name 5}${alignr}${top cpu 5}%
    
    ${voffset 36}
    ${offset 75}${font Ubuntu:size=10,weight:bold}${color}MEM
    ${offset 85}${font Ubuntu:size=10,weight:normal}${color4}${top_mem name 1}${alignr}${top_mem mem 1}%
    ${offset 85}${font Ubuntu:size=10,weight:normal}${color1}${top_mem name 2}${alignr}${top_mem mem 2}%
    ${offset 85}${font Ubuntu:size=10,weight:normal}${color2}${top_mem name 3}${alignr}${top_mem mem 3}%
    ${offset 85}${font Ubuntu:size=10,weight:normal}${color3}${top_mem name 4}${alignr}${top_mem mem 4}%
    ${offset 85}${font Ubuntu:size=10,weight:normal}${color3}${top_mem name 4}${alignr}${top_mem mem 5}%
    
    ${voffset 16}
    ${offset 140}${diskiograph 20,110 FFEE38 FF0000}${voffset -15}
    ${offset 75}${font Ubuntu:size=10,weight:bold}${color}DISK
    #${offset 85}${diskiograph 20,150 FFEE38 FF0000}${voffset -30}
    ${offset 85}${font Ubuntu:size=10,weight:normal}${color}Used: ${fs_used /}
    
    ${voffset 14}
    ${offset 140}${color2}${addr eth0}
    ${offset 140}${color}Up: $color2${upspeed eth0}
    ${offset 140}${color}Down: $color2${downspeed eth0}
    
    ${voffset 5}
    ${color4}${hr 2}
    main.lua
    Code:
    --==============================================================================
    --                            lunatico_rings.lua
    --
    --  Date    : 22/06/2011
    --  Author  : DCM
    --  Version : v0.2
    --  License : Distributed under the terms of GNU GPL version 2 or later
    --  This version is a modification of conky_orange.lua found at
    --    http://gnome-look.org/content/show.php?content=137503&forumpage=0
    --
    --==============================================================================
    
    require 'cairo'
    
    
    --------------------------------------------------------------------------------
    --                                                                    gauge DATA
    gauge = {
    {
        name='cpu',                    arg='cpu0',                  max_value=100,
        x=73,                          y=120,
        graph_radius=34,
        graph_thickness=5,
        graph_start_angle=180,
        graph_unit_angle=2.7,          graph_unit_thickness=2.7,
        graph_bg_colour=0xFFFB7D,      graph_bg_alpha=0.2,
        graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.0,
        hand_fg_colour=0x3399FF,       hand_fg_alpha=1.0,
        txt_radius=46,
        txt_weight=0,                  txt_size=12.0,
        txt_fg_colour=0x3399FF,        txt_fg_alpha=1.0,
        graduation_radius=34,
        graduation_thickness=5,        graduation_mark_thickness=2,
        graduation_unit_angle=24,
        graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.5,
        caption='',
        caption_weight=1,              caption_size=8.0,
        caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
    },
    {
        name='cpu',                    arg='cpu1',                  max_value=100,
        x=73,                          y=120,
        graph_radius=27,
        graph_thickness=5,
        graph_start_angle=180,
        graph_unit_angle=2.7,          graph_unit_thickness=2.7,
        graph_bg_colour=0xFFFB7D,      graph_bg_alpha=0.2,
        graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.0,
        hand_fg_colour=0x3399FF,       hand_fg_alpha=1.0,
        txt_radius=14,
        txt_weight=0,                  txt_size=12.0,
        txt_fg_colour=0x3399FF,        txt_fg_alpha=1.0,
        graduation_radius=27,
        graduation_thickness=5,        graduation_mark_thickness=2,
        graduation_unit_angle=24,
        graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.5,
        caption='',
        caption_weight=1,              caption_size=8.0,
        caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
    },
    {
        name='memperc',                arg='',                      max_value=100,
        x=75,                          y=290,
        graph_radius=34,
        graph_thickness=5,
        graph_start_angle=180,
        graph_unit_angle=2.7,          graph_unit_thickness=2.7,
        graph_bg_colour=0xFFFB7D,      graph_bg_alpha=0.2,
        graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.0,
        hand_fg_colour=0x3399FF,       hand_fg_alpha=1.0,
        txt_radius=46,
        txt_weight=0,                  txt_size=12.0,
        txt_fg_colour=0x3399FF,        txt_fg_alpha=1.0,
        graduation_radius=34,
        graduation_thickness=5,        graduation_mark_thickness=2,
        graduation_unit_angle=24,
        graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.5,
        caption='',
        caption_weight=1,              caption_size=8.0,
        caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
    },
    {
        name='fs_used_perc',           arg='/',                     max_value=100,
        x=75,                          y=455,
        graph_radius=34,
        graph_thickness=5,
        graph_start_angle=180,
        graph_unit_angle=2.7,          graph_unit_thickness=2.7,
        graph_bg_colour=0xFFFB7D,      graph_bg_alpha=0.2,
        graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.0,
        hand_fg_colour=0x3399FF,       hand_fg_alpha=1.0,
        txt_radius=46,
        txt_weight=0,                  txt_size=12.0,
        txt_fg_colour=0x3399FF,        txt_fg_alpha=1.0,
        graduation_radius=34,
        graduation_thickness=5,        graduation_mark_thickness=2,
        graduation_unit_angle=24,
        graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.5,
        caption='',
        caption_weight=1,              caption_size=8.0,
        caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.5,
    },
    {
        name='downspeedf',           arg='eth0',                     max_value=100,
        x=75,                          y=565,
        graph_radius=34,
        graph_thickness=5,
        graph_start_angle=180,
        graph_unit_angle=2.7,          graph_unit_thickness=2.7,
        graph_bg_colour=0xFFFB7D,      graph_bg_alpha=0.2,
        graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.0,
        hand_fg_colour=0x3399FF,       hand_fg_alpha=1.0,
        txt_radius=50,
        txt_weight=0,                  txt_size=12.0,
        txt_fg_colour=0x3399FF,        txt_fg_alpha=1.0,
        graduation_radius=34,
        graduation_thickness=5,        graduation_mark_thickness=2,
        graduation_unit_angle=24,
        graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.5,
        caption='Down',
        caption_weight=1,              caption_size=8.0,
        caption_fg_colour=0xC4FF7D,    caption_fg_alpha=0.8,
    },
    {
        name='upspeedf',           arg='eth0',                     max_value=100,
        x=75,                          y=565,
        graph_radius=27,
        graph_thickness=5,
        graph_start_angle=180,
        graph_unit_angle=2.7,          graph_unit_thickness=2.7,
        graph_bg_colour=0xFFFB7D,      graph_bg_alpha=0.2,
        graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.0,
        hand_fg_colour=0x3399FF,       hand_fg_alpha=1.0,
        txt_radius=18,
        txt_weight=0,                  txt_size=12.0,
        txt_fg_colour=0x3399FF,        txt_fg_alpha=1.0,
        graduation_radius=27,
        graduation_thickness=5,        graduation_mark_thickness=2,
        graduation_unit_angle=24,
        graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.5,
        caption='Up',
        caption_weight=1,              caption_size=8.0,
        caption_fg_colour=0xFFFB7D,    caption_fg_alpha=0.8,
    },
    }
    
    -------------------------------------------------------------------------------
    --                                                                 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_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_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_gauge_rings(display)
        end
    
        cairo_surface_destroy(cs)
        cairo_destroy(display)
    
    end
    weather conky script
    Code:
        # To use #! in a conky use: ${exec echo '#!'}
        # killall conky && conky -c ~/Conky/thermometer_v4.conky &
    
        ###  Begin Window Settings  ##################################################
        # Create own window instead of using desktop (required in nautilus)
        own_window yes
        own_window_type desktop #override
        own_window_transparent no
        own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
        own_window_argb_visual yes
        own_window_argb_value 120
        # own_window_colour brown
        # own_window_class Conky
        # own_window_title Cascade Locks Weather
    
        # Use the Xdbe extension? (eliminates flicker)
        # It is highly recommended to use own window with this one
        # so double buffer won't be so big.
        double_buffer yes
    
        ### ARGB can be used for real transparency
        ### NOTE that a composite manager is required for real transparency.
        ### This option will not work as desired (in most cases) in conjunction with
        ### 'own_window_type override'
        # own_window_argb_visual yes
    
        ### When ARGB visuals are enabled, this use this to modify the alpha value
        ### Valid range is 0-255, where 0 is 0% opacity, and 255 is 100% opacity.
        #own_window_argb_value 0
    
        minimum_size 640 500     ## width, height
        maximum_width 640       ## width, usually a good idea to equal minimum width
    
        gap_x -400       ### left &right
        gap_y 240        ### up & down
    
        ### top_left, top_right, top_middle, bottom_left, bottom_right, bottom_middle
        ### middle_left, middle_middle, middle_right, or none
        alignment middle_middle
        ####################################################  End Window Settings  ###
        ###  Font Settings  ##########################################################
        # Use Xft (anti-aliased font and stuff)
        use_xft yes
        xftfont dejavu sans mono:size=8
        # Alpha of Xft font. Must be a value at or between 1 and 0 ###
        xftalpha 0
        # Force UTF8? requires XFT ###
        override_utf8_locale yes
    
        draw_shades no
        #default_shade_color black
    
        draw_outline no # amplifies text if yes
        #default_outline_color black
    
        uppercase no
        ######################################################  End Font Settings  ###
        ###  Color Settings  #########################################################
       # default_shade_color grey
        #default_outline_color black
    
        default_color DCDCDC #Gainsboro
        color0 DAA520 #Goldenrod  FFFFF0 #Ivory
        color1 778899 #LightSlateGrey
        color2 FF8C00 #Darkorange
        color3 7FFF00 #Chartreuse
        color4 FFA07A #LightSalmon
        color5 FFDEAD #NavajoWhite
        color6 00BFFF #DeepSkyBlue
        color7 00FFFF #Cyan 48D1CC #MediumTurquoise
        color8 FFFF00 #Yellow
        color9 FF0000 #Red
        #####################################################  End Color Settings  ###
        ###  Borders Section  ########################################################
        draw_borders no
        # Stippled borders?
        #stippled_borders 0
        # border margins
        #border_inner_margin 5
        #border_outer_margin 0
        # border width
        #border_width 0
        # graph borders
        #draw_graph_borders no
        #####################################################  End Borders Secton  ###
        ###  Miscellaneous Section  ##################################################
    
        # Boolean value, if true, Conky will be forked to background when started.
        background yes
    
        # Adds spaces around certain objects to stop them from moving other things
        # around, this only helps if you are using a mono font
        # Options: right, left or none
        use_spacer none
    
        # Default and Minimum size is 256 - needs more for single commands that
        # "call" a lot of text IE: bash scripts
        text_buffer_size 1028
    
        # Subtract (file system) buffers from used memory?
        no_buffers yes
    
        # change GiB to G and MiB to M
        short_units yes
    
        # Like it says, ot pads the decimals on % values
        # doesn't seem to work since v1.7.1
        pad_percents 2
    
        ##############################################  End Miscellaneous Section  ###
        ###  LUA Settings  ###########################################################
        lua_load ~/Conky/LUA/thermometer_v4.lua
        #######################################################  End LUA Settings  ###
    
        # The all important - How often conky refreshes.
        # If you have a "Crey" try: 0.2 - smokin' - but watch the CPU usage go UP!
        update_interval 1
    
    
    
        TEXT
        ${lua conky_draw_bg 10 0 0 650 510 0x000000 0.5}
        ${lua conky_weather}${voffset 240}${goto 10}${font digitalk:size=18}${time %T}${font}
    weather.lua
    Code:
        --#########################################################################################################
        --SETUP--SETUP--SETUP--SETUP--SETUP--SETUP--SETUP--SETUP--SETUP--SETUP--SETUP
        secs=300--set update interval
        web="http://www.intellicast.com/Local/Forecast.aspx?unit=F&location=USSC0140"--insert unit=C& after? for C
        --get web address by going to the intellicast site and entering your location in the box
        --for version 3 you must get click on "Extended Forecast" to get the necessary address
        units="F"--set units for C or F
        mid=24--this is the temp at which temp scale is yellow, ie mid point in color change scale
        --#########################################################################################################
    
        require 'cairo'
        require 'imlib2'
        ------------------------------------------------------------------------------
        function string:split(delimiter)
        local result = { }
        local from  = 1
        local delim_from, delim_to = string.find( self, delimiter, from  )
        while delim_from do
        table.insert( result, string.sub( self, from , delim_from-1 ) )
        from  = delim_to + 1
        delim_from, delim_to = string.find( self, delimiter, from  )
        end
        table.insert( result, string.sub( self, from  ) )
        return result
        end
        --------------------------------------------------------------------------------
    
        function conky_weather()
        if conky_window == nil then return end
        local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)
        cr = cairo_create(cs)
        local updates=tonumber(conky_parse('${updates}'))
        if updates>5 then
        local timer=(updates %secs)+1
        if timer==1 or updates==6 then
        local f=io.popen("curl '"..web.."' | grep -A62 'As of ' | gawk -F'>' -v RS='</' 'RT{print $NF}' | sed -e 's/^[ \t]*//' -e '/^$/d' -e 's/&deg;//g' -e 's/%//g' -e 's/  / /g' -e 's/Thunderstorms/T.Storms/g'")
        local data1=f:read("*a")
        f:close()
        local data2=string.split(data1,"\n")
        local data={}
        for i,v in pairs(data2) do
        if string.find(v,"[%a%d]")~=nil then
        table.insert(data,data2[i])
        end
        end
        --##############################################
        --current
        local wdr=string.split(data[25]," ")
        now={con=string.gsub(data[2],"[\r\n]",""),tmp=string.gsub(data[4],units,""),flk=string.gsub(data[5],"Feels Like: ",""),wch=data[7],cel=data[10],hid=data[12],vis=string.gsub(data[15],"[ %a]",""),dpt=data[17],wsp=string.gsub(data[20],"[ %a]",""),wdg=(wdr[1]),wdi=string.gsub(wdr[2],"[%(%)\n\r]",""),wgs=string.gsub(data[30],"[ %a]",""),hum=data[22],prs=string.gsub(data[27],"\"","")}
        --############################################
        --forecast
        local f=io.popen("curl '"..web.."' | grep -A554 'View the Calendar Forecast' | gawk -F'>' -v RS='<' 'RT{print $NF}' | sed -e 's/^[ \t]*//' -e 's/&deg;//g' -e 's/  / /g' -e 's/%//g' -e 's/&deg//g' -e 's/Thunderstorms/T.Storms/g'")
        local fdata1=f:read("*a")
        f:close()
        local fdata=string.split(fdata1,"\n")
        local fdata2={}
        for i,v in pairs(fdata) do
        if string.find(v,"[%a%d]")~=nil then
        table.insert(fdata2,fdata[i])
        end
        end
        local uvi=string.split(fdata2[20]," ")
        local wsp=string.split(fdata2[32]," ")
        local wdr=string.split(fdata2[34]," ")
        day1={day=fdata2[2],con=fdata2[3],hih=fdata2[4],low=fdata2[5],sri=fdata2[8],sst=fdata2[10],mri=fdata2[12],mst=fdata2[14],uvn=uvi[1],uvt=string.gsub(uvi[2],"[%(%)]",""),hum=fdata2[22],ppt=fdata2[24],snw=fdata2[26],cld=fdata2[28],mph=fdata2[30],wmh=string.gsub(wsp[1],"[%a]",""),wkm=string.gsub(wsp[2],"[%a%(,]",""),wkt=string.gsub(wsp[3],"[%a%)]",""),wdg=wdr[1],wdi=string.gsub(wdr[2],"[%(%)\n\r]","")}
        --day2
        local uvi=string.split(fdata2[53]," ")
        local wsp=string.split(fdata2[65]," ")
        local wdr=string.split(fdata2[67]," ")
        day2={day=fdata2[35],con=fdata2[36],hih=fdata2[37],low=fdata2[38],sri=fdata2[41],sst=fdata2[43],mri=fdata2[45],mst=fdata2[47],uvn=uvi[1],uvt=string.gsub(uvi[2],"[%(%)]",""),hum=fdata2[55],ppt=fdata2[57],snw=fdata2[59],cld=fdata2[61],mph=fdata2[63],wmh=string.gsub(wsp[1],"[%a]",""),wkm=string.gsub(wsp[2],"[%a%(,]",""),wkt=string.gsub(wsp[3],"[%a%)]",""),wdg=wdr[1],wdi=string.gsub(wdr[2],"[%(%)\n\r]","")}
        --day3
        local start=68
        local uvi=string.split(fdata2[start+14]," ")
        local wsp=string.split(fdata2[start+26]," ")
        local wdr=string.split(fdata2[start+28]," ")
        day3={day=fdata2[start],con=fdata2[start+1],hih=fdata2[start+2],low=fdata2[start+3],sri=fdata2[start+5],sst=fdata2[start+7],mri=fdata2[start+9],mst=fdata2[start+11],uvn=uvi[1],uvt=string.gsub(uvi[2],"[%(%)]",""),hum=fdata2[start+16],ppt=fdata2[start+18],snw=fdata2[start+20],cld=fdata2[start+22],mph=fdata2[start+24],wmh=string.gsub(wsp[1],"[%a]",""),wkm=string.gsub(wsp[2],"[%a%(,]",""),wkt=string.gsub(wsp[3],"[%a%)]",""),wdg=wdr[1],wdi=string.gsub(wdr[2],"[%(%)\n\r]","")}
        --day4
        local start=start+29
        local uvi=string.split(fdata2[start+14]," ")
        local wsp=string.split(fdata2[start+26]," ")
        local wdr=string.split(fdata2[start+28]," ")
        day4={day=fdata2[start],con=fdata2[start+1],hih=fdata2[start+2],low=fdata2[start+3],sri=fdata2[start+5],sst=fdata2[start+7],mri=fdata2[start+9],mst=fdata2[start+11],uvn=uvi[1],uvt=string.gsub(uvi[2],"[%(%)]",""),hum=fdata2[start+16],ppt=fdata2[start+18],snw=fdata2[start+20],cld=fdata2[start+22],mph=fdata2[start+24],wmh=string.gsub(wsp[1],"[%a]",""),wkm=string.gsub(wsp[2],"[%a%(,]",""),wkt=string.gsub(wsp[3],"[%a%)]",""),wdg=wdr[1],wdi=string.gsub(wdr[2],"[%(%)\n\r]","")}
        --day5
        local start=start+29
        local uvi=string.split(fdata2[start+14]," ")
        local wsp=string.split(fdata2[start+26]," ")
        local wdr=string.split(fdata2[start+28]," ")
        day5={day=fdata2[start],con=fdata2[start+1],hih=fdata2[start+2],low=fdata2[start+3],sri=fdata2[start+5],sst=fdata2[start+7],mri=fdata2[start+9],mst=fdata2[start+11],uvn=uvi[1],uvt=string.gsub(uvi[2],"[%(%)]",""),hum=fdata2[start+16],ppt=fdata2[start+18],snw=fdata2[start+20],cld=fdata2[start+22],mph=fdata2[start+24],wmh=string.gsub(wsp[1],"[%a]",""),wkm=string.gsub(wsp[2],"[%a%(,]",""),wkt=string.gsub(wsp[3],"[%a%)]",""),wdg=wdr[1],wdi=string.gsub(wdr[2],"[%(%)\n\r]","")}
        --day6
        local start=start+29
        local uvi=string.split(fdata2[start+14]," ")
        local wsp=string.split(fdata2[start+26]," ")
        local wdr=string.split(fdata2[start+28]," ")
        day6={day=fdata2[start],con=fdata2[start+1],hih=fdata2[start+2],low=fdata2[start+3],sri=fdata2[start+5],sst=fdata2[start+7],mri=fdata2[start+9],mst=fdata2[start+11],uvn=uvi[1],uvt=string.gsub(uvi[2],"[%(%)]",""),hum=fdata2[start+16],ppt=fdata2[start+18],snw=fdata2[start+20],cld=fdata2[start+22],mph=fdata2[start+24],wmh=string.gsub(wsp[1],"[%a]",""),wkm=string.gsub(wsp[2],"[%a%(,]",""),wkt=string.gsub(wsp[3],"[%a%)]",""),wdg=wdr[1],wdi=string.gsub(wdr[2],"[%(%)\n\r]","")}
        --day7
        local start=start+29
        local uvi=string.split(fdata2[start+14]," ")
        local wsp=string.split(fdata2[start+26]," ")
        local wdr=string.split(fdata2[start+28]," ")
        day7={day=fdata2[start],con=fdata2[start+1],hih=fdata2[start+2],low=fdata2[start+3],sri=fdata2[start+5],sst=fdata2[start+7],mri=fdata2[start+9],mst=fdata2[start+11],uvn=uvi[1],uvt=string.gsub(uvi[2],"[%(%)]",""),hum=fdata2[start+16],ppt=fdata2[start+18],snw=fdata2[start+20],cld=fdata2[start+22],mph=fdata2[start+24],wmh=wmh,wkm=wkm,wkt=wkt,wdg=wdg,wdi=wdi}
        --day8
        local start=start+29
        local uvi=string.split(fdata2[start+14]," ")
        local wsp=string.split(fdata2[start+26]," ")
        local wdr=string.split(fdata2[start+28]," ")
        day8={day=fdata2[start],con=fdata2[start+1],hih=fdata2[start+2],low=fdata2[start+3],sri=fdata2[start+5],sst=fdata2[start+7],mri=fdata2[start+9],mst=fdata2[start+11],uvn=uvi[1],uvt=string.gsub(uvi[2],"[%(%)]",""),hum=fdata2[start+16],ppt=fdata2[start+18],snw=fdata2[start+20],cld=fdata2[start+22],mph=fdata2[start+24],wmh=string.gsub(wsp[1],"[%a]",""),wkm=string.gsub(wsp[2],"[%a%(,]",""),wkt=string.gsub(wsp[3],"[%a%)]",""),wdg=wdr[1],wdi=string.gsub(wdr[2],"[%(%)\n\r]","")}
        --day9
        local start=start+29
        local uvi=string.split(fdata2[start+14]," ")
        local wsp=string.split(fdata2[start+26]," ")
        local wdr=string.split(fdata2[start+28]," ")
        day9={day=fdata2[start],con=fdata2[start+1],hih=fdata2[start+2],low=fdata2[start+3],sri=fdata2[start+5],sst=fdata2[start+7],mri=fdata2[start+9],mst=fdata2[start+11],uvn=uvi[1],uvt=string.gsub(uvi[2],"[%(%)]",""),hum=fdata2[start+16],ppt=fdata2[start+18],snw=fdata2[start+20],cld=fdata2[start+22],mph=fdata2[start+24],wmh=string.gsub(wsp[1],"[%a]",""),wkm=string.gsub(wsp[2],"[%a%(,]",""),wkt=string.gsub(wsp[3],"[%a%)]",""),wdg=wdr[1],wdi=string.gsub(wdr[2],"[%(%)\n\r]","")}
        --day10
        local start=start+29
        local uvi=string.split(fdata2[start+14]," ")
        local wsp=string.split(fdata2[start+26]," ")
        local wdr=string.split(fdata2[start+28]," ")
        day10={day=fdata2[start],con=fdata2[start+1],hih=fdata2[start+2],low=fdata2[start+3],sri=fdata2[start+5],sst=fdata2[start+7],mri=fdata2[start+9],mst=fdata2[start+11],uvn=uvi[1],uvt=string.gsub(uvi[2],"[%(%)]",""),hum=fdata2[start+16],ppt=fdata2[start+18],snw=fdata2[start+20],cld=fdata2[start+22],mph=fdata2[start+24],wmh=string.gsub(wsp[1],"[%a]",""),wkm=string.gsub(wsp[2],"[%a%(,]",""),wkt=string.gsub(wsp[3],"[%a%)]",""),wdg=wdr[1],wdi=string.gsub(wdr[2],"[%(%)\n\r]","")}
        end--timer section
        display(now,day1,day2,day3,day4,day5,day6,day7,day8,day9,day10)
        --################################################################3
        end-- if updates>5
        cairo_destroy(cr)
        cairo_surface_destroy(cs)
        cr=nil
        return ""
        end-- end main function
    
        function display(now,day1,day2,day3,day4,day5,day6,day7,day8,day9,day10)
        --print (now.con,now.tmp,now.flk,now.wch,now.cel,now.hid,now.vis,now.dpt,now.wsp,now.wdg,now.wgi,now.wgs,now.hum,now.prs)
        --[[
        --forecast information, 10 day, options
        --use like this  dayX.option (where X=day number (1=today,2=tomorrow))
        --eg day1.day
        day=forecast day and date
        con=conditions summary
        hih=high temp
        low=low temp
        sri=sunrise
        sst=sunset
        mri=moon rise
        mst=moon set
        uvi=ultraviolet index
        hum=humidity
        ppt=chance of precipitation
        snw=chance of snow
        cld=cloud cover
        mph=moon phase
        wmh=wind speed in mph
        wkm=wind speed in km/h
        wkt=wind speed in knots
        wdg=wind direction in degrees
        wdi=wind direction in nesw
        ]]
        --#####################################
        --setup text type and color
        local font="Mono"
        local fsize=10
        local red,green,blue,alpha=1,1,1,1
        local xpos=430
        local ypos=30--first line
        local gap1=fsize+2
        ---------------------------
        text=day1.day;txt(text,xpos,ypos,font,14,red,green,blue,alpha)
        text="    Conditions: "..day1.con;gap=gap1+4;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="     High Temp: "..day1.hih.."°"..units;gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="      Low Temp: "..day1.low.."°"..units;gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="      Sun Rise: "..day1.sri;gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="       Sun Set: "..day1.sst;gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="     Moon Rise: "..day1.mri;gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="      Moon Set: "..day1.mst;gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="    Moon Phase: "..day1.mph;gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="      UV Index: "..day1.uvn.." ("..day1.uvt..")";gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="      Humidity: "..day1.hum.."%";gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="Chance of Rain: "..day1.ppt.."%";gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="Chance of Snow: "..day1.snw.."%";gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="   Cloud Cover: "..day1.cld.."%";gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="    Wind Speed: "..day1.wmh.."mph";gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="Wind Direction: "..day1.wdg.."° ("..day1.wdi..")";gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        ypos=240--first line
        gap1=fsize+2
        gap=0
        text=day2.day;txt(text,xpos,ypos,font,14,red,green,blue,alpha)
        text="    Conditions: "..day2.con;gap=gap1+4;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="     High Temp: "..day2.hih.."°"..units;gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="      Low Temp: "..day2.low.."°"..units;gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="      Sun Rise: "..day2.sri;gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="       Sun Set: "..day2.sst;gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="     Moon Rise: "..day2.mri;gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="      Moon Set: "..day2.mst;gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="    Moon Phase: "..day2.mph;gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="      UV Index: "..day2.uvn.." ("..day1.uvt..")";gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="      Humidity: "..day2.hum.."%";gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="Chance of Rain: "..day2.ppt.."%";gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="Chance of Snow: "..day2.snw.."%";gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="   Cloud Cover: "..day2.cld.."%";gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="    Wind Speed: "..day2.wmh.."mph";gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        text="Wind Direction: "..day2.wdg.."° ("..day2.wdi..")";gap=gap+gap1;txt(text,xpos,ypos+gap,font,fsize,red,green,blue,alpha)
        --#####################################
        --thermometers for current temps
        --thermometer
        local scale=1--1=full size, 0.5=half size, 2=double size
        local x=35.5
        local y=200.5
        local temp=tonumber(now.tmp)
        local label="Current Temperature"
        thermometer (x,y,temp,label,scale,mid,units)
        --thermometer
        local scale=0.75
        local x=x+70
        local y=155.5
        local temp=tonumber(now.flk)
        local label="Feels Like Temp"
        thermometer (x,y,temp,label,scale,mid,units)
        --thermometer
        local scale=0.75
        local x=x+60
        local y=y
        local temp=tonumber(now.wch)
        local label="Wind Chill Temp"
        thermometer (x,y,temp,label,scale,mid,units)
        --thermometer
        local scale=0.75
        local x=x+60
        local y=y
        local temp=tonumber(now.hid)
        local label="Heat Index Temp"
        thermometer (x,y,temp,label,scale,mid,units)
        --thermometer
        local scale=0.75
        local x=x+60
        local y=y
        local temp=tonumber(now.dpt)
        local label="Dew Point Temp"
        thermometer (x,y,temp,label,scale,mid,units)
        --#############################################
        --hi/lo thermometers for forecast days
        --thermometer day1 high
        local scale=0.4
        local x=628
        local y=30+95
        local temp=tonumber(day1.hih)
        local label="none"
        thermometer (x,y,temp,label,scale,mid,units)
        text="HI";txt(text,x-22,y-20,"Mono",12,1,1,1,1)
        --thermometer day1 low
        local scale=0.4
        local x=x
        local y=y+90
        local temp=tonumber(day1.low)
        local label="none"
        thermometer (x,y,temp,label,scale,mid,units)
        text="LO";txt(text,x-22,y-20,"Mono",12,1,1,1,1)
        --thermometer day2 high
        local scale=0.4
        local x=x
        local y=240+95
        local temp=tonumber(day2.hih)
        local label="none"
        thermometer (x,y,temp,label,scale,mid,units)
        text="HI";txt(text,x-22,y-20,"Mono",12,1,1,1,1)
        --thermometer day2 low
        local scale=0.4
        local x=x
        local y=y+90
        local temp=tonumber(day2.low)
        local label="none"
        thermometer (x,y,temp,label,scale,mid,units)
        text="LO";txt(text,x-22,y-20,"Mono",12,1,1,1,1)
        --#############################################
        --wind direction compass
        compass(170,245,50,tonumber(now.wdg),now.wsp,now.wgs)
        --windspeed dial
        wspeed_dial(now.wsp,325,300)
        --################################################################3
        --pressure barometer
        barometer(tonumber(now.prs),130,395)
        --#########################################
        --humidity bar
        humidity(340.5,20.5,tonumber(now.hum))
        --#########################################
        --current conditions display
        text="Currently:";txt(text,250,450,"Mono",12,1,1,1,1)
        text=now.con;txt(text,250,470,"Mono",22,1,1,1,1)
        text="Visibility: "..now.vis.." miles, Ceiling: "..now.cel;txt(text,250,490,"Mono",10,1,1,1,1)
        end--display
        --#############################################################################################################################################################
        function wspeed_dial(ws,px,py)
        --0 to 60 mph
        --draw circle
        cairo_set_line_width (cr,1)
        local router=110
        cairo_set_source_rgba (cr,0.1,0.1,0.1,1)
        cairo_arc (cr,px,py,router,(math.pi/180),0)
        cairo_fill (cr)
        cairo_set_source_rgba (cr,1,1,1,1)
        cairo_arc (cr,px,py,router,(math.pi/180),0)
        cairo_stroke (cr)
        -------------------------------------------
        --mph scale
        local rout1=80
        local rin1=rout1-10
        for i=0,60 do
        if i==5 or i==15 or i==25 or i==35 or i==45 then
        rin=rin1--set line length for 5s
        cairo_set_line_width (cr,1)
        elseif i==0 or i==10 or i==20 or i==30 or i==40 or i==50 or i==60 then
        rin=rin1+7--set line length for 10's
        cairo_set_line_width (cr,3)
        else
        rin=rin1+5--set other lines
        cairo_set_line_width (cr,1)
        end--if i==
        arc=(math.pi/180)*(210+(i*(300/60)))
        ppx=0+rout1*(math.sin(arc))
        ppy=0-rout1*(math.cos(arc))
        arc=(math.pi/180)*(210+(i*300/60))
        pix=0+rin*(math.sin(arc))
        piy=0-rin*(math.cos(arc))
        cairo_move_to (cr,px+ppx,py+ppy)
        cairo_line_to (cr,px+pix,py+piy)
        cairo_stroke (cr)
        end--for i=
        --mph reading
        mph={0,10,20,30,40,50,60}
        local rin=rin1-2
        for i=1,#mph do
        arc=(math.pi/180)*(210+((i-1)*(300/6)))
        ppx=0+rin*(math.sin(arc))
        ppy=0-rin*(math.cos(arc))
        text=mph[i]
        extents=cairo_text_extents_t:create()
        cairo_text_extents(cr,text,extents)
        width=extents.width
        height=extents.height
        cairo_move_to (cr,px+ppx-(width/2),py+ppy+(height/2))
        cairo_show_text (cr,text)
        cairo_stroke (cr)
        end--for i= print inches
        --kmh lines and numbers
        --60kmh=96.5606
        cairo_set_line_width (cr,1)
        local m1=300/96.5606
        local rout2=60
        local rin2=rout2-5
        local num=95
        --print lines---------------
        for i=0,num do
        if i==0 or i==10 or i==20 or i==30 or i==40 or i==50 or i==60 or i==70 or i==80 or i==90 then
        rin=rin2-5--set length for 10s
        elseif i==5 or i==15 or i==25 or i==35 or i==45 or i==55 or i==65 or 1==75 or i==85 or i==95 then
        rin=rin2-2--set length for 5's
        else
        rin=rin2
        end--if i=
        ---------------------------------------------------
        arc=(math.pi/180)*(210+(i*m1))
        ppx=0+rout2*(math.sin(arc))
        ppy=0-rout2*(math.cos(arc))
        arc=(math.pi/180)*(210+(i*m1))
        pix=0+rin*(math.sin(arc))
        piy=0-rin*(math.cos(arc))
        cairo_move_to (cr,px+ppx,py+ppy)
        cairo_line_to (cr,px+pix,py+piy)
        cairo_stroke (cr)
        end--for i --line drawing
        --kmh reading
        kmh={0,10,20,30,40,50,60,70,80,90}
        local rout=rin2-18
        for i=1,#kmh do
        arc=(math.pi/180)*(210+((i-1)*(m1*10)))
        ppx=0+rout*(math.sin(arc))
        ppy=0-rout*(math.cos(arc))
        text=kmh[i]
        extents=cairo_text_extents_t:create()
        cairo_text_extents(cr,text,extents)
        width=extents.width
        height=extents.height
        cairo_move_to (cr,px+ppx-(width/2),py+ppy+(height/2))
        cairo_show_text (cr,text)
        cairo_stroke (cr)
        end--kmh lines and numbers
        --knots
        --60kmh=52.1386
        cairo_set_line_width (cr,1)
        local m1=300/52.1386
        local rout3=90
        local rin3=rout3-5
        local num=50
        --print lines---------------
        for i=0,num do
        if i==0 or i==10 or i==20 or i==30 or i==40 or i==50 then
        rout=rout3-1--set length for 10s
        cairo_set_line_width (cr,3)
        elseif i==5 or i==15 or i==25 or i==35 or i==45 then
        rout=rout3+4--set length for 5's
        cairo_set_line_width (cr,1)
        else
        rout=rout3
        cairo_set_line_width (cr,1)
        end--if i=
        ---------------------------------------------------
        arc=(math.pi/180)*(210+(i*m1))
        ppx=0+rout*(math.sin(arc))
        ppy=0-rout*(math.cos(arc))
        arc=(math.pi/180)*(210+(i*m1))
        pix=0+rin3*(math.sin(arc))
        piy=0-rin3*(math.cos(arc))
        cairo_move_to (cr,px+pix,py+piy)
        cairo_line_to (cr,px+ppx,py+ppy)
        cairo_stroke (cr)
        end--for i --line drawing
        --kmh reading
        knot={0,10,20,30,40,50}
        local rout=rin3+15
        for i=1,#kmh do
        arc=(math.pi/180)*(210+((i-1)*(m1*10)))
        ppx=0+rout*(math.sin(arc))
        ppy=0-rout*(math.cos(arc))
        text=knot[i]
        extents=cairo_text_extents_t:create()
        cairo_text_extents(cr,text,extents)
        width=extents.width
        height=extents.height
        cairo_move_to (cr,px+ppx-(width/2),py+ppy+(height/2))
        cairo_show_text (cr,text)
        cairo_stroke (cr)
        end
        --scale labels
        local text="mph"
        local extents=cairo_text_extents_t:create()
        cairo_text_extents(cr,text,extents)
        local width=extents.width
        local height=extents.height
        cairo_move_to (cr,px-(width/2),py+rin1)
        cairo_show_text (cr,text)
        cairo_stroke (cr)
        local text="kmh"
        extents=cairo_text_extents_t:create()
        cairo_text_extents(cr,text,extents)
        local width=extents.width
        local height=extents.height
        cairo_move_to (cr,px-(width/2),py+rin2)
        cairo_show_text (cr,text)
        cairo_stroke (cr)
        local text="knots"
        extents=cairo_text_extents_t:create()
        cairo_text_extents(cr,text,extents)
        local width=extents.width
        local height=extents.height
        cairo_move_to (cr,px-(width/2),py+rin3)
        cairo_show_text (cr,text)
        cairo_stroke (cr)
        local text="Wind Speed"
        extents=cairo_text_extents_t:create()
        cairo_text_extents(cr,text,extents)
        local width=extents.width
        local height=extents.height
        cairo_move_to (cr,px-(width/2),py+rin3+16)
        cairo_show_text (cr,text)
        cairo_stroke (cr)
        --pointer
        if ws==nil then ws=0 end
        local wspd=ws
        local m1=300/60
        local m2=wspd*m1
        local rout1=rout3
        local arc=(math.pi/180)*(210+m2)
        local ppx=0+rout1*(math.sin(arc))
        local ppy=0-rout1*(math.cos(arc))
        ------------------------------
        local arc=(math.pi/180)*(210+m2+180)
        local ppox=0+rout1*(math.sin(arc))
        local ppoy=0-rout1*(math.cos(arc))
        -------------------------------
        local rin3=7
        local arc=(math.pi/180)*(210+m2-90)
        local pilx=0+rin3*(math.sin(arc))
        local pily=0-rin3*(math.cos(arc))
        local arc=(math.pi/180)*(210+m2+90)
        local pirx=0+rin3*(math.sin(arc))
        local piry=0-rin3*(math.cos(arc))
        --------------------------------
        cairo_move_to (cr,px+pilx,py+pily)
        cairo_line_to (cr,px+ppx,py+ppy)
        cairo_line_to (cr,px+pirx,py+piry)
        cairo_line_to (cr,px+pilx,py+pily)
        cairo_set_source_rgba (cr,1,0,0,1)
        cairo_fill (cr)
        cairo_arc (cr,px,py,rin3,(math.pi/180),0)
        cairo_fill (cr)
        ---------------------------------
        cairo_move_to (cr,px+pilx,py+pily)
        cairo_line_to (cr,px+ppox,py+ppoy)
        cairo_line_to (cr,px+pirx,py+piry)
        cairo_line_to (cr,px+pilx,py+pily)
        cairo_set_source_rgba (cr,1,1,1,1)
        cairo_fill (cr)
        cairo_set_source_rgba (cr,1,0,0,1)
        cairo_arc (cr,px,py,rin3,(math.pi/180),0)
        cairo_fill (cr)
        -----------------------------------
        cairo_set_source_rgba (cr,0,0,0,1)
        cairo_arc (cr,px,py,rin3-1,(math.pi/180),0)
        cairo_fill (cr)
        end--wspeed dial function
        --#############################################################################################################################################################
        function circlewriting(text, font, fsize, radi, horiz, verti, start, finish)
        cairo_select_font_face (cr, font, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
        cairo_set_font_size (cr, fsize)
        cairo_set_source_rgba (cr,1,1,1,1);
        local inum=string.len(text)
        local deg=(finish-start)/(inum-1)
        local degrads=(math.pi/180)
        local textcut=string.gsub(text, ".", "%1|")
        texttable=string.split(textcut, "|")
        for i=1,inum do
        interval=(degrads*(start+(deg*(i-1))))
        txs=0+radi*(math.sin(interval))
        tys=0-radi*(math.cos(interval))
        cairo_move_to (cr, txs+horiz, tys+verti);
        cairo_rotate (cr, interval)
        cairo_show_text (cr, (texttable[i]))
        cairo_stroke (cr)
        cairo_rotate (cr, -interval)
        end
        end--circlewriting
        --#############################################################################################################################################################
        --#############################################################################################################################################################
        function humidity(x,y,hval1)
        hval=hval1*1.5
        yt=y-1
        rh=151
        rw=30
        local pat = cairo_pattern_create_linear (0,yt,0,yt+rh);
        cairo_pattern_add_color_stop_rgba (pat, 1, 0, 0, 1, 0);
        cairo_pattern_add_color_stop_rgba (pat, 0, 0, 0, 1, 1);
        cairo_rectangle (cr,x,yt,rw, rh);
        cairo_set_source (cr, pat);
        cairo_fill (cr);
        cairo_pattern_destroy (pat);
        ----------
        for i=1,11 do
        lwid=-1
        cairo_set_source_rgba (cr,1,1,1,1)
        cairo_move_to (cr,x+rw,(y+150)-((i-1)*15))
        cairo_rel_line_to (cr,lwid,0)
        cairo_stroke(cr)
        end
        ----------
        cairo_set_source_rgba (cr,1,1,1,1)
        hh=5
        hw1=19
        hw2=hw1+10
        if hval==nil then hval=0 end
        tx,ty=x+hw1,(y+150)-(hval+hh)
        ix,iy=x+hw2,(y+150)-hval
        bx,by=x+hw1,(y+150)-(hval-hh)
        cairo_move_to (cr,tx,ty)
        cairo_line_to (cr,ix,iy)
        cairo_line_to (cr,bx,by)
        cairo_line_to (cr,tx,ty)
        cairo_fill (cr)
        cairo_set_source_rgba (cr,1,1,1,1)
        font="Mono"
        fsize=12
        cairo_select_font_face (cr, font, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
        cairo_set_font_size (cr, fsize)
        cairo_move_to (cr,x+hw2+3,(y+150)-(hval-hh))
        cairo_show_text (cr,hval1.."%")
        cairo_stroke (cr)
        label="Relative Humidity"
        cairo_move_to (cr,x+12,y+150)
        cairo_rotate (cr,(math.pi/180)*(-90))
        cairo_show_text (cr,label)
        cairo_stroke (cr)
        cairo_rotate (cr,(math.pi/180)*(90))
        end--humidity
        --#############################################################################################################################################################
        --#############################################################################################################################################################
        function txt(text,xpos,ypos,font,fsize,red,green,blue,alpha)
        cairo_select_font_face (cr, font, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
        cairo_set_font_size (cr, fsize)
        cairo_set_source_rgba (cr,red,green,blue,alpha)
        cairo_move_to (cr,xpos,ypos)
        cairo_show_text (cr,text)
        cairo_stroke (cr)
        end--function txt
        --#############################################################################################################################################################
        --#############################################################################################################################################################
        function barometer(pr,px,py)
        --baromeer 27 inches to 32 inches = 5 inches
        cairo_set_line_width (cr,1)
        local router=100
        cairo_set_source_rgba (cr,0.1,0.1,0.1,1)
        cairo_arc (cr,px,py,router,(math.pi/180),0)
        cairo_fill (cr)
        cairo_set_source_rgba (cr,1,1,1,1)
        cairo_arc (cr,px,py,router,(math.pi/180),0)
        cairo_stroke (cr)
        local rout1=75
        local rin1=rout1-10
        for i=0,40 do
        if i==5 or i==15 or i==25 or i==35 then
        rout=rout1-7
        cairo_set_line_width (cr,3)
        elseif i==0 or i==10 or i==20 or i==30 or i==40 then
        rout=rout1
        cairo_set_line_width (cr,1)
        else
        rout=rout1-5
        cairo_set_line_width (cr,1)
        end
        arc=(math.pi/180)*(210+(i*(300/40)))
        ppx=0+rout*(math.sin(arc))
        ppy=0-rout*(math.cos(arc))
        arc=(math.pi/180)*(210+(i*300/40))
        pix=0+rin1*(math.sin(arc))
        piy=0-rin1*(math.cos(arc))
        cairo_move_to (cr,px+ppx,py+ppy)
        cairo_line_to (cr,px+pix,py+piy)
        cairo_stroke (cr)
        end
        --inches reading
        inch={28,29,30,31}
        local rout=rout1+2
        for i=1,4 do
        arc=(math.pi/180)*(210+(300/8)+((i-1)*(300/4)))
        ppx=0+rout*(math.sin(arc))
        ppy=0-rout*(math.cos(arc))
        text=inch[i]
        extents=cairo_text_extents_t:create()
        cairo_text_extents(cr,text,extents)
        width=extents.width
        height=extents.height
        cairo_move_to (cr,px+ppx-(width/2),py+ppy+(height/2))
        cairo_show_text (cr,text)
        cairo_stroke (cr)
        end
        --942 to 1056
        --27.5=931.25
        --31.5=1066.70
        cairo_set_line_width (cr,1)
        local m1=300/135.45
        local m2=m1*8.75--931.25+8.75=940
        local rout2=60
        local rin2=rout2-5
        local num=60
        for i=0,num do
        if i==0 or i==5 or i==10 or i==15 or i==20 or i==25 or i==30 or i==35 or i==40 or i==45 or i==50 or i==55 or i==60 or i==65 then
        rin=rin2-5
        else
        rin=rin2
        end
        arc=(math.pi/180)*(210+m2+(i*((m1*(num*2))/num)))
        ppx=0+rout2*(math.sin(arc))
        ppy=0-rout2*(math.cos(arc))
        arc=(math.pi/180)*(210+m2+(i*((m1*(num*2))/num)))
        pix=0+rin*(math.sin(arc))
        piy=0-rin*(math.cos(arc))
        cairo_move_to (cr,px+ppx,py+ppy)
        cairo_line_to (cr,px+pix,py+piy)
        cairo_stroke (cr)
        end
        --millibars reading
        inch={940,960,980,1000,1020,1040,1060}
        local rout=rin2-18
        for i=1,7 do
        arc=(math.pi/180)*(210+m2+((i-1)*(m1*20)))
        ppx=0+rout*(math.sin(arc))
        ppy=0-rout*(math.cos(arc))
        text=inch[i]
        extents=cairo_text_extents_t:create()
        cairo_text_extents(cr,text,extents)
        width=extents.width
        height=extents.height
        cairo_move_to (cr,px+ppx-(width/2),py+ppy+(height/2))
        cairo_show_text (cr,text)
        cairo_stroke (cr)
        end
        --scale labels
        local text="inches hg"
        local extents=cairo_text_extents_t:create()
        cairo_text_extents(cr,text,extents)
        local width=extents.width
        local height=extents.height
        cairo_move_to (cr,px-(width/2),py+rin1)
        cairo_show_text (cr,text)
        cairo_stroke (cr)
        local text="millibars"
        extents=cairo_text_extents_t:create()
        cairo_text_extents(cr,text,extents)
        local width=extents.width
        local height=extents.height
        cairo_move_to (cr,px-(width/2),py+rin2-height)
        cairo_show_text (cr,text)
        cairo_stroke (cr)
        local text="Pressure"
        extents=cairo_text_extents_t:create()
        cairo_text_extents(cr,text,extents)
        local width=extents.width
        local height=extents.height
        cairo_move_to (cr,px-(width/2),py+rin2+35)
        cairo_show_text (cr,text)
        cairo_stroke (cr)
        --pointer
        if pr==nil then pr=27.5 end
        local pres=pr-27.5
        local m1=300/4
        local m2=pres*m1
        local rout1=rout1
        local arc=(math.pi/180)*(210+m2)
        local ppx=0+rout1*(math.sin(arc))
        local ppy=0-rout1*(math.cos(arc))
        ------------------------------
        local arc=(math.pi/180)*(210+m2+180)
        local ppox=0+rout1*(math.sin(arc))
        local ppoy=0-rout1*(math.cos(arc))
        -------------------------------
        local rin3=7
        local arc=(math.pi/180)*(210+m2-90)
        local pilx=0+rin3*(math.sin(arc))
        local pily=0-rin3*(math.cos(arc))
        local arc=(math.pi/180)*(210+m2+90)
        local pirx=0+rin3*(math.sin(arc))
        local piry=0-rin3*(math.cos(arc))
        --------------------------------
        cairo_move_to (cr,px+pilx,py+pily)
        cairo_line_to (cr,px+ppx,py+ppy)
        cairo_line_to (cr,px+pirx,py+piry)
        cairo_line_to (cr,px+pilx,py+pily)
        cairo_set_source_rgba (cr,1,0,0,1)
        cairo_fill (cr)
        cairo_arc (cr,px,py,rin3,(math.pi/180),0)
        cairo_fill (cr)
        ---------------------------------
        cairo_move_to (cr,px+pilx,py+pily)
        cairo_line_to (cr,px+ppox,py+ppoy)
        cairo_line_to (cr,px+pirx,py+piry)
        cairo_line_to (cr,px+pilx,py+pily)
        cairo_set_source_rgba (cr,1,1,1,1)
        cairo_fill (cr)
        cairo_set_source_rgba (cr,1,0,0,1)
        cairo_arc (cr,px,py,rin3,(math.pi/180),0)
        cairo_fill (cr)
        -----------------------------------
        cairo_set_source_rgba (cr,0,0,0,1)
        cairo_arc (cr,px,py,rin3-1,(math.pi/180),0)
        cairo_fill (cr)
        ----text
        local horiz=px
        local verti=py
        local radi=87
        local text="STORMY"
        local font="Mono"
        local fsize=12
        local start=250
        local finish=start+((string.len(text))*5)
        circlewriting(text, font, fsize, radi, horiz, verti, start, finish)
        local text="RAIN"
        local start=300
        local finish=start+((string.len(text))*5)
        circlewriting(text, font, fsize, radi, horiz, verti, start, finish)
        local text="CHANGE"
        local start=340
        local finish=start+((string.len(text))*5)
        circlewriting(text, font, fsize, radi, horiz, verti, start, finish)
        local text="FAIR"
        local start=395
        local finish=start+((string.len(text))*5)
        circlewriting(text, font, fsize, radi, horiz, verti, start, finish)
        local text="VERY DRY"
        local start=435
        local finish=start+((string.len(text))*5)
        circlewriting(text, font, fsize, radi, horiz, verti, start, finish)
        end--barometer
        --#############################################################################################################################################################
        --#############################################################################################################################################################
        function compass(wx,wy,rout,wdeg,w,wg)
        local rin=rout-((rout/100)*10)
        cairo_set_source_rgba (cr,0.1,0.1,0.1,1)
        cairo_arc (cr,wx,wy,rout,(math.pi/180),0)
        cairo_fill (cr)
        cairo_set_source_rgba (cr,1,1,1,1)
        cairo_arc (cr,wx,wy,rout,(math.pi/180),0)
        cairo_stroke (cr)
        for i=1,36 do
        arc=(math.pi/180)*(i*10)
        wpx=0+rout*(math.sin(arc))
        wpy=0-rout*(math.cos(arc))
        arc=(math.pi/180)*(i*10)
        wix=0+rin*(math.sin(arc))
        wiy=0-rin*(math.cos(arc))
        cairo_move_to (cr,wx+wpx,wy+wpy)
        cairo_line_to (cr,wx+wix,wy+wiy)
        cairo_stroke (cr)
        end
        --print directions
        local font="Mono"
        local fsize=10
        cairo_select_font_face (cr, font, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
        cairo_set_font_size (cr, fsize)
        dirs={"N","NE","E","SE","S","SW","W","NW"}
        local rdir=rout-((rout/100)*25)
        for i=1,8 do
        arc=(math.pi/180)*((i-1)*(360/8))
        wdx=0+rdir*(math.sin(arc))
        wdy=0-rdir*(math.cos(arc))
        text=dirs[i]
        extents=cairo_text_extents_t:create()
        cairo_text_extents(cr,text,extents)
        width=extents.width
        height=extents.height
        cairo_move_to (cr,wx+wdx-(width/2),wy+wdy+(height/2))
        cairo_show_text (cr,text)
        cairo_stroke (cr)
        end
        --indicator
        local npr=rout-((rout/100)*15)
        if wdeg==nil then wdeg=0 end
        local arc=(math.pi/180)*(wdeg)
        local npx=0+npr*(math.sin(arc))
        local npy=0-npr*(math.cos(arc))
        cairo_move_to (cr,wx+npx,wy+npy)
        local nprm=rout-((rout/100)*88)
        local arc=(math.pi/180)*(wdeg+90)
        local npmrx=0+nprm*(math.sin(arc))
        local npmry=0-nprm*(math.cos(arc))
        local arc=(math.pi/180)*(wdeg-90)
        local npmlx=0+nprm*(math.sin(arc))
        local npmly=0-nprm*(math.cos(arc))
        cairo_line_to (cr,wx+npmrx,wy+npmry)
        cairo_line_to (cr,wx+npmlx,wy+npmly)
        cairo_line_to (cr,wx+npx,wy+npy)
        cairo_set_source_rgba (cr,1,0,0,1)
        cairo_fill (cr)
        cairo_set_source_rgba (cr,1,1,1,1)
        ---------------------------------
        local arc=(math.pi/180)*(wdeg-180)
        local spx=0+npr*(math.sin(arc))
        local spy=0-npr*(math.cos(arc))
        cairo_move_to (cr,wx+spx,wy+spy)
        local sprm=nprm
        local arc=(math.pi/180)*(wdeg+90-180)
        local spmrx=0+sprm*(math.sin(arc))
        local spmry=0-sprm*(math.cos(arc))
        local arc=(math.pi/180)*(wdeg-90-180)
        local spmlx=0+sprm*(math.sin(arc))
        local spmly=0-sprm*(math.cos(arc))
        cairo_line_to (cr,wx+spmrx,wy+spmry)
        cairo_line_to (cr,wx+spmlx,wy+spmly)
        cairo_line_to (cr,wx+spx,wy+spy)
        cairo_fill (cr)
        --------------------------------------
        cairo_set_source_rgba (cr,0,0,0,1)
        cairo_arc (cr,wx,wy,nprm,(math.pi/180),0)
        cairo_fill (cr)
        cairo_set_source_rgba (cr,1,0,0,1)
        cairo_arc (cr,wx,wy,nprm,(math.pi/180),0)
        cairo_stroke (cr)
        ------------------------
        cairo_set_source_rgba (cr,1,1,1,1)
        local text="Wind Direction"
        local extents=cairo_text_extents_t:create()
        cairo_text_extents(cr,text,extents)
        local width=extents.width
        local height=extents.height
        cairo_move_to (cr,wx-(width/2),wy-rout-5)
        cairo_show_text (cr,text)
        cairo_stroke (cr)
        end--compass
        --#############################################################################################################################################################
        --#############################################################################################################################################################
        function thermometer(mx,my,temp,label,scale,mid,units)
        --by mrpeachy 2011
        if scale==nil then scale=1 end
        if units=="F" then height=150 elseif units=="C" then height=160 end
        local mx=mx*(1/scale)
        local my=my*(1/scale)
        local font="Mono"
        local fsize=10
        cairo_scale (cr,scale,scale)
        cairo_set_line_width (cr,1)
        cairo_set_source_rgba (cr,1,1,1,1)
        --graphics outer
        --bottom circle
        r_outer=25
        local lang_outer=335
        local rang_outer=0+(360-lang_outer)
        local h_outer=height-4--maybe make this a percentage?###########
        cairo_arc (cr,mx,my,r_outer,(math.pi/180)*(rang_outer-90),(math.pi/180)*(lang_outer-90))
        --coordinates,left line
        local arc=(math.pi/180)*lang_outer
        local lxo=0+r_outer*(math.sin(arc))
        local lyo=0-r_outer*(math.cos(arc))
        cairo_line_to (cr,mx+lxo,my+lyo-h_outer)
        --coordinates,left line
        local arc=(math.pi/180)*rang_outer
        local rxo=0+r_outer*(math.sin(arc))
        local ryo=0-r_outer*(math.cos(arc))
        --top circle
        cairo_arc (cr,mx+lxo+((rxo-lxo)/2),my+lyo-h_outer,(rxo-lxo)/2,(math.pi/180)*(270-90),(math.pi/180)*(90-90))
        --right line
        cairo_line_to (cr,mx+lxo+((rxo-lxo)),my+lyo)
        cairo_stroke (cr)
        ----------------------------------------------
        --graphics inner
        --####################################################
        if units=="F" then
        local str,stg,stb,sta=0,1,1,1
        local mr,mg,mb,ma=1,1,0,1
        local fr,fg,fb,fa=1,0,0,1
        local nd=150
        if temp==nil then temp=0 end
        local tadj=temp+30
        local middle=mid+30
        if tadj<(middle) then
        colr=((mr-str)*(tadj/(middle)))+str
        colg=((mg-stg)*(tadj/(middle)))+stg
        colb=((mb-stb)*(tadj/(middle)))+stb
        cola=((ma-sta)*(tadj/(middle)))+sta
        elseif tadj>=(middle) then
        colr=((fr-mr)*((tadj-(middle))/(nd-middle)))+mr
        colg=((fg-mg)*((tadj-(middle))/(nd-middle)))+mg
        colb=((fb-mb)*((tadj-(middle))/(nd-middle)))+mb
        cola=((fa-ma)*((tadj-(middle))/(nd-middle)))+ma
        end
        cairo_set_source_rgba (cr,colr,colg,colb,cola)
        --bottom circle
        r_inner=r_outer-6
        local lang_inner=lang_outer+9
        local rang_inner=0+(360-lang_inner)
        local h_inner=temp+30
        cairo_arc (cr,mx,my,r_inner,(math.pi/180)*(rang_inner-90),(math.pi/180)*(lang_inner-90))
        --coordinates,left line
        local arc=(math.pi/180)*lang_inner
        lxi=0+r_inner*(math.sin(arc))
        local lyi=0-r_inner*(math.cos(arc))
        cairo_line_to (cr,mx+lxi,my+lyi-h_inner)
        --coordinates,left line
        local arc=(math.pi/180)*rang_inner
        rxi=0+r_inner*(math.sin(arc))
        local ryi=0-r_inner*(math.cos(arc))
        --top circle
        cairo_arc (cr,mx+lxi+((rxi-lxi)/2),my+lyi-h_inner,(rxi-lxi)/2,(math.pi/180)*(270-90),(math.pi/180)*(90-90))
        --right line
        cairo_line_to (cr,mx+lxi+((rxi-lxi)),my+lyi)
        cairo_fill (cr)
        ----------------------------
        if label~="none" then
        --scale lines
        cairo_set_line_width (cr,1)
        cairo_set_source_rgba (cr,1,1,1,0.5)
        local grad=10
        local lnn=15
        local lnx=mx+lxo
        local lnw=(rxo-lxo)
        for i=1,lnn do
        lny=my-r_inner-(10+((i-1)*grad))-((rxi-lxi)/2)
        if i==lnn then
        lnx=lnx+2
        lnw=lnw-4
        end
        cairo_move_to (cr,lnx,lny)
        cairo_rel_line_to (cr,lnw,0)
        cairo_stroke (cr)
        end
        --numbers
        cairo_set_source_rgba (cr,1,1,1,1)
        cairo_select_font_face (cr, font, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
        cairo_set_font_size (cr, fsize)
        local grad=20
        local lnn=8
        local lnx=mx+lxo+(rxo-lxo)+4
        num={-20,"0°"..units,20,40,60,80,100,120}
        for i=1,lnn do
        lny=my-r_inner-(10+((i-1)*grad))-((rxi-lxi)/2)+(fsize/3)
        cairo_move_to (cr,lnx,lny)
        cairo_show_text (cr,num[i])
        cairo_stroke (cr)
        end
        end--if label=none
        end--if units=F
        --#################################################
        if units=="C" then
        --from -30 to 50 C
        local str,stg,stb,sta=0,1,1,1
        local mr,mg,mb,ma=1,1,0,1
        local fr,fg,fb,fa=1,0,0,1
        local nd=160
        if temp==nil then temp=0 end
        local tadj=(temp*2)+60
        local middle=(mid*2)+60
        if tadj<(middle) then
        colr=((mr-str)*(tadj/(middle)))+str
        colg=((mg-stg)*(tadj/(middle)))+stg
        colb=((mb-stb)*(tadj/(middle)))+stb
        cola=((ma-sta)*(tadj/(middle)))+sta
        elseif tadj>=(120) then
        colr=((fr-mr)*((tadj-(middle))/(nd-middle)))+mr
        colg=((fg-mg)*((tadj-(middle))/(nd-middle)))+mg
        colb=((fb-mb)*((tadj-(middle))/(nd-middle)))+mb
        cola=((fa-ma)*((tadj-(middle))/(nd-middle)))+ma
        end
        cairo_set_source_rgba (cr,colr,colg,colb,cola)
        --cairo_set_source_rgba (cr,0,1,1,1)
        --bottom circle
        r_inner=r_outer-6
        local lang_inner=lang_outer+9
        local rang_inner=0+(360-lang_inner)
        local h_inner=(temp*2)+60
        cairo_arc (cr,mx,my,r_inner,(math.pi/180)*(rang_inner-90),(math.pi/180)*(lang_inner-90))
        --coordinates,left line
        local arc=(math.pi/180)*lang_inner
        lxi=0+r_inner*(math.sin(arc))
        local lyi=0-r_inner*(math.cos(arc))
        cairo_line_to (cr,mx+lxi,my+lyi-h_inner)
        --coordinates,left line
        local arc=(math.pi/180)*rang_inner
        rxi=0+r_inner*(math.sin(arc))
        local ryi=0-r_inner*(math.cos(arc))
        --top circle
        cairo_arc (cr,mx+lxi+((rxi-lxi)/2),my+lyi-h_inner,(rxi-lxi)/2,(math.pi/180)*(270-90),(math.pi/180)*(90-90))
        --right line
        cairo_line_to (cr,mx+lxi+((rxi-lxi)),my+lyi)
        cairo_fill (cr)
        ----------------------------
        if label~="none" then
        --scale lines
        cairo_set_line_width (cr,1)
        cairo_set_source_rgba (cr,1,1,1,0.5)
        local grad=10
        local lnn=17
        local lnx=mx+lxo
        local lnw=(rxo-lxo)
        for i=1,lnn do
        lny=my-r_inner-(((i-1)*grad))-((rxi-lxi)/2)
        if i==lnn then
        lnx=lnx+2
        lnw=lnw-4
        end
        cairo_move_to (cr,lnx,lny)
        cairo_rel_line_to (cr,lnw,0)
        cairo_stroke (cr)
        end
        --numbers
        cairo_set_source_rgba (cr,1,1,1,1)
        cairo_select_font_face (cr, font, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
        cairo_set_font_size (cr, fsize)
        local grad=20
        local lnn=9
        local lnx=mx+lxo+(rxo-lxo)+4
        num={-30,-20,-10,"0°"..units,10,20,30,40,50}
        for i=1,lnn do
        lny=my-r_inner-(((i-1)*grad))-((rxi-lxi)/2)+(fsize/3)
        cairo_move_to (cr,lnx,lny)
        cairo_show_text (cr,num[i])
        cairo_stroke (cr)
        end
        end--if label=none
        end--if units=C
        --#################################################
        --label
        if label~="none" then
        local font="Mono"
        local fsize=12
        cairo_select_font_face (cr, font, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
        cairo_set_font_size (cr, fsize)
        local lbx=mx+lxo-5
        local lby=my-r_inner-10-((rxi-lxi)/2)
        cairo_move_to (cr,lbx,lby)
        cairo_rotate (cr,(math.pi/180)*(-90))
        cairo_show_text (cr,label)
        cairo_stroke (cr)
        cairo_rotate (cr,(math.pi/180)*(90))
        --temperature readout
        cairo_set_source_rgba (cr,0,0,0,1)
        local text=temp.."°"..units
        local extents=cairo_text_extents_t:create()
        cairo_text_extents(cr,text,extents)
        local width=extents.width
        local height=extents.height
        cairo_move_to (cr,mx-(width/2),my+(height/2))
        cairo_show_text (cr,text)
        cairo_stroke (cr)
        end--if label
        ------------------------------------
        cairo_scale (cr,1/scale,1/scale)
        end--thermometer function
        --#############################################################################################################################################################
        --#############################################################################################################################################################
        function conky_draw_bg(r,x,y,w,h,color,alpha)
        local function rgb_to_r_g_b(colour,alpha)
        return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
        end
        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 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_set_source_rgba (cr,rgb_to_r_g_b(color,alpha))
        --top left mid circle
        local xtl=x+r
        local ytl=y+r
        --top right mid circle
        local xtr=(x+r)+((w)-(2*r))
        local ytr=y+r
        --bottom right mid circle
        local xbr=(x+r)+((w)-(2*r))
        local ybr=(y+r)+((h)-(2*r))
        --bottom right mid circle
        local xbl=(x+r)
        local ybl=(y+r)+((h)-(2*r))
        -----------------------------
        cairo_move_to (cr,xtl,ytl-r)
        cairo_line_to (cr,xtr,ytr-r)
        cairo_arc(cr,xtr,ytr,r,((2*math.pi/4)*3),((2*math.pi/4)*4))
        cairo_line_to (cr,xbr+r,ybr)
        cairo_arc(cr,xbr,ybr,r,((2*math.pi/4)*4),((2*math.pi/4)*1))
        cairo_line_to (cr,xbl,ybl+r)
        cairo_arc(cr,xbl,ybl,r,((2*math.pi/4)*1),((2*math.pi/4)*2))
        cairo_line_to (cr,xtl-r,ytl)
        cairo_arc(cr,xtl,ytl,r,((2*math.pi/4)*2),((2*math.pi/4)*3))
        cairo_close_path(cr)
        cairo_fill (cr)
        ------------------------------------------------------------
        cairo_surface_destroy(cs)
        cairo_destroy(cr)
        return ""
        end
    nvidia conky
    Code:
    # -- Conky settings -- #
    background no
    update_interval 1
    
    cpu_avg_samples 2
    net_avg_samples 2
    
    override_utf8_locale yes
    temperature_unit Fahrenheit
    double_buffer yes
    no_buffers yes
    
    text_buffer_size 2048
    imlib_cache_size 0
    
    # -- Window specifications -- #
    
    own_window yes
    own_window_type desktop
    own_window_transparent no
    own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
    own_window_argb_visual yes
    own_window_argb_value 200
    border_inner_margin 0
    border_outer_margin 0
    
    
    minimum_size 650 100
    maximum_width 800
    
    
    alignment br
    gap_x 550
    gap_y 40
    
    # -- Graphics settings -- #
    draw_shades no
    draw_outline no
    draw_borders no
    draw_graph_borders yes
    
    # -- Text settings -- #
    use_xft yes
    xftfont MaiandraGD:size=24
    xftalpha 0.4
    
    uppercase no
    
    default_color FFFFFF
    color1 DDDDDD
    color2 AAAAAA
    color3 76b900
    color4 3399FF
    
    # -- Lua Load -- #
    lua_load ~/rings/example1/rings.lua
    lua_draw_hook_post main
    
    TEXT
    ${font Ubuntu:size=12,weight:bold}${color3}Nvidia Gforce 6200 ${hr 2}
    ${offset 70}${voffset 160}${font Ubuntu:size=8}${color4}°F
    ${offset 50}${voffset }${font Ubuntu:size=8}${color4}GPU Temp
    ${offset 189}${voffset -60}${font Ubuntu:size=8}${color4}Mhz
    ${offset 189}${voffset }${font Ubuntu:size=8}${color4}Core
    ${offset 315}${voffset -60}${font Ubuntu:size=8}${color4}Mhz
    ${offset 305}${voffset }${font Ubuntu:size=8}${color4}Memory
    ${offset 445}${voffset }${font Ubuntu:size=8}${color4}°F
    ${offset 425}${voffset }${font Ubuntu:size=8}${color4}Threshold
    ${offset 558}${voffset 10}${font Ubuntu:size=8}${color4}Quality
    ${font Poky:size=40}${voffset -40}${offset 295}${color3}N
    nvidia.lua
    Code:
    --==============================================================================
    --                            lunatico_rings.lua
    --
    --  Date    : 22/06/2011
    --  Author  : DCM
    --  Version : v0.2
    --  License : Distributed under the terms of GNU GPL version 2 or later
    --  This version is a modification of conky_orange.lua found at
    --    http://gnome-look.org/content/show.php?content=137503&forumpage=0
    --
    --==============================================================================
    
    require 'cairo'
    
    
    --------------------------------------------------------------------------------
    --                                                                    gauge DATA
    gauge = {
    {
        name='nvidia',                    arg='temp',                  max_value=200,
        x=73,                          y=180,
        graph_radius=24,
        graph_thickness=44,
        graph_start_angle=225,
        graph_unit_angle=1.35,          graph_unit_thickness=2.7,
        graph_bg_colour=0xADC6FF,      graph_bg_alpha=0.5,
        graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.0,
        hand_fg_colour=0x002FFF,       hand_fg_alpha=1.0,
        txt_radius=56,
        txt_weight=0,                  txt_size=12.0,
        txt_fg_colour=0x3399FF,        txt_fg_alpha=1.0,
        graduation_radius=34,
        graduation_thickness=10,        graduation_mark_thickness=2,
        graduation_unit_angle=24,
        graduation_fg_colour=0x73FF9D, graduation_fg_alpha=0.8,
        caption='',
        caption_weight=1,              caption_size=8.0,
        caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
    },
    {
        name='nvidia',                arg='gpufreq',                      max_value=600,
        x=200,                          y=150,
        graph_radius=24,
        graph_thickness=44,
        graph_start_angle=225,
        graph_unit_angle=0.45,          graph_unit_thickness=2.7,
        graph_bg_colour=0xADC6FF,      graph_bg_alpha=0.5,
        graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.0,
        hand_fg_colour=0x002FFF,       hand_fg_alpha=1.0,
        txt_radius=66,
        txt_weight=0,                  txt_size=12.0,
        txt_fg_colour=0x3399FF,        txt_fg_alpha=1.0,
        graduation_radius=34,
        graduation_thickness=10,        graduation_mark_thickness=2,
        graduation_unit_angle=24,
        graduation_fg_colour=0x73FF9D, graduation_fg_alpha=0.8,
        caption='',
        caption_weight=1,              caption_size=8.0,
        caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
    },
    {
        name='nvidia',                arg='memfreq',                      max_value=800,
        x=325,                          y=120,
        graph_radius=24,
        graph_thickness=44,
        graph_start_angle=225,
        graph_unit_angle=0.3375,          graph_unit_thickness=2.7,
        graph_bg_colour=0xADC6FF,      graph_bg_alpha=0.5,
        graph_fg_colour=0xFFFFAD,      graph_fg_alpha=0.0,
        hand_fg_colour=0x002FFF,       hand_fg_alpha=0.8,
        txt_radius=66,
        txt_weight=0,                  txt_size=12.0,
        txt_fg_colour=0x3399FF,        txt_fg_alpha=1.0,
        graduation_radius=34,
        graduation_thickness=10,        graduation_mark_thickness=2,
        graduation_unit_angle=28,
        graduation_fg_colour=0x73FF9D, graduation_fg_alpha=0.8,
        caption='',
        caption_weight=1,              caption_size=8.0,
        caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
    },
    {
        name='nvidia',                arg='threshold',                      max_value=200,
        x=450,                          y=150,
        graph_radius=24,
        graph_thickness=44,
        graph_start_angle=225,
        graph_unit_angle=1.35,          graph_unit_thickness=2.7,
        graph_bg_colour=0xADC6FF,      graph_bg_alpha=0.5,
        graph_fg_colour=0xFFFFAD,      graph_fg_alpha=0.0,
        hand_fg_colour=0x002FFF,       hand_fg_alpha=0.8,
        txt_radius=66,
        txt_weight=0,                  txt_size=12.0,
        txt_fg_colour=0x3399FF,        txt_fg_alpha=1.0,
        graduation_radius=34,
        graduation_thickness=10,        graduation_mark_thickness=2,
        graduation_unit_angle=10,
        graduation_fg_colour=0x73FF9D, graduation_fg_alpha=0.8,
        caption='',
        caption_weight=1,              caption_size=8.0,
        caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
    },
    {
        name='nvidia',                arg='imagequality',                      max_value=5,
        x=575,                          y=180,
        graph_radius=24,
        graph_thickness=44,
        graph_start_angle=225,
        graph_unit_angle=54,          graph_unit_thickness=2.7,
        graph_bg_colour=0xADC6FF,      graph_bg_alpha=0.5,
        graph_fg_colour=0xFFFFAD,      graph_fg_alpha=0.0,
        hand_fg_colour=0x002FFF,       hand_fg_alpha=0.8,
        txt_radius=66,
        txt_weight=0,                  txt_size=12.0,
        txt_fg_colour=0x3399FF,        txt_fg_alpha=1.0,
        graduation_radius=34,
        graduation_thickness=10,        graduation_mark_thickness=2,
        graduation_unit_angle=54,
        graduation_fg_colour=0x73FF9D, graduation_fg_alpha=0.8,
        caption='',
        caption_weight=1,              caption_size=8.0,
        caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
    },
    }
    
    -------------------------------------------------------------------------------
    --                                                                 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_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_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_gauge_rings(display)
        end
    
        cairo_surface_destroy(cs)
        cairo_destroy(display)
    
    end
    Attached Images Attached Images
    zealibib slaughter is a dwarven paladin of ill temperment played by a fat man of jolly temperment.

  4. #21294
    Join Date
    Dec 2009
    Location
    greenville sc
    Beans
    283
    Distro
    Ubuntu Studio 13.10 Saucy Salamander

    Re: Post your .conkyrc files w/ screenshots

    ran out of room

    conky extra
    Code:
    # -- Conky settings -- #
    background no
    update_interval 1
    
    cpu_avg_samples 2
    net_avg_samples 2
    
    override_utf8_locale yes
    temperature_unit Fahrenheit
    double_buffer yes
    no_buffers yes
    
    text_buffer_size 2048
    imlib_cache_size 0
    
    # -- Window specifications -- #
    
    own_window yes
    own_window_type desktop
    own_window_transparent no
    own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
    own_window_argb_visual yes
    own_window_argb_value 200
    border_inner_margin 0
    border_outer_margin 0
    
    
    minimum_size 400 300
    maximum_width 400
    
    
    alignment br
    gap_x 40
    gap_y 40
    
    # -- Graphics settings -- #
    draw_shades no
    draw_outline no
    draw_borders no
    draw_graph_borders yes
    
    # -- Text settings -- #
    use_xft yes
    xftfont MaiandraGD:size=24
    xftalpha 0.4
    
    uppercase no
    
    default_color FFFFFF
    color1 DDDDDD
    color2 AAAAAA
    color3 76b900
    color4 3399FF
    
    # -- Lua Load -- #
    lua_load ~/extra.lua
    lua_draw_hook_post main
    
    TEXT
    ${offset 250}${font Ubuntu:size=8}${color4}SSH Connections: ${tcp_portmon 22 22 count}
    ${offset 250}${font Ubuntu:size=8}${color4}SSH IP: ${tcp_portmon 22 22 rip 0}
    ${offset 250}${font Ubuntu:size=8}${color4}SSH Hostname: ${tcp_portmon 22 22 rhost 0}
    ${offset 143}${voffset 50}${font Ubuntu:size=8}${color4}Entropy
    ${offset 250}${voffset -20}${font Ubuntu:size=8}${color4}VNC Connections: ${tcp_portmon 5901 5901 count}
    ${offset 250}${font Ubuntu:size=8}${color4}VNC IP: ${tcp_portmon 5901 5901 rip 0}
    ${offset 250}${font Ubuntu:size=8}${color4}VNC Hostname: ${tcp_portmon 5901 5901 rhost 0}
    ${offset 295}${voffset 90}${font Ubuntu:size=8}${color4}°F
    ${offset 275}${voffset}${font Ubuntu:size=8}${color4}CPU Temp
    #${offset 115}${font Openlogos:size=80}${color4}u
    #${font Ubuntu:size=12,weight:bold}${color3}Nvidia Gforce 6200 ${hr 2}
    #${offset 70}${voffset 160}${font Ubuntu:size=8}${color4}°F
    #${offset 50}${voffset }${font Ubuntu:size=8}${color4}GPU Temp
    #${offset 189}${voffset -60}${font Ubuntu:size=8}${color4}Mhz
    #${offset 189}${voffset }${font Ubuntu:size=8}${color4}Core
    #${offset 315}${voffset -60}${font Ubuntu:size=8}${color4}Mhz
    #${offset 305}${voffset }${font Ubuntu:size=8}${color4}Memory
    #${offset 445}${voffset }${font Ubuntu:size=8}${color4}°F
    #${offset 425}${voffset }${font Ubuntu:size=8}${color4}Threshold
    #${offset 558}${voffset 10}${font Ubuntu:size=8}${color4}Quality
    #${font Poky:size=40}${voffset -40}${offset 295}${color3}N
    extra.lua
    Code:
    --==============================================================================
    --                            lunatico_rings.lua
    --
    --  Date    : 22/06/2011
    --  Author  : DCM
    --  Version : v0.2
    --  License : Distributed under the terms of GNU GPL version 2 or later
    --  This version is a modification of conky_orange.lua found at
    --    http://gnome-look.org/content/show.php?content=137503&forumpage=0
    --
    --==============================================================================
    
    require 'cairo'
    
    
    --------------------------------------------------------------------------------
    --                                                                    gauge DATA
    gauge = {
    {
        name='entropy_avail',                    arg='',                  max_value=10000,
        x=160,                          y=80,
        graph_radius=24,
        graph_thickness=44,
        graph_start_angle=225,
        graph_unit_angle=0.027,          graph_unit_thickness=2.7,
        graph_bg_colour=0xB35252,      graph_bg_alpha=0.3,
        graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.0,
        hand_fg_colour=0x9C0505,       hand_fg_alpha=1.0,
        txt_radius=56,
        txt_weight=0,                  txt_size=12.0,
        txt_fg_colour=0x3399FF,        txt_fg_alpha=1.0,
        graduation_radius=34,
        graduation_thickness=10,        graduation_mark_thickness=2,
        graduation_unit_angle=24,
        graduation_fg_colour=0x73FF9D, graduation_fg_alpha=0.8,
        caption='',
        caption_weight=1,              caption_size=8.0,
        caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
    },
    {
        name='hwmon',                    arg='temp 1',                  max_value=200,
        x=300,                          y=220,
        graph_radius=24,
        graph_thickness=44,
        graph_start_angle=225,
        graph_unit_angle=1.35,          graph_unit_thickness=2.7,
        graph_bg_colour=0xB35252,      graph_bg_alpha=0.3,
        graph_fg_colour=0xFFFFFF,      graph_fg_alpha=0.0,
        hand_fg_colour=0x9C0505,       hand_fg_alpha=1.0,
        txt_radius=56,
        txt_weight=0,                  txt_size=12.0,
        txt_fg_colour=0x3399FF,        txt_fg_alpha=1.0,
        graduation_radius=34,
        graduation_thickness=10,        graduation_mark_thickness=2,
        graduation_unit_angle=24,
        graduation_fg_colour=0x73FF9D, graduation_fg_alpha=0.8,
        caption='',
        caption_weight=1,              caption_size=8.0,
        caption_fg_colour=0xFFFFFF,    caption_fg_alpha=0.3,
    },
    }
    
    -------------------------------------------------------------------------------
    --                                                                 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_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_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_gauge_rings(display)
        end
    
        cairo_surface_destroy(cs)
        cairo_destroy(display)
    
    end
    the code needs to be cleaned up a lot but it works
    zealibib slaughter is a dwarven paladin of ill temperment played by a fat man of jolly temperment.

  5. #21295
    Join Date
    May 2006
    Location
    Milwaukee,WI
    Beans
    6,280
    Distro
    Xubuntu 14.04 Trusty Tahr

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by landwell View Post
    @danyboy79

    your sensors output for CPU temps is "Core 0" and "Core 1" (as I recall); so change the:

    Code:
    /Core0 Temp/
    to

    Code:
    /Core 0/
    The code you're using is for my sensors output.

    That code works as advertised on my system. Thanks dk75.
    THANKS!. I'm all set!

  6. #21296
    Join Date
    Feb 2010
    Beans
    Hidden!

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by dk75 View Post
    Code:
    sensors -f | awk '/Core0 Temp/ {gsub(/\+/,"",$3); gsub(/\..+/,"",$3); print $3}'
    DK75 you are LEGEND!

    Included in the HowTo on Conky PitStop as EDIT-ADDITIONAL #2: from DK75 - another awk only

    Thank you
    Last edited by Sector11; December 20th, 2012 at 02:06 PM.

  7. #21297
    Join Date
    Feb 2010
    Beans
    Hidden!

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by zealibib slaughter View Post
    My conky configuration
    consists of four scripts and four lua scripts
    OH YEA!!!!!!!!!!!!!!!!!!!!!!!!!!
    Sweet stuff!

  8. #21298
    Join Date
    Aug 2011
    Beans
    Hidden!

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by FrankenCub View Post
    Cool Ambient doesn't work for me at the moment either but I will leave it there for when I do replace this card, if I do. I removed the GPU temp seems I'm already pulling that one and made the rest a subset of the Asus line.
    Ambient does not work on any of my Nvidia cards.
    Building Conky | iCalendar Conky | Weather Script | Background List
    Intel Core i7-2600K - 3.40GHz | Asus P8Z68-V LE | 8GB RAM - 1866 MHz | Nvidia GeForce GTX 560 Ti

  9. #21299
    Join Date
    Oct 2010
    Location
    Whitney Point, NY
    Beans
    93

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by arclance View Post
    Ambient does not work on any of my Nvidia cards.
    Yeah, I haven't seen much info about that yet. Looks like some very early 6600's had it available then a switch in in production it was lacking. Seen some reference to newer card with it too, but I doubt I will ever get one as they are $350 cards and I'm not a gamer lol. Oh well. It would be nice to know those temps though, I'm kinda anal that way. Heat kills and the lower I can keep it the longer my system will last. Well, at least in theory

  10. #21300
    Join Date
    Feb 2010
    Beans
    Hidden!

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by arclance View Post
    Ambient does not work on any of my Nvidia cards.
    Any? How many do you have?

Page 2130 of 2348 FirstFirst ... 1130163020302080212021282129213021312132214021802230 ... 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
  •