Kod: Zaznacz cały
conky -c ~/.conky/seamod/conkyrc.lua
conky: desktop window (1800022) is subwindow of root window (498)
conky: window type - dock
conky: drawing to created window (0x3e00002)
conky: drawing to double buffer
conky: Unknown setting 'xinerama_head'
conky: can't open '/sys/class/hwmon/hwmon2/fan1_input': Nie ma takiego pliku ani katalogu
please check your device or remove this var from conky
conky: one or more $endif's are missing
conky: forked to background, pid is 20381
conky: obj->data.i 3 info.cpu_count 2
conky: attempting to use more CPUs than you have!
Kod: Zaznacz cały
-----------------------------------------------------------------------------
-- conkyrc_seamod
-- Date : 2016/11/13
-- Author : SeaJey, Maxiwell and JPvRiel
-- Conky : >= 1.10
-- License : Distributed under the terms of GNU GPL version 2 or later
-----------------------------------------------------------------------------
conky.config = {
background = true,
update_interval = 1,
cpu_avg_samples = 2,
net_avg_samples = 2,
temperature_unit = 'celsius',
if_up_strictness = 'address',
double_buffer = true,
no_buffers = true,
text_buffer_size = 2048,
own_window = true,
own_window_class = 'conky-semi',
--own_window_type = 'desktop',
--own_window_type = 'normal',
--own_window_type = 'override',
own_window_type = 'dock',
own_window_hints = 'undecorated,sticky,skip_taskbar,skip_pager,below',
own_window_colour = '#000000',
own_window_transparent = false,
own_window_argb_visual = true,
own_window_argb_value = 192,
draw_shades = false,
draw_outline = false,
draw_borders = false,
draw_graph_borders = false,
alignment = 'top_right',
gap_x = 80,
gap_y = 70,
minimum_width = 340, minimum_height = 600,
maximum_width = 360,
border_inner_margin = 0,
border_outer_margin = 20,
xinerama_head = 0,
override_utf8_locale = true,
use_xft = true,
font = 'Ubuntu:size=11',
xftalpha = 0.8,
uppercase = false,
-- Defining colors
default_color = '#FFFFFF',
-- Shades of Gray
color1 = '#DDDDDD',
color2 = '#AAAAAA',
color3 = '#888888',
-- Orange
color4 = '#EF5A29',
-- Green
color5 = '#77B753',
-- Loading lua script for drawning rings
lua_load = '~/.conky/seamod/seamod_rings.lua',
lua_draw_hook_post = 'main'
};
conky.text = [[
# Showing CPU Graph with TOP 5
${offset 180}${color1}${font Ubuntu:size=10:style=bold}Temp: ${alignr}${font Ubuntu:size=10:style=normal}${color2}${hwmon 2 temp 1} C
#${offset 180}${color1}${font Ubuntu:size=10:style=bold}Fan: ${alignr}${font Ubuntu:size=10:style=normal}${color2}${hwmon 2 fan 1} RPM
${offset 180}${color1}${font Ubuntu:size=10:style=bold}Freq: ${alignr}${font Ubuntu:size=10:style=normal}${color2}${lua freq_min} - ${lua freq_max} MHz
${offset 145}${cpugraph cpu0 30,200 666666 666666}
${voffset -32}
${offset 91}${font Ubuntu:size=11:style=bold}${color5}PROC
# Showing TOP 5 CPU-consumers
${offset 110}${font Ubuntu:size=11:style=normal}${color4}${top name 1}${alignr}${top cpu 1}%
${offset 110}${font Ubuntu:size=11:style=normal}${color1}${top name 2}${alignr}${top cpu 2}%
${offset 110}${font Ubuntu:size=10:style=normal}${color2}${top name 3}${alignr}${top cpu 3}%
${offset 110}${font Ubuntu:size=10:style=normal}${color3}${top name 4}${alignr}${top cpu 4}%
${offset 110}${font Ubuntu:size=10:style=normal}${color3}${top name 5}${alignr}${top cpu 5}%
#Showing memory Graph with TOP 5
${offset 180}${color1}${font Ubuntu:size=10:style=bold}Availble: ${alignr}${font Ubuntu:size=10:style=normal}${color2}${memeasyfree}
${offset 180}${color1}${font Ubuntu:size=10:style=bold}Cache: ${alignr}${font Ubuntu:size=10:style=normal}${color2}${cached}
${offset 180}${color1}${font Ubuntu:size=10:style=bold}Buffer: ${alignr}${font Ubuntu:size=10:style=normal}${color2}${buffers}
${offset 145}${memgraph 30,200 666666 666666}
${voffset -32}
${offset 100}${font Ubuntu:size=11:style=bold}${color5}MEM
${offset 110}${font Ubuntu:size=12:style=normal}${color4}${top_mem name 1}${alignr}${top_mem mem_res 1}
${offset 110}${font Ubuntu:size=11:style=normal}${color1}${top_mem name 2}${alignr}${top_mem mem_res 2}
${offset 110}${font Ubuntu:size=10:style=normal}${color2}${top_mem name 3}${alignr}${top_mem mem_res 3}
${offset 110}${font Ubuntu:size=10:style=normal}${color3}${top_mem name 4}${alignr}${top_mem mem_res 4}
${offset 110}${font Ubuntu:size=10:style=normal}${color3}${top_mem name 5}${alignr}${top_mem mem_res 5}
# Showing disk partitions: root, home and files
${offset 180}${color1}${font Ubuntu:size=10:style=bold}Read: ${alignr}${font Ubuntu:size=10:style=normal}${color2}${diskio_read}
${offset 180}${color1}${font Ubuntu:size=10:style=bold}Write: ${alignr}${font Ubuntu:size=10:style=normal}${color2}${diskio_write}
${offset 145}${diskiograph 30,200 666666 666666}
${voffset -32}
${offset 85}${font Ubuntu:size=11:style=bold}${color5}STORE
${offset 110}${font Ubuntu:size=12:style=normal}${color4}${top_mem name 1}${alignr}r:${top_io io_read 1}w:${top_io io_write 1}
${offset 110}${font Ubuntu:size=11:style=normal}${color1}${top_mem name 2}${alignr}r:${top_io io_read 2}w:${top_io io_write 2}
${offset 110}${font Ubuntu:size=10:style=normal}${color2}${top_mem name 3}${alignr}r:${top_io io_read 3}w:${top_io io_write 3}
${offset 110}${font Ubuntu:size=10:style=normal}${color2}${top_mem name 4}${alignr}r:${top_io io_read 4}w:${top_io io_write 4}
${offset 110}${font Ubuntu:size=10:style=normal}${color2}${top_mem name 5}${alignr}r:${top_io io_read 5}w:${top_io io_write 5}
# Network data (assumes wireless info). NET ring is mostly useless but looks pretty, main info is in the graphs
${if_up eth0}
${if_match "${addr eth0}" != "No Address"}\
${offset 180}${font Ubuntu:size=10:style=bold}${color1}Wired
${offset 180}${font Ubuntu:size=10:style=bold}${color1}IP: ${alignr}${font Ubuntu:size=10:style=normal}${color2}${addr eth0}
${offset 180}${font Ubuntu:size=10:style=bold}${color1}Public IP: ${alignr}${font Ubuntu:size=10:style=normal}${color2}${curl http://api.ipify.org 300}
${offset 145}${upspeedgraph eth0 25,200 4B1B0C FF5C2B 1280KiB -l}
${offset 145}${color1}${font Ubuntu:size=10:style=bold}Up: ${alignr}${font Ubuntu:size=10:style=normal}${color3}${upspeed eth0} / ${totalup eth0}
${offset 145}${downspeedgraph eth0 25,200 324D23 77B753 1280KiB -l}
${offset 145}${color1}${font Ubuntu:size=10:style=bold}Down: ${alignr}${font Ubuntu:size=10:style=normal}${color3}${downspeed eth0} / ${totaldown eth0}
${else}\
${if_match "${addr wlan0}" != "No Address"}\
${offset 180}${font Ubuntu:size=10:style=bold}${color1}Wifi: ${alignr}${font Ubuntu:size=10:style=normal}${color2}${wireless_essid} (${wireless_bitrate wlan0})
${offset 180}${font Ubuntu:size=10:style=bold}${color1}IP: ${alignr}${font Ubuntu:size=10:style=normal}${color2}${addr wlan0}
${offset 180}${font Ubuntu:size=10:style=bold}${color1}Public IP: ${alignr}${font Ubuntu:size=10:style=normal}${color2}${curl http://api.ipify.org 300}
${offset 145}${upspeedgraph wlan0 25,200 4B1B0C FF5C2B 1280KiB -l}
${offset 145}${color1}${font Ubuntu:size=10:style=bold}Up: ${alignr}${font Ubuntu:size=10:style=normal}${color3}${upspeed wlan0} / ${totalup wlan0}
${offset 145}${downspeedgraph wlan0 25,200 324D23 77B753 1280KiB -l}
${offset 145}${color1}${font Ubuntu:size=10:style=bold}Down: ${alignr}${font Ubuntu:size=10:style=normal}${color3}${downspeed wlan0} / ${totaldown wlan0}
${else}\
${offset 180}${font Ubuntu:size=10:style=bold}${color1}Disconnected
${offset 180}${font Ubuntu:size=10:style=normal}${color3}(eth0 and wlan0 have no IP)
${offset 145}${upspeedgraph eth0 25,200 4B1B0C FF5C2B 1280KiB -l}
${offset 145}${color1}${font Ubuntu:size=10:style=bold}Up: ${alignr}${font Ubuntu:size=10:style=normal}${color3}NA
${offset 145}${downspeedgraph eth0 25,200 324D23 77B753 1280KiB -l}
${offset 145}${color1}${font Ubuntu:size=10:style=bold}Down: ${alignr}${font Ubuntu:size=10:style=normal}${color3}NA
${endif}\
${endif}\
${voffset -100}
${offset 105}${font Ubuntu:size=11:style=bold}${color5}NET
#### Modifications below HERE wont cause alignment problems with the gauges/rings ####
# Extra info
${voffset 60}
${offset 15}${font Ubuntu:size=11:style=normal}${color1}Entropy:${tab}${color3}${entropy_bar 5,140} ${color3}${entropy_perc}% (${entropy_avail}/${entropy_poolsize})
${offset 15}${font Ubuntu:size=11:style=normal}${color1}Battery:${tab}${color3}${battery_bar 5,140} ${if_match ${battery_percent BAT0} <= 33}${color4}${else}${color3}${endif}${battery_short}${if_match ${battery_percent BAT0} != 100} (${battery_time})${endif}
${offset 15}${font Ubuntu:size=11:style=normal}${color1}Uptime:${tab}${tab}${color3}$uptime
# Log feed
${offset 15}${font Ubuntu:size=11:style=normal}${color1}Syslog Err:
${voffset 3}${color3}${font Ubuntu Condensed:size=8:style=normal}${texecpi 60 ~/.conky/seamod/syslog-err-feed.sh }
]];
Kod: Zaznacz cały
--==============================================================================
-- seamod_rings.lua
--
-- Date : 2016/11/13
-- Author : SeaJey, modified by JPvRiel
-- Version : v0.2
-- License : Distributed under the terms of GNU GPL version 2 or later
--
-- This version is a modification of lunatico_rings.lua wich is modification of conky_orange.lua
--
-- conky_orange.lua: http://gnome-look.org/content/show.php?content=137503&forumpage=0
-- lunatico_rings.lua: http://gnome-look.org/content/show.php?content=142884
--==============================================================================
require 'cairo'
gauge = {
--====--
-- Data here is loaded only once when included and is therefore static
-- 'name' and 'arg' for simple conky objects with static arguments
-- 'conky_line' for complex, conditional and dynamic behavior
-- 'conky_line' supersedes 'name' and 'arg' (in case both are present)
--====--
-- CPU rings
{
name='cpu', arg='cpu1', max_value=100,
x=70, y=70,
graph_radius=60,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29, hand_fg_alpha=1.0,
txt_radius=0,
txt_weight=0, txt_size=8.0,
txt_fg_colour=0xEF5A29, txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0, graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='',
caption_weight=0.8, caption_size=9.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.3,
},
{
name='cpu', arg='cpu2', max_value=100,
x=70, y=70,
graph_radius=53,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29, hand_fg_alpha=1.0,
txt_radius=0,
txt_weight=0, txt_size=8.0,
txt_fg_colour=0xEF5A29, txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0, graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='',
caption_weight=0.8, caption_size=9.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.3,
},
{
name='cpu', arg='cpu3', max_value=100,
x=70, y=70,
graph_radius=46,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29, hand_fg_alpha=1.0,
txt_radius=0,
txt_weight=0, txt_size=8.0,
txt_fg_colour=0xEF5A29, txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0, graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='',
caption_weight=0.8, caption_size=9.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.3,
},
{
name='cpu', arg='cpu4', max_value=100,
x=70, y=70,
graph_radius=39,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29, hand_fg_alpha=1.0,
txt_radius=0,
txt_weight=0, txt_size=8.0,
txt_fg_colour=0xEF5A29, txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0, graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='',
caption_weight=0.8, caption_size=9.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.3,
},
{
name='cpu', arg='cpu5', max_value=100,
x=70, y=70,
graph_radius=32,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29, hand_fg_alpha=1.0,
txt_radius=0,
txt_weight=0, txt_size=8.0,
txt_fg_colour=0xEF5A29, txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0, graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='',
caption_weight=0.8, caption_size=9.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.3,
},
{
name='cpu', arg='cpu6', max_value=100,
x=70, y=70,
graph_radius=25,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29, hand_fg_alpha=1.0,
txt_radius=0,
txt_weight=0, txt_size=8.0,
txt_fg_colour=0xEF5A29, txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0, graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='',
caption_weight=0.8, caption_size=9.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.3,
},
{
name='cpu', arg='cpu7', max_value=100,
x=70, y=70,
graph_radius=18,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29, hand_fg_alpha=1.0,
txt_radius=0,
txt_weight=0, txt_size=8.0,
txt_fg_colour=0xEF5A29, txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0, graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='',
caption_weight=0.8, caption_size=9.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.3,
},
{
name='cpu', arg='cpu8', max_value=100,
x=70, y=70,
graph_radius=11,
graph_thickness=5,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29, hand_fg_alpha=1.0,
txt_radius=0,
txt_weight=0, txt_size=8.0,
txt_fg_colour=0xEF5A29, txt_fg_alpha=1.0,
graduation_radius=28,
graduation_thickness=0, graduation_mark_thickness=1,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='',
caption_weight=0.8, caption_size=9.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.3,
},
-- Memory rings
{
name='memperc', arg='', max_value=100,
x=70, y=262,
graph_radius=60,
graph_thickness=10,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29, hand_fg_alpha=1.0,
txt_radius=72,
txt_weight=1.0, txt_size=8.0,
txt_fg_colour=0xEF5A29, txt_fg_alpha=1.0,
graduation_radius=54,
graduation_thickness=0, graduation_mark_thickness=2,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.5,
caption='RAM',
caption_weight=0.8, caption_size=9.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.5,
},
{
name='swapperc', arg='', max_value=100,
x=70, y=262,
graph_radius=45,
graph_thickness=10,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29, hand_fg_alpha=1.0,
txt_radius=33,
txt_weight=1.0, txt_size=8.0,
txt_fg_colour=0xEF5A29, txt_fg_alpha=1.0,
graduation_radius=23,
graduation_thickness=0, graduation_mark_thickness=2,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.5,
caption='SWAP',
caption_weight=0.8, caption_size=9.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.5,
},
-- Storage rings
{
name='fs_used_perc', arg='/home', max_value=100,
x=70, y=455,
graph_radius=60,
graph_thickness=8,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29, hand_fg_alpha=1.0,
txt_radius=70,
txt_weight=1.0, txt_size=8.0,
txt_fg_colour=0xEF5A29, txt_fg_alpha=1.0,
graduation_radius=23,
graduation_thickness=0, graduation_mark_thickness=2,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='home',
caption_weight=0.8, caption_size=9.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.5,
},
{
name='fs_used_perc', arg='/',
max_value=100,
x=70, y=455,
graph_radius=48,
graph_thickness=8,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29, hand_fg_alpha=1.0,
txt_radius=58,
txt_weight=1.0, txt_size=8.0,
txt_fg_colour=0xEF5A29, txt_fg_alpha=1.0,
graduation_radius=23,
graduation_thickness=0, graduation_mark_thickness=2,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='root',
caption_weight=0.8, caption_size=9.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.5,
},
{
name='fs_used_perc', arg='/var', max_value=100,
x=70, y=455,
graph_radius=36,
graph_thickness=8,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29, hand_fg_alpha=1.0,
txt_radius=26,
txt_weight=1.0, txt_size=8.0,
txt_fg_colour=0xEF5A29, txt_fg_alpha=1.0,
graduation_radius=30,
graduation_thickness=0, graduation_mark_thickness=2,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='var',
caption_weight=0.8, caption_size=9.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.5,
},
-- Network rings
{
--conky_line='${if_up eth0}${downspeedf eth0}${else}${if_up wlan0}{downspeedf wlan0}${endif}${endif}',
conky_line='${if_match "${addr eth0}" != "No Address"}${downspeedf eth0}${else}${if_match "${addr wlan0}" != "No Address"}${downspeedf wlan0}${endif}${endif}',
name='downspeedf', arg='eth0', max_value=100,
x=70, y=642,
graph_radius=60,
graph_thickness=8,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29, hand_fg_alpha=1.0,
txt_radius=70,
txt_weight=1.0, txt_size=8.0,
txt_fg_colour=0xEF5A29, txt_fg_alpha=1.0,
graduation_radius=68,
graduation_thickness=0, graduation_mark_thickness=2,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='Down',
caption_weight=0.8, caption_size=9.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.5,
},
{
--conky_line='${if_up eth0}${upspeedf eth0}${else}${if_up wlan0}${upspeedf wlan0}${endif}${endif}',
conky_line='${if_match "${addr eth0}" != "No Address"}${upspeedf eth0}${else}${if_match "${addr wlan0}" != "No Address"}${upspeedf wlan0}${endif}${endif}',
name='upspeedf', arg='eth0', max_value=100,
x=70, y=642,
graph_radius=48,
graph_thickness=8,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29, hand_fg_alpha=1.0,
txt_radius=58,
txt_weight=1.0, txt_size=8.0,
txt_fg_colour=0xEF5A29, txt_fg_alpha=1.0,
graduation_radius=56,
graduation_thickness=0, graduation_mark_thickness=2,
graduation_unit_angle=27,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='Up',
caption_weight=0.8, caption_size=9.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.5,
},
{
conky_line='${if_match "${addr wlan0}" != "No Address"}${wireless_link_qual_perc wlan0}${else}0${endif}',
name='wireless_link_qual_perc', arg='wlan0', max_value=100,
x=70, y=642,
graph_radius=30,
graph_thickness=8,
graph_start_angle=180,
graph_unit_angle=2.7, graph_unit_thickness=2.7,
graph_bg_colour=0xffffff, graph_bg_alpha=0.1,
graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3,
hand_fg_colour=0xEF5A29, hand_fg_alpha=1.0,
txt_radius=20,
txt_weight=1.0, txt_size=8.0,
txt_fg_colour=0xEF5A29, txt_fg_alpha=1.0,
graduation_radius=38,
graduation_thickness=3, graduation_mark_thickness=2,
graduation_unit_angle=14,
graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3,
caption='Signal',
caption_weight=0.8, caption_size=9.0,
caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.5,
},
}
-- 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
-- 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
-- displays gauges
function draw_gauge_ring(display, data, value, border)
local max_value = data['max_value']
local x, y = data['x'] + border, data['y'] + border
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)
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_source_rgba (display, rgb_to_r_g_b(txt_fg_colour, txt_fg_alpha))
cairo_set_font_size (display, txt_size)
if txt_radius > 0 then
cairo_move_to (display, x + movex - (txt_size / 2), y + movey + 3)
cairo_show_text (display, value)
cairo_stroke (display)
end
-- 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 + 5)
-- 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
-- loads data and displays gauges
function go_gauge_rings(display, border)
local function load_gauge_rings(display, data)
local str, value = '', 0
if data['conky_line'] == nil then
str = string.format('${%s %s}',data['name'], data['arg'])
else
str = data['conky_line']
end
str = conky_parse(str)
value = tonumber(str)
if (value == nil) then
value = 0
else
value = math.floor(value + 0.5)
end
draw_gauge_ring(display, data, value, border)
end
for i in pairs(gauge) do
load_gauge_rings(display, gauge[i])
end
end
-- other util functions
function conky_nproc()
return io.popen('nproc'):read('*n')
end
-- provide a global var of nproc so that it is run only once, not every interval
nproc = conky_nproc()
function cpu_freq_list()
fl = {}
for i=1, nproc do
fl[i] = conky_parse('${freq ' .. i .. '}')
end
return fl
end
function conky_freq_min()
return math.min(unpack(cpu_freq_list()))
end
function conky_freq_max()
return math.max(unpack(cpu_freq_list()))
end
function conky_freq_avg()
fl = cpu_freq_list()
sum = 0
for i=1, #fl do
sum = sum + fl[i]
end
return sum / #fl
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)
go_gauge_rings(display, conky_window.border_outer_margin)
cairo_surface_destroy(cs)
cairo_destroy(display)
end