You are not logged in.

#821 2018-01-23 19:13:53

unklar
Back to the roots 1.9
From: #! BL
Registered: 2015-10-31
Posts: 2,710

Re: Show us your conky

I've got two identical Lua mistakes in two Configurations from @wlourf

textLUAfehler.th.jpg textLUAfehler1.th.jpg bargrapLUAT500.th.jpg

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.  smile

Offline

#822 2018-01-23 23:46:13

manuel-909
Member
Registered: 2017-10-09
Posts: 94

Re: Show us your conky

Hi all , still working on conky's , so far is what i have........
Screenshot-from-2018-01-23-18-30-52.th.png

Offline

#823 2018-01-24 03:24:33

easysid
Member
Registered: 2016-01-01
Posts: 49

Re: Show us your conky

unklar wrote:

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

#824 2018-01-24 08:12:26

loutch
Member
Registered: 2015-12-12
Posts: 897

Re: Show us your conky

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

1516781279.png

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

#825 2018-01-24 19:23:46

unklar
Back to the roots 1.9
From: #! BL
Registered: 2015-10-31
Posts: 2,710

Re: Show us your conky

^ 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. big_smile

		{
			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}        <---
		},

fehler_behoben.jpg

But I don't know anything about Lua.
I'm sure you know better than that.   wink

Last edited by unklar (2018-01-24 19:28:21)

Offline

#826 2018-01-24 19:36:04

unklar
Back to the roots 1.9
From: #! BL
Registered: 2015-10-31
Posts: 2,710

Re: Show us your conky

easysid wrote:

Use https://

BINGO! big_smile
That was the mistake. I thank you.

easy.th.jpg

Offline

#827 2018-01-24 22:54:04

manuel-909
Member
Registered: 2017-10-09
Posts: 94

Re: Show us your conky

loutch with the same code i make this......

Screenshot-from-2018-01-24-17-49-54.th.png

Offline

#828 2018-01-25 03:24:25

Alpetjr
Member
Registered: 2018-01-11
Posts: 13

Re: Show us your conky

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

#829 2018-01-25 07:31:51

loutch
Member
Registered: 2015-12-12
Posts: 897

Re: Show us your conky

Hello


manuel-909 wrote:

smilies%20(224).gif

@+


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

#830 2018-01-27 11:09:00

ragamatrix
Member
Registered: 2015-10-04
Posts: 427

Re: Show us your conky

Hi all,
I've founded something for conky lua addicted (like me  big_smile ) 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 wink Enjoy:
https://github.com/fisadev/conky-draw

Last edited by ragamatrix (2018-01-27 11:09:27)

Offline

#831 2018-02-02 13:31:40

ragamatrix
Member
Registered: 2015-10-04
Posts: 427

Re: Show us your conky

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

#832 2018-02-02 14:20:36

unklar
Back to the roots 1.9
From: #! BL
Registered: 2015-10-31
Posts: 2,710

Re: Show us your conky

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

#833 2018-02-02 14:37:39

ragamatrix
Member
Registered: 2015-10-04
Posts: 427

Re: Show us your conky

Hallo unklar
no I think I correctly call the script that's the reason why I don't understand... but thx wink
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

#834 2018-02-02 15:48:05

unklar
Back to the roots 1.9
From: #! BL
Registered: 2015-10-31
Posts: 2,710

Re: Show us your conky

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")   wink

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" hook_post.th.pngwith "pre" hook_pre.th.png
original draw_bg.lua orignal_lua.th.png

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"....   big_smile

Last edited by unklar (2018-02-02 19:47:06)

Offline

#835 2018-02-03 10:52:38

ragamatrix
Member
Registered: 2015-10-04
Posts: 427

Re: Show us your conky

@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

#836 2018-02-04 15:15:45

martix
Kim Jong-un Stunt Double
Registered: 2016-02-19
Posts: 1,267

Re: Show us your conky

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

#837 2018-02-04 20:27:49

TeoBigusGeekus
BL DieHard
From: /Deutschland/Frankfurt_am_Main
Registered: 2015-10-04
Posts: 1,486

Re: Show us your conky

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.


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

#838 2018-02-05 12:29:50

unklar
Back to the roots 1.9
From: #! BL
Registered: 2015-10-31
Posts: 2,710

Re: Show us your conky

ragamatrix wrote:

And I had an r_g_b error:

^ Yes, that's the same mistake I have and no solution.  sad

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

#839 2018-02-05 17:05:57

martix
Kim Jong-un Stunt Double
Registered: 2016-02-19
Posts: 1,267

Re: Show us your conky

TeoBigusGeekus wrote:
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

#840 2018-02-05 20:36:09

Indian
Member
Registered: 2018-02-05
Posts: 23

Re: Show us your conky

unklar wrote:

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

Board footer

Powered by FluxBB