Page 27 of 142

Re: MX Fluxbox Screenshots

Posted: Fri Apr 02, 2021 10:22 am
by asqwerth
ceeslans wrote: Thu Mar 18, 2021 4:45 pm
Let me chime in on that springtime feeling...

Image
Wonderful as usual.

I like the look of that conky. Could you provide the conky config for that, and the lua script that creates those circle indicators? These lua scripts that create circular and bar indicators are a mystery to me.

Re: MX Fluxbox Screenshots

Posted: Fri Apr 02, 2021 11:07 am
by ceeslans
asqwerth wrote: Fri Apr 02, 2021 10:22 am<snip>
I like the look of that conky. Could you provide the conky config for that, and the lua script that creates those circle indicators? These lua scripts that create circular and bar indicators are a mystery to me.
Here are both files.

conkyrc

Code: Select all

----------------------
-- Conky-Grey-Black --
----------------------

conky.config = {

update_interval = 1,
total_run_times = 0,
cpu_avg_samples = 2,
net_avg_samples = 2,
double_buffer = true,
no_buffers = true,
text_buffer_size = 2048,
temperature_unit = 'celsius',
use_spacer = 'none',
top_name_width = 18,

background = false,
own_window = true,
own_window_type = 'desktop',

own_window_argb_visual = true,
own_window_argb_value = 0,
own_window_colour = '#000000',
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
own_window_class = 'conky',
own_window_title = 'conkyGreyBlack',

draw_shades = false,
draw_outline = false,
draw_borders = false,
draw_graph_borders = false,
border_inner_margin = 0,
border_width = 0,

use_xft = true,
font = 'Candara:size=10',
xftalpha = 0.5,
override_utf8_locale = true,	
uppercase = false,
	
	
minimum_width = 225, maximum_width = 225,
minimum_height = 1000,
gap_x = 20,
gap_y = 0,	
alignment = 'middle_right',	

default_color = 'cccccc',
color1 = '#839097',

lua_load = '~/.conky/LUA/conky_grey.lua',
lua_draw_hook_post = 'main',
	
};

conky.text = [[
#### INFO ####
${voffset 15}
${goto 15}${font Candara:bold:size=12}${color1}INFO:${color}${font}${voffset 4}
${goto 20}${execi 1000 cat /proc/cpuinfo|grep 'model name'|sed -e 's/model name.*: //'| uniq | cut -c 1-32}
${goto 20}CPU Speed:  ${freq cpu0}MHz
${goto 20}Kernel:  $kernel
${goto 20}OS:  ${execi 86400 cat /etc/mx-version | cut -c 1-7}  [${execi 86400 printenv XDG_SESSION_DESKTOP}]
${goto 20}Updates:  ${execi 360 aptitude search "~U" | wc -l | tail}
\
#### CPU/MEM ####
${voffset 20}${goto 15}${font Candara:bold:size=12}${color1}CPU:${color}
${voffset 80}${alignr 15}${font Liberation Sans:size=7} ${mem}
\
#### DISK ####
${voffset 15}
${voffset 45}${goto 15}${font Candara:bold:size=12}${color1}DISK:${color}
${voffset 62}${alignr 15}${font Liberation Sans:size=7}${fs_used /}
${voffset 6}${alignr 15}${fs_used /home}
${voffset 6}${alignr 15}${fs_used /mnt/DATA}
\
#### NET ####
${voffset 0}
${goto 15}${font Candara:bold:size=12}${color1}NET:${color}
${voffset 90}${alignr 15}${font Liberation Sans:size=7}${upspeed wlan0}/s UP      
${alignr 15}${downspeed wlan0}/s DOWN
\
#### PROCESSES ####
${voffset 20}
${goto 15}${font Candara:bold:size=12}${color1}CPU PROCESSES:${color}${font}${voffset 5}
${goto 20}${top name 1}${alignr 15}${top cpu 1}%
${goto 20}${top name 2}${alignr 15}${top cpu 2}%
${goto 20}${top name 3}${alignr 15}${top cpu 3}%
${goto 20}${top name 4}${alignr 15}${top cpu 4}%
${voffset 5}
${goto 15}${font Candara:bold:size=12}${color1}MEM PROCESSES:${color}${font}${voffset 5}
${goto 20}${top_mem name 1}${alignr 15}${top mem 1}%
${goto 20}${top_mem name 2}${alignr 15}${top mem 2}%
${goto 20}${top_mem name 3}${alignr 15}${top mem 3}%
${goto 20}${top_mem name 4}${alignr 15}${top mem 4}%
\
#### NETWORK ####
${voffset 5}
${goto 15}${font Candara:bold:size=12}${color1}NETWORK:${color}${font}${voffset 5}
${goto 20}Private IP:${alignr 15}${addr wlan0}
${goto 20}Public IP:${alignr 15}${execi 1000 wget -O - -q icanhazip.com}
${goto 20}Inbound Ports:${alignr 22}${tcp_portmon 1 32767 count}
${goto 20}Outbound Ports:${alignr 22}${tcp_portmon 32768 61000 count}
${voffset 8}${font Candara:size=9}\
${goto 20}${tcp_portmon 1 65535 rip 0} ${alignr 15}${tcp_portmon 1 65535 rip 1}
${goto 20}${tcp_portmon 1 65535 rip 2} ${alignr 15}${tcp_portmon 1 65535 rip 3}
${goto 20}${tcp_portmon 1 65535 rip 4} ${alignr 15}${tcp_portmon 1 65535 rip 5}
${goto 20}${tcp_portmon 1 65535 rip 6} ${alignr 15}${tcp_portmon 1 65535 rip 7}
${goto 20}${tcp_portmon 1 65535 rip 8} ${alignr 15}${tcp_portmon 1 65535 rip 9}
${goto 20}${tcp_portmon 1 65535 rip 10} ${alignr 15}${tcp_portmon 1 65535 rip 11}
]];
conky_grey.lua

Code: Select all

--==============================================================================
--                                 conky_grey.lua
-- 
--  display : CLOCK - ring gauge
--  author  : SLK
--  version : v20121005-01
--  license : Distributed under the terms of GNU GPL version 2 or later
--
--==============================================================================

require 'cairo'

--------------------------------------------------------------------------------
--                                                                    gauge DATA
gauge = {
{
    name='cpu',                    arg='cpu0',                  max_value=100,
    x=145,                          y=235,
    graph_radius=35,
    graph_thickness=3,
    graph_start_angle=255,
    graph_unit_angle=1.8,          graph_unit_thickness=1.8,
    graph_bg_colour=0x000000,      graph_bg_alpha=0.5,
    graph_fg_colour=0x839097,      graph_fg_alpha=0.8,
    hand_fg_colour=0x839097,       hand_fg_alpha=0.8,
    txt_radius=33,
    txt_weight=0,                  txt_size=9.0,
    txt_fg_colour=0x839097,        txt_fg_alpha=0.8,
    graduation_radius=28,
    graduation_thickness=0,        graduation_mark_thickness=1,
    graduation_unit_angle=27,
    graduation_fg_colour=0x000000, graduation_fg_alpha=0.6,
    caption='  cpu0',
    caption_weight=1,              caption_size=10.0,
    caption_fg_colour=0xffffff,    caption_fg_alpha=0.5,
},
{
    name='cpu',                    arg='cpu1',                  max_value=100,
    x=145,                          y=235,
    graph_radius=50,
    graph_thickness=3,
    graph_start_angle=240,
    graph_unit_angle=1.8,          graph_unit_thickness=1.8,
    graph_bg_colour=0x000000,      graph_bg_alpha=0.5,
    graph_fg_colour=0x839097,      graph_fg_alpha=0.8,
    hand_fg_colour=0x839097,       hand_fg_alpha=0.8,
    txt_radius=48,
    txt_weight=0,                  txt_size=9.0,
    txt_fg_colour=0x839097,        txt_fg_alpha=0.8,
    graduation_radius=32,
    graduation_thickness=0,        graduation_mark_thickness=1,
    graduation_unit_angle=27,
    graduation_fg_colour=0x000000, graduation_fg_alpha=0.6,
    caption='  cpu1',
    caption_weight=1,              caption_size=10.0,
    caption_fg_colour=0xffffff,    caption_fg_alpha=0.5,
},
{
    name='cpu',                    arg='cpu2',                  max_value=100,
    x=145,                          y=235,
    graph_radius=65,
    graph_thickness=3,
    graph_start_angle=225,
    graph_unit_angle=1.8,          graph_unit_thickness=1.8,
    graph_bg_colour=0x000000,      graph_bg_alpha=0.5,
    graph_fg_colour=0x839097,      graph_fg_alpha=0.8,
    hand_fg_colour=0x839097,       hand_fg_alpha=0.8,
    txt_radius=63,
    txt_weight=0,                  txt_size=9.0,
    txt_fg_colour=0x839097,        txt_fg_alpha=0.8,
    graduation_radius=28,
    graduation_thickness=0,        graduation_mark_thickness=1,
    graduation_unit_angle=27,
    graduation_fg_colour=0x000000, graduation_fg_alpha=0.6,
    caption='  cpu2',
    caption_weight=1,              caption_size=10.0,
    caption_fg_colour=0xffffff,    caption_fg_alpha=0.5,
},
{
    name='cpu',                    arg='cpu3',                  max_value=100,
    x=145,                          y=235,
    graph_radius=80,
    graph_thickness=3,
    graph_start_angle=210,
    graph_unit_angle=1.8,          graph_unit_thickness=1.8,
    graph_bg_colour=0x000000,      graph_bg_alpha=0.5,
    graph_fg_colour=0x839097,      graph_fg_alpha=0.8,
    hand_fg_colour=0x839097,       hand_fg_alpha=0.8,
    txt_radius=78,
    txt_weight=0,                  txt_size=9.0,
    txt_fg_colour=0x839097,        txt_fg_alpha=0.8,
    graduation_radius=32,
    graduation_thickness=0,        graduation_mark_thickness=1,
    graduation_unit_angle=27,
    graduation_fg_colour=0x000000, graduation_fg_alpha=0.6,
    caption='  cpu3',
    caption_weight=1,              caption_size=10.0,
    caption_fg_colour=0xffffff,    caption_fg_alpha=0.5,
},
{
    name='cpu',                    arg='cpu4',                  max_value=100,
    x=145,                          y=235,
    graph_radius=95,
    graph_thickness=3,
    graph_start_angle=195,
    graph_unit_angle=1.8,          graph_unit_thickness=1.8,
    graph_bg_colour=0x000000,      graph_bg_alpha=0.5,
    graph_fg_colour=0x839097,      graph_fg_alpha=0.8,
    hand_fg_colour=0x839097,       hand_fg_alpha=0.8,
    txt_radius=93,
    txt_weight=0,                  txt_size=9.0,
    txt_fg_colour=0x839097,        txt_fg_alpha=0.8,
    graduation_radius=32,
    graduation_thickness=0,        graduation_mark_thickness=1,
    graduation_unit_angle=27,
    graduation_fg_colour=0x000000, graduation_fg_alpha=0.6,
    caption='  cpu4',
    caption_weight=1,              caption_size=10.0,
    caption_fg_colour=0xffffff,    caption_fg_alpha=0.5,
},
{
    name='cpu',                    arg='cpu5',                  max_value=100,
    x=145,                          y=235,
    graph_radius=110,
    graph_thickness=3,
    graph_start_angle=185,
    graph_unit_angle=1.8,          graph_unit_thickness=1.8,
    graph_bg_colour=0x000000,      graph_bg_alpha=0.5,
    graph_fg_colour=0x839097,      graph_fg_alpha=0.8,
    hand_fg_colour=0x839097,       hand_fg_alpha=0.8,
    txt_radius=108,
    txt_weight=0,                  txt_size=9.0,
    txt_fg_colour=0x839097,        txt_fg_alpha=0.8,
    graduation_radius=32,
    graduation_thickness=0,        graduation_mark_thickness=1,
    graduation_unit_angle=27,
    graduation_fg_colour=0x000000, graduation_fg_alpha=0.6,
    caption='  cpu5',
    caption_weight=1,              caption_size=10.0,
    caption_fg_colour=0xffffff,    caption_fg_alpha=0.5,
},
{
    name='memperc',                arg='',                      max_value=100,
    x=175,                          y=275,
    graph_radius=22,
    graph_thickness=3,
    graph_start_angle=225,
    graph_unit_angle=2.7,          graph_unit_thickness=2.7,
    graph_bg_colour=0x000000,      graph_bg_alpha=0.5,
    graph_fg_colour=0x839097,      graph_fg_alpha=0.8,
    hand_fg_colour=0x839097,       hand_fg_alpha=0.8,
    txt_radius=10,
    txt_weight=0,                  txt_size=9.0,
    txt_fg_colour=0x839097,        txt_fg_alpha=0.8,
    graduation_radius=40,
    graduation_thickness=0,        graduation_mark_thickness=2,
    graduation_unit_angle=27,
    graduation_fg_colour=0x000000, graduation_fg_alpha=0.5,
    caption='mem',
    caption_weight=1,              caption_size=10.0,
    caption_fg_colour=0xffffff,    caption_fg_alpha=0.5,
},
{
    name='fs_used_perc',           arg='/',                     max_value=100,
    x=135,                          y=387,
    graph_radius=25,
    graph_thickness=5,
    graph_start_angle=190,
    graph_unit_angle=1.2,          graph_unit_thickness=1.0,
    graph_bg_colour=0x000000,      graph_bg_alpha=0.5,
    graph_fg_colour=0x839097,      graph_fg_alpha=0.9,
    hand_fg_colour=0x839097,       hand_fg_alpha=0.8,
    txt_radius=35,
    txt_weight=0,                  txt_size=9.0,
    txt_fg_colour=0x839097,        txt_fg_alpha=0.7,
    graduation_radius=50,
    graduation_thickness=0,        graduation_mark_thickness=1,
    graduation_unit_angle=27,
    graduation_fg_colour=0x000000, graduation_fg_alpha=0.5,
    caption='Root',
    caption_weight=1,              caption_size=10.0,
    caption_fg_colour=0xffffff,    caption_fg_alpha=0.6,
},
{
    name='fs_used_perc',           arg='/home',                max_value=100,
    x=120,                          y=385,
    graph_radius=45,
    graph_thickness=5,
    graph_start_angle=170,
    graph_unit_angle=1.4,          graph_unit_thickness=1.2,
    graph_bg_colour=0x000000,      graph_bg_alpha=0.5,
    graph_fg_colour=0x839097,      graph_fg_alpha=0.9,
    hand_fg_colour=0x839097,       hand_fg_alpha=0.8,
    txt_radius=55,
    txt_weight=0,                  txt_size=9.0,
    txt_fg_colour=0x839097,        txt_fg_alpha=0.7,
    graduation_radius=56,
    graduation_thickness=0,        graduation_mark_thickness=1,
    graduation_unit_angle=27,
    graduation_fg_colour=0x000000, graduation_fg_alpha=0.5,
    caption=' Home',
    caption_weight=1,              caption_size=10.0,
    caption_fg_colour=0xffffff,    caption_fg_alpha=0.6,
},
 {
     name='fs_used_perc',           arg='/mnt/DATA',                max_value=100,
     x=105,                          y=385,
     graph_radius=65,
     graph_thickness=5,
     graph_start_angle=160,
     graph_unit_angle=1.6,          graph_unit_thickness=1.4,
     graph_bg_colour=0x000000,      graph_bg_alpha=0.5,
     graph_fg_colour=0x839097,      graph_fg_alpha=0.9,
     hand_fg_colour=0x839097,       hand_fg_alpha=0.8,
     txt_radius=75,
     txt_weight=0,                  txt_size=9.0,
     txt_fg_colour=0x839097,        txt_fg_alpha=0.7,
     graduation_radius=62,
     graduation_thickness=0,        graduation_mark_thickness=1,
     graduation_unit_angle=27,
     graduation_fg_colour=0x000000, graduation_fg_alpha=0.5,
     caption=' Data',
     caption_weight=1,              caption_size=10.0,
     caption_fg_colour=0xffffff,    caption_fg_alpha=0.6,
 },
{
    name='upspeedf',           arg='wlan0',                     max_value=100,
    x=85,                          y=535,
    graph_radius=42,
    graph_thickness=5,
    graph_start_angle=165,
    graph_unit_angle=3.0,          graph_unit_thickness=1.8,
    graph_bg_colour=0x000000,      graph_bg_alpha=0.5,
    graph_fg_colour=0x839097,      graph_fg_alpha=0.9,
    hand_fg_colour=0x839097,       hand_fg_alpha=0.8,
    txt_radius=34,
    txt_weight=0,                  txt_size=0.0,
    txt_fg_colour=0x839097,        txt_fg_alpha=0.5,
    graduation_radius=36,
    graduation_thickness=3,        graduation_mark_thickness=2,
    graduation_unit_angle=18,
    graduation_fg_colour=0x839097, graduation_fg_alpha=0.1,
    caption=' UP',
    caption_weight=1,              caption_size=10.0,
    caption_fg_colour=0xffffff,    caption_fg_alpha=0.5,
},
{
    name='downspeedf',           arg='wlan0',                max_value=100,
    x=85,                          y=535,
    graph_radius=62,
    graph_thickness=5,
    graph_start_angle=170,
    graph_unit_angle=3.0,          graph_unit_thickness=1.8,
    graph_bg_colour=0x000000,      graph_bg_alpha=0.5,
    graph_fg_colour=0x839097,      graph_fg_alpha=0.9,
    hand_fg_colour=0x839097,       hand_fg_alpha=0.8,
    txt_radius=10,
    txt_weight=0,                  txt_size=0.0,
    txt_fg_colour=0x839097,        txt_fg_alpha=0.5,
    graduation_radius=58,
    graduation_thickness=3,        graduation_mark_thickness=2,
    graduation_unit_angle=18,
    graduation_fg_colour=0x839097, graduation_fg_alpha=0.1,
    caption=' DN',
    caption_weight=1,              caption_size=10.0,
    caption_fg_colour=0xffffff,    caption_fg_alpha=0.5,
},
}


-------------------------------------------------------------------------------
--                                                                 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, "Liberation Sans", 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, "Liberation Sans", 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, "Liberation Sans", 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

    cairo_surface_destroy(cs)
    cairo_destroy(display)
end

Re: MX Fluxbox Screenshots

Posted: Fri Apr 02, 2021 11:31 am
by asqwerth
Thanks! That was quick!

[ADDED] I love the movement of the CPU indicators.

Re: MX Fluxbox Screenshots

Posted: Fri Apr 02, 2021 1:34 pm
by wdscharff
Really very nice, unfortunately not feasible for me, too much cores

Re: MX Fluxbox Screenshots

Posted: Fri Apr 02, 2021 2:31 pm
by Jerry3904
Great stuff! I need to look in detail one of these days.

Re: MX Fluxbox Screenshots

Posted: Sat Apr 03, 2021 2:11 am
by kobaian
My fluxbox-desktop is spring-ready now. ;)

Image

Re: MX Fluxbox Screenshots

Posted: Sat Apr 03, 2021 2:28 am
by Jerry3904
Indeed it is, very handsome.

Re: MX Fluxbox Screenshots

Posted: Sat Apr 03, 2021 4:50 am
by ceeslans
kobaian wrote: Sat Apr 03, 2021 2:11 am My fluxbox-desktop is spring-ready now. ;)
https://imgur.com/NmgX0Oj.png
Great shot. What icon theme are you using here?
and the background is wonderful. Can you share a link to the wallpaper please

Re: MX Fluxbox Screenshots

Posted: Sat Apr 03, 2021 5:04 am
by kobaian
ceeslans wrote: Sat Apr 03, 2021 4:50 am
kobaian wrote: Sat Apr 03, 2021 2:11 am My fluxbox-desktop is spring-ready now. ;)
https://imgur.com/NmgX0Oj.png
Great shot. What icon theme are you using here?
and the background is wonderful. Can you share a link to the wallpaper please
The icon theme is Obsidian Mint. You can download from MX-repos. If you check - Obsidian - you wil get all color themes.
For Idesktop use https://iconarchive.com/artist/guillendesign.html converted to 64x64 with XnView (also from MX-repos).
The Wallpaper is a photo taken by myself. ;) If you like, I would try to upload it on DeviantArt. Just tell me what resolution do you need. ;)

Re: MX Fluxbox Screenshots

Posted: Sat Apr 03, 2021 5:38 am
by ceeslans
↑ resolution of 1920x1080px or higher. Thanks for uploading to DeviantArt or imgur.