Page 2115 of 2348 FirstFirst ... 1115161520152065210521132114211521162117212521652215 ... LastLast
Results 21,141 to 21,150 of 23480

Thread: Post your .conkyrc files w/ screenshots

  1. #21141
    Join Date
    Jun 2012
    Beans
    0

    Re: Post your .conkyrc files w/ screenshots

    @Mr Peachy
    Hi,
    Hum I tryed but I think I made a mistake somewhere (that's the code with only hour hand), so I post you back my code for helping...Thank-you very much:
    ChronoClear.lua:
    Code:
     --[[ multiple analogue clocks by mrpeachy - 18 Jun 2012
     21 Jun 2012 - Chronograph modifications by Sector11
     22 Jun 2012 - again with mrpeachy's help day names, numbers and month names
     12 Nov 2012 - memory leak plugged - mrpeachy
     14 Nov 2012 - Personnalisation - Didier-T (forum Ubuntu.fr)
    
    use in conkyrc
    
    lua_load /path/Chronograph.lua
    lua_draw_hook_pre main
    TEXT
    
    ]]
    
    require 'cairo'
    --Position et taille horloge
    local init={
    center_x=175,
    center_y=175,
    radius=170, -- do not touch
    lang="French", --English or Spanish or French
    hour=12, --12 or 24
    second=true, --true or false
    line=false, --hand secondes true or false
    handday=false, --hand day true or false
    handdaynum=false, --hand day number true or false
    handmonth=false, --hand month true or false
    color=0xFF0000, --color for day, day number and month if none hand
    alpha=1 --alpha for day, day number and month if none hand
    }
    
    local colr, colg, colb, cola=rgb_to_r_g_b(init.color,init.alpha)
    
    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)
    cr = cairo_create(cs)
    local extents=cairo_text_extents_t:create()
    tolua.takeownership(extents)
    ---[##drawings_new_hands
    --this function caluculates coordinates for a point around a circle
    function pt(px,py,prad,pdeg)--px,py=center coordinates for circle, prad=radius,pdeg is position in degrees, 0 is top
    local ppo=(math.pi/180)*pdeg
    local px1=px+prad*(math.sin(ppo))
    local py1=py-prad*(math.cos(ppo))
    return px1,py1--returns coordinates, use in main function like this, x,y=pt(px,py,prad,pdeg)
    end
    
    --this function draws hands
    function hands(clock_centerx,clock_centery,degrees,length,hand_center_width,hand_mid_width,hand_end_width,distance_to_mid)
    --draw_middle
    --calc start point
    xs,ys=pt(clock_centerx,clock_centery,hand_center_width,degrees-90)
    cairo_move_to(cr,xs,ys)
    x1,y1=pt(clock_centerx,clock_centery,length*distance_to_mid,degrees-(hand_mid_width/2))
    cairo_line_to (cr,x1,y1)
    x2,y2=pt(clock_centerx,clock_centery,length,degrees)
    cairo_arc(cr,x2,y2,hand_end_width,(degrees+180)*(math.pi/180),(degrees)*(math.pi/180))
    --cairo_line_to (cr,x2,y2)
    x3,y3=pt(clock_centerx,clock_centery,length*distance_to_mid,degrees+(hand_mid_width/2))
    cairo_line_to (cr,x3,y3)
    --calc end point
    xe,ye=pt(clock_centerx,clock_centery,hand_center_width,degrees+90)
    cairo_line_to (cr,xe,ye)
    cairo_arc(cr,clock_centerx,clock_centery,hand_center_width,(degrees)*(math.pi/180),(degrees+180)*(math.pi/180))
    cairo_fill(cr)
    end
    
    -- ########################################################
    -- SETTINGS AREA
    -- local cpu=conky_parse("${cpu}")
    -- local red-1=conky_parse("${image ~/Conky/images/red_1.png -p 0,0 -s 35x35}")
    
    local clock_type_A=init.hour -- Large Main 24 HR Clock
    
    -- ###### CLOCK SETTINGS ##################################
    -- SET BORDER OPTIONS FOR "CLOCKS" ########################
    local clock_border_width=0
    -- set color and alpha for clock border
    local cbr,cbg,cbb,cba=1,1,1,1  -- full opaque white
    -- gap from clock border to minute marks
    local b_to_m=1
    
    -- ########################################################
    -- ### START DIAL B ### Top - Week Day Names Dial #########
    -- DIAL POSITION FOR TEXT
    local center_x=init.center_x
    local center_y=init.center_y-85
    local radius=50
    -- FONT
    cairo_select_font_face (cr, "freeserif", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
    cairo_set_font_size (cr, 11)
    cairo_set_source_rgba (cr,1,1,1,1) --(cr,194/255,204/255,255/255,1)	-- (cr,1,1,1,1)
    -- TABLE OF TEXT -- in order
    if init.lang == "English" then text_days={"Sun","Mon","Tue","Wed","Thr","Fri","Sat",}	end	-- English
    if init.lang == "Spanish" then text_days={"Dom","Lun","Mar","Mie","Jue","Vie","Sab",}	end	-- Spanish
    if init.lang == "French" then text_days={"Dim","Lun","Mar","Mer","Jeu","Ven","Sam",}	end	-- French
    local day_number=tonumber(os.date("%w"))
    if init.handday == true then
      for i=1,7 do
        -- work out points
        local point=(math.pi/180)*((360/7)*(i-1))
        local x=0+radius*(math.sin(point))
        local y=0-radius*(math.cos(point))
        -- CALCULATE CENTRE OF TEXT
        local text=text_days[i]--gets text from table
        --local extents=cairo_text_extents_t:create()
        --tolua.takeownership(extents)
        cairo_text_extents(cr,text,extents)
        local width=extents.width
        local height=extents.height
        cairo_move_to(cr,center_x+x-(width/2),center_y+y+(height/2))
        cairo_show_text (cr, text)
        cairo_stroke (cr)
      end
      -- INNER POINTS POSITION, radius smaller than text circle
      local radius=35
      for i=1,7 do
        local point=(math.pi/180)*((360/7)*(i-1))
        local x=0+radius*(math.sin(point))
        local y=0-radius*(math.cos(point))
        cairo_arc (cr,center_x+x,center_y+y,1,0,2*math.pi)
        cairo_stroke (cr)
      end
      -- DRAW HAND -- snaps to current day of week
      local hand_length=30
      local point=(math.pi/180)*((360/7)*(day_number))
      local x=0+hand_length*(math.sin(point))
      local y=0-hand_length*(math.cos(point))
      local hand_width=2
      cairo_move_to (cr,center_x,center_y)
      cairo_line_to (cr,center_x+x,center_y+y)
      cairo_stroke (cr)
    else
      for i=1,7 do
        -- work out points
        if day_number == i-1 then
          cairo_set_source_rgba (cr,colr, colg, colb, cola)
        else
          cairo_set_source_rgba (cr,1,1,1,1)
        end
        local point=(math.pi/180)*((360/7)*(i-1))
        local x=0+radius*(math.sin(point))
        local y=0-radius*(math.cos(point))
        -- CALCULATE CENTRE OF TEXT
        local text=text_days[i]--gets text from table
        --local extents=cairo_text_extents_t:create()
        --tolua.takeownership(extents)
        cairo_text_extents(cr,text,extents)
        local width=extents.width
        local height=extents.height
        cairo_move_to(cr,center_x+x-(width/2),center_y+y+(height/2))
        cairo_show_text (cr, text)
        cairo_stroke (cr)
      end
      -- INNER POINTS POSITION, radius smaller than text circle
      local radius=35
      for i=1,7 do
        if day_number == i-1 then
          cairo_set_source_rgba (cr,colr, colg, colb, cola)
        else
          cairo_set_source_rgba (cr,1,1,1,1)
        end
        local point=(math.pi/180)*((360/7)*(i-1))
        local x=0+radius*(math.sin(point))
        local y=0-radius*(math.cos(point))
        cairo_arc (cr,center_x+x,center_y+y,1,0,2*math.pi)
        cairo_stroke (cr)
      end
    
    end
    -- ### END DIAL B #########################################
    
    -- ########################################################
    -- ### START DIAL C ### Right - Month Names Dial ##########
    -- DIAL POSITION FOR TEXT
    local center_x=init.center_x+85
    local center_y=init.center_y
    local radius=45
    -- FONT
    cairo_select_font_face (cr, "freeserif", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
    cairo_set_font_size (cr, 11)
    cairo_set_source_rgba (cr,1,1,1,1) --(cr,194/255,204/255,255/255,1)	-- (cr,1,1,1,1)
    -- TABLE OF TEXT -- in order
    if init.lang == "English" then text_days={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",} end -- English
    if init.lang == "Spanish" then text_days={"Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic",} end -- Spanish
    if init.lang == "French" then text_days={"Jan","Fév","Mar","Avr","Mai","Jui","Jul","Aôu","Sep","Oct","Nov","Déc",} end -- French
    local this_month=tonumber(os.date("%m"))
    
    if init.handmonth == true then
      for i=1,12 do
        -- OUTTER POINTS POSTION FOR TEXT
        local point=(math.pi/180)*((360/12)*(i-1))
        local x=0+radius*(math.sin(point))
        local y=0-radius*(math.cos(point))
        -- CALCULATE CENTRE OF TEXT
        local text=text_days[i]--gets text from table
        --local extents=cairo_text_extents_t:create()
        --tolua.takeownership(extents)
        cairo_text_extents(cr,text,extents)
        local width=extents.width
        local height=extents.height
        cairo_move_to(cr,center_x+x-(width/2),center_y+y+(height/2))
        cairo_show_text (cr, text)
        cairo_stroke (cr)
      end
      -- INNER POINTS POSITION, radius smaller than text circle
      local radius=32
      for i=1,12 do
        local point=(math.pi/180)*((360/12)*(i-1))
        local x=0+radius*(math.sin(point))
        local y=0-radius*(math.cos(point))
        cairo_arc (cr,center_x+x,center_y+y,1,0,2*math.pi)
        cairo_stroke (cr)
      end
      -- DRAW HAND -- snaps to current month
      local hand_length=28 --radius for this calculation
      local point=(math.pi/180)*((360/12)*(this_month-1))
      local x=0+hand_length*(math.sin(point))
      local y=0-hand_length*(math.cos(point))
      cairo_move_to (cr,center_x,center_y)
      cairo_line_to (cr,center_x+x,center_y+y)
      cairo_stroke (cr)
    else
      for i=1,12 do
        if this_month == i then
          cairo_set_source_rgba (cr,colr, colg, colb, cola)
        else
          cairo_set_source_rgba (cr,1,1,1,1)
        end
        -- OUTTER POINTS POSTION FOR TEXT
        local point=(math.pi/180)*((360/12)*(i-1))
        local x=0+radius*(math.sin(point))
        local y=0-radius*(math.cos(point))
        -- CALCULATE CENTRE OF TEXT
        local text=text_days[i]--gets text from table
        --local extents=cairo_text_extents_t:create()
        --tolua.takeownership(extents)
        cairo_text_extents(cr,text,extents)
        local width=extents.width
        local height=extents.height
        cairo_move_to(cr,center_x+x-(width/2),center_y+y+(height/2))
        cairo_show_text (cr, text)
        cairo_stroke (cr)
      end
      -- INNER POINTS POSITION, radius smaller than text circle
      local radius=32
      for i=1,12 do
        if this_month == i then
          cairo_set_source_rgba (cr,colr, colg, colb, cola)
        else
          cairo_set_source_rgba (cr,1,1,1,1)
        end
        local point=(math.pi/180)*((360/12)*(i-1))
        local x=0+radius*(math.sin(point))
        local y=0-radius*(math.cos(point))
        cairo_arc (cr,center_x+x,center_y+y,1,0,2*math.pi)
        cairo_stroke (cr)
      end
    
    end
    -- ### END CLOCK C ########################################
    
    -- ########################################################
    -- ### START DIAL D ### Left - Day Numbers Dial ###########
    -- GET NUMBER OF DAYS IN CURRENT MONTH
    -- calculate Feb, then set up table
    year4num=os.date("%Y")
    t1=os.time({year=year4num,month=03,day=01,hour=00,min=0,sec=0});
    t2=os.time({year=year4num,month=02,day=01,hour=00,min=0,sec=0});
    if init.hour == 12 then
      febdaynum=tonumber((os.difftime(t1,t2))/(12*60*60))
    else
      febdaynum=tonumber((os.difftime(t1,t2))/(24*60*60))
    end
    -- MONTH TABLE
    monthdays={31,febdaynum,31,30,31,30,31,31,30,31,30,31}
    this_month=tonumber(os.date("%m"))
    number_days=monthdays[this_month]
    -- TEXT positioning
    local center_x=init.center_x-85
    local center_y=init.center_y
    local radius=50
    cairo_select_font_face (cr, "monofur", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
    cairo_set_font_size (cr, 10)
    cairo_set_source_rgba (cr,1,1,1,1) --(cr,194/255,204/255,255/255,1)	-- (cr,1,1,1,1)
    local this_day=tonumber(os.date("%d"))
    if init.handdaynum == true then
      for i=1,number_days do
        -- OUTTER POINTS POSTION FOR TEXT
        local point=(math.pi/180)*((360/number_days)*(i-1))
        local x=0+radius*(math.sin(point))
        local y=0-radius*(math.cos(point))
        -- CALCULATE CENTRE OF TEXT
        --only print even numbers
        if math.mod(i, 2) == 0 then
          --set text when even
          text=string.format("%02d",i) --formats numbers to double digits
        else
          --set text when odd
          text=""
        end--odd even matching
        --local extents=cairo_text_extents_t:create()
        --tolua.takeownership(extents)
        cairo_text_extents(cr,text,extents)
        local width=extents.width
        local height=extents.height
        cairo_move_to(cr,center_x+x-(width/2),center_y+y+(height/2))
        cairo_show_text (cr, text)
        cairo_stroke (cr)
      end
      -- INNER POINTS POSITION, radius smaller than text circle
      local radius=40
      for i=1,number_days do
        local point=(math.pi/180)*((360/number_days)*(i-1))
        local x=0+radius*(math.sin(point))
        local y=0-radius*(math.cos(point))
        cairo_arc (cr,center_x+x,center_y+y,1,0,2*math.pi)
        cairo_stroke (cr)
      end
      -- DRAW HAND -- snaps to current DAY
      local hand_length=35--radius for this calculation
      local point=(math.pi/180)*((360/number_days)*(this_day-1))
      local x=0+hand_length*(math.sin(point))
      local y=0-hand_length*(math.cos(point))
      cairo_move_to (cr,center_x,center_y)
      cairo_line_to (cr,center_x+x,center_y+y)
      cairo_stroke (cr)
    else
      for i=1,number_days do
        if this_day == i then
          cairo_set_source_rgba (cr,colr, colg, colb, cola)
        else
          cairo_set_source_rgba (cr,1,1,1,1)
        end
        -- OUTTER POINTS POSTION FOR TEXT
        local point=(math.pi/180)*((360/number_days)*(i-1))
        local x=0+radius*(math.sin(point))
        local y=0-radius*(math.cos(point))
        -- CALCULATE CENTRE OF TEXT
        --only print even numbers
        if math.mod(i, 2) == 0 then
          --set text when even
          text=string.format("%02d",i) --formats numbers to double digits
        else
          --set text when odd
          text=""
        end--odd even matching
        --local extents=cairo_text_extents_t:create()
        --tolua.takeownership(extents)
        cairo_text_extents(cr,text,extents)
        local width=extents.width
        local height=extents.height
        cairo_move_to(cr,center_x+x-(width/2),center_y+y+(height/2))
        cairo_show_text (cr, text)
        cairo_stroke (cr)
      end
      -- INNER POINTS POSITION, radius smaller than text circle
      local radius=40
      for i=1,number_days do
        if this_day == i then
          cairo_set_source_rgba (cr,colr, colg, colb, cola)
        else
          cairo_set_source_rgba (cr,1,1,1,1)
        end
        local point=(math.pi/180)*((360/number_days)*(i-1))
        local x=0+radius*(math.sin(point))
        local y=0-radius*(math.cos(point))
        cairo_arc (cr,center_x+x,center_y+y,1,0,2*math.pi)
        cairo_stroke (cr)
      end
    end
    -- ### END CLOCK D ########################################
    
    -- ########################################################
    -- ### START CLOCK E ######################################
    -- MARKS AROUND CLOCK E -- Bottom - 12 HR Clock
    local number_marks_E=12
    -- set mark length
    local m_length_E=0
    -- set mark width
    local m_width_E=0
    -- set mark line cap type
    local m_cap=CAIRO_LINE_CAP_ROUND
    -- set mark color and alpha,red blue green alpha
    local mr,mg,mb,ma=1,1,0,1-- opaque white
    -- SETUP HOUR HANDS #######################################
    -- CLOCK E HOUR HAND
    -- set length of hour hand
    hh_length_E=25
    -- set hour hand width
    hh_width_E=2
    -- set hour hand line cap
    hh_cap=CAIRO_LINE_CAP_ROUND
    -- set hour hand color
    hhr,hhg,hhb,hha=1,1,0,1-- fully opaque white
    -- SETUP MINUTE HANDS #####################################
    -- CLOCK E MINUTE HAND SETUP
    -- set length of minute hand
    mh_length_E=35
    -- set minute hand width
    mh_width_E=2
    -- set minute hand line cap
    mh_cap=CAIRO_LINE_CAP_ROUND
    -- set minute hand color
    mhr,mhg,mhb,mha=1,1,0,1-- fully opaque white
    -- SETUP SECOND HANDS #####################################
    -- CLOCK E SECOND HAND SETUP
    -- set length of seconds hand
    sh_length_E=32
    -- set hour hand width
    sh_width_E=1
    -- set hour hand line cap
    sh_cap=CAIRO_LINE_CAP_ROUND
    -- set seconds hand color
    shr,shg,shb,sha=1,0,0,1-- fully opaque red
    -- CLOCK E ###### 12 HR TIME ##############################
    -- CLOCK SETTINGS
    clock_radius=45
    clock_centerx=init.center_x
    clock_centery=init.center_y+85
    -- DRAWING CODE
    -- DRAW BORDER
    cairo_set_source_rgba (cr,169/255,169/255,169/255,1)
    cairo_set_line_width (cr,clock_border_width)
    cairo_arc (cr,clock_centerx,clock_centery,clock_radius,0,2*math.pi)
    cairo_stroke (cr)
    -- DRAW MARKS
    -- stuff that can be moved outside of the loop, needs only be set once
    -- calculate end and start radius for marks
    m_end_rad=clock_radius-b_to_m
    m_start_rad=m_end_rad-m_length_E
    -- set line cap type
    cairo_set_line_cap  (cr, m_cap)
    -- set line width
    cairo_set_line_width (cr,m_width_E)
    -- set color and alpha for marks
    cairo_set_source_rgba (cr,mr,mg,mb,ma)
    -- START LOOP FOR SECOND MARKS
    for i=1,number_marks_E do
    -- drawing code using the value of i to calculate degrees
    -- calculate start point for 12/24 hour mark
    radius=m_start_rad
    point=(math.pi/180)*((i-1)*(360/number_marks_E))
    x=0+radius*(math.sin(point))
    y=0-radius*(math.cos(point))
    -- set start point for line
    cairo_move_to (cr,clock_centerx+x,clock_centery+y)
    -- calculate end point for 12/24 hour mark
    radius=m_end_rad
    point=(math.pi/180)*((i-1)*(360/number_marks_E))
    x=0+radius*(math.sin(point))
    y=0-radius*(math.cos(point))
    -- set path for line
    cairo_line_to (cr,clock_centerx+x,clock_centery+y)
    -- draw the line-- MARKS AROUND CLOCK A
    cairo_stroke (cr)
    end-- of for loop
    -- SET MARKS ##############################################
    -- MARKS AROUND CLOCK A -- Large Main 24 HR Clock
    local number_marks_A=init.hour
    -- set mark length
    local m_length_A=0
    -- set mark width
    local m_width_A=0
    -- set mark line cap type
    local m_cap=CAIRO_LINE_CAP_ROUND
    -- set mark color and alpha,red blue green alpha
    local mr,mg,mb,ma=1,1,1,1 -- opaque white
    -- SETUP HOUR HANDS #######################################
    -- CLOCK A HOUR HAND
    -- set length of hour hand
    hh_length_A=130
    -- set hour hand width
    hh_width_A=3
    -- set hour hand line cap
    hh_cap=CAIRO_LINE_CAP_ROUND
    -- set hour hand color
    hhr,hhg,hhb,hha=1,1,1,.5-- fully opaque white
    -- SETUP MINUTE HANDS #####################################
    -- CLOCK A MINUTE HAND SETUP
    -- set length of minute hand
    mh_length_A=145
    -- set minute hand width
    mh_width_A=2
    -- set minute hand line cap
    mh_cap=CAIRO_LINE_CAP_ROUND
    -- set minute hand color
    mhr,mhg,mhb,mha=1,1,1,.5-- fully opaque white
    -- SETUP SECOND HANDS #####################################
    -- CLOCK A SECOND HAND SETUP
    -- set length of seconds hand
    sh_length_A=150
    -- set hour hand width
    sh_width_A=2
    -- set hour hand line cap
    sh_cap=CAIRO_LINE_CAP_ROUND
    -- set seconds hand color
    shr,shg,shb,sha=1,0,0,1-- fully opaque red
    -- CLOCK A ###### 12 HR TIME ##############################
    -- CLOCK SETTINGS
    clock_radius=200
    clock_centerx=init.center_x
    clock_centery=init.center_y
    -- DRAWING CODE
    -- DRAW BORDER
    cairo_set_source_rgba (cr,cbr,cbg,cbb,cba)
    cairo_set_line_width (cr,clock_border_width)
    cairo_arc (cr,clock_centerx,clock_centery,clock_radius,0,2*math.pi)
    cairo_stroke (cr)
    -- DRAW MARKS
    -- stuff that can be moved outside of the loop, needs only be set once
    -- calculate end and start radius for marks
    m_end_rad=clock_radius-b_to_m
    m_start_rad=m_end_rad-m_length_A
    -- set line cap type
    cairo_set_line_cap  (cr, m_cap)
    -- set line width
    cairo_set_line_width (cr,m_width_A)
    -- set color and alpha for marks
    cairo_set_source_rgba (cr,mr,mg,mb,ma)
    -- START LOOP FOR HOUR MARKS
    for i=1,number_marks_A do
    -- drawing code using the value of i to calculate degrees
    -- calculate start point for 12/24 hour mark
    radius=m_start_rad
    point=(math.pi/180)*((i-1)*(360/number_marks_A))
    x=0+radius*(math.sin(point))
    y=0-radius*(math.cos(point))
    -- set start point for line
    cairo_move_to (cr,clock_centerx+x,clock_centery+y)
    -- calculate end point for 12/24 hour mark
    radius=m_end_rad
    point=(math.pi/180)*((i-1)*(360/number_marks_A))
    x=0+radius*(math.sin(point))
    y=0-radius*(math.cos(point))
    -- set path for line
    cairo_line_to (cr,clock_centerx+x,clock_centery+y)
    -- draw the line
    cairo_stroke (cr)
    end-- of for loop
    -- HOUR MARKS
    -- TIME CALCULATIONS CLOCK A
    if clock_type_A==12 then
    hours=tonumber(os.date("%I"))
    -- convert hours to seconds
    h_to_s=hours*60*60
    elseif clock_type_A==24 then
    hours=tonumber(os.date("%H"))
    -- convert hours to seconds
    h_to_s=hours*60*60
    end
    minutes=tonumber(os.date("%M"))
    -- convert minutes to seconds
    m_to_s=minutes*60
    -- get current seconds
    seconds=tonumber(os.date("%S"))
    -- DRAW HOUR HAND
    -- get hours minutes seconds as just seconds
    hsecs=h_to_s+m_to_s+seconds
    -- calculate degrees for each second
    hsec_degs=hsecs*(360/(60*60*clock_type_A))-- use equation ~ eliminate decimals
    -- set radius to calculate hand points
    -- set up line attributes
    cairo_set_line_width (cr,hh_width_A)
    cairo_set_source_rgba (cr,hhr,hhg,hhb,hha)
    cairo_set_line_cap  (cr, hh_cap)
    --NEW HAND DRAWING CODE ##################################################
    --call hand drawing function
    hands(
    clock_centerx,--string or coodinate for clock center x
    clock_centery,--string or coodinate for clock center y
    hsec_degs,--string or value for hand degrees
    hh_length_A,--string or value for hand length (radius)
    2,--set hand center width in pixels
    10,--set hand mid width in degrees
    0,--set hand end width in pixels, 0=a point
    0.8--number from 0 to 1 as a propotion of total hand length, ie 0.5 is exact middle distance
    )
    --#########################################################################
    
    --#########################################################################
    -- DRAW MINUTE HAND
    -- get minutes and seconds just as seconds
    msecs=m_to_s+seconds
    -- calculate degrees for each second
    msec_degs=msecs*0.1
    -- set radius to calculate hand points
    radius=mh_length_A
    -- set start line coordinates, the center of the circle
    cairo_move_to (cr,clock_centerx,clock_centery)
    -- calculate coordinates for end of minute hand
    point=(math.pi/180)*msec_degs
    x=0+radius*(math.sin(point))
    y=0-radius*(math.cos(point))
    -- describe the line we will draw
    cairo_line_to (cr,clock_centerx+x,clock_centery+y)
    -- set up line attributes and draw line
    cairo_set_line_width (cr,mh_width_A)
    --cairo_set_source_rgba (cr,mhr,mhg,mhb,mha)
    cairo_set_source_rgba (cr,169/255,169/255,169/255,1)
    cairo_set_line_cap  (cr, mh_cap)
    cairo_stroke (cr)
    -- DRAW SECOND HAND
    --[[
    -- calculate degrees for each second
    sec_degs=seconds*6
    -- set radius to calculate hand points
    radius=sh_length_A
    -- set start line coordinates, the center of the circle
    cairo_move_to (cr,clock_centerx,clock_centery)
    -- calculate coordinates for end of seconds hand
    point=(math.pi/180)*sec_degs
    x=0+radius*(math.sin(point))
    y=0-radius*(math.cos(point))BOLD
    -- describe the line we will draw
    cairo_line_to (cr,clock_centerx+x,clock_centery+y)
    -- set up line attributes
    cairo_set_line_width (cr,sh_width_A)
    cairo_set_source_rgba (cr,shr,shg,shb,sha)
    cairo_set_line_cap  (cr, sh_cap)
    cairo_stroke (cr)
    ]]
    -- ####################################################################
    local center_x=init.center_x
    local center_y=init.center_y
    local radius=init.radius-5
    cairo_select_font_face (cr, "monofur", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
    cairo_set_font_size (cr, 15)
    cairo_set_source_rgba (cr,1,1,1,1) --(cr,194/255,204/255,255/255,1)	-- (cr,1,1,1,1)
    -- TABLE OF TEXT -- in order
    if init.hour == 12 then 
      text_days={"00","01","02","03","04","05","06","07","08","09","10","11",}
      for i=1,12 do
        -- OUTTER POINTS POSTION FOR TEXT
        local point=(math.pi/180)*((360/12)*(i-1))
        local x=0+radius*(math.sin(point))
        local y=0-radius*(math.cos(point))
        -- CALCULATE CENTRE OF TEXT
        local text=text_days[i]--gets text from table
        --local extents=cairo_text_extents_t:create()
        --tolua.takeownership(extents)
        cairo_text_extents(cr,text,extents)
        local width=extents.width
        local height=extents.height
        cairo_move_to(cr,center_x+x-(width/2),center_y+y+(height/2))
        cairo_show_text (cr, text)
        cairo_stroke (cr)
      end
      -- INNER POINTS POSITION, radius smaller than text circle
      local radius=150
      for i=1,12 do
        local point=(math.pi/180)*((360/12)*(i-1))
        local x=0+radius*(math.sin(point))
        local y=0-radius*(math.cos(point))
        cairo_arc (cr,center_x+x,center_y+y,1,0,2*math.pi)
        cairo_stroke (cr)
      end
    end
    if init.hour == 24 then 
      text_days={"00","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23",}
      for i=1,24 do
        -- OUTTER POINTS POSTION FOR TEXT
        local point=(math.pi/180)*((360/24)*(i-1))
        local x=0+radius*(math.sin(point))
        local y=0-radius*(math.cos(point))
        -- CALCULATE CENTRE OF TEXT
        local text=text_days[i]--gets text from table
        --local extents=cairo_text_extents_t:create()
        --tolua.takeownership(extents)
        cairo_text_extents(cr,text,extents)
        local width=extents.width
        local height=extents.height
        cairo_move_to(cr,center_x+x-(width/2),center_y+y+(height/2))
        cairo_show_text (cr, text)
        cairo_stroke (cr)
      end
      -- INNER POINTS POSITION, radius smaller than text circle
      local radius=150
      for i=1,24 do
        local point=(math.pi/180)*((360/24)*(i-1))
        local x=0+radius*(math.sin(point))
        local y=0-radius*(math.cos(point))
        cairo_arc (cr,center_x+x,center_y+y,1,0,2*math.pi)
        cairo_stroke (cr)
      end
    end
    
    -- part of a second hand
    --position
    --get seconds value
    local seconds=tonumber(os.date("%S"))
    --calculate rotation of second hand in degrees
    if init.line == true then
      local arc=(math.pi/180)*((360/60)*seconds)
      --calculate point 1
      local radius1=140
      local x1=0+radius1*math.sin(arc)
      local y1=0-radius1*math.cos(arc)
      --calculate point 2
      local radius2=158
      local x2=0+radius2*math.sin(arc)
      local y2=0-radius2*math.cos(arc)
      --draw line connecting points
      cairo_move_to (cr, center_x+x1,center_y+y1)
      cairo_line_to (cr, center_x+x2, center_y+y2)
      cairo_set_source_rgba (cr,255/255,0/255,0/255,1)
      cairo_stroke (cr)
    end
    -- ####################################################################
    -- POSITION FOR TEXT HOUR NUMBERS
    --affiche secondes
      if init.hour == 12 and init.second == true then
        text_days={"","1","2","3","4","","6","7","8","9","","11","12","13","14","","16","17","18","19","","21","22","23","24","","26","27","28","29","","31","32","33","34","","36","37","38","39","","41","42","43","44","","46","47","48","49","","51","52","53","54","","56","57","58","59","",} 
        -- INNER POINTS POSITION, radius smaller than text circle
        cairo_set_source_rgba (cr,1,1,1,1)
        cairo_select_font_face (cr, "monofur", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_BOLD);
        for i=1,60 do
          local radius=150
          local point=(math.pi/180)*((360/60)*(i-1))
          local x=0+radius*(math.sin(point))
          local y=0-radius*(math.cos(point))
          if seconds == i-1 then
            cairo_set_source_rgba (cr,255/255,0/255,0/255,1)
          else
            if i-1 == 0 or i-1 == 5 or i-1 == 10 or i-1 == 15 or i-1 == 25 or i-1 == 30 or i-1 == 35 or i-1 == 40 or i-1 == 45 or i-1 == 50 or i-1 == 55 then
              cairo_set_source_rgba (cr,1,1,1,1)
            else
              cairo_set_source_rgba (cr,0,1,1,1)
            end
          end
          cairo_arc (cr,center_x+x,center_y+y,1/2,0,2*math.pi)
          cairo_stroke (cr)
        end
        radius=radius-3
        cairo_set_font_size (cr, 10)
        for i=1,60 do
          -- OUTTER POINTS POSTION FOR TEXT
          local point=(math.pi/180)*((360/60)*(i-1))
          local x=0+radius*(math.sin(point))
          local y=0-radius*(math.cos(point))
          -- CALCULATE CENTRE OF TEXT
          local text=text_days[i]--gets text from table
          if seconds == tonumber(text) then
            cairo_set_source_rgba (cr,0,0,1,1)
          else
            cairo_set_source_rgba (cr,0,1,1,1)
          end
          --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,center_x+x-(width/2),center_y+y+(height/2))
          cairo_show_text (cr, text)
          cairo_stroke (cr)
        end
      end
    -- Fin affiche secondes
    -- FONT
    
    -- ########################################################
    cairo_stroke (cr)
    cairo_destroy(cr)
    cairo_surface_destroy(cs)
    cr=nil
    end-- end main function
    
    function rgb_to_r_g_b(col,alp) -- ONLY NEED ONE COPY OF THIS FUNCTION
      return ((col / 0x10000) % 0x100) / 255, ((col / 0x100) % 0x100) / 255, (col % 0x100) / 255, alp
    end

  2. #21142
    Join Date
    Oct 2009
    Location
    Under a rock
    Beans
    Hidden!

    Re: Post your .conkyrc files w/ screenshots

    here are the changes i made, starting on line 547
    changing the hour hand and the minute hand
    Code:
    -- DRAW HOUR HAND
    -- get hours minutes seconds as just seconds
    hsecs=h_to_s+m_to_s+seconds
    -- calculate degrees for each second
    hsec_degs=hsecs*(360/(60*60*clock_type_A))-- use equation ~ eliminate decimals
    -- set radius to calculate hand points
    radius=hh_length_A
    -- set up line attributes and draw line
    cairo_set_line_width (cr,hh_width_A)
    cairo_set_source_rgba (cr,hhr,hhg,hhb,hha)
    cairo_set_line_cap  (cr, hh_cap)
    --NEW HAND DRAWING CODE ##################################################
    --call hand drawing function
    hands(
    clock_centerx,--string or coodinate for clock center x
    clock_centery,--string or coodinate for clock center y
    hsec_degs,--string or value for hand degrees
    hh_length_A,--string or value for hand length (radius)
    2,--set hand center width in pixels
    10,--set hand mid width in degrees
    0,--set hand end width in pixels, 0=a point
    0.8--number from 0 to 1 as a propotion of total hand length, ie 0.5 is exact middle distance
    )
    
    --#########################################################################
    -- DRAW MINUTE HAND
    -- get minutes and seconds just as seconds
    msecs=m_to_s+seconds
    -- calculate degrees for each second
    msec_degs=msecs*0.1
    -- set radius to calculate hand points
    radius=mh_length_A
    -- set start line coordinates, the center of the circle
    cairo_move_to (cr,clock_centerx,clock_centery)
    -- calculate coordinates for end of minute hand
    point=(math.pi/180)*msec_degs
    x=0+radius*(math.sin(point))
    y=0-radius*(math.cos(point))
    -- describe the line we will draw
    cairo_line_to (cr,clock_centerx+x,clock_centery+y)
    -- set up line attributes and draw line
    cairo_set_line_width (cr,mh_width_A)
    cairo_set_source_rgba (cr,mhr,mhg,mhb,mha)
    cairo_set_line_cap  (cr, mh_cap)
    --NEW HAND DRAWING CODE ##################################################
    --call hand drawing function
    hands(
    clock_centerx,--string or coodinate for clock center x
    clock_centery,--string or coodinate for clock center y
    msec_degs,--string or value for hand degrees
    mh_length_A,--string or value for hand length (radius)
    2,--set hand center width in pixels
    6,--set hand mid width in degrees
    0,--set hand end width in pixels, 0=a point
    0.75--number from 0 to 1 as a propotion of total hand length, ie 0.5 is exact middle distance
    )
    -- DRAW SECOND HAND

  3. #21143
    Join Date
    Jun 2012
    Beans
    0

    Re: Post your .conkyrc files w/ screenshots

    Thanks a lot to answer so fastly !
    I'm trying this code and I'd like to make the "points" "dots" going down.(for the days and months text)?

  4. #21144
    Join Date
    Oct 2009
    Location
    Under a rock
    Beans
    Hidden!

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by ragamatrix View Post
    Thanks a lot to answer so fastly !
    I'm trying this code and I'd like to make the "points" "dots" going down.(for the days and months text)?
    im not quite sure what you mean

  5. #21145
    Join Date
    Jun 2012
    Beans
    0

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by mrpeachy View Post
    im not quite sure what you mean
    Ok, I just want to center the points, because the text is a little bit too "high" or "up" sorry for my English again...
    Circle points for the days and circle points for the months.

  6. #21146
    Join Date
    Jun 2012
    Beans
    0

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by ragamatrix View Post
    Ok, I just want to center the points, because the text is a little bit too "high" or "up" sorry for my English again...
    Circle points for the days and circle points for the months.
    Right I've found it:
    Code:
     local y=-3-radius*(math.cos(point))
    (L 234)
    and :
    Code:
      local y=5-radius*(math.cos(point))
    (L 166)
    It was just a little "détail"

  7. #21147
    Join Date
    Oct 2009
    Location
    Under a rock
    Beans
    Hidden!

    Re: Post your .conkyrc files w/ screenshots

    im not sure that did what you wanted

    there are settings for the text radius
    Code:
    -- DIAL POSITION FOR TEXT 
    local center_x=init.center_x 
    local center_y=init.center_y-85 
    local radius=50
    did you just want to make the radius smaller?
    still not sure what changes you are after
    Last edited by mrpeachy; November 22nd, 2012 at 12:47 AM.

  8. #21148
    Join Date
    Aug 2011
    Beans
    32

    Re: Post your .conkyrc files w/ screenshots

    EDIT: ignore me I sorted my issue.
    Last edited by DobsonM; November 22nd, 2012 at 09:31 AM.

  9. #21149
    Join Date
    Jun 2012
    Beans
    0

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by mrpeachy View Post
    im not sure that did what you wanted

    there are settings for the text radius
    Code:
    -- DIAL POSITION FOR TEXT 
    local center_x=init.center_x 
    local center_y=init.center_y-85 
    local radius=50
    did you just want to make the radius smaller?
    still not sure what changes you are after
    I did that...
    http://pix.toile-libre.org/upload/or...1353535244.png

  10. #21150
    Join Date
    Jun 2012
    Beans
    0

    Re: Post your .conkyrc files w/ screenshots

    @Mr Peachy
    Do you think it's possible to retranscribe a graph in lua ?
    I mean one was drawing with "gnuplot" and bash script...?

Page 2115 of 2348 FirstFirst ... 1115161520152065210521132114211521162117212521652215 ... 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
  •