分页: 1 / 2

^_^,圈圈终于全部搞定了

发表于 : 2011-04-07 18:43
karllv
从7个环改来的。从外到内 1、CPU,2、MEM,3、FS,4、downspeed、upspeed,5、hour,6、min,7、sec
rings.lua配置如下:

代码: 全选

--[[
Clock Rings by londonali1010 (2009)
modified by Vanishing
]]

settings_table = {
   {
      name='cpu',
      arg='cpu0',
      max=100,
      bg_colour=0xFFFFFF,
      bg_alpha=0,
      fg_colour=0xFFFFFF,
      fg_alpha=0.3,
      x=70, y=70,
      radius=63,
      thickness=13,
      start_angle=0,
      end_angle=360
   },
   {
      name='memperc',
      arg='',
      max=100,
      bg_colour=0xFFFFFF,
      bg_alpha=0.1,
      fg_colour=0xFFFFFF,
      fg_alpha=0.8,
      x=70, y=70,
      radius=55,
      thickness=3,
      start_angle=0,
      end_angle=360
   },
   {
      name='fs_used_perc',
      arg="/",
      max=100,
      bg_colour=0xFFFFFF,
      bg_alpha=0.1,
      fg_colour=0xFFFFFF,
      fg_alpha=0.6,
      x=70, y=70,
      radius=50,
      thickness=3,
      start_angle=0,
      end_angle=360
   },
   {
      name='upspeedf',
      arg='eth0',
      max=50,
      bg_colour=0xFFFFFF,
      bg_alpha=0.1,
      fg_colour=0xFFFFFF,
      fg_alpha=0.9,
      x=70, y=70,
      radius=40,
      thickness=13,
      start_angle=270,
      end_angle=360
   },
   {
      name='downspeedf',
      arg='eth0',
      max=270,
      bg_colour=0xFFFFFF,
      bg_alpha=0.1,
      fg_colour=0xFFFFFF,
      fg_alpha=0.9,
      x=70, y=70,
      radius=40,
      thickness=13,
      start_angle=0,
      end_angle=270
   },
   {
      name='time',
      arg='%I',
      max=12,
      bg_colour=0xFFFFFF,
      bg_alpha=0.1,
      fg_colour=0xFFFFFF,
      fg_alpha=0.5,
      x=70, y=70,
      radius=30,
      thickness=3,
      start_angle=0,
       end_angle=360
   },
   {
      name='time',
      arg='%M',
      max=60,
      bg_colour=0xFFFFFF,
      bg_alpha=0.1,
      fg_colour=0xFFFFFF,
      fg_alpha=0.6,
      x=70, y=70,
      radius=24,
      thickness=5,
      start_angle=0,
       end_angle=360
   },
   {
      name='time',
      arg='%S',
      max=60,
      bg_colour=0xFFFFFF,
      bg_alpha=0.1,
      fg_colour=0xFFFFFF,
      fg_alpha=0.9,
      x=70, y=70,
      radius=10,
      thickness=18,
      start_angle=0,
      end_angle=360
   },
}

-- Use these settings to define the origin and extent of your clock.

clock_r=125

-- "clock_x" and "clock_y" are the coordinates of the centre of the clock, in pixels, from the top left of the Conky window.

clock_x=83   
clock_y=62

show_seconds=true

require 'cairo'

function rgb_to_r_g_b(colour,alpha)
   return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end

function draw_ring(cr,t,pt)
   local w,h=conky_window.width,conky_window.height
   
   local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle']
   local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha']

   local angle_0=sa*(2*math.pi/360)-math.pi/2
   local angle_f=ea*(2*math.pi/360)-math.pi/2
   local t_arc=t*(angle_f-angle_0)

   -- Draw background ring

   cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f)
   cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga))
   cairo_set_line_width(cr,ring_w)
   cairo_stroke(cr)
   
   -- Draw indicator ring

   cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc)
   cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga))
   cairo_stroke(cr)      
end

function draw_clock_hands(cr,xc,yc)
   local secs,mins,hours,secs_arc,mins_arc,hours_arc
   local xh,yh,xm,ym,xs,ys
   
   secs=os.date("%S")   
   mins=os.date("%M")
   hours=os.date("%I")
      
   secs_arc=(2*math.pi/60)*secs
   mins_arc=(2*math.pi/60)*mins+secs_arc/60
   hours_arc=(2*math.pi/12)*hours+mins_arc/60
      
   -- Draw hour hand
   
   xh=xc+0.2*clock_r*math.sin(hours_arc)
   yh=yc-0.2*clock_r*math.cos(hours_arc)
   cairo_move_to(cr,xc,yc)
   cairo_line_to(cr,xh,yh)
   
   cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND)
   cairo_set_line_width(cr,5)
   cairo_set_source_rgba(cr,1,1,1,0.8)
   cairo_stroke(cr)
   
   -- Draw minute hand
   
   xm=xc+clock_r*math.sin(mins_arc)*0.4
   ym=yc-clock_r*math.cos(mins_arc)*0.4
   cairo_move_to(cr,xc,yc)
   cairo_line_to(cr,xm,ym)
   
   cairo_set_line_width(cr,3)
   cairo_stroke(cr)
   
   -- Draw seconds hand
   
   if show_seconds then
      xs=xc+clock_r*math.sin(secs_arc)*0.5
      ys=yc-clock_r*math.cos(secs_arc)*0.5
      cairo_move_to(cr,xc,yc)
      cairo_line_to(cr,xs,ys)
   
      cairo_set_line_width(cr,1)
      cairo_stroke(cr)
   end
end

function conky_clock_rings()
   local function setup_rings(cr,pt)
      local str=''
      local value=0
      
      str=string.format('${%s %s}',pt['name'],pt['arg'])
      str=conky_parse(str)
      
      value=tonumber(str)
      if ( value == nil ) then value = 0 end
      pct=value/pt['max']
      
      draw_ring(cr,pct,pt)
   end
   
   -- Check that Conky has been running for at least 5s

   if conky_window==nil then return end
   local cs=cairo_xlib_surface_create(conky_window.display,conky_window.drawable,conky_window.visual, conky_window.width,conky_window.height)
   
   local cr=cairo_create(cs)   
   
   local updates=conky_parse('${updates}')
   update_num=tonumber(updates)
   
   if update_num>5 then
      for i in pairs(settings_table) do
         setup_rings(cr,settings_table[i])
      end
   end
   
   draw_clock_hands(cr,70,70)
end
conkyrc配置如下:

代码: 全选

alignment bottom_right
background yes
double_buffer yes

border_width 1
default_color white
default_outline_color white
default_shade_color white

draw_borders no
draw_graph_borders yes
draw_outline no
draw_shades no

use_xft yes
xftfont 明黑 Mono:size=10

gap_x 15
gap_y 15

minimum_size 166
maximum_width 132

net_avg_samples 2
cpu_avg_samples 2
out_to_console no
out_to_stderr no
extra_newline no
own_window yes
own_window_colour hotpink
own_window_class Conky
own_window_type override
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_page

stippled_borders 0
update_interval 1.0
uppercase no
use_spacer none

show_graph_scale no
show_graph_range no

# -- Lua Load -- #
lua_load ~/.scripts/rings.lua
lua_draw_hook_pre clock_rings

TEXT










${scroll 22  $nodename-$kernel}
效果如下:
Screenshot.png
想在圈上加刻度,还无从着手。。

Re: ^_^,圈圈终于全部搞定了

发表于 : 2011-04-07 18:45
qy117121
:em11
颜色再改下就更好看了

Re: ^_^,圈圈终于全部搞定了

发表于 : 2011-04-07 18:46
月下叹逍遥
不错,不错 :em01

Re: ^_^,圈圈终于全部搞定了

发表于 : 2011-04-07 18:48
tenzu
看不懂 :em20

Re: ^_^,圈圈终于全部搞定了

发表于 : 2011-04-07 18:50
jtshs256
还以为是opera…… :em06

Re: ^_^,圈圈终于全部搞定了

发表于 : 2011-04-07 18:54
lubcat
不错。

Re: ^_^,圈圈终于全部搞定了

发表于 : 2011-04-07 19:38
peteryeh64
:em11 ...NB...

Re: ^_^,圈圈终于全部搞定了

发表于 : 2011-04-07 19:40
jtshs256
好抽象…… :em06

Re: ^_^,圈圈终于全部搞定了

发表于 : 2011-04-07 20:35
gdgglhy
:em06 我的好丑
Screenshot-1.png

Re: ^_^,圈圈终于全部搞定了

发表于 : 2011-04-07 21:10
karllv
gdgglhy 写了::em06 我的好丑
Screenshot-1.png
各有各的好

Re: ^_^,圈圈终于全部搞定了

发表于 : 2011-04-07 21:35
onshoestring
还不错,就是看是时候还要数是第几个圈,会不会数错?

Re: ^_^,圈圈终于全部搞定了

发表于 : 2011-04-07 22:16
susbarbatus
不实用,也就拿来连连技术,装装B什么的

Re: ^_^,圈圈终于全部搞定了

发表于 : 2011-04-07 22:34
karllv
susbarbatus 写了:不实用,也就拿来连连技术,装装B什么的
:em06

Re: ^_^,圈圈终于全部搞定了

发表于 : 2011-04-08 11:08
Ubuntu与Linux
求壁纸阿 :em05

Re: ^_^,圈圈终于全部搞定了

发表于 : 2011-04-08 11:10
月下叹逍遥
:em01