Created
March 5, 2023 18:50
-
-
Save rdschmidt/2a48f7476ff359a000de2bc3a1a85902 to your computer and use it in GitHub Desktop.
Horizontal Conky complete LUA
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
conky.config = { | |
-- — Conky settings | |
background = true, | |
update_interval = 1, | |
total_run_times = 0, | |
net_avg_samples = 2, | |
cpu_avg_samples = 1, | |
no_buffers = true, | |
imlib_cache_size = 0, | |
draw_graph_borders = true, | |
draw_outline = false, | |
-- — Window specifications with Background | |
own_window = true, | |
own_window_type = desktop, | |
own_window_transparent = false, | |
own_window_hints = 'undecorated,sticky,skip_taskbar,skip_pager,below', | |
own_window_argb_visual = true, | |
own_window_argb_value = 0, | |
own_window_colour = '000000', | |
double_buffer = true, | |
minimum_width = 756, minimum_height = 164, | |
alignment = 'top_middle', | |
border_inner_margin = 10, | |
gap_x = 15, | |
gap_y = 15, | |
-- — Text settings | |
use_xft = true, | |
font = 'Dyuthi:size=10', | |
override_utf8_locale = true, | |
default_color = '#FFFFFF', | |
color0 = 'white', | |
color1 = '#AEEEEE', | |
color2 = '#9933CC', | |
color3 = '#0ab1ff', -- Light Blue | |
color4 = 'cyan', | |
color5 = 'magenta', | |
default_bar_width=139, | |
default_bar_height=6, | |
-- Lua Load | |
lua_load = '~/.conky/vr.lua', | |
lua_draw_hook_post = 'main', | |
}; | |
conky.text = [[ | |
]]; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--[[ | |
2023 Bleys | |
-- color=0xffffff --weiß / white | |
-- color=0x000000 --schwarz / black | |
-- color=0x0000ff --blau / blue | |
-- color=0xffff00 --gelb / yellow | |
-- color=0xff0000 --rot / red | |
-- color=0x00ff00 --grün / green | |
]] | |
settings_table = { | |
{ | |
name='cpu', arg='cpu1', | |
max=100, | |
bg_color=0xffffff, bg_alpha=0.3, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=1.0, | |
x=390, y=90, | |
width=8, height=60, | |
typ=2 | |
}, | |
{ | |
name='cpu', arg='cpu2', | |
max=100, | |
bg_color=0xffffff, bg_alpha=0.3, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=0.9, | |
x=399, y=90, | |
width=8, height=60, | |
typ=2 | |
}, | |
{ | |
name='cpu', arg='cpu3', | |
max=100, | |
bg_color=0xffffff, bg_alpha=0.3, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=0.9, | |
x=408, y=90, | |
width=8, height=60, | |
typ=2 | |
}, | |
{ | |
name='cpu', arg='cpu4', | |
max=100, | |
bg_color=0xffffff, bg_alpha=0.3, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=0.9, | |
x=417, y=90, | |
width=8, height=60, | |
typ=2 | |
}, | |
{ | |
name='cpu', arg='cpu5', | |
max=100, | |
bg_color=0xffffff, bg_alpha=0.3, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=0.9, | |
x=426, y=90, | |
width=8, height=60, | |
typ=2 | |
}, | |
{ | |
name='cpu', arg='cpu6', | |
max=100, | |
bg_color=0xffffff, bg_alpha=0.3, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=0.9, | |
x=435, y=90, | |
width=8, height=60, | |
typ=2 | |
}, | |
{ | |
name='cpu', arg='cpu7', | |
max=100, | |
bg_color=0xffffff, bg_alpha=0.3, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=0.9, | |
x=444, y=90, | |
width=8, height=60, | |
typ=2 | |
}, | |
{ | |
name='cpu', arg='cpu8', | |
max=100, | |
bg_color=0xffffff, bg_alpha=0.3, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=0.9, | |
x=453, y=90, | |
width=8, height=60, | |
typ=2 | |
}, | |
--************************** | |
{ | |
name='memperc', | |
arg='', | |
max=100, | |
bg_color=0xffffff, bg_alpha=0.3, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=1.0, | |
x=280, y=40, | |
thickness=5, | |
width=100, height=20, | |
start_angle=25, end_angle=335, | |
typ=3 | |
}, | |
{ | |
name='swapperc', | |
arg='', | |
max=100, | |
bg_color=0xffffff, bg_alpha=0.3, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=0.9, | |
x=280, y=70, | |
thickness=5, | |
width=100, height=20, | |
start_angle=25, end_angle=335, | |
typ=3 | |
}, | |
{ | |
name='fs_used_perc', | |
arg='/', | |
max=100, | |
bg_color=0xffffff, bg_alpha=0.3, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=0.9, | |
x=475, y=40, | |
thickness=5, | |
width=100, height=20, | |
start_angle=25, end_angle=335, | |
typ=3, reverse=1 | |
}, | |
{ | |
name='fs_used_perc', | |
arg='/home', | |
max=100, | |
bg_color=0xffffff, bg_alpha=0.3, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=0.9, | |
x=475, y=70, | |
thickness=5, | |
width=100, height=20, | |
start_angle=25, end_angle=335, | |
typ=3, reverse=1 | |
}, | |
-- *********************************+ | |
{ | |
name='hwmon 1', --find your own sensor for CPU Temperature in /sys/class/hwmon | |
arg='temp 1', | |
max=95, | |
bg_color=0xffffff, bg_alpha=0.3, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=0.9, | |
x=315, y=134, radius=30, | |
thickness=8, | |
start_angle=0, end_angle=270, | |
typ=1 | |
}, | |
{ | |
name='hwmon 2', --find your own sensor for Fan in /sys/class/hwmon | |
arg='fan 1', | |
max=2500, | |
bg_color=0xffffff, bg_alpha=0.3, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=0.9, | |
x=390, y=134, radius=30, | |
thickness=8, | |
start_angle=0, end_angle=270, | |
typ=1 | |
}, | |
{ | |
name='hwmon 2', --find your own sensor for Vcore in /sys/class/hwmon | |
arg='in 0', | |
max=1.5, | |
bg_color=0xffffff, bg_alpha=0.3, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=0.9, | |
x=465, y=134, radius=30, | |
thickness=8, | |
start_angle=0, end_angle=270, | |
typ=1 | |
}, | |
{ | |
name='hwmon 0', --find your own sensor for SSD Temperature in /sys/class/hwmon | |
arg='temp 1', | |
max=90, | |
bg_color=0xffffff, bg_alpha=0.3, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=0.9, | |
x=540, y=134, radius=30, | |
thickness=8, | |
start_angle=0, end_angle=270, | |
typ=1 | |
}, | |
{ | |
name='downspeedf', arg="enp7s0", | |
max=120000, --KiB max. Speed LAN: 936Mbit/s | |
bg_color=0xffffff, bg_alpha=0.3, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=0.9, | |
x=590, y=155, | |
width=10, height=135, | |
typ=2 | |
}, | |
{ | |
name='upspeedf', arg="enp7s0", | |
max=120000, --KiB max. Speed LAN: 936Mbit/s | |
bg_color=0xffffff, bg_alpha=0.3, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=0.9, | |
x=602, y=155, | |
width=10, height=135, | |
typ=2 | |
}, | |
{ | |
name='downspeedf', arg="enp7s0", | |
max=32000, --KiB max. Downspeed der DSL Leitung: 250Mbit/s | |
bg_color=0xffffff, bg_alpha=0.06, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=0.9, | |
x=593, y=155, | |
width=4, height=135, | |
typ=2 | |
}, | |
{ | |
name='upspeedf', arg="enp7s0", | |
max=6400, --KiB max. Upspeed der DSL Leitung: 50Mbit/s | |
bg_color=0xffffff, bg_alpha=0.06, | |
fg_color=0xffffff, fg_alpha=1.0, | |
hand_color=0x8B008B, hand_alpha=0.9, | |
x=605, y=155, | |
width=4, height=135, | |
typ=2 | |
}, | |
} | |
pm={} --volume | |
pm['bg_color']=0xffffff | |
pm['bg_alpha']=0.3 | |
pm['fg_color']=0xffffff | |
pm['fg_alpha']=1.0 | |
pm['width']=6 | |
pm['height']=125 | |
pm['hand_color']=0x8B008B | |
pm['hand_alpha']=0.9 | |
pm['x']=768 | |
pm['y']=155 | |
pm['typ']=2 | |
require 'cairo' | |
require "imlib2" | |
require "math" | |
image_path = os.getenv ('HOME')..'/.conky/clock/images72/' | |
function rgb_to_rgba(color,alpha) | |
return ((color / 0x10000) % 0x100) / 255., ((color / 0x100) % 0x100) / 255., (color % 0x100) / 255., alpha | |
end | |
function draw_day(cr,xx,yy,bcolor,balpha,t)-- draw Day Background / zeichne Hintergrund für aktuellen Tag | |
local corner_r=2 | |
local bg_color=bcolor --weiß / white | |
local bg_alpha=balpha | |
local typ=t | |
local w=15 | |
local h=12 | |
local x=xx | |
local y=yy | |
cairo_move_to(cr,x,y) | |
cairo_line_to(cr,x+w,y) | |
cairo_line_to(cr,x+w,y+h) | |
cairo_line_to(cr,x,y+h) | |
cairo_line_to(cr,x,y) | |
cairo_close_path(cr) | |
cairo_set_source_rgba(cr,rgb_to_rgba(bg_color,bg_alpha)) | |
if typ==1 then | |
cairo_fill(cr) | |
else | |
cairo_stroke(cr) | |
end | |
end | |
function draw_elipse(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_color'], pt['bg_alpha'], pt['fg_color'], pt['fg_alpha'] | |
local tick, tick_a=pt['hand_color'], pt['hand_alpha'] | |
local dir=pt['reverse'] | |
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) | |
local width=pt['width'] | |
local height=pt['height'] | |
-- background ring | |
cairo_save (cr) | |
cairo_translate (cr, xc + width / 2.0, yc + height / 2.0) | |
cairo_scale (cr, width / 2.0, height / 2.0) | |
cairo_arc (cr, 0.0, 0.0, 1.0, angle_0, angle_f) | |
cairo_restore (cr) | |
cairo_set_source_rgba(cr,rgb_to_rgba(bgc,bga)) | |
cairo_set_line_width(cr,ring_w) | |
cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND) | |
cairo_stroke(cr) | |
-- indicator ring) | |
cairo_save (cr) | |
cairo_translate (cr, xc + width / 2.0, yc + height / 2.0) | |
cairo_scale (cr, width / 2.0, height / 2.0) | |
if dir==1 then | |
cairo_arc (cr, 0.0, 0.0, 1.0, angle_0, angle_0+t_arc) | |
else | |
cairo_arc (cr, 0.0, 0.0, 1.0,angle_f-t_arc,angle_f) | |
end | |
cairo_restore (cr) | |
cairo_set_source_rgba(cr,rgb_to_rgba(fgc,fga)) | |
cairo_set_line_width(cr,ring_w) | |
cairo_stroke(cr) | |
-- hand | |
cairo_save (cr) | |
cairo_translate (cr, xc + width / 2.0, yc + height / 2.0) | |
cairo_scale (cr, width / 2.0, height / 2.0) | |
if dir==1 then | |
cairo_arc (cr, 0.0, 0.0, 1.0, angle_0+t_arc-0.01, angle_0+t_arc) | |
else | |
cairo_arc (cr, 0.0, 0.0, 1.0,angle_f-t_arc,angle_f-t_arc+0.01) | |
end | |
cairo_restore (cr) | |
cairo_set_source_rgba(cr,rgb_to_rgba(tick,tick_a)) | |
cairo_set_line_width(cr,ring_w) | |
cairo_stroke(cr) | |
end | |
function draw_bg(cr,color,alpha,typ) -- zeichne Hintergrund Conky Fenster / draw Conky Area Background | |
local corner_r=20 | |
local bg_color=color | |
local bg_alpha=alpha | |
local w=conky_window.width | |
local h=conky_window.height | |
cairo_set_source_rgba(cr,rgb_to_rgba(bg_color,bg_alpha)) | |
cairo_move_to(cr,corner_r,0) | |
cairo_line_to(cr,w-corner_r,0) | |
cairo_curve_to(cr,w,0,w,0,w,corner_r) | |
cairo_line_to(cr,w,h-corner_r) | |
cairo_curve_to(cr,w,h,w,h,w-corner_r,h) | |
cairo_line_to(cr,corner_r,h) | |
cairo_curve_to(cr,0,h,0,h,0,h-corner_r) | |
cairo_line_to(cr,0,corner_r) | |
cairo_curve_to(cr,0,0,0,0,corner_r,0) | |
cairo_close_path(cr) | |
if typ==1 then | |
cairo_fill(cr) | |
else | |
cairo_stroke(cr) | |
end | |
end | |
function draw_bar(cr,pct,pt) | |
h=pct*pt['height'] | |
local bgc, bga, fgc, fga=pt['bg_color'], pt['bg_alpha'], pt['fg_color'], pt['fg_alpha'] | |
local tick, tick_a=pt['hand_color'], pt['hand_alpha'] | |
-- Background | |
cairo_rectangle(cr, pt['x'], pt['y'], pt['width'], -pt['height']) | |
cairo_set_source_rgba(cr,rgb_to_rgba(bgc,bga)) | |
cairo_fill(cr) | |
-- Indicator | |
cairo_rectangle(cr, pt['x'], pt['y'], pt['width'], -h) | |
cairo_set_source_rgba(cr,rgb_to_rgba(fgc,fga)) | |
cairo_fill(cr) | |
-- Hand | |
cairo_rectangle(cr, pt['x'], pt['y']-h, pt['width'], 2) | |
cairo_set_source_rgba(cr,rgb_to_rgba(tick,tick_a)) | |
cairo_fill(cr) | |
cairo_stroke (cr) | |
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_color'], pt['bg_alpha'], pt['fg_color'], pt['fg_alpha'] | |
local tick, tick_a=pt['hand_color'], pt['hand_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) | |
local dir=pt['rev'] | |
-- Draw background ring | |
cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f) | |
cairo_set_source_rgba(cr,rgb_to_rgba(bgc,bga)) | |
cairo_set_line_width(cr,ring_w) | |
cairo_set_line_cap(cr, CAIRO_LINE_CAP_BUTT) | |
cairo_stroke(cr) | |
-- Draw indicator ring | |
if dir==1 then | |
cairo_arc (cr, xc, yc, ring_r,angle_f-t_arc,angle_f) | |
else | |
cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc) | |
end | |
cairo_set_source_rgba(cr,rgb_to_rgba(fgc,fga)) | |
cairo_stroke(cr) | |
-- draw hand | |
if dir==1 then | |
cairo_arc(cr,xc,yc,ring_r,angle_f-t_arc,angle_f-t_arc+0.1) | |
else | |
cairo_arc(cr,xc,yc,ring_r,angle_0+t_arc-0.1,angle_0+t_arc) | |
end | |
cairo_set_source_rgba(cr,rgb_to_rgba(tick,tick_a)) | |
cairo_stroke(cr) | |
end | |
function write_text(cr, x, y, text, f) | |
--write_text(cr, x, y, text, {}) | |
--font attributes (Schriftattribute zuweisen oder default Werte annehmen) | |
local font=f.font or "Noto Sans" | |
local size=f.size or 10 | |
local align=f.align or 'l' | |
local bold=f.bold or false | |
local ital=f.italic or false | |
local color=f.color or "0xffffff" | |
local slant=CAIRO_FONT_SLANT_NORMAL | |
if ital then slant=CAIRO_FONT_SLANT_ITALIC end | |
local weight=CAIRO_FONT_WEIGHT_NORMAL | |
if bold then weight=CAIRO_FONT_WEIGHT_BOLD end | |
--Text Size (Textgröße für die Plazierung bestimmen.) | |
local x_a=0 | |
local y_a=0 | |
local te = cairo_text_extents_t:create() | |
tolua.takeownership(te) | |
cairo_select_font_face (cr, font, slant, weight) | |
cairo_set_font_size (cr, size) | |
cairo_text_extents (cr, text, te) | |
--Text Position | |
if align=='c' then | |
x_a = -(te.width/2+te.x_bearing) | |
y_a = -(te.height/2+te.y_bearing) | |
end | |
if align=='r' then | |
x_a = -(te.width+te.x_bearing) | |
--y_a = -(te.height+te.y_bearing) | |
end | |
--Schadow 1 Pixel (Schatten für den Text um 1 Pixel versetzt) | |
cairo_set_source_rgba(cr, rgb_to_rgba(0x000000,1)) | |
cairo_move_to (cr, x+1+x_a, y+1+y_a) | |
cairo_show_text (cr, text) | |
cairo_stroke(cr) | |
-- Now Text on Top (nun den Text oben drauf) | |
cairo_set_source_rgba(cr, rgb_to_rgba(color,1)) | |
cairo_move_to (cr, x+x_a, y+y_a) | |
cairo_show_text (cr, text) | |
cairo_stroke(cr) | |
end | |
function volume(cr) | |
pcm=conky_parse("${exec pactl list sinks | grep 'Lautstärke: front-left:' | awk '{print $3}' | tail -n1}") | |
mute=conky_parse("${exec pactl list sinks | grep 'Stumm:' | awk '{print $2}' | tail -n1}") | |
if pcm==nil or pcm=="" then pcm=32000 end | |
if mute=="ja" then | |
pm['fg_color']=0x000000 | |
write_text(cr, 771,165,'m', {font="Dyuthi", size=12, align="c"}) | |
else | |
pm['fg_color']=0xffffff | |
write_text(cr, 771,165,'', {font="FontAwesome", size=12, align="c"}) | |
end | |
pcm=tonumber(pcm)*0.000015259 | |
draw_bar(cr,pcm,pm) | |
write_text(cr, 772,20,'', {font="FontAwesome", size=12, align="c"}) | |
end | |
function calendar(cr) | |
local mainx=144 | |
local mainy=70 | |
local time=os.time{year=os.date("%Y"), month=os.date("%m"), day=1} | |
local weekday=os.date("%w", time) | |
local mon=tonumber(os.date("%m"))+1 | |
local time=os.time{year=os.date("%Y"), month=mon, day=0} | |
local lastday=tonumber(os.date("%d", time)) | |
local day=tonumber(os.date("%d")) | |
local weekday=tonumber(weekday) | |
local start=1 | |
local posabsbg=0 | |
if weekday == 0 then | |
start=-5 | |
posabsbg=day+6 | |
else | |
start=(weekday-2)*-1 | |
posabsbg=day+weekday-1 | |
end | |
local count=0 | |
local week=1 | |
local wd={} | |
local we={} | |
local workdays="" | |
local weekend="" | |
local bcolor=0xff0000 -- Farbe aktueller Tag / Color current Day | |
local balpha=0.8 -- Alpha aktueller Tag /Alpha current Day | |
local typ=1 | |
local yposbg=math.floor(((posabsbg-posabsbg%7)/7)*12+mainy-10) | |
if math.floor(posabsbg%7)==0 then yposbg=math.floor(((posabsbg-posabsbg%7)/7-1)*12+mainy-10) end | |
local xposbg=math.floor((posabsbg%7)*18+mainx-13) | |
if math.floor(posabsbg%7)==0 then xposbg=math.floor((posabsbg%7+7)*18+mainx-13) end | |
draw_day(cr,xposbg,yposbg,bcolor,balpha,typ) | |
for i=start,lastday do | |
if i<1 then -- old Month | |
if (start==-5 and i==0) then -- Weekend | |
weekend=weekend.." " | |
else -- Work Days | |
workdays=workdays.." " | |
end | |
else | |
if i<10 then | |
if count<5 then | |
workdays=workdays.." "..i | |
else | |
weekend=weekend.." "..i | |
end | |
else | |
if count<5 then | |
workdays=workdays.." "..i | |
else | |
weekend=weekend.." "..i | |
end | |
end | |
end | |
count=count+1 | |
if ( count == 7 or i == lastday ) then | |
wd[week]=workdays | |
we[week]=weekend | |
week=week+1 | |
workdays="" | |
weekend="" | |
count=0 | |
end | |
end | |
write_text(cr, mainx+66, mainy-30, os.date("%B").." "..os.date("%Y"), {font="Dyuthi", size=14, align="c"}) | |
write_text(cr, mainx+1, mainy-13, " Mo Di Mi Do Fr ", {font="Ubuntu Mono", size=12, bold=true, align="l"}) | |
write_text(cr, mainx+91, mainy-13, " Sa So", {font="Ubuntu Mono", size=12, bold=true, color="0x0ab1ff", align="l"}) | |
for w=1,week do | |
wy=mainy+((w-1)*12) | |
wx=mainx+90 | |
write_text(cr, mainx, wy, wd[w], {font="Ubuntu Mono", size=12, align="l"}) | |
write_text(cr, wx, wy, we[w], {font="Ubuntu Mono", size=12, align="l", color="0xA9A9F5"}) --0x1e90ff | |
end | |
end | |
function mysplit (inputstr, sep) | |
if sep == nil then | |
sep = "," | |
end | |
local t={} | |
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do | |
table.insert(t, str) | |
end | |
return t | |
end | |
function fDrawImage(cr,path,xx,yy,ww,hh,arc) | |
cairo_save (cr) | |
local img = cairo_image_surface_create_from_png(path) | |
local w_img, h_img = cairo_image_surface_get_width(img), cairo_image_surface_get_height(img) | |
cairo_translate (cr, xx, yy) | |
if arc then | |
cairo_rotate (cr, arc) | |
end | |
cairo_scale (cr, ww/w_img, hh/h_img) | |
cairo_set_source_surface (cr, img, -w_img/2, -h_img/2) | |
cairo_paint (cr) | |
cairo_surface_destroy (img) | |
collectgarbage () | |
cairo_restore (cr) | |
end | |
function conky_main() | |
local function setup(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 | |
if value >= pt['max'] then value = pt['max'] end | |
pct=value/pt['max'] | |
if pt['typ'] == 1 then | |
draw_ring(cr,pct,pt) | |
elseif pt['typ'] == 3 then | |
draw_elipse(cr,pct,pt) | |
else | |
draw_bar(cr,pct,pt) | |
end | |
end | |
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) | |
wetter = mysplit (conky_parse('${execi 300 sh '..home_path..'/.conky/wetter.sh}')) --1-text, 2-temperatur, 3-wind, 4-luftfeuchtigkeit, 5-icon, sunrise, sunset | |
-- ipv6=conky_parse('${execi 3600 sh '..home_path..'/.conky/ip6.sh}') | |
if update_num>5 then | |
color=0x000000 alpha=0.3 typ=1 | |
draw_bg(cr,color,alpha,typ) -- Funktion Hintergrund Conky Bereich / Function Backgrounds Conky Area | |
color=0xffffff alpha=0.8 typ=2 | |
draw_bg(cr,color,alpha,typ) --zeichne Linie um den Bereich / Draw line around Conky Area | |
calendar(cr) | |
for i in pairs(settings_table) do | |
setup(cr,settings_table[i]) | |
end | |
volume(cr) | |
-- Clock (Uhr) | |
local ww = 164 | |
local xx = 75 | |
local yy = 95 | |
local arc_s = (2 * math.pi / 60) * os.date("%S") | |
local arc_m = (2 * math.pi / 60) * os.date("%M") + arc_s / 60 | |
local arc_h = (2 * math.pi / 12) * os.date("%I") + arc_m / 12 | |
-- Wetter (Weather) | |
fDrawImage(cr,image_path..'base.png',xx,yy,ww,ww) | |
fDrawImage(cr,home_path..'/.conky/wettericons/'..wetter[5]..'.png',xx,yy+34,58,40) | |
write_text(cr, 75,56,wetter[2].."°C", {font="Arial Black", bold=false, size=16, align="c", color="0xfafafa"}) | |
write_text(cr, 75,80,wetter[1], {align="c", size=9}) | |
write_text(cr, 25,100,wetter[4].."%", {align="l", size=9}) | |
write_text(cr, 126,100,wetter[3].."m/s", {align="r", size=9}) | |
-- Clock (zeichne die Zeiger über den Wetter Angaben) | |
fDrawImage(cr,image_path..'h.png',xx,yy,ww,ww,arc_h) | |
fDrawImage(cr,image_path..'m.png',xx,yy,ww,ww,arc_m) | |
fDrawImage(cr,image_path..'s.png',xx,yy,ww,ww,arc_s) | |
-- Text - Standard: write_text(cr, x, y, 'text'), {font="Noto Sans", size=10, align="l", bold=false, italic=false, color="0xffffff"})) | |
write_text(cr, 330, 39, "RAM", {font="Dyuthi", bold=true, align="c", color="0x1e90ff", size=10}) | |
write_text(cr, 330, 68, "Swap", {font="Dyuthi", bold=true, align="c", color="0x1e90ff", size=10}) | |
write_text(cr, 524, 39, "System", {font="Dyuthi", bold=true, align="c", color="0x1e90ff", size=10}) | |
write_text(cr, 524, 68, "Home", {font="Dyuthi", bold=true, align="c", color="0x1e90ff", size=10}) | |
write_text(cr, 330, 50, conky_parse('${memperc}').."%", {align="c"}) | |
write_text(cr, 330, 80, conky_parse('${swapperc}').."%", {align="c"}) | |
write_text(cr, 526, 50, conky_parse('${fs_used_perc /}').."%", {align="c"}) | |
write_text(cr, 526, 80, conky_parse('${fs_used_perc /home}').."%", {align="c"}) | |
write_text(cr, 480, 26, conky_parse('${fs_used /}'), {align="l", size=8}) | |
write_text(cr, 570, 26, conky_parse('${fs_used /home}'),{align="r", size=8}) | |
write_text(cr, 424, 22, "Ryzen 5 3400G", {font="Dyuthi", size=11, align="c"}) | |
write_text(cr, 289, 108, "CPU", {font="Dyuthi", size=12}) | |
write_text(cr, 362, 108, "FAN", {font="Dyuthi", size=12}) | |
write_text(cr, 432, 108, "Vcore", {font="Dyuthi", size=12}) | |
write_text(cr, 516, 108, "SSD", {font="Dyuthi", size=12}) | |
write_text(cr, 300, 136, conky_parse('${hwmon 1 temp 1}').."°C", {}) | |
write_text(cr, 376, 136, conky_parse('${hwmon 2 fan 1}'), {}) | |
write_text(cr, 454, 136, conky_parse('${hwmon 2 in 0}').."V", {}) | |
write_text(cr, 528, 136, conky_parse('${hwmon 0 temp 1 }').."°C", {}) | |
write_text(cr, 600, 169, "⬆", { size=14, align="l", color="0x1e90ff"}) | |
write_text(cr, 590, 169, "⬇", { size=14, align="l", color="0x1e90ff"}) | |
write_text(cr, 387, 179, conky_parse('${execi 7200 lsb_release -ds}').." - "..conky_parse('${kernel}'), {font="Dyuthi", size=14, align="c"}) | |
write_text(cr, 148, 153, "A", {font="Weather", size=18, align="l"}) | |
write_text(cr, 162, 150, wetter[6], {size=10, align="l"}) | |
write_text(cr, 255, 150, wetter[7], {size=10, align="r"}) | |
write_text(cr, 270, 153, "C", {font="Weather", size=18, align="r"}) | |
write_text(cr, 210, 165, "Uptime: "..conky_parse('${uptime_short}'), {align="c"}) | |
-- Text right (rechts) | |
write_text(cr, 620, 30, "⬇", {color="0x1e90ff"}) | |
write_text(cr, 676, 30, conky_parse('${downspeed enp7s0}'), {align="r"}) | |
write_text(cr, 680, 30, "Total:", {color="0x1e90ff"}) | |
write_text(cr, 760, 30, conky_parse('${totaldown enp7s0}'), {align="r"}) | |
write_text(cr, 620, 41, "⬆", {color="0x1e90ff"}) | |
write_text(cr, 676, 41, conky_parse('${upspeed enp7s0}'), {align="r"}) | |
write_text(cr, 680, 41, "Total:", {color="0x1e90ff"}) | |
write_text(cr, 760, 41, conky_parse('${totalup enp7s0}'), {align="r"}) | |
write_text(cr, 622, 55, "IP:", {color="0x1e90ff"}) | |
write_text(cr, 690, 51, conky_parse('${execi 7200 curl https://ipinfo.io/ip}'), {align="c"}) | |
write_text(cr, 620, 78, "Top CPU", {font="Dyuthi", italic=true, size=12, color="0x1e90ff"}) | |
write_text(cr, 620, 91, conky_parse('${top name 1}'), {}) | |
write_text(cr, 760, 91, conky_parse('${top cpu 1}')..'%', {align="r"}) | |
write_text(cr, 620, 102, conky_parse('${top name 2}'), {}) | |
write_text(cr, 760, 102, conky_parse('${top cpu 2}')..'%', {align="r"}) | |
write_text(cr, 620, 113, conky_parse('${top name 3}'), {}) | |
write_text(cr, 760, 113, conky_parse('${top cpu 3}')..'%', {align="r"}) | |
write_text(cr, 620, 130, "Top MEM", {font="Dyuthi", size=12, color="0x1e90ff"}) | |
write_text(cr, 620, 143, conky_parse('${top_mem name 1}'), {}) | |
write_text(cr, 760, 143, conky_parse('${top_mem mem 1}')..'%', {align="r"}) | |
write_text(cr, 620, 154, conky_parse('${top_mem name 2}'), {}) | |
write_text(cr, 760, 154, conky_parse('${top_mem mem 2}')..'%', {align="r"}) | |
write_text(cr, 620, 165, conky_parse('${top_mem name 3}'), {}) | |
write_text(cr, 760, 165, conky_parse('${top_mem mem 3}')..'%', {align="r"}) | |
-- Lines (Linien) | |
cairo_rectangle(cr,10, 8, 764, 3) | |
cairo_set_source_rgba(cr,rgb_to_rgba(0xffffff,1.0)) | |
cairo_fill(cr) | |
cairo_rectangle(cr,10, 177, 273, 3) | |
cairo_set_source_rgba(cr,rgb_to_rgba(0xffffff,1.0)) | |
cairo_fill(cr) | |
cairo_rectangle(cr,491, 177, 281, 3) | |
cairo_set_source_rgba(cr,rgb_to_rgba(0xffffff,1.0)) | |
cairo_fill(cr) | |
cairo_rectangle(cr,620, 61, 140, 2) | |
cairo_set_source_rgba(cr,rgb_to_rgba(0xffffff,1.0)) | |
cairo_fill(cr) | |
end | |
cairo_surface_destroy(cs) | |
cairo_destroy(cr) | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
#openweathermap RSS tool conky | |
# | |
# | |
# Bleys 2022 | |
# | |
# personal key. Create an account here: https://openweathermap.org/api and create a key | |
key="xxxxxxxxxxxxxxxxxxxxxxxxxxxx" #persönlicher Key. Hier einmal Account anlegen: https://openweathermap.org/api und key erzeugen | |
lat="51.450832" #Längengrad der eigenen Location / Longitude of own location | |
lon="7.013056" #Breitengrad der eigenen Location / Latitude of your own location | |
wetter=$(curl -s 'api.openweathermap.org/data/2.5/weather?lat='$lat'&lon='$lon'&lang=de&units=metric&appid='$key 2>/dev/null) | |
text=$(echo $wetter | jq -r '.weather[0].description') | |
tp=$( printf "%.1f" $(echo $wetter | jq -r '.main.temp')) | |
wind=$( printf "%.1f" $(echo $wetter | jq -r '.wind.speed')) | |
lf=$(echo $wetter | jq -r '.main.humidity') | |
icon=$(echo $wetter | jq -r '.weather[0].icon') | |
stadt=$(echo $wetter | jq -r '.name') | |
luftdruck=$(echo $wetter | jq -r '.main.pressure') | |
boeen=$(echo $wetter | jq -r '.wind.gust') | |
sunrise=$(date +%H:%M -d @$(echo $wetter | jq -r '.sys.sunrise')) | |
sunset=$(date +%H:%M -d @$(echo $wetter | jq -r '.sys.sunset')) | |
echo $text','$tp','$wind','$lf','$icon','$sunrise','$sunset | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment