aboutsummaryrefslogtreecommitdiffstats
path: root/.conky/cronograph/scripts/multi_rings.lua
diff options
context:
space:
mode:
Diffstat (limited to '.conky/cronograph/scripts/multi_rings.lua')
-rwxr-xr-x.conky/cronograph/scripts/multi_rings.lua375
1 files changed, 0 insertions, 375 deletions
diff --git a/.conky/cronograph/scripts/multi_rings.lua b/.conky/cronograph/scripts/multi_rings.lua
deleted file mode 100755
index b9735b2..0000000
--- a/.conky/cronograph/scripts/multi_rings.lua
+++ /dev/null
@@ -1,375 +0,0 @@
---==============================================================================
--- multi_rings.lua
---
--- author : SLK
--- version : v2011011601
--- license : Distributed under the terms of GNU GPL version 2 or later
---
---==============================================================================
-
-require 'cairo'
-
---------------------------------------------------------------------------------
--- clock DATA
--- HOURS
-clock_h = {
- {
- name='time', arg='%H', max_value=12,
- x=150, y=150,
- graph_radius=140,
- graph_thickness=3,
- graph_unit_angle=30, graph_unit_thickness=5,
- graph_bg_colour=0xffffff, graph_bg_alpha=0.0,
- graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.0,
- txt_radius=100,
- txt_weight=1, txt_size=10.0,
- txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.0,
- graduation_radius=125,
- graduation_thickness=10, graduation_mark_thickness=2,
- graduation_unit_angle=30,
- graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=1.0,
- },
-}
--- MINUTES
-clock_m = {
- {
- name='time', arg='%M', max_value=60,
- x=150, y=150,
- graph_radius=100,
- graph_thickness=3,
- graph_unit_angle=6, graph_unit_thickness=3,
- graph_bg_colour=0xffffff, graph_bg_alpha=0.0,
- graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.0,
- txt_radius=100,
- txt_weight=0, txt_size=9.0,
- txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.0,
- graduation_radius=57,
- graduation_thickness=0, graduation_mark_thickness=2,
- graduation_unit_angle=30,
- graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.0,
- },
-}
--- SECONDS
-clock_s = {
- {
- name='time', arg='%S', max_value=60,
- x=150, y=150,
- graph_radius=50,
- graph_thickness=3,
- graph_unit_angle=6, graph_unit_thickness=3,
- graph_bg_colour=0xffffff, graph_bg_alpha=0.0,
- graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.0,
- txt_radius=100,
- txt_weight=0, txt_size=12.0,
- txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.0,
- graduation_radius=0,
- graduation_thickness=0, graduation_mark_thickness=0,
- graduation_unit_angle=0,
- graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.0,
- },
-}
-
---------------------------------------------------------------------------------
--- gauge DATA
-gauge = {
-{
- name='cpu', arg='cpu0', max_value=100,
- x=85, y=150,
- graph_radius=14,
- graph_thickness=27,
- graph_start_angle=0,
- graph_unit_angle=3.5, graph_unit_thickness=3.0,
- graph_bg_colour=0xFFFFFF, graph_bg_alpha=0.0,
- graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.0,
- hand_fg_colour=0xFFFFFF, hand_fg_alpha=1.0,
- txt_radius=1,
- txt_weight=0, txt_size=8.0,
- txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.0,
- graduation_radius=27,
- graduation_thickness=4, graduation_mark_thickness=4,
- graduation_unit_angle=30,
- graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=1.0,
- caption='',
- caption_weight=1, caption_size=8.0,
- caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.0,
-},
-{
- name='memperc', arg='', max_value=100,
- x=215, y=150,
- graph_radius=14,
- graph_thickness=27,
- graph_start_angle=0,
- graph_unit_angle=3.5, graph_unit_thickness=3.0,
- graph_bg_colour=0xFFFFFF, graph_bg_alpha=0.0,
- graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.0,
- hand_fg_colour=0xFFFFFF, hand_fg_alpha=1.0,
- txt_radius=1,
- txt_weight=0, txt_size=8.0,
- txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.0,
- graduation_radius=27,
- graduation_thickness=4, graduation_mark_thickness=4,
- graduation_unit_angle=30,
- graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=1.0,
- caption='',
- caption_weight=1, caption_size=8.0,
- caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.0,
-},
-{
- name='fs_used_perc', arg='/', max_value=100,
- x=150, y=75,
- graph_radius=10,
- graph_thickness=23,
- graph_start_angle=0,
- graph_unit_angle=3.5, graph_unit_thickness=3.0,
- graph_bg_colour=0xFFFFFF, graph_bg_alpha=0.0,
- graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.0,
- hand_fg_colour=0xFFFFFF, hand_fg_alpha=1.0,
- txt_radius=1,
- txt_weight=0, txt_size=8.0,
- txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.0,
- graduation_radius=22,
- graduation_thickness=4, graduation_mark_thickness=4,
- graduation_unit_angle=30,
- graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=1.0,
- caption='',
- caption_weight=1, caption_size=8.0,
- caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.0,
-},
-}
-
--------------------------------------------------------------------------------
--- rgb_to_r_g_b
--- converts color in hexa to decimal
---
-function rgb_to_r_g_b(colour, alpha)
- return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
-end
-
--------------------------------------------------------------------------------
--- angle_to_position
--- convert degree to rad and rotate (0 degree is top/north)
---
-function angle_to_position(start_angle, current_angle)
- local pos = current_angle + start_angle
- return ( ( pos * (2 * math.pi / 360) ) - (math.pi / 2) )
-end
-
--------------------------------------------------------------------------------
--- draw_clock_ring
--- displays clock
---
-function draw_clock_ring(display, data, value)
- local max_value = data['max_value']
- local x, y = data['x'], data['y']
- local graph_radius = data['graph_radius']
- local graph_thickness, graph_unit_thickness = data['graph_thickness'], data['graph_unit_thickness']
- local graph_unit_angle = data['graph_unit_angle']
- local graph_bg_colour, graph_bg_alpha = data['graph_bg_colour'], data['graph_bg_alpha']
- local graph_fg_colour, graph_fg_alpha = data['graph_fg_colour'], data['graph_fg_alpha']
-
- -- background ring
- cairo_arc(display, x, y, graph_radius, 0, 2 * math.pi)
- cairo_set_source_rgba(display, rgb_to_r_g_b(graph_bg_colour, graph_bg_alpha))
- cairo_set_line_width(display, graph_thickness)
- cairo_stroke(display)
-
- -- arc of value
- local val = (value % max_value)
- local i = 1
- while i <= val do
- cairo_arc(display, x, y, graph_radius,( ((graph_unit_angle * i) - graph_unit_thickness)*(2*math.pi/360) )-(math.pi/2),((graph_unit_angle * i) * (2*math.pi/360))-(math.pi/2))
- cairo_set_source_rgba(display,rgb_to_r_g_b(graph_fg_colour,graph_fg_alpha))
- cairo_stroke(display)
- i = i + 1
- end
- local angle = (graph_unit_angle * i) - graph_unit_thickness
-
- -- graduations marks
- local graduation_radius = data['graduation_radius']
- local graduation_thickness, graduation_mark_thickness = data['graduation_thickness'], data['graduation_mark_thickness']
- local graduation_unit_angle = data['graduation_unit_angle']
- local graduation_fg_colour, graduation_fg_alpha = data['graduation_fg_colour'], data['graduation_fg_alpha']
- if graduation_radius > 0 and graduation_thickness > 0 and graduation_unit_angle > 0 then
- local nb_graduation = 360 / graduation_unit_angle
- local i = 1
- while i <= nb_graduation do
- cairo_set_line_width(display, graduation_thickness)
- cairo_arc(display, x, y, graduation_radius, (((graduation_unit_angle * i)-(graduation_mark_thickness/2))*(2*math.pi/360))-(math.pi/2),(((graduation_unit_angle * i)+(graduation_mark_thickness/2))*(2*math.pi/360))-(math.pi/2))
- cairo_set_source_rgba(display,rgb_to_r_g_b(graduation_fg_colour,graduation_fg_alpha))
- cairo_stroke(display)
- cairo_set_line_width(display, graph_thickness)
- i = i + 1
- end
- end
-
- -- text
- local txt_radius = data['txt_radius']
- local txt_weight, txt_size = data['txt_weight'], data['txt_size']
- local txt_fg_colour, txt_fg_alpha = data['txt_fg_colour'], data['txt_fg_alpha']
- local movex = txt_radius * (math.cos((angle * 2 * math.pi / 360)-(math.pi/2)))
- local movey = txt_radius * (math.sin((angle * 2 * math.pi / 360)-(math.pi/2)))
- cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, txt_weight);
- cairo_set_font_size (display, txt_size);
- cairo_set_source_rgba (display, rgb_to_r_g_b(txt_fg_colour, txt_fg_alpha));
- cairo_move_to (display, x + movex - (txt_size / 2), y + movey + 3);
- cairo_show_text (display, value);
- cairo_stroke (display);
-end
-
--------------------------------------------------------------------------------
--- draw_gauge_ring
--- displays gauges
---
-function draw_gauge_ring(display, data, value)
- local max_value = data['max_value']
- local x, y = data['x'], data['y']
- local graph_radius = data['graph_radius']
- local graph_thickness, graph_unit_thickness = data['graph_thickness'], data['graph_unit_thickness']
- local graph_start_angle = data['graph_start_angle']
- local graph_unit_angle = data['graph_unit_angle']
- local graph_bg_colour, graph_bg_alpha = data['graph_bg_colour'], data['graph_bg_alpha']
- local graph_fg_colour, graph_fg_alpha = data['graph_fg_colour'], data['graph_fg_alpha']
- local hand_fg_colour, hand_fg_alpha = data['hand_fg_colour'], data['hand_fg_alpha']
- local graph_end_angle = (max_value * graph_unit_angle) % 360
-
- -- background ring
- cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, 0), angle_to_position(graph_start_angle, graph_end_angle))
- cairo_set_source_rgba(display, rgb_to_r_g_b(graph_bg_colour, graph_bg_alpha))
- cairo_set_line_width(display, graph_thickness)
- cairo_stroke(display)
-
- -- arc of value
- local val = value % (max_value + 1)
- local start_arc = 0
- local stop_arc = 0
- local i = 1
- while i <= val do
- start_arc = (graph_unit_angle * i) - graph_unit_thickness
- stop_arc = (graph_unit_angle * i)
- cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
- cairo_set_source_rgba(display, rgb_to_r_g_b(graph_fg_colour, graph_fg_alpha))
- cairo_stroke(display)
- i = i + 1
- end
- local angle = start_arc
-
- -- hand
- start_arc = (graph_unit_angle * val) - (graph_unit_thickness * 2)
- stop_arc = (graph_unit_angle * val)
- cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
- cairo_set_source_rgba(display, rgb_to_r_g_b(hand_fg_colour, hand_fg_alpha))
- cairo_stroke(display)
-
- -- graduations marks
- local graduation_radius = data['graduation_radius']
- local graduation_thickness, graduation_mark_thickness = data['graduation_thickness'], data['graduation_mark_thickness']
- local graduation_unit_angle = data['graduation_unit_angle']
- local graduation_fg_colour, graduation_fg_alpha = data['graduation_fg_colour'], data['graduation_fg_alpha']
- if graduation_radius > 0 and graduation_thickness > 0 and graduation_unit_angle > 0 then
- local nb_graduation = graph_end_angle / graduation_unit_angle
- local i = 0
- while i < nb_graduation do
- cairo_set_line_width(display, graduation_thickness)
- start_arc = (graduation_unit_angle * i) - (graduation_mark_thickness / 2)
- stop_arc = (graduation_unit_angle * i) + (graduation_mark_thickness / 2)
- cairo_arc(display, x, y, graduation_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
- cairo_set_source_rgba(display,rgb_to_r_g_b(graduation_fg_colour,graduation_fg_alpha))
- cairo_stroke(display)
- cairo_set_line_width(display, graph_thickness)
- i = i + 1
- end
- end
-
- -- text
- local txt_radius = data['txt_radius']
- local txt_weight, txt_size = data['txt_weight'], data['txt_size']
- local txt_fg_colour, txt_fg_alpha = data['txt_fg_colour'], data['txt_fg_alpha']
- local movex = txt_radius * math.cos(angle_to_position(graph_start_angle, angle))
- local movey = txt_radius * math.sin(angle_to_position(graph_start_angle, angle))
- cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, txt_weight)
- cairo_set_font_size (display, txt_size)
- cairo_set_source_rgba (display, rgb_to_r_g_b(txt_fg_colour, txt_fg_alpha))
- cairo_move_to (display, x + movex - (txt_size / 2), y + movey + 3)
- cairo_show_text (display, value)
- cairo_stroke (display)
-
- -- caption
- local caption = data['caption']
- local caption_weight, caption_size = data['caption_weight'], data['caption_size']
- local caption_fg_colour, caption_fg_alpha = data['caption_fg_colour'], data['caption_fg_alpha']
- local tox = graph_radius * (math.cos((graph_start_angle * 2 * math.pi / 360)-(math.pi/2)))
- local toy = graph_radius * (math.sin((graph_start_angle * 2 * math.pi / 360)-(math.pi/2)))
- cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, caption_weight);
- cairo_set_font_size (display, caption_size)
- cairo_set_source_rgba (display, rgb_to_r_g_b(caption_fg_colour, caption_fg_alpha))
- cairo_move_to (display, x + tox + 5, y + toy + 1)
- -- bad hack but not enough time !
- if graph_start_angle < 105 then
- cairo_move_to (display, x + tox - 30, y + toy + 1)
- end
- cairo_show_text (display, caption)
- cairo_stroke (display)
-end
-
--------------------------------------------------------------------------------
--- go_clock_rings
--- loads data and displays clock
---
-function go_clock_rings(display)
- local function load_clock_rings(display, data)
- local str, value = '', 0
- str = string.format('${%s %s}',data['name'], data['arg'])
- str = conky_parse(str)
- value = tonumber(str)
- draw_clock_ring(display, data, value)
- end
-
- for i in pairs(clock_h) do
- load_clock_rings(display, clock_h[i])
- end
- for i in pairs(clock_m) do
- load_clock_rings(display, clock_m[i])
- end
- for i in pairs(clock_s) do
- load_clock_rings(display, clock_s[i])
- end
-end
-
--------------------------------------------------------------------------------
--- go_gauge_rings
--- loads data and displays gauges
---
-function go_gauge_rings(display)
- local function load_gauge_rings(display, data)
- local str, value = '', 0
- str = string.format('${%s %s}',data['name'], data['arg'])
- str = conky_parse(str)
- value = tonumber(str)
- draw_gauge_ring(display, data, value)
- end
-
- for i in pairs(gauge) do
- load_gauge_rings(display, gauge[i])
- end
-end
-
--------------------------------------------------------------------------------
--- MAIN
-function conky_main()
- if conky_window == nil then
- return
- end
-
- local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)
- local display = cairo_create(cs)
-
- local updates = conky_parse('${updates}')
- update_num = tonumber(updates)
-
- if update_num > 5 then
- go_clock_rings(display)
- go_gauge_rings(display)
- end
-
-end
-