asqwerth wrote: Wed Sep 30, 2020 4:06 pm
May I have a link to the wallpaper ...
Found it on Imageboard Scraper
https://nik.bot.nu/vi.fu?id=3528431. Cleaned it up, inverted/saturated colors, changed brightness and resolution. Updated version is here
https://i.imgur.com/ZLT28Nh.png.
asqwerth wrote: Wed Sep 30, 2020 4:06 pm
... and also the AnalogClock conky?
@Damo provided a great base-script for configurable analogue clocks in conky. Check it at
https://forums.bunsenlabs.org/viewtopic.php?id=6939.
I used that in a conky, combined with a nice week-calendar. Below is my conkyrc, the clock-settings config file, as well as the two scripts :
W170-Clock_calendar.conkyrc
Code: Select all
---------------------
-- clock_conky_110 --
-- @ damo Aug 2020 --
---------------------
conky.config = {
update_interval = 1,
no_buffers = true,
double_buffer = true,
use_spacer = 'none',
background = true,
own_window = true,
own_window_type = 'override',
--own_window_transparent = true,
own_window_argb_visual = true,
own_window_argb_value = 16,
own_window_hints = 'undecorated,below,skip_taskbar,skip_pager,sticky',
own_window_colour = '000000',
own_window_class = 'Conky',
own_window_title = 'ConkyClock',
draw_shades = false,
default_shade_color = '000000',
draw_outline = false,
default_outline_color = '000000',
border_inner_margin = 10,
draw_borders = true,
default_color = '202020',
use_xft = true,
font = 'Dejavu Sans Condensed:size=8',
xftalpha = 1,
override_utf8_locale = true,
uppercase = true,
minimum_width = 170,
maximum_width = 170,
minimum_height = 225,
gap_x = 60,
gap_y = 60,
alignment = 'br',
color0 = 'BCBCBC', --LightGray
color1 = '80D0D0', --SlateBlue
color2 = 'FF8C00', --DarkOrange
color3 = '7FFF00', --Chartreuse
color4 = 'FFA07A', --LightSalmon
color5 = 'FFDEAD', --NavajoWhite
color6 = '00BFFF', --DeepSkyBlue
color7 = '00FFFF', --Cyan
color8 = 'DA4C30', --Orange
color9 = 'B22222', --Firebrick
lua_load = '~/.conky/LUA/clock_conky_110.lua',
lua_draw_hook_pre = 'conky_clock',
lua_startup_hook = 'conky_load_config /home/one/.conky/W170-clock_settings',
};
conky.text = [[
${voffset 190}${goto 14}${color0}${execp ~/.conky/scripts/week_1.sh}\
${voffset 15}${goto 17}${font DejaVu Sans Condensed:size=8}${color8}${time %a}${goto 155}${time %b}${color}${font}${voffset 0}
]];
W170-clock_settings
Code: Select all
-- config file to be sourced by clock_conky_110.lua
-- by damo August 2020
------------------------------------------------------------------------
-- if "nil" value is used, then a default value is set by the script
-- Default value in comments is "[value]"
clock_vars = {
{
-- if x,y = "nil", clock size is relative to conky window
x = 95, -- x and y coords (center), relative to the top left
y = 98, -- corner of conky, in px [conky_window.width/2]
radius = 60, -- [x*0.95] (to fit conky window)
border = true, -- draw clock border [false]
border_width = 2, -- border width in px [line_width]
border_out = true, -- if "true", border is drawn outside clock radius [false]
line_width = 1, -- used for marks, and default border width [2]
color = 0xcdcdcd, -- border color. [0xffffff]
alpha = 0.5, -- border alpha [1]
hours_num = 12, -- options: "12" or "24" [12]
color_hands = nil, -- hour and minute hands color [color]
alpha_hands = 0.5, -- hour and minute hands alpha [1]
color_sec = 0xDA4C30, -- seconds hand color [color]
alpha_sec = 0.5, -- seconds hand alpha [1]
color_face = nil, -- clock face color [0xffffff]
alpha_face = 0.25, -- clock face alpha [0.5]
color_marks = nil, -- hour and minute marks color [color]
alpha_marks = nil, -- hour and minute marks alpha [alpha]
color_center = nil, -- center spot color [color]
alpha_center = 0.5, -- center spot alpha [1]
numerals = true, -- write hour numerals [false]
text_radius = 1.2, -- % radius of numerals from center [0.75]
font_name = "Noto Sans", -- ["Noto Sans"]
font_size = 13, -- [12]
font_color = nil, -- [color]
font_alpha = 0.5, -- [alpha]
italic = false, -- [false]
oblique = false, -- [false]
bold = true, -- [false]
clock_face = false, -- draw background clock face [false]
hours_marks = true, -- draw hours marks [true]
minutes_marks = true, -- draw minutes marks [false]
clock_center = true, -- draw center spot [false]
clock_center_radius = 0.08, -- % radius of clock of center spot [0.1]
marks_radius_mins = 0.95, -- % radius of clock of start of mark [0.95]
marks_radius_hrs = 0.9, -- % radius of clock of start of mark [0.9]
hour_radius = 0.50, -- % radius of clock of hour hand [0.65]
minute_radius = 0.75, -- % radius of clock of minute hand [0.8]
seconds_radius = 0.90, -- % radius of clock of seconds hand [0.9]
hour_hand_width = 6, -- hour hand thickness, px [6]
minute_hand_width = 4, -- minute hand thickness, px [4]
seconds_hand_width = 2, -- seconds hand thickness, px [2]
hand_style = 0, -- cap shape of hands, 0="round" or 1="square" [1]
},
}
clock_conky_110.lua
Code: Select all
-- clock_conky_110.lua
-- by damo, August 2020
--
-- With inspiration from:
-- Air Clock by Alison Pitt (londonali1010) (2009)
-- seamod_rings.lua http://custom-linux.deviantart.com/art/Conky-Seamod-v0-1-283461046
-- Boris Krinkel <olgmen>
-- to be used by clock_conky_110.conf
------------------------------------------------------------------------
require 'cairo'
-- called by "lua_startup_hook" in conky
-- "config" = /path/to/config file (set in conky)
function conky_load_config (config)
if file_exists(config) then
-- get clock settings from external config file
clock_variables = loadfile(config)()
else
return
end
end
function file_exists(name)
local f=io.open(name,"r")
if f~=nil then
io.close(f) return true
else
print("Configuration file not found")
return false
end
end
-- called by "lua_draw_hook_pre" in conky
-- draw clock using settings from "config"
function conky_clock (config)
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)
-- allow conky window to be established before trying to draw clock
local updates=conky_parse('${updates}')
update_num=tonumber(updates)
if update_num>1 then
for i, cv in pairs(clock_vars) do
check_settings (cv)
cr = cairo_create (cs)
display_clock (cv)
cairo_destroy (cr)
end
end
end
function rgb_to_r_g_b(colour,alpha)
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
function check_settings (t) -- lua doesn't have a case/switch statement:
-- set default values if necessary
if t.x == nil then -- if x,y,radius = "nil", set up clock relative to conky window.
t.x = conky_window.width/2
elseif t.y == nil then
t.y = t.x
elseif t.radius == nil then
t.radius = t.x*0.95 -- so it fits inside conky window
elseif t.border == nil then
t.border = false
elseif t.border_out == nil then
t.border = false
elseif t.color == nil then
t.color = 0xffffff
elseif t.alpha == nil then
t.alpha = 1
elseif t.line_width == nil then
t.line_width = 2
elseif t.border_width == nil then
t.border_width = t.line_width
elseif t.hours_num == nil then
t.hours_num = 12
elseif t.color_hands == nil then
t.color_hands = t.color
elseif t.alpha_hands == nil then
t.alpha_hands = 1
elseif t.color_sec == nil then
t.color_sec = t.color
elseif t.alpha_sec == nil then
t.alpha_sec = t.alpha
elseif t.color_face == nil then
t.color_face = 0xffffff
elseif t.alpha_face == nil then
t.alpha_face = 0.5
elseif t.color_marks == nil then
t.color_marks = t.color
elseif t.alpha_marks == nil then
t.alpha_marks = t.alpha
elseif t.color_center == nil then
t.color_center = t.color
elseif t.alpha_center == nil then
t.alpha_center = 1
elseif t.numerals == nil then
t.numerals = false
elseif t.text_radius == nil then
t.text_radius = 0.75
elseif t.font_name == nil then
t.font_name = "Noto Sans"
elseif t.font_size == nil then
t.font_size = 12
elseif t.italic == nil then
t.italic = false
elseif t.oblique == nil then
t.oblique = false
elseif t.bold == nil then
t.bold = false
elseif t.font_color == nil then
t.font_color = t.color
elseif t.font_alpha == nil then
t.font_alpha = t.alpha
elseif t.clock_face == nil then
t.clock_face = false
elseif t.hours_marks == nil then
t.hours_marks = true
elseif t.minutes_marks == nil then
t.minutes_marks = false
elseif t.clock_center == nil then
t.clock_center = false
elseif t.clock_center_radius == nil then
t.clock_center_radius = 0.1
elseif t.marks_radius_mins == nil then
t.marks_radius_mins = 0.95
elseif t.marks_radius_hrs == nil then
t.marks_radius_hrs = 0.9
elseif t.hour_radius == nil then
t.hour_radius = 0.65
elseif t.minute_radius == nil then
t.minute_radius = 0.8
elseif t.seconds_radius == nil then
t.seconds_radius = 0.9
elseif hour_hand_width == nil then
hour_hand_width = 6
elseif minute_hand_width == nil then
minute_hand_width = 4
elseif seconds_hand_width == nil then
seconds_hand_width = 2
elseif t.hand_style == nil then
t.hand_style = 1
end
end
function display_clock (t)
local slant = CAIRO_FONT_SLANT_NORMAL
local weight =CAIRO_FONT_WEIGHT_NORMAL
if t.italic then slant = CAIRO_FONT_SLANT_ITALIC end
if t.bold then weight = CAIRO_FONT_WEIGHT_BOLD end
cairo_select_font_face(cr, t.font_name, slant, weight)
cairo_set_font_size(cr, t.font_size)
te=cairo_text_extents_t:create()
cairo_text_extents (cr,t.text,te)
-- make sure clock radius has been set before drawing:
if t.radius then
-- draw border ring
if t.border then
cairo_set_source_rgba(cr, rgb_to_r_g_b(t.color, t.alpha))
cairo_set_line_width(cr, t.border_width)
if t.border_out then -- draw border ring outside clock radius
cairo_arc (cr, t.x, t.y,t.radius+t.border_width/2, 0, 2*math.pi)
else
cairo_arc (cr, t.x, t.y, t.radius-t.border_width/2, 0, 2*math.pi)
end
cairo_stroke (cr)
end
-- Set clock face
if t.clock_face then
if t.color_face then
cairo_set_source_rgba(cr,rgb_to_r_g_b(t.color_face,t.alpha_face))
cairo_arc(cr,t.x,t.y,t.radius,0,2*math.pi)
cairo_fill(cr)
end
end
-- draw hour marks
if t.hours_marks then
if t.color_marks then
cairo_set_source_rgba(cr,rgb_to_r_g_b(t.color_marks,t.alpha_marks))
end
cairo_set_line_width(cr, t.line_width)
local i = 0
-- is clock 12H or 24H?
if t.hours_num == 12 then
num_hours = 11
angle_hours = math.rad(30)
else
num_hours = 23
angle_hours = math.rad(15)
end
local num = num_hours
local angle = angle_hours
for i= 0, num, 1 do
cairo_move_to(cr, t.x - math.sin(angle*i)*t.radius, t.y - math.cos(angle*i)*t.radius)
cairo_line_to(cr, t.x - math.sin(angle*i)*(t.radius*t.marks_radius_hrs), t.y - math.cos(angle*i)*(t.radius*t.marks_radius_hrs))
cairo_stroke (cr)
end
end
-- draw minute marks
if t.minutes_marks then
if t.hours_num == 24 then
num_mins = 119
angle_mins = math.rad(3)
else
num_mins = 59
angle_mins = math.rad(6)
end
local num = num_mins
local angle = angle_mins
cairo_set_line_width(cr, t.line_width*0.5)
for i=0, num, 1 do
cairo_move_to(cr, t.x - math.sin(angle * i) * t.radius, t.y - math.cos(angle * i) * t.radius)
cairo_line_to(cr, t.x - math.sin(angle * i) * (t.radius * t.marks_radius_mins), t.y - math.cos(angle * i) * (t.radius*t.marks_radius_mins))
cairo_stroke (cr)
end
end
-- numbers radius,color,alpha
if t.numerals then
cairo_save (cr)
cairo_translate(cr, t.x, t.y)
mx, my = 0, 0
local i = 0
-- is clock 12H or 24H?
if t.hours_num == 24 then
num_hours = 24
angle_hours = math.rad(15)
else
num_hours = 12
angle_hours = math.rad(30)
end
local num = num_hours
local angle = angle_hours
for i = 1, num, 1 do
mov_x = math.sin(angle*i)*(t.radius*t.text_radius)
mov_y = math.cos(angle*i)*(t.radius*t.text_radius)
te=cairo_text_extents_t:create()
cairo_text_extents (cr,i,te)
if t.font_color then
cairo_set_source_rgba(cr, rgb_to_r_g_b(t.font_color, t.font_alpha))
end
mx = -te.width/2
my = -te.height/2-te.y_bearing
cairo_move_to(cr, mx + mov_x, my - mov_y)
cairo_show_text(cr, i)
end
cairo_restore (cr)
end -- end of numerals test
local hours = os.date("%I")
local mins = os.date("%M")
local secs = os.date("%S")
secs_arc = (2*math.pi/60)*secs
mins_arc = (2*math.pi/60)*mins
hours_arc = (2*math.pi/12)*hours + mins_arc/12
-- hour and minute hand color
if t.color_hands then
cairo_set_source_rgba(cr, rgb_to_r_g_b(t.color_hands, t.alpha_hands))
if t.hand_style == 0 then -- set line end cap shape
cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND)
else
cairo_set_line_cap(cr, CAIRO_LINE_CAP_BUTT)
end
-- draw hour hand
xh = t.x + t.hour_radius*t.radius*math.sin(hours_arc)
yh = t.y - t.hour_radius*t.radius*math.cos(hours_arc)
cairo_set_line_width(cr, t.hour_hand_width)
cairo_move_to(cr, t.x, t.y)
cairo_line_to(cr, xh, yh)
cairo_stroke(cr)
-- draw minute hand
xm = t.x + t.minute_radius*t.radius*math.sin(mins_arc)
ym = t.y - t.minute_radius*t.radius*math.cos(mins_arc)
cairo_set_line_width(cr, t.minute_hand_width)
cairo_move_to(cr, t.x, t.y)
cairo_line_to(cr, xm, ym)
cairo_stroke(cr)
-- draw seconds hand
-- set color for seconds hand
if t.color_sec then
cairo_set_source_rgba(cr, rgb_to_r_g_b(t.color_sec, t.alpha_sec))
xs = t.x + t.seconds_radius*t.radius*math.sin(secs_arc)
ys = t.y - t.seconds_radius*t.radius*math.cos(secs_arc)
cairo_set_line_width(cr, t.seconds_hand_width)
cairo_move_to(cr, t.x, t.y)
cairo_line_to(cr,xs,ys)
cairo_stroke (cr)
end
end
-- draw centre on top of hands
if t.clock_center then
if t.color_center then
cairo_set_source_rgba(cr,rgb_to_r_g_b(t.color_center,t.alpha_center))
cairo_arc(cr,t.x,t.y,t.radius*t.clock_center_radius,0,2*math.pi)
cairo_fill(cr)
end
end
end -- end of radius test
end
week_1.sh
Code: Select all
#!/bin/bash
# by: mobilediesel
font=("\${voffset -9}\${font digitalk:size=8}" "\${voffset -3}\${font digitalk:size=12}" "\${voffset -2}\${font digitalk:size=18}" "\${voffset -4}\${font digitalk:size=36}\${color8}" "\${voffset -14}\${font digitalk:size=18}" "\${voffset -4}\${font digitalk:size=12}" "\${voffset -1}\${font digitalk:size=8}")
color=("" "" "" "\${color0}" "" "" "")
for i in $(seq -3 3); do
echo -n "${font[$[i+3]]}$(date '+%d' -d "$i days")${color[3]}\${offset 3}"
done
asqwerth wrote: Wed Sep 30, 2020 4:06 pm
Also, are you using the GoogleNow conky with openweather, accuweather or some other weather script? I had to adjust my old GoogleNow conky to use openweathermap after the original yahooweather no longer worked.
Am using openweather for this. Below is the conkyrc for my (stripped- and downsized) GoogleNow version
W170-GoogleNow.conkyrc
Code: Select all
---------------------------
-- GoogleNow style conky --
---------------------------
conky.config = {
update_interval = 1,
total_run_times = 0,
double_buffer = true,
no_buffers = true,
cpu_avg_samples = 2,
net_avg_samples = 1,
imlib_cache_size = 0,
background = false,
own_window = true,
own_window_type = 'override',
--own_window_transparent = true,
own_window_argb_visual = true,
own_window_argb_value = 16,
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
own_window_class = 'Conky',
own_window_title = 'ConkyGoogleNow',
-- own_window_colour = '2D2D2D',
draw_shades = false,
draw_outline = false,
draw_borders = true,
border_width = 1,
default_color = '202020',
draw_graph_borders = false,
border_inner_margin = 10,
border_outer_margin = 1,
use_xft = true,
font = 'Dejavu Sans Condensed:size=8',
xftalpha = 0,
override_utf8_locale = true,
uppercase = true,
minimum_width = 170,
maximum_width = 170,
minimum_height = 225,
gap_x = 60,
gap_y = 55,
alignment = 'tr',
color1 = 'EEEEEE',
color2 = '9933CC',
color3 = '669900',
color4 = 'FF8800',
color5 = 'CC0000',
color6 = 'AAAAAA',
color7 = '3CCDFF',
color8 = 'DA4C30', --Orange
};
conky.text = [[
### SCRIPT CALL
${color1}${voffset 10}\
${execi 300 l=en; l=${l%%_*}; curl -s "api.openweathermap.org/data/2.5/forecast/daily?APPID=85a4e3c55b73909f42c6a23ec35b7147&id=2747891&cnt=5&units=metric&lang=$l" -o ~/.conky/GoogleNow/cache/forecast.json}\
${execi 300 l=en; l=${l%%_*}; curl -s "api.openweathermap.org/data/2.5/weather?APPID=85a4e3c55b73909f42c6a23ec35b7147&id=2747891&cnt=5&units=metric&lang=$l" -o ~/.conky/GoogleNow/cache/weather.json}\
### LOCATION
${font Dejavu Sans Condensed:size=8:weight=bold}${alignc}${color8}${execi 300 jq -r .city.name ~/.conky/GoogleNow/cache/forecast.json}, ${execi 300 jq -r .city.country ~/.conky/GoogleNow/cache/forecast.json}${font}${color1}
### CURRENT CONDITIONS
${voffset 5}${font Dejavu Sans Condensed:size=36}${alignr}${execi 300 jq -r .main.temp ~/.conky/GoogleNow/cache/weather.json | awk '{print int($1+0.5)}' # round num}°${font}${color1}\
${execi 300 cp -f ~/.conky/GoogleNow/$(jq .weather[0].id ~/.conky/GoogleNow/cache/weather.json).png ~/.conky/GoogleNow/cache/weather.png}${image $HOME/.conky/GoogleNow/cache/weather.png -p 10,35 -s 48x48}${color1}
${voffset 14}${goto 15}${execi 300 jq -r .weather[0].description ~/.conky/GoogleNow/cache/weather.json | sed "s|\<.|\U&|g"}${font}
${image $HOME/.conky/GoogleNow/wind.png -p 15,105 -s 15x15}${goto 55}${voffset 4}${execi 300 jq -r .wind.speed ~/.conky/GoogleNow/cache/weather.json | awk '{print int($1+0.5)}' # round num} m/s
${image $HOME/.conky/GoogleNow/humidity.png -p 15,120 -s 15x15}${goto 55}${voffset 2}${color1}${execi 300 jq -r .main.humidity ~/.conky/GoogleNow/cache/weather.json | awk '{print int($1+0.5)}' # round num} %
### NEXT DAYS FORECAST
${execi 300 cp -f ~/.conky/GoogleNow/$(jq .list[1].weather[0].id ~/.conky/GoogleNow/cache/forecast.json).png ~/.conky/GoogleNow/cache/forecast-1.png}${image ~/.conky/GoogleNow/cache/forecast-1.png -p 5,165 -s 25x25}\
${execi 300 cp -f ~/.conky/GoogleNow/$(jq .list[2].weather[0].id ~/.conky/GoogleNow/cache/forecast.json).png ~/.conky/GoogleNow/cache/forecast-2.png}${image ~/.conky/GoogleNow/cache/forecast-2.png -p 50,165 -s 25x25}\
${execi 300 cp -f ~/.conky/GoogleNow/$(jq .list[3].weather[0].id ~/.conky/GoogleNow/cache/forecast.json).png ~/.conky/GoogleNow/cache/forecast-3.png}${image ~/.conky/GoogleNow/cache/forecast-3.png -p 95,165 -s 25x25}\
${execi 300 cp -f ~/.conky/GoogleNow/$(jq .list[4].weather[0].id ~/.conky/GoogleNow/cache/forecast.json).png ~/.conky/GoogleNow/cache/forecast-4.png}${image ~/.conky/GoogleNow/cache/forecast-4.png -p 140,165 -s 25x25}\
${voffset 10}${font}${color8}\
${goto 20}${execi 300 LANG=en LC_TIME=en date -d +1day +%^a}\
${goto 65}${execi 300 LANG=en LC_TIME=en date -d +2days +%^a}\
${goto 110}${execi 300 LANG=en LC_TIME=en date -d +3days +%^a}\
${goto 155}${execi 300 LANG=en LC_TIME=en date -d +4days +%^a}\
${voffset 50}${color1}\
${goto 22}${execi 300 jq .list[1].temp.max ~/.conky/GoogleNow/cache/forecast.json | awk '{print int($1+0.5)}' # round num}°\
${goto 67}${execi 300 jq .list[2].temp.max ~/.conky/GoogleNow/cache/forecast.json | awk '{print int($1+0.5)}' # round num}°\
${goto 112}${execi 300 jq .list[3].temp.max ~/.conky/GoogleNow/cache/forecast.json | awk '{print int($1+0.5)}' # round num}°\
${goto 157}${execi 300 jq .list[4].temp.max ~/.conky/GoogleNow/cache/forecast.json | awk '{print int($1+0.5)}' # round num}°\
${voffset 15}\
${goto 22}${execi 300 jq .list[1].temp.min ~/.conky/GoogleNow/cache/forecast.json | awk '{print int($1+0.5)}' # round num}°\
${goto 67}${execi 300 jq .list[2].temp.min ~/.conky/GoogleNow/cache/forecast.json | awk '{print int($1+0.5)}' # round num}°\
${goto 112}${execi 300 jq .list[3].temp.min ~/.conky/GoogleNow/cache/forecast.json | awk '{print int($1+0.5)}' # round num}°\
${goto 157}${execi 300 jq .list[4].temp.min ~/.conky/GoogleNow/cache/forecast.json | awk '{print int($1+0.5)}' # round num}°\
]];
Hope I did not forget anything... let me know if you need something else :)