Skip to content

Instantly share code, notes, and snippets.

@rdschmidt
Created March 5, 2023 18:50
Show Gist options
  • Save rdschmidt/2a48f7476ff359a000de2bc3a1a85902 to your computer and use it in GitHub Desktop.
Save rdschmidt/2a48f7476ff359a000de2bc3a1a85902 to your computer and use it in GitHub Desktop.
Horizontal Conky complete LUA
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 = [[
]];
--[[
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
#!/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