You are not logged in.
I've got two identical Lua mistakes in two Configurations from @wlourf
The originals from 2010 are here:
https://wlourf.deviantart.com/art/Text- … -169288805
https://wlourf.deviantart.com/art/Bargr … -171334092
Has anyone seen this "triangular superimposition" and maybe a solution for me?
Thank you for your time.
Offline
starting point
weather_url = "http://www.accuweather.com/en/de/lichtenstein/09350/weather-forecast/171261" ...
Use https://
It seems accuweather doesn't answer to curl calls over simple http anymore.
I'll force this in the script.
Last edited by easysid (2018-01-24 10:08:38)
Offline
Hello
@ unklar i have the same problems like you with the original scrit from txt conky
i think i found it
here a screen with my modification
the text_setting modificated
text_settings={
{
text=conky_parse("${time %d/%m}"),
font_name="Liberation Sans",
font_size=18,
h_align="c",
bold=true,
x=200,
y=50,
reflection_alpha=1,
reflection_length=1,
colour={{0,colbg,1}}
},
{
text=conky_parse("${time %H:%M}"),
font_name="Liberation Sans",
font_size=36,
h_align="c",
bold=true,
x=200,
y=100,
reflection_alpha=1,
reflection_length=1,
colour={{0,col0,1},{1,colbg,1}},
radial={0,-0,0,0,-60,70}
},
{
text=conky_parse('dl/ul ${downspeed wlp2s0}/${upspeed wlp2s0}'),
x=150,
y=200,
v_align="m",
font_name="Liberation Sans",
font_size=18,
colour={{0,col0,1},{0.5,colbg,1}},
orientation="nn",
reflection_alpha=1,
reflection_length=1,
},
{
text=conky_parse('cpu ${cpu} %'),
x=150,
y=350,
v_align="m",
font_name="Liberation Sans",
font_size=18,
colour={{0,col0,1},{0.5,colbg,1}},
orientation="nn",
reflection_alpha=0.9,
reflection_length=1,
},
{
text=conky_parse('memory ${memperc} %'),
x=150,
y=500,
v_align="m",
font_name="Liberation Sans",
font_size=18,
colour={{0,col0,1},{0.5,colbg,1}},
orientation="nn",
reflection_alpha=0.9,
reflection_length=1,
},
{
text=conky_parse("$kernel"),
font_size=24,
bold=true,
font_name="Liberation Sans",
h_align="c",
x=200,
y=750,
reflection_alpha=0.8,
reflection_length=0.7,
colour={{0,col0,0.75},{1,colbg,1}},
radial={0,-550,500,00,-4990,5000},
},
if it can help you
i must go & for the other conky i look later
@+
Last edited by loutch (2018-01-24 09:11:51)
Linuxmint 22.1 Xia xfce & mageia 9 XFCE on ssd hp pavilion g7
Xubuntu 18.04 lts & 24.04 lts on ASUS Rog STRIX
Offline
^ Thank you, loutch.
No, I don't have a chance. :8
I thought it was because of the writing "Japan", too.
But now I have found it, in both Conky's must be in the text.lua
to comment out the line (99). Then the display is correct.
{
text=conky_parse("${time %H:%M}"),
font_name="FreeSans",
font_size=36,
h_align="c",
bold=true,
x=200,
y=100,
reflection_alpha=0.7,
reflection_length=0.7,
colour={{0,col0,1},{1,colbg,1}},
-- radial={0,-0,0,0,-80,70} <---
},
But I don't know anything about Lua.
I'm sure you know better than that.
Last edited by unklar (2018-01-24 19:28:21)
Offline
I have been out of conky for awhile and I decided to get back into it. I can pretty much get around the config,but suffer with lua.
al@al-X55CR:~$ conky -c ~/conky/conky &
[1] 18247
al@al-X55CR:~$ conky: desktop window (e00006) is subwindow of root window (108)
conky: window type - override
conky: drawing to created window (0x3e00001)
conky: drawing to double buffer
conky: forked to background, pid is 18248
conky: llua_do_call: function conky_main execution failed: attempt to call a nil value
conky: llua_do_call: function conky_sysinfo execution failed: attempt to call a nil value
conky: llua_do_call: function conky_main execution failed: attempt to call a nil value
conky: llua_do_call: function conky_main execution failed: attempt to call a nil value
conky: llua_do_call: function conky_main execution failed: attempt to call a nil value
conky: llua_do_call: function conky_main execution failed: attempt to call a nil value
conky: llua_do_call: function conky_main execution failed: attempt to call a nil value
conky: llua_do_call: function conky_sysinfo execution failed: attempt to call a nil value
conky: llua_do_call: function conky_main execution failed: attempt to call a nil value
Here are my files
conky.config = {
--#########################################################
--# VinDSL | Paramvir | rev. 2017-02-12 22:12 | ver. 6.0.0 ##
--#########################################################
--# ¡PLEASE READ THE FINE PRINT! ##
--###
--# Development Platforms (current)
-- Ubuntu 10.10 'Maverick Meerkat' (GNOME 2.28 - Conky 1.8.0-1)
-- Ubuntu 13.04 'Raring Ringtail' (GNOME-SHELL - UNITY - LXDE - Conky 1.9.0-2)
-- Screen Resolution: 1920x1200x24 (DELL UltraSharp 1907FP)
--# Tips n' Tricks: conky 1.8.1 will no longer be supported. RIP :)
--###
--# Prerequisites (required)
-- conky-all 1.8.0-1 or 1.9.0-2
-- Conkywx 2.0.0 (Paramvir Likhari)
-- UTF-8 Compatible Text Editor
--###
--# Installed fonts (required)
-- Arrows (JLH Fonts - not included in link below)
-- ConkyWeather (Stanko Metodiev)
-- Cut Outs for 3D FX (Fonts & Things)
-- Droid Font Family (Google Android SDK)
-- KR A Round (Kat's Fun Fonts)
-- Moon Phases (Curtis Clark)
-- OpenLogos (Icoma)
-- PizzaDude Bullets (Jakob Fischer)
-- Radio Space (Iconian Fonts)
-- StyleBats (Vinterstille)
-- Ubuntu Font Family (Canonical Ltd)
-- Ubuntu Title Bold (Paulo Silva - not included in link below)
-- Weather (Jonathan Macagba)
--# Tips n' Tricks from: Mr. Peachy, djyoung4, and 42dorian (Thanks!)
--# Most necessary fonts can be downloaded here: http://ompldr.org/vOHdoag
--# Unzip the fonts into your font folder, for example: /home/username/.fonts
--# Run this command in a terminal (rebuilds font cache file): sudo fc-cache -fv
--###
--# Use XFT? Required to Force UTF8 (see below)
use_xft = true,
font = 'DroidSans:size=8.75',
xftalpha = 0.1,
--###
--# Force UTF8? Requires XFT (see above)
--# Displays degree symbol, instead of °, etc.
override_utf8_locale = true,
--###
--# Daemonize Conky, aka 'fork to background'.
background = true,
--###
--# Update interval in seconds.
update_interval = 2,
--###
--# The number of times Conky will update before quitting.
--# Zero makes Conky run forever.
total_run_times = 0,
--###
--# Create 'own_window' type. Makes Conky behave like other panels.
own_window = true,
own_window_transparent = true,
own_window_type = 'override',
-- own_window_type = 'override',
-- own_window_hints = 'below,sticky,undecorated,skip_taskbar,skip_pager',
-- own_window_class = 'Conky',
--###
--# Some distros require the following lines for true transparency.
--# BOTH of these lines need to be Commented/Uncommented in tandem.
-- own_window_argb_visual = true,
-- own_window_argb_value 255
--###
--# Force images to redraw when they change.
imlib_cache_size = 1,
--###
--# Use double buffering? Reduces flicker.
double_buffer = true,
--###
--# Draw shades?
draw_shades = true,
default_shade_color = '#330',
--###
--# Draw outlines?
draw_outline = false,
--###
--# Draw borders around text?
draw_borders = false,
--###
--# Draw borders around graphs?
draw_graph_borders = false,
--###
--# Print text to stdout?
--# Print text in console?
out_to_ncurses = false,
out_to_console = false,
--###
--# Text alignment.
-- alignment = 'top_right',
alignment = 'bottom_right',
--###
--# Maximum width of the text area.
--# Syntax: maximum_width [width]
maximum_width = 270,
--###
--# Minimum size of the text area.
--# Syntax: minimum_size [width] [height]
minimum_width = 270,
-- minimum_height = 800,
minimum_height = 500,
--###
--# Gap between text and screen borders.
gap_x = 6, -- Left/Right
gap_y = 10, -- Top/Bottom
--###
--# This buffer is used for single lines, text, output from $exec, and other variables.
--# Increasing the 'text_buffer_size' (too high) will drastically reduce Conky's performance.
--# Decreasing the buffer size (too low) will truncate content and cause strange display output.
--# Standard text buffer size is 256 bytes (cannot be less). Adjust YOUR buffer wisely!
--# Tips n' Tricks from dk75:"You don't need to create a 12KiB buffer for every Conky config line."
text_buffer_size = 6200,
--###
--# Maximum number of special things, e.g. fonts, offsets, aligns, etc. (default is 512)
--# Tips n' Tricks from: sparker256 (Thanks, Bill!)
-- max_specials = 700,
--###added by me
--# Maximum size of user text buffer, i.e. layout below TEXT line in config file (default is 16384 bytes)
-- max_user_text 81920
max_user_text = 20000,
--###
--# Shorten MiB/GiB to M/G in stats.
short_units = true,
--###
--# Pad % symbol spacing after numbers.
pad_percents = 0,
--###
--# Pad spacing between text and borders.
border_inner_margin = 4,
--###
--# Limit the length of names in "Top Processes".
top_name_width = 10,
--###
--# Subtract file system -/+buffers/cache from used memory?
--# Set to yes, to produce meaningful physical memory stats.
no_buffers = true,
--###
--# Set to yes, if you want all text to be in UPPERCASE.
uppercase = false,
--###
--# Number of cpu samples to average.
--# Set to 1 to disable averaging.
cpu_avg_samples = 2,
--###
--# Number of net samples to average.
--# Set to 1 to disable averaging.
net_avg_samples = 2,
--###
--# Add spaces to keep things from moving around?
--# Only affects certain objects.
use_spacer = 'right',
--###
--# My colors (suit yourself)
color0 = 'White', --FFFFFF
color1 = 'Ivory', --FFFFF0
color2 = 'Ivory2', --EEEEE0
color3 = 'yellow', --CDCDC1
color4 = 'Tan1', --FFA54F
color5 = 'cyan', --EE9A49
color6 = 'Gray', --7E7E7E
color7 = 'AntiqueWhite4', --8B8378
color8 = 'DimGray', --696969
color9 = 'Tomato', --FF6347
-- colorX OrangeRed #FF4500
--####
--# Load Lua for bargraphs (required)
--# Set the path to your script here.
-- lua_load = '~/conky/draw_bg.lua'
-- lua_draw_hook_pre = 'draw_bg',
--####
--## Load Lua for bargraphs (required)
--## Set the path to your script here.
--#
lua_load = '~/conky/bargraph_small.lua',
lua_draw_hook_post = 'main_bars',
--# template9 = 'C',
--###
--# Weather and Conkywx files see conkywx help - Troubleshooting - Files - vertical-scroller-vindsl-weather-conkyrc listing. You need to change file paths in vertical-scroller-vindsl-weather-conkyrc to your setup
};
conky.text = [[
${voffset -11}${lua main -n background -r 1 -c 0x444444:0.7 -s NA,NA }
##################################
## LOGO ##
##################################
## Uncomment for hard-coded ID (static)
# ${voffset -33}${font OpenLogos:size=103}${color2}v${font}${voffset -75}${goto 179}${font UbuntuTitleBold:size=19.6}${color4}1${offset 1}2${offset 1}.${offset 0}0${offset 0}4${font}
####
## Uncomment for soft-coded ID (dynamic)
${font}${voffset -75}${goto 179}${font UbuntuTitleBold:size=12.6}${color4}${exec cat /etc/*release | grep 'RELEASE' | awk -F'=' '{print $2}'}${font}
####
####
## Additional ID (branch version, code name, release date, etc.)
####
## Uncomment to display YOUR custom graphic image (upper-center)
${voffset 55}${color2}${font}${voffset +30}${image /home/al/conky/mate.png -p 120,0 -s 52x52 -n}
##################################
## TIME ##
##################################
${voffset 5}${font DroidSans:bold:size=8}${color4}TIME${offset 8}${color6}${voffset -2}${hr 1}${font}
${voffset -5}${font RadioSpace:size=32}${color0}${if_match ${time %l}<=9}${alignc 7}${time %l:%M}${offset 3}${time %p}${else}${if_match ${time %l}>=10}${alignc -1}${time %l:%M}${offset 3}${time %p}${endif}${endif}${font}
##################################
## SYSTEM ##
##################################
${voffset 5}${font DroidSans:bold:size=8.25}${color4}SYSTEM${offset 8}${color6}${voffset -2}${hr 1}${font}
# ${voffset 4}${font OpenLogos:size=10}${color2}u${voffset -4}${font DroidSans:size=8.6}${color0}${offset 5}${exec lsb_release -sd | sed -e 's/development/dev/g'}${alignr}${exec lsb_release -sr}${font}
${voffset 2}${offset -2}${font OpenLogos:size=12}${color2}Z${voffset -4}${font DroidSans:size=8.6}${color0}${offset 3}${sysname}${offset 3}${kernel}${alignr}${font DroidSans:size=8.3}${machine}${font}
####
## Uncomment for hard-coded video ID (any card / any driver - static)
${voffset 2}${font StyleBats:size=10}${color2}d${voffset -2}${font DroidSans:size=8.6}${color0}${offset 5}Video Card Product Name${alignr}Driver Version${font DroidSans:size=8.3}${font}
####
## Uncomment for CPU ID / CPU frequency (hybrid)
${voffset 2}${font StyleBats:size=10}${color2}A${voffset -1}${font DroidSans:size=8.6}${color0}${offset 5}Intel${offset 3}Core${offset 3}2${offset 3}Quad Q9550${alignr 1}${font DroidSans:size=8.3}${freq_g cpu0}${offset 1}GHz${font}
${voffset 2}${font StyleBats:size=10}${color2}A${voffset -1}${font DroidSans:size=8.6}${color0}${offset 5}Intel${offset 3}Multi${offset 3}Core${alignr 1}${font DroidSans:size=8.3}${freq_g cpu0}${offset 1}GHz${font}
${voffset 2}${font StyleBats:size=10}${color2}q${voffset -1}${font DroidSans:size=8.6}${color0}${offset 5}System${offset 3}Uptime${alignr}${font DroidSans:size=8.3}${uptime_short}${font}
Battery capacity:$alignr${execi 60 acpi | grep -Eo '[0-9]+%'}
status:$alignr${execi 60 acpi | grep -Eo '\w+,'| grep -Eo '\w+'}
remaining:$alignr${execi 60 acpi | grep -Eo '(:?[0-9]+){3}'}
##################################
## PROCESSORS+TEMPS ##
##################################
${voffset 4}${font DroidSans:bold:size=8}${color4}PROCESSORS${offset 8}${color6}${voffset -2}${hr 1}${font}
#### For imperial units
${voffset 4}${font StyleBats:size=9.9}${color2}k${voffset -2}${font DroidSansFallback:size=8.39}${color0}${offset 2}CPU${offset 5}${cpu cpu0}% ${alignr}${lua sysinfo -f 1 -w cpu0}${offset 1}
${lua main -n bargraph -p 90,119 -w 145 -s 3 -f cpu -a cpu0}#
##################################
## TEMPS ##
##################################
${font DroidSans:bold:size=8}${color4}TEMPS${offset 8}${color6}${voffset -2}${hr 1}${font}
#${color}${goto 15}HDD1:${goto 65}${color}${hddtemp /dev/sda} °F
${voffset 6}${goto 15}ACPI: ${color FFFFFF}${acpitemp}°F
${color}HDD: ${color FFFFFF}${hddtemp /dev/sda}°F ${color}
${voffset 4}${font StyleBats:size=9.9}${color2}k${voffset -2}${font DroidSansFallback:size=8.39}${color0}${offset 2}CPU Temp: $alignr${execi 600 sensors -f | grep 'Core 0' | awk '{print $3}' | cut -c2-9}
#${voffset 0}${font conkysymbols:size=9.9}${color2}L${voffset -2}${font DroidSansFallback:size=8.39}${color0}${offset 2}CPU FAN${offset 1}${font DroidSans:size=8.3}${alignr}${execi 1 sensors | grep 'fan' | awk '{ print $2 " " $3 }'}${font}
${exec sensors | grep "cpu_fan:" | sed 's/fan1/Cpu Fan/'}
##################################
## MEMORY ##
##################################
${voffset -1}${font DroidSans:bold:size=8}${color4}MEMORY${offset 8}${color6}${voffset -2}${hr 1}${font}
${voffset 6}${font StyleBats:size=10}${color2}l${voffset -2}${font DroidSansFallback:size=8.3}${color0}${offset 3}RAM${goto 97}${font DroidSans:size=8.3}${mem}${goto 133}/${offset 5}${memmax}${alignr}${memperc}%${font}#
${lua main -n bargraph -p 20,213 -w 260 -s 1 -f memperc -a NA -l 1 -x 70}
##################################
## HDD ##
##################################
${voffset 12}${font DroidSans:bold:size=8}${color4}HDD${offset 8}${color6}${voffset -2}${hr 1}${font}
${voffset 6}${font StyleBats:size=9.9}${color2}x${voffset -2}${font DroidSansFallback:size=8.3}${color0}${offset 4}HOME${goto 95}${font DroidSans:size=8.3}${if_existing /home}${fs_used /home}${goto 133}/${offset 5}${fs_size /home}${alignr}${fs_free_perc /home}% / ${fs_used_perc /home}%${font}${endif}
${voffset 13}${font StyleBats:size=9.9}${color2}4${voffset -2}${font DroidSansFallback:size=8.3}${color0}${offset 4}SWAP${goto 95}${font DroidSans:size=8.3}${swap}${goto 133}/${offset 5}${swapmax}${alignr}${swapperc}%${font}#
${lua main -n bargraph -p 20,256 -w 260 -s 1 -f fs_used_perc -a / -l 1 -x 70}#
${lua main -n bargraph -p 20,282 -w 260 -s 1 -f fs_used_perc -a /home -l 1 -x 70}
##################################
## NETWORK ##
##################################
${voffset 4}${font DroidSans:bold:size=8}${color4}NETWORK${offset 8}${color6}${voffset -2}${hr 1}${font}
${goto 10}Wireless:${goto 148}Bitrate:
${voffset -14}${goto 65}${wireless_link_qual wlp2s0}%${goto 200}${wireless_bitrate wlp2s0}
#${voffset +2}${color ff3500}Local:$color${goto 50}${addr wlp2s0} ${color ff3500}${goto 150}Public:$color${goto 200}${execi 300 wget -q -O - checkip.dyndns.org | sed -e 's/[^[:digit:]\|.]//g'}
${font Sans:size=8:weight=bold}${voffset +1 alignl}${goto 5}${color ff3500}Total Down: ${color white}${totaldown wlp2s0}${color ff3500}${alignr}${goto 150}Total Up:${alignr}${goto 245} ${color white}${totalup wlp2s0}
${voffset +5}${font PizzaDudeBullets:size=18}${color6}T${font PizzaDudeBullets:size=18}${goto 150}${color6}N
#${voffset 4}${font PizzaDudeBullets:size=9.5}${color6}T${font DroidSans:size=8.65}${color0}${offset 5}Download${goto 120}${font DroidSans:size=8.3}${totaldown wlp2s0}${alignr}${font DroidSans:size=8.3}${downspeed eth0}${font}
#${voffset 2}${font PizzaDudeBullets:size=9.5}${color6}N${font DroidSans:size=8.65}${color0}${offset 5}Upload${goto 120}${font DroidSans:size=8.3}${totalup wlp2s0}${alignr}${font DroidSans:size=8.3}${upspeed wlp2s0}${font}
#${voffset 2}${font PizzaDudeBullets:size=9.5}${color6}a${font DroidSans:size=8.65}${color0}${offset 5}Private${offset 3}IP${goto 123}${font DroidSansFallback:size=8.5}LAN${alignr}${font DroidSans:size=8.3}${addr WLP2S0}${font}
#${voffset 0}${font PizzaDudeBullets:size=9.5}${color6}a${font DroidSans:size=8.65}${color0}${offset 5}Public${offset 7}IP${goto 121}${font DroidSansFallback:size=8.5}WAN${alignr}${font DroidSans:size=8.3}${execi 1800 wget -q -o /dev/null -O - checkip.dyndns.org | sed -e 's/[^[:digit:]\|.]//g'}${font}
# ${voffset 0}${font PizzaDudeBullets:size=9.5}${color6}a${font DroidSans:size=8.65}${color0}${offset 5}Public${offset 7}IP${goto 121}${font DroidSansFallback:size=8.5}WAN${alignr}${font DroidSans:size=8.3}ha ha
#### This font statement below is required for conky to reset the font before it draws the shades to align the text shadows correctly in *draw_shades yes*
${font}
]];
bargraph_smal.lua
--[[
BARGRAPH WIDGET
v2.1 by wlourf (07 Jan. 2011)
this widget draws a bargraph with different effects
http://u-scripts.blogspot.com/2010/07/bargraph-widget.html
To call the script in a conky, use, before TEXT
lua_load /path/to/the/script/bargraph.lua
lua_draw_hook_pre main_rings
and add one line (blank or not) after TEXT
Parameters are :
3 parameters are mandatory
name - the name of the conky variable to display, for example for {$cpu cpu0}, just write name="cpu"
arg - the argument of the above variable, for example for {$cpu cpu0}, just write arg="cpu0"
arg can be a numerical value if name=""
max - the maximum value the above variable can reach, for example, for {$cpu cpu0}, just write max=100
Optional parameters:
x,y - coordinates of the starting point of the bar, default = middle of the conky window
cap - end of cap line, ossibles values are r,b,s (for round, butt, square), default="b"
http://www.cairographics.org/samples/set_line_cap/
angle - angle of rotation of the bar in degress, default = 0 (i.e. a vertical bar)
set to 90 for an horizontal bar
skew_x - skew bar around x axis, default = 0
skew_y - skew bar around y axis, default = 0
blocks - number of blocks to display for a bar (values >0) , default= 10
height - height of a block, default=10 pixels
width - width of a block, default=20 pixels
space - space between 2 blocks, default=2 pixels
angle_bar - this angle is used to draw a bar on a circular way (ok, this is no more a bar !) default=0
radius - for cicular bars, internal radius, default=0
with radius, parameter width has no more effect.
Colours below are defined into braces {colour in hexadecimal, alpha}
fg_colour - colour of a block ON, default= {0x00FF00,1}
bg_colour - colour of a block OFF, default = {0x00FF00,0.5}
alarm - threshold, values after this threshold will use alarm_colour colour , default=max
alarm_colour - colour of a block greater than alarm, default=fg_colour
smooth - (true or false), create a gradient from fg_colour to bg_colour, default=false
mid_colour - colours to add to gradient, with this syntax {position into the gradient (0 to1), colour hexa, alpha}
for example, this table {{0.25,0xff0000,1},{0.5,0x00ff00,1},{0.75,0x0000ff,1}} will add
3 colours to gradient created by fg_colour and alarm_colour, default=no mid_colour
led_effect - add LED effects to each block, default=no led_effect
if smooth=true, led_effect is not used
possibles values : "r","a","e" for radial, parallel, perdendicular to the bar (just try!)
led_effect has to be used with theses colours :
fg_led - middle colour of a block ON, default = fg_colour
bg_led - middle colour of a block OFF, default = bg_colour
alarm_led - middle colour of a block > ALARM, default = alarm_colour
reflection parameters, not available for circular bars
reflection_alpha - add a reflection effect (values from 0 to 1) default = 0 = no reflection
other values = starting opacity
reflection_scale - scale of the reflection (default = 1 = height of text)
reflection_length - length of reflection, define where the opacity will be set to zero
values from 0 to 1, default =1
reflection - position of reflection, relative to a vertical bar, default="b"
possibles values are : "b","t","l","r" for bottom, top, left, right
draw_me - if set to false, text is not drawn (default = true or 1)
it can be used with a conky string, if the string returns 1, the text is drawn :
example : "${if_empty ${wireless_essid wlan0}}${else}1$endif",
v1.0 (10 Feb. 2010) original release
v1.1 (13 Feb. 2010) numeric values can be passed instead conky stats with parameters name="", arg = numeric_value
v1.2 (28 Feb. 2010) just renamed the widget to bargraph
v1.3 (03 Mar. 2010) added parameters radius & angle_bar to draw the bar in a circular way
v2.0 (12 Jul. 2010) rewrite script + add reflection effects and parameters are now set into tables
v2.1 (07 Jan. 2011) Add draw_me parameter and correct memory leaks, thanks to "Creamy Goodness"
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation version 3 (GPLv3)
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the Free Software
-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-- MA 02110-1301, USA.
]]
require 'cairo'
----------------START OF PARAMETERS ----------
function conky_main_bars()
local bars_settings={
{ --[ Graph for CPU0 ]--
name="cpu",
arg="cpu0",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.72},
bg_colour={0xFFFFFF,0.25},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=82,y=298,
blocks=60,
space=1,
height=2,width=5,
angle=90,
smooth=true
},
{ --[ Graph for CPU2 ]--
name="battery_percent",
arg="BAT0",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.72},
bg_colour={0xFFFFFF,0.25},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=98,y=208,
blocks=50,
space=1,
height=2,width=5,
angle=90,
smooth=true
},
{ --[ Graph for Memory ]--
name="memperc",
arg="",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.72},
bg_colour={0xFFFFFF,0.25},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=15,y=400,
blocks=77,
space=1,
height=2,width=5,
angle=90,
smooth=true
},
{ --[ Graph for Root ]--
name="fs_used_perc",
arg="/",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.72},
bg_colour={0xFFFFFF,0.25},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=15,y=450,
blocks=77,
space=1,
height=2,width=5,
angle=90,
smooth=true
},
{ --[ Graph for Home ]--
name="fs_used_perc",
arg="/home",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.72},
bg_colour={0xFFFFFF,0.25},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=15,y=450,
blocks=77,
space=1,
height=2,width=5,
angle=90,
smooth=true
},
{ --[ Graph for Swap ]--
name="swapperc",
arg="",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.72},
bg_colour={0xFFFFFF,0.25},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=15,y=475,
blocks=77,
space=1,
height=2,width=5,
angle=90,
smooth=true
},
}
-----------END OF PARAMETERS--------------
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)
cr = cairo_create(cs)
--prevent segmentation error when reading cpu state
if tonumber(conky_parse('${updates}'))>3 then
for i in pairs(bars_settings) do
draw_multi_bar_graph(bars_settings[i])
end
end
cairo_destroy(cr)
cairo_surface_destroy(cs)
cr=nil
end
function draw_multi_bar_graph(t)
cairo_save(cr)
--check values
if t.draw_me == true then t.draw_me = nil end
if t.draw_me ~= nil and conky_parse(tostring(t.draw_me)) ~= "1" then return end
if t.name==nil and t.arg==nil then
print ("No input values ... use parameters 'name' with 'arg' or only parameter 'arg' ")
return
end
if t.max==nil then
print ("No maximum value defined, use 'max'")
return
end
if t.name==nil then t.name="" end
if t.arg==nil then t.arg="" end
--set default values
if t.x == nil then t.x = conky_window.width/2 end
if t.y == nil then t.y = conky_window.height/2 end
if t.blocks == nil then t.blocks=10 end
if t.height == nil then t.height=10 end
if t.angle == nil then t.angle=0 end
t.angle = t.angle*math.pi/180
--line cap style
if t.cap==nil then t.cap = "b" end
local cap="b"
for i,v in ipairs({"s","r","b"}) do
if v==t.cap then cap=v end
end
local delta=0
if t.cap=="r" or t.cap=="s" then delta = t.height end
if cap=="s" then cap = CAIRO_LINE_CAP_SQUARE
elseif cap=="r" then
cap = CAIRO_LINE_CAP_ROUND
elseif cap=="b" then
cap = CAIRO_LINE_CAP_BUTT
end
--end line cap style
--if t.led_effect == nil then t.led_effect="r" end
if t.width == nil then t.width=20 end
if t.space == nil then t.space=2 end
if t.radius == nil then t.radius=0 end
if t.angle_bar == nil then t.angle_bar=0 end
t.angle_bar = t.angle_bar*math.pi/360 --halt angle
--colours
if t.bg_colour == nil then t.bg_colour = {0x00FF00,0.5} end
if #t.bg_colour~=2 then t.bg_colour = {0x00FF00,0.5} end
if t.fg_colour == nil then t.fg_colour = {0x00FF00,1} end
if #t.fg_colour~=2 then t.fg_colour = {0x00FF00,1} end
if t.alarm_colour == nil then t.alarm_colour = t.fg_colour end
if #t.alarm_colour~=2 then t.alarm_colour = t.fg_colour end
if t.mid_colour ~= nil then
for i=1, #t.mid_colour do
if #t.mid_colour[i]~=3 then
print ("error in mid_color table")
t.mid_colour[i]={1,0xFFFFFF,1}
end
end
end
if t.bg_led ~= nil and #t.bg_led~=2 then t.bg_led = t.bg_colour end
if t.fg_led ~= nil and #t.fg_led~=2 then t.fg_led = t.fg_colour end
if t.alarm_led~= nil and #t.alarm_led~=2 then t.alarm_led = t.fg_led end
if t.led_effect~=nil then
if t.bg_led == nil then t.bg_led = t.bg_colour end
if t.fg_led == nil then t.fg_led = t.fg_colour end
if t.alarm_led == nil then t.alarm_led = t.fg_led end
end
if t.alarm==nil then t.alarm = t.max end --0.8*t.max end
if t.smooth == nil then t.smooth = false end
if t.skew_x == nil then
t.skew_x=0
else
t.skew_x = math.pi*t.skew_x/180
end
if t.skew_y == nil then
t.skew_y=0
else
t.skew_y = math.pi*t.skew_y/180
end
if t.reflection_alpha==nil then t.reflection_alpha=0 end
if t.reflection_length==nil then t.reflection_length=1 end
if t.reflection_scale==nil then t.reflection_scale=1 end
--end of default values
local function rgb_to_r_g_b(col_a)
return ((col_a[1] / 0x10000) % 0x100) / 255., ((col_a[1] / 0x100) % 0x100) / 255., (col_a[1] % 0x100) / 255., col_a[2]
end
--functions used to create patterns
local function create_smooth_linear_gradient(x0,y0,x1,y1)
local pat = cairo_pattern_create_linear (x0,y0,x1,y1)
cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(t.fg_colour))
cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(t.alarm_colour))
if t.mid_colour ~=nil then
for i=1, #t.mid_colour do
cairo_pattern_add_color_stop_rgba (pat, t.mid_colour[i][1], rgb_to_r_g_b({t.mid_colour[i][2],t.mid_colour[i][3]}))
end
end
return pat
end
local function create_smooth_radial_gradient(x0,y0,r0,x1,y1,r1)
local pat = cairo_pattern_create_radial (x0,y0,r0,x1,y1,r1)
cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(t.fg_colour))
cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(t.alarm_colour))
if t.mid_colour ~=nil then
for i=1, #t.mid_colour do
cairo_pattern_add_color_stop_rgba (pat, t.mid_colour[i][1], rgb_to_r_g_b({t.mid_colour[i][2],t.mid_colour[i][3]}))
end
end
return pat
end
local function create_led_linear_gradient(x0,y0,x1,y1,col_alp,col_led)
local pat = cairo_pattern_create_linear (x0,y0,x1,y1) ---delta, 0,delta+ t.width,0)
cairo_pattern_add_color_stop_rgba (pat, 0.0, rgb_to_r_g_b(col_alp))
cairo_pattern_add_color_stop_rgba (pat, 0.5, rgb_to_r_g_b(col_led))
cairo_pattern_add_color_stop_rgba (pat, 1.0, rgb_to_r_g_b(col_alp))
return pat
end
local function create_led_radial_gradient(x0,y0,r0,x1,y1,r1,col_alp,col_led,mode)
local pat = cairo_pattern_create_radial (x0,y0,r0,x1,y1,r1)
if mode==3 then
cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(col_alp))
cairo_pattern_add_color_stop_rgba (pat, 0.5, rgb_to_r_g_b(col_led))
cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(col_alp))
else
cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(col_led))
cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(col_alp))
end
return pat
end
local function draw_single_bar()
--this fucntion is used for bars with a single block (blocks=1) but
--the drawing is cut in 3 blocks : value/alarm/background
--not zvzimzblr for circular bar
local function create_pattern(col_alp,col_led,bg)
local pat
if not t.smooth then
if t.led_effect=="e" then
pat = create_led_linear_gradient (-delta, 0,delta+ t.width,0,col_alp,col_led)
elseif t.led_effect=="a" then
pat = create_led_linear_gradient (t.width/2, 0,t.width/2,-t.height,col_alp,col_led)
elseif t.led_effect=="r" then
pat = create_led_radial_gradient (t.width/2, -t.height/2, 0, t.width/2,-t.height/2,t.height/1.5,col_alp,col_led,2)
else
pat = cairo_pattern_create_rgba (rgb_to_r_g_b(col_alp))
end
else
if bg then
pat = cairo_pattern_create_rgba (rgb_to_r_g_b(t.bg_colour))
else
pat = create_smooth_linear_gradient(t.width/2, 0, t.width/2,-t.height)
end
end
return pat
end
local y1=-t.height*pct/100
local y2,y3
if pct>(100*t.alarm/t.max) then
y1 = -t.height*t.alarm/100
y2 = -t.height*pct/100
if t.smooth then y1=y2 end
end
if t.angle_bar==0 then
--block for fg value
local pat = create_pattern(t.fg_colour,t.fg_led,false)
cairo_set_source(cr,pat)
cairo_rectangle(cr,0,0,t.width,y1)
cairo_fill(cr)
cairo_pattern_destroy(pat)
-- block for alarm value
if not t.smooth and y2 ~=nil then
pat = create_pattern(t.alarm_colour,t.alarm_led,false)
cairo_set_source(cr,pat)
cairo_rectangle(cr,0,y1,t.width,y2-y1)
cairo_fill(cr)
y3=y2
cairo_pattern_destroy(pat)
else
y2,y3=y1,y1
end
-- block for bg value
cairo_rectangle(cr,0,y2,t.width,-t.height-y3)
pat = create_pattern(t.bg_colour,t.bg_led,true)
cairo_set_source(cr,pat)
cairo_pattern_destroy(pat)
cairo_fill(cr)
end
end --end single bar
local function draw_multi_bar()
--function used for bars with 2 or more blocks
for pt = 1,t.blocks do
--set block y
local y1 = -(pt-1)*(t.height+t.space)
local light_on=false
--set colors
local col_alp = t.bg_colour
local col_led = t.bg_led
if pct>=(100/t.blocks) or pct>0 then --ligth on or not the block
if pct>=(pcb*(pt-1)) then
light_on = true
col_alp = t.fg_colour
col_led = t.fg_led
if pct>=(100*t.alarm/t.max) and (pcb*pt)>(100*t.alarm/t.max) then
col_alp = t.alarm_colour
col_led = t.alarm_led
end
end
end
--set colors
--have to try to create gradients outside the loop ?
local pat
if not t.smooth then
if t.angle_bar==0 then
if t.led_effect=="e" then
pat = create_led_linear_gradient (-delta, 0,delta+ t.width,0,col_alp,col_led)
elseif t.led_effect=="a" then
pat = create_led_linear_gradient (t.width/2, -t.height/2+y1,t.width/2,0+t.height/2+y1,col_alp,col_led)
elseif t.led_effect=="r" then
pat = create_led_radial_gradient (t.width/2, y1, 0, t.width/2,y1,t.width/1.5,col_alp,col_led,2)
else
pat = cairo_pattern_create_rgba (rgb_to_r_g_b(col_alp))
end
else
if t.led_effect=="a" then
pat = create_led_radial_gradient (0, 0, t.radius+(t.height+t.space)*(pt-1),
0, 0, t.radius+(t.height+t.space)*(pt),
col_alp,col_led,3)
else
pat = cairo_pattern_create_rgba (rgb_to_r_g_b(col_alp))
end
end
else
if light_on then
if t.angle_bar==0 then
pat = create_smooth_linear_gradient(t.width/2, t.height/2, t.width/2,-(t.blocks-0.5)*(t.height+t.space))
else
pat = create_smooth_radial_gradient(0, 0, (t.height+t.space), 0,0,(t.blocks+1)*(t.height+t.space),2)
end
else
pat = cairo_pattern_create_rgba (rgb_to_r_g_b(t.bg_colour))
end
end
cairo_set_source (cr, pat)
cairo_pattern_destroy(pat)
--draw a block
if t.angle_bar==0 then
cairo_move_to(cr,0,y1)
cairo_line_to(cr,t.width,y1)
else
cairo_arc( cr,0,0,
t.radius+(t.height+t.space)*(pt)-t.height/2,
-t.angle_bar -math.pi/2 ,
t.angle_bar -math.pi/2)
end
cairo_stroke(cr)
end
end
local function setup_bar_graph()
--function used to retrieve the value to display and to set the cairo structure
if t.blocks ~=1 then t.y=t.y-t.height/2 end
local value = 0
if t.name ~="" then
value = tonumber(conky_parse(string.format('${%s %s}', t.name, t.arg)))
--$to_bytes doesn't work when value has a decimal point,
--https://garage.maemo.org/plugins/ggit/browse.php/?p=monky;a=commitdiff;h=174c256c81a027a2ea406f5f37dc036fac0a524b;hp=d75e2db5ed3fc788fb8514121f67316ac3e5f29f
--http://sourceforge.net/tracker/index.php?func=detail&aid=3000865&group_id=143975&atid=757310
--conky bug?
--value = (conky_parse(string.format('${%s %s}', t.name, t.arg)))
--if string.match(value,"%w") then
-- value = conky_parse(string.format('${to_bytes %s}',value))
--end
else
value = tonumber(t.arg)
end
if value==nil then value =0 end
pct = 100*value/t.max
pcb = 100/t.blocks
cairo_set_line_width (cr, t.height)
cairo_set_line_cap (cr, cap)
cairo_translate(cr,t.x,t.y)
cairo_rotate(cr,t.angle)
local matrix0 = cairo_matrix_t:create()
tolua.takeownership(matrix0)
cairo_matrix_init (matrix0, 1,t.skew_y,t.skew_x,1,0,0)
cairo_transform(cr,matrix0)
--call the drawing function for blocks
if t.blocks==1 and t.angle_bar==0 then
draw_single_bar()
if t.reflection=="t" or t.reflection=="b" then cairo_translate(cr,0,-t.height) end
else
draw_multi_bar()
end
--dot for reminder
--[[
if t.blocks ~=1 then
cairo_set_source_rgba(cr,1,0,0,1)
cairo_arc(cr,0,t.height/2,3,0,2*math.pi)
cairo_fill(cr)
else
cairo_set_source_rgba(cr,1,0,0,1)
cairo_arc(cr,0,0,3,0,2*math.pi)
cairo_fill(cr)
end]]
--call the drawing function for reflection and prepare the mask used
if t.reflection_alpha>0 and t.angle_bar==0 then
local pat2
local matrix1 = cairo_matrix_t:create()
tolua.takeownership(matrix1)
if t.angle_bar==0 then
pts={-delta/2,(t.height+t.space)/2,t.width+delta,-(t.height+t.space)*(t.blocks)}
if t.reflection=="t" then
cairo_matrix_init (matrix1,1,0,0,-t.reflection_scale,0,-(t.height+t.space)*(t.blocks-0.5)*2*(t.reflection_scale+1)/2)
pat2 = cairo_pattern_create_linear (t.width/2,-(t.height+t.space)*(t.blocks),t.width/2,(t.height+t.space)/2)
elseif t.reflection=="r" then
cairo_matrix_init (matrix1,-t.reflection_scale,0,0,1,delta+2*t.width,0)
pat2 = cairo_pattern_create_linear (delta/2+t.width,0,-delta/2,0)
elseif t.reflection=="l" then
cairo_matrix_init (matrix1,-t.reflection_scale,0,0,1,-delta,0)
pat2 = cairo_pattern_create_linear (-delta/2,0,delta/2+t.width,-0)
else --bottom
cairo_matrix_init (matrix1,1,0,0,-1*t.reflection_scale,0,(t.height+t.space)*(t.reflection_scale+1)/2)
pat2 = cairo_pattern_create_linear (t.width/2,(t.height+t.space)/2,t.width/2,-(t.height+t.space)*(t.blocks))
end
end
cairo_transform(cr,matrix1)
if t.blocks==1 and t.angle_bar==0 then
draw_single_bar()
cairo_translate(cr,0,-t.height/2)
else
draw_multi_bar()
end
cairo_set_line_width(cr,0.01)
cairo_pattern_add_color_stop_rgba (pat2, 0,0,0,0,1-t.reflection_alpha)
cairo_pattern_add_color_stop_rgba (pat2, t.reflection_length,0,0,0,1)
if t.angle_bar==0 then
cairo_rectangle(cr,pts[1],pts[2],pts[3],pts[4])
end
cairo_clip_preserve(cr)
cairo_set_operator(cr,CAIRO_OPERATOR_CLEAR)
cairo_stroke(cr)
cairo_mask(cr,pat2)
cairo_pattern_destroy(pat2)
cairo_set_operator(cr,CAIRO_OPERATOR_OVER)
end --reflection
pct,pcb=nil
end --setup_bar_graph()
--start here !
setup_bar_graph()
cairo_restore(cr)
end
draw_bg.lua
--[[ Background by londonali1010 (2009)
VinDSL Background Hack (2010-2011)
This script draws a background to the Conky window. It covers the whole of the Conky window, but you can specify rounded corners, if you wish.
To call this script in Conky, use (assuming you have saved this script to ~/scripts/):
lua_load /home/al/conky/draw_bg.lua
lua_draw_hook_pre draw_bg
Changelog:
+ v3.1 VinDSL Hack (12.01.2011) Added more shading example(s).
+ v3.0 VinDSL Hack (01.28.2011) Killed memory leak.
+ v2.4 VinDSL Hack (01.25.2011) Declared all variables in local.
+ v2.3 VinDSL Hack (12.31.2010) Added shading example(s).
+ v2.2 VinDSL Hack (12.30.2010) Cleaned up the code a bit.
+ v2.1 VinDSL Hack (12.24.2010) Added cairo destroy function(s).
+ v2.0 VinDSL Hack (12.21.2010) Added height adjustment variable.
+ v1.0 Original release (07.10.2009)
]]
--------------START OF PARAMETERS ------------
-- Change these settings to affect your background:
-- "corner_r" is the radius, in pixels, of the rounded corners. If you don't want rounded corners, use 0.
local corner_r = 50
-- Set the colour and transparency (alpha) of your background (0.00 - 0.99).
-- (Light Shading Example)
-- local bg_colour = 0x4d4d4d
-- local bg_alpha = 0.50
-- (Medium Shading Example)
-- local bg_colour = 0x222222
-- local bg_alpha = 0.50
-- (Dark Shading Example)
-- local bg_colour = 0x000000
-- local bg_alpha = 0.02
-- (Brown Shading Example)
-- local bg_colour = 0x330000
-- local bg_alpha = 0.04
-- (Ivory Black Shading Example)
-- local bg_colour = 0x292421
-- local bg_alpha = 0.22
-- (Navy Blue Shading Example)
-- local bg_colour = 0x33339F
-- local bg_alpha = 0.33
-- (Olive Green Shading Example)
-- local bg_colour = 0x333319
-- local bg_alpha = 0.13
-- (Silver Shading Example)
local bg_colour = 0xc0c0c0
local bg_alpha = 0.05
-- Tweaks the height of your background, in pixels. If you don't need to adjust the height, use 0.
-- (Default Setting)
-- local vindsl_hack_height = 0
local vindsl_hack_height = -2
---------------END OF PARAMETERS -------------
require 'cairo'
local cs, cr = nil
local function rgb_to_r_g_b(colour,alpha)
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
function conky_draw_bg()
if conky_window == nil then return end
if cs == nil then cairo_surface_destroy(cs) end
if cr == nil then cairo_destroy(cr) end
local w = conky_window.width
local h = conky_window.height
local v = vindsl_hack_height
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)
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+v-corner_r)
cairo_curve_to(cr,w,h+v,w,h+v,w-corner_r,h+v)
cairo_line_to(cr,corner_r,h+v)
cairo_curve_to(cr,0,h+v,0,h+v,0,h+v-corner_r)
cairo_line_to(cr,0,corner_r)
cairo_curve_to(cr,0,0,0,0,corner_r,0)
cairo_close_path(cr)
cairo_set_source_rgba(cr,rgb_to_r_g_b(bg_colour,bg_alpha))
cairo_fill(cr)
cairo_surface_destroy(cs)
cairo_destroy(cr)
end
I'm not sure what is going on and I cannot figure it out with searches. Any help would be appreciated, thanks
Offline
Hello
loutch with the same code i make this......
https://cdn.scrot.moe/images/2018/01/24/Screenshot-from-2018-01-24-17-49-54.th.png
@+
Linuxmint 22.1 Xia xfce & mageia 9 XFCE on ssd hp pavilion g7
Xubuntu 18.04 lts & 24.04 lts on ASUS Rog STRIX
Offline
Hi all,
I've founded something for conky lua addicted (like me ) I don't have the time to test Just wanted to share the stuff if someone has more time to play with, enjoy and thanks to the author
Enjoy:
https://github.com/fisadev/conky-draw
Last edited by ragamatrix (2018-01-27 11:09:27)
Offline
Hello conky users,
I use the draw_bg.lua script since a while but I don't understand why few time ago it's no longer working, nothing is displaying on screen and I don't have any errors in the terminal... ? Does someone encounters this problem too with this script?
I circumvented the problem by using imagemagick and drawing semis-transparent backgrounds...
Offline
Hello ragamatrix,
I have no problems with the script. I'm running correctly in some distributions.
Maybe you have a simple mistake in the label:
draw_bg.lua
or
draw-bg.lua
Offline
Hallo unklar
no I think I correctly call the script that's the reason why I don't understand... but thx
lua_load = '~/.conky/script/draw_bg.lua',
and after text:
conky.text = [[
${lua conky_draw_bg 5 0 0 258 535 0x000000 0.8}
Last edited by ragamatrix (2018-02-02 14:38:18)
Offline
try
lua_load = '~/.conky/script/draw_bg.lua',
lua_draw_hook_pre = 'draw_bg',
conky.text = [[
#${lua conky_draw_bg 5 0 0 258 535 0x000000 0.8}
or this lua-script
draw_bg.lua
--[[
This script draws a background to the Conky window. It covers the whole of the Conky window, but you can specify rounded corners, if you wish.
To call this script in Conky, use (assuming you have saved this script to ~/scripts/):
lua_load ~/scripts/draw_bg.lua
lua_draw_hook_pre draw_bg
-- Change these settings to affect your background.
-- "corner_r" is the radius, in pixels, of the rounded corners. If you don't want rounded corners, use 0.]]
corner_r=35
-- Farbe Hintergrund
bg_color=0xffffff
bg_alpha=0.5
require 'cairo'
function rgb_to_r_g_b(color,alpha)
return ((color / 0x10000) % 0x100) / 255., ((color / 0x100) % 0x100) / 255., (color % 0x100) / 255., alpha
end
function conky_draw_bg()
if conky_window==nil then return end
local w=conky_window.width
local h=conky_window.height -20
local cs=cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, w, h)
cr=cairo_create(cs)
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)
cairo_set_source_rgba(cr,rgb_to_r_g_b(bg_color,bg_alpha))
cairo_fill(cr)
--Farbe und Hintergrund vom Rand
bg_color1=0xffffff
bg_alpha1=0.6
cairo_move_to(cr,corner_r-3,3)
cairo_line_to(cr,w-corner_r-3,3)
cairo_curve_to(cr,w-3,3,w-3,3,w-3,corner_r-3)
cairo_line_to(cr,w-3,h-corner_r-3)
cairo_curve_to(cr,w-3,h-3,w-3,h-3,w-corner_r-3,h-3)
cairo_line_to(cr,corner_r-3,h-3)
cairo_curve_to(cr,3,h-3,3,h-3,3,h-corner_r-3)
cairo_line_to(cr,3,corner_r-3)
cairo_curve_to(cr,3,3,3,3,corner_r-3,3)
cairo_set_line_width (cr, 5)
cairo_close_path(cr)
cairo_set_source_rgba(cr,rgb_to_r_g_b(bg_color1,bg_alpha1))
cairo_stroke(cr)
end
I don't know where I got it from (note the text above with "corner")
Edit:
hmm, I think I crap you up here.
With Sector11 we have tried this in conky1.10 and the "round corners" (per draw_bg.lua) already laboriously. We didn't succeed. It just didn't work and we had not found a solution in this conky-version.
excuse me :8
my test with the
this one upstairs with "post" with "pre"
original draw_bg.lua
Detail of the configuration used in conky
lua_load = '$HOME/archysWetterwidget10/wetterwidget1/draw_bg.lua',
lua_draw_hook_pre = 'draw_bg',
--lua_draw_hook_post = 'draw_bg',
and
lua_load = '~/LUA/draw_bg.lua',
lua_draw_hook_pre = 'draw_bg',
....
I'm not sure, but the original lua-script should be "rewritten"....
Last edited by unklar (2018-02-02 19:47:06)
Offline
@unklar
Thanks for your help, I ran with this:
lua_load = '~/.conky/script/draw_bg.lua',
lua_draw_hook_pre = 'draw_bg',
And I had an r_g_b error:
conky: desktop window (dc) is root window
conky: window type - override
conky: drawing to created window (0x2200001)
conky: drawing to double buffer
conky: llua_do_call: function conky_draw_bg execution failed: /home/raphix/.conky/script/draw_bg.lua:32: attempt to perform arithmetic on local 'colour' (a nil value)
conky: llua_do_call: function conky_draw_bg execution failed: /home/raphix/.conky/script/draw_bg.lua:32: attempt to perform arithmetic on local 'colour' (a nil value)
conky: llua_do_call: function conky_draw_bg execution failed: /home/raphix/.conky/script/draw_bg.lua:32: attempt to perform arithmetic on local 'colour' (a nil value)
conky: llua_do_call: function conky_draw_bg execution failed: /home/raphix/.conky/script/draw_bg.lua:32: attempt to perform arithmetic on local 'colour' (a nil value)
conky: llua_do_call: function conky_draw_bg execution failed: /home/raphix/.conky/script/draw_bg.lua:32: attempt to perform arithmetic on local 'colour' (a nil value)
conky: llua_do_call: function conky_draw_bg execution failed: /home/raphix/.conky/script/draw_bg.lua:32: attempt to perform arithmetic on local 'colour' (a nil value)
conky: llua_do_call: function conky_draw_bg execution failed: /home/raphix/.conky/script/draw_bg.lua:32: attempt to perform arithmetic on local 'colour' (a nil value)
conky: llua_do_call: function conky_draw_bg execution failed: /home/raphix/.conky/script/draw_bg.lua:32: attempt to perform arithmetic on local 'colour' (a nil value)
conky: llua_do_call: function conky_draw_bg execution failed: /home/raphix/.conky/script/draw_bg.lua:32: attempt to perform arithmetic on local 'colour' (a nil value)
conky: llua_do_call: function conky_draw_bg execution failed: /home/raphix/.conky/script/draw_bg.lua:32: attempt to perform arithmetic on local 'colour' (a nil value)
^Cconky: received SIGINT or SIGTERM to terminate. bye!
the draw_bg.lua I use:
--[[Background originally by londonali1010 (2009)
ability to set any size for background mrpeachy 2011
ability to set variables for bg in conkyrc dk75
the change is that if you set width and/or height to 0
then it assumes the width and/or height of the conky window
so:
lua_load ~/Conky/LUA/draw_bg.lua
TEXT
${lua conky_draw_bg 20 0 0 0 0 0x000000 0.4}
${lua conky_draw_bg corner_radius x_position y_position width height color alpha}
covers the whole window and will change if you change the minimum_size setting
20 corner_radius
0 x_position
0 y_position
0 width
0 height
0x000000 color
0.4 alpha
]]
require 'cairo'
local cs, cr = nil
function rgb_to_r_g_b(colour,alpha)
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
function conky_draw_bg(r,x,y,w,h,color,alpha)
if conky_window == nil then return end
if cs == nil then cairo_surface_destroy(cs) end
if cr == nil then cairo_destroy(cr) 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)
w=w
h=h
if w=="0" then w=tonumber(conky_window.width) end
if h=="0" then h=tonumber(conky_window.height) end
cairo_set_source_rgba (cr,rgb_to_r_g_b(color,alpha))
--top left mid circle
local xtl=x+r
local ytl=y+r
--top right mid circle
local xtr=(x+r)+((w)-(2*r))
local ytr=y+r
--bottom right mid circle
local xbr=(x+r)+((w)-(2*r))
local ybr=(y+r)+((h)-(2*r))
--bottom right mid circle
local xbl=(x+r)
local ybl=(y+r)+((h)-(2*r))
-----------------------------
cairo_move_to (cr,xtl,ytl-r)
cairo_line_to (cr,xtr,ytr-r)
cairo_arc(cr,xtr,ytr,r,((2*math.pi/4)*3),((2*math.pi/4)*4))
cairo_line_to (cr,xbr+r,ybr)
cairo_arc(cr,xbr,ybr,r,((2*math.pi/4)*4),((2*math.pi/4)*1))
cairo_line_to (cr,xbl,ybl+r)
cairo_arc(cr,xbl,ybl,r,((2*math.pi/4)*1),((2*math.pi/4)*2))
cairo_line_to (cr,xtl-r,ytl)
cairo_arc(cr,xtl,ytl,r,((2*math.pi/4)*2),((2*math.pi/4)*3))
cairo_close_path(cr)
cairo_fill (cr)
------------------------------------------------------------
cairo_surface_destroy(cs)
cairo_destroy(cr)
return ""
end
Last edited by ragamatrix (2018-02-03 10:53:56)
Offline
Recently a general question regarding conky popped in my mind:
Getting things like battery info or fan info grabs data from the root part of the system.
However when I edit conkyrc, I do not need sudo (i.e. root privileges).
Is there maybe a genaral explanation how conky gets root data without having root privileges?
Offline
Recently a general question regarding conky popped in my mind:
Getting things like battery info or fan info grabs data from the root part of the system.
However when I edit conkyrc, I do not need sudo (i.e. root privileges).
Is there maybe a genaral explanation how conky gets root data without having root privileges?
You don't need to be root to read your system's /proc and /sys folders.
Look at your /sys/class/power_supply/BAT0 file, which has info about your battery; anyone can read it.
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Please make Autocad Civil 3D and Archicad work on Linux!
Offline
And I had an r_g_b error:
^ Yes, that's the same mistake I have and no solution.
I have also studied intensively your link to Lua and conky1.10. Again, there is no hint for draw_bg.lua. Maybe it will come yet....
Here people in their spare time are struggling to regain their former condition in Conky!
What is significant is that with the introduction of Conky1.10, the simplicity of editing the configuration file has been lost.
Last edited by unklar (2018-02-05 12:31:05)
Offline
martix wrote:Recently a general question regarding conky popped in my mind:
Getting things like battery info or fan info grabs data from the root part of the system.
However when I edit conkyrc, I do not need sudo (i.e. root privileges).
Is there maybe a genaral explanation how conky gets root data without having root privileges?
You don't need to be root to read your system's /proc and /sys folders.
Look at your /sys/class/power_supply/BAT0 file, which has info about your battery; anyone can read it.
Indeed, I can read those files in the BAT0 folder without sudo. I'm wondering why I needed sudo, when I tried to edit conkyrc on an ubuntu machine?
Also when I gave conkyrc from Bunsenlabs to users on different distros, without sudo it did not show all the data (e.g. not for fan speed, battery, etc.).
Offline
I have also studied intensively your link to Lua and conky1.10. Again, there is no hint for draw_bg.lua. Maybe it will come yet....
I can use the ragamarix draw_bg.lua in ascii with conky 1.10.6 adding a main function
function conky_main()
return ''
end
And using the same way to call the function as he does.
Offline