1 Attachment(s)
Re: Post your .conkyrc files w/ screenshots
Trying to isolate the albumart mystery, here is a simple conky just for rhythmbox info. I get an error(?) as shown in picture.
Attachment 220429
the conkyrc:
Code:
# Create own window instead of using desktop (required in nautilus)
own_window yes
own_window_hints undecorated,below,skip_taskbar
background no
# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes
# fiddle with window
use_spacer right
use_xft yes
text_buffer_size 600
mpd_port 6605
# Update interval in seconds
update_interval 1
# Minimum size of text area
minimum_size 150 500
# Draw shades?
draw_shades yes
# Text stuff
draw_outline no # amplifies text if yes
draw_borders no
uppercase no # set to yes if you want all text to be in uppercase
# Stippled borders?
stippled_borders 8
# border margins
border_margin 5
# border width
border_width 1
# Default colors and also border colors, grey90 == #e5e5e5
default_color white
default_shade_color black
default_outline_color white
own_window_colour black
own_window_transparent no
# Text alignment, other possible values are commented
#alignment top_left
alignment top_right
#alignment bottom_left
#alignment bottom_right
# Gap between borders of screen and text
gap_x 5
gap_y 5
# stuff after 'TEXT' will be formatted on screen
override_utf8_locale no
xftfont Terminus:size=8
xftalpha 0.8
imlib_cache_size 0
TEXT
${if_running rhythmbox}
${color ddaa00}Artist: ${color E0E0E0}${exec conkyRhythmbox --datatype=AR}
${color ddaa00}Album: ${color E0E0E0}${exec conkyRhythmbox --datatype=AL}
${color ddaa00}Song: ${color E0E0E0}${exec conkyRhythmbox --datatype=TI}
${execibar 1 conkyRhythmbox --datatype=PP}
${exec conkyRhythmbox --datatype=PP}%
${if_match ${exec conkyRhythmbox --datatype=PP} <= 2 }
${exec /home/davejr/.conky/music/albumart}
${endif}
${image /home/davejr/.album -p 0,300 -s 100x100}
${endif}
...and the albumart script:
Code:
$#!/bin/bash
fail=`echo "Unknown"`
artist=`conkyRhythmbox --datatype=AR`
album=`conkyRhythmbox --datatype=AL`
str="`echo "$artist $album" | sed -e s/\\ /+/g`"
if [ "$artist" = "$fail" ]; then
echo "Rhythmbox is not playing"
if [ -f /home/davejr/.album ]; then
rm /home/davejr/.album
fi
else
wget `wget "http://www.albumart.org/index.php?srchkey=&itempage=1&newsearch=1&searchindex=Music" -q -O - |
grep "http://www.albumart.org/images/zoom-icon.jpg" -m 1 |
sed -e 's/" border="0" class="image_border.*//' |
sed -e 's/.*img src="//'` -q -O /home/davejr/.album
fi
Both are in /home/davejr/.conky/music
Re: Post your .conkyrc files w/ screenshots
Re: Post your .conkyrc files w/ screenshots
Quote:
Originally Posted by
davesbrain
Not sure why this is happening. It starts my conky as well as the baseline conky, simultaneously. Not cool. And, as I mentioned before, cpu pegs out at 100% and temp skyrockets. As soon as I close conky, temp returns to normal.
Attachment 220112
And some code:
Code:
####
## Use XFT? Required to Force UTF8 (see below).
#
use_xft yes
xftfont LiberationSans:size=8.85
xftalpha 0.7
text_buffer_size 2048
####
## Force UTF8? Requires XFT (see above).
## Displays degree symbol, instead of °, etc.
#
override_utf8_locale yes
####
## Update interval in seconds.
#
update_interval .1
#music_player_interval 1
####
## This is the number of times Conky will update before quitting.
## Set to zero to run forever.
#
total_run_times 0
####
## Create own window instead of using desktop (required in nautilus)?
#
own_window yes
own_window_transparent no
own_window_type normal
#own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
#own_window_title conky
####
## Use double buffering? Reduces flicker.
#
double_buffer yes
####
## Draw shades?
#
draw_shades yes
default_shade_color 292421
draw_outline no
draw_graph_borders no
####
## Draw outlines?
#
draw_outline no
####
## Draw borders around text?
#
draw_borders no
####
## Print text to stdout?
## Print text in console?
#
out_to_ncurses no
out_to_console no
####
## Text alignment.
#
alignment top_right
####
## Minimum size of text area.
#
maximum_width 246
####
## Gap between text and screen borders.
#
gap_x 0
gap_y 24
####
## Shorten MiB/GiB to M/G in stats.
#
short_units yes
####
## 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 yes
####
## Set to yes, if you want all text to be in UPPERCASE.
#
uppercase no
####
## 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
####
## My colors (suit yourself)
#
color0 White #FFFFFF
color1 Ivory #FFFFF0
color2 Ivory2 #EEEEE0
color3 Ivory3 #CDCDC1
color4 Tan1 #FFA54F
color5 Tan2 #EE9A49
color6 Gray #7E7E7E
color7 AntiqueWhite4 #8B8378
color8 DimGray #696969
color9 Tomato #FF6347
####
## Load Lua for shading (optional).
## Set the path to your script here.
#
lua_load /home/davejr/.conky/MyConkyLatest/bargraph_small.lua
lua_draw_hook_post main_bars
#lua_load /home/davejr/.conky/MyConkyLatest/Radar/radartest.lua
#lua_draw_hook_pre radar
TEXT
#### LOGO ####
${voffset -33}${font OpenLogos:size=100}${color0}v${voffset -67}${font Arial:bold:size=18}${color5}${pre_exec cat /etc/*release | grep 'RELEASE' | awk -F'=' '{print $2}'}${font}
#### TIME ####
${voffset 20}${font Arial:bold:size=8.75}${color4}TIME&DATE${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 1}${if_match ${time %l}<=9}${voffset -4}${font RadioSpace:size=32}${color3}${alignc 7}${time %l:%M%p}${font}${else}${if_match ${time %l}>=10}${voffset -4}${font RadioSpace:size=32}${color3}${alignc -1}${time %l:%M%p}${font}${endif}${endif}
#### CALENDAR ####
${voffset 18}${font LiberationMono:size=8}${color1}${alignc 75}${time %A}${font}
${voffset -3}${if_match ${time %e}<=9}${font LiberationMono:size=22}${color4}${alignc 83}${time %e}${font}${else}${if_match ${time %e}>=10}${font LiberationMono:size=22}${color9}${alignc 75}${time %e}${font}${endif}${endif}
${voffset -1}${font LiberationMono:size=8}${color1}${alignc 75}${time %B}${font}
${voffset -3}${font LiberationMono:size=8}${color1}${alignc 73}${time %Y}${font}
${voffset -80}${font LiberationMono:size=9}${color1}${execpi 60 VinDSL_Cal_5=`date +%-d`; cal | sed '1d' | sed s/^/"\$\{offset 90"\}/ | sed '/^ *$/d' | sed 's/\<'"$VinDSL_Cal_5"'\>/${color9}&${color3}/'}${font}
${voffset -100}${font CutOutsFor3DFX:size=64}${color8}${alignc 110}2${font}
#### SYSTEM ####
${voffset 18}${font Arial:bold:size=8.75}${color4}SYSTEM${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 4}${font OpenLogos:size=10}${color2}u${voffset -4}${font}${color1}${offset 5}${sysname}${offset 5}${kernel}${alignr}${machine}
${voffset 2}${font StyleBats:size=10}${color2}q${voffset -1}${font}${color1}${offset 5}Uptime${alignr}${uptime}
${voffset 2}${font StyleBats:size=10}${color2}o${voffset -1}${font}${color1}${offset 5}File${offset 3}System${alignr}${fs_type}
#### PROCESSORS ####
${voffset 4}${font Arial:bold:size=8.75}${color4}PROCESSORS${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 4}${font StyleBats:size=14}${color2}A${voffset -7}${font}${color1}${offset 5}AMD${offset 3}Athlon64 ${cpu cpu1}%${alignr}${freq_g cpu0}${offset 1}GHz
${voffset 8}${goto 10}${font Weather:size=16}${color0}y ${font}${voffset -7}${goto 25}CPU Temp:${hwmon temp 1}ºC
#### MEMORY ####
${voffset 6}${font Arial:bold:size=8.75}${color4}MEMORY${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 4}${font StyleBats:size=14}${color2}k${voffset -6}${font}${color1}${offset 3}RAM${goto 97}${mem}${goto 133}/${offset 5}${memmax}${alignr}${memperc}%
#### HDD ####
${voffset 6}${font Arial:bold:size=8.75}${color4}HDD${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 4}${font StyleBats:size=14}${color2}x${voffset -6}${font}${color1}${offset 4}LINUX${goto 95}${fs_used /}${goto 133}/${offset 5}${fs_size /}${alignr}${fs_free_perc /}%
${voffset 1}${font StyleBats:size=14}${color2}x${voffset -6}${font}${color1}${offset 4}WinXP${goto 95}${fs_used /media/1CB8948DB89466D4}${goto 133}/${offset 5}${fs_size /media/1CB8948DB89466D4}${alignr}${fs_free_perc /media/1CB8948DB89466D4}%
${voffset 1}${font StyleBats:size=14}${color2}x${voffset -6}${font}${color1}${offset 4}NetDisk${goto 95}${fs_used /media/NetDisk}${goto 133}/${offset 5}${fs_size /media/NetDisk}${alignr}${fs_free_perc /media/NetDisk}%
${voffset 1}${font StyleBats:size=14}${color2}x${voffset -6}${font}${color1}${offset 4}NewVolume${goto 95}${fs_used /media/NewVolume}${goto 133}/${offset 5}${fs_size /media/NewVolume}${alignr}${fs_free_perc /media/NewVolume}%
#### TOP PROCESSES ####
${voffset 1}${font Arial:bold:size=8.75}${color4}TOP PROCESSES${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 4}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color1}${offset 5}${top_mem name 1}${goto 115}${top_mem mem_res 1}${alignr}${top_mem mem 1}%
${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color1}${offset 5}${top_mem name 2}${goto 115}${top_mem mem_res 2}${alignr}${top_mem mem 2}%
${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color1}${offset 5}${top_mem name 3}${goto 115}${top_mem mem_res 3}${alignr}${top_mem mem 3}%
${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color1}${offset 5}${top_mem name 4}${goto 115}${top_mem mem_res 4}${alignr}${top_mem mem 4}%
#### NETWORK ####
${voffset 4}${font Arial:bold:size=8.75}${color4}NETWORK${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 6}${font PizzaDudeBullets:size=14}${color1}T${font}${color1}${offset 5}${voffset -7}Down${goto 115}${downspeed eth0}
${font}${goto 25}${color1}${voffset -2}${offset 5}Downloaded${goto 115}${totaldown eth0}${voffset -15}${downspeedgraph eth0 20,100 ff0000 0000ff}
${font PizzaDudeBullets:size=14}${color1}N${font}${color1}${voffset -6}${offset 5}Up${goto 115}${upspeed eth0}
${font}${color1}${goto 25}${voffset -2}${offset 5}Uploaded${goto 115}${totalup eth0}${voffset -15}${upspeedgraph eth0 20,100 0000ff ff0000}
you have bargraph_small.lua
radartest.lua
please post it
Re: Post your .conkyrc files w/ screenshots
Re: Post your .conkyrc files w/ screenshots
Mr peachy is right. Radar is his and it IS cool. I like it, thank you! Props given. Here's the bargraph_small.lua. Your's WILL be different and will require some modification to reflect your hard drives. I did add a cpu temp meter to mine as well.
Code:
--[[
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 CPU1 ]--
name="cpu",
arg="cpu1",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.60},
bg_colour={0xFFFFFF,0.20},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=31,y=290,
blocks=18,
space=2,
height=10,width=4,
angle=90,
smooth=true
},
{ --[ Graph for hwmon temp 1 ]--
name="hwmon temp 1",
arg="hwmon temp 1",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.60},
bg_colour={0xFFFFFF,0.20},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=31,y=312,
blocks=18,
space=2,
height=10,width=4,
angle=90,
smooth=true
},
{ --[ Graph for Memory ]--
name="memperc",
arg="",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.60},
bg_colour={0xFFFFFF,0.20},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=30,y=346,
blocks=18,
space=2,
height=10,width=4,
angle=90,
smooth=true
},
{ --[ Graph for Root ]--
name="fs_used_perc",
arg="/",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.60},
bg_colour={0xFFFFFF,.20},
fg_colour={0x00FF00,0.50},
mid_colour={{0.45,0xFFFF00,0.70}},
x=31,y=381,
blocks=18,
space=2,
height=10,width=4,
angle=90,
smooth=true
},
{ --[ Graph for WinXP ]--
name="fs_used_perc",
arg="/media/1CB8948DB89466D4",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.60},
bg_colour={0xFFFFFF,0.20},
fg_colour={0x00FF00,0.50},
mid_colour={{0.45,0xFFFF00,0.70}},
x=31,y=408,
blocks=18,
space=2,
height=10,width=4,
angle=90,
smooth=true
},
{ --[ Graph for NetDisc ]--
name="fs_used_perc",
arg="/media/NetDisk",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.60},
bg_colour={0xFFFFFF,0.20},
fg_colour={0x00FF00,0.50},
mid_colour={{0.45,0xFFFF00,0.70}},
x=31,y=435,
blocks=18,
space=2,
height=10,width=4,
angle=90,
smooth=true
},
{ --[ Graph for NewVolume ]--
name="fs_used_perc",
arg="/media/NewVolume",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.60},
bg_colour={0xFFFFFF,0.20},
fg_colour={0x00FF00,0.50},
mid_colour={{0.45,0xFFFF00,0.70}},
x=31,y=462,
blocks=18,
space=2,
height=10,width=4,
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
2 Attachment(s)
Re: Post your .conkyrc files w/ screenshots
...I think I'll just set this right here...
Props to VinDSL, Tobigusgeekus, Wlourf, and MrPeachy ):P
Attachment 220432
starter script:
Code:
#!/bin/bash
sleep 1
conky -c /home/davejr/.conky/MyConkyLatest/newconkyrc &
exit 0
the Conky:
Code:
####
## Use XFT? Required to Force UTF8 (see below).
#
use_xft yes
xftfont LiberationSans:size=8.85
xftalpha 0.7
text_buffer_size 2048
####
## Force UTF8? Requires XFT (see above).
## Displays degree symbol, instead of °, etc.
#
override_utf8_locale yes
####
## Update interval in seconds.
#
update_interval 1
music_player_interval 1
####
## This is the number of times Conky will update before quitting.
## Set to zero to run forever.
#
total_run_times 0
####
## Create own window instead of using desktop (required in nautilus)?
#
own_window yes
own_window_transparent no
own_window_type override
#own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
#own_window_title conky
####
## Use double buffering? Reduces flicker.
#
double_buffer yes
####
## Draw shades?
#
draw_shades yes
default_shade_color 292421
draw_outline no
draw_graph_borders no
####
## Draw outlines?
#
draw_outline no
####
## Draw borders around text?
#
draw_borders no
####
## Print text to stdout?
## Print text in console?
#
out_to_ncurses no
out_to_console no
####
## Text alignment.
#
alignment top_right
####
## Minimum size of text area.
#
maximum_width 246
####
## Gap between text and screen borders.
#
gap_x 0
gap_y 24
####
## Shorten MiB/GiB to M/G in stats.
#
short_units yes
####
## 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 yes
####
## Set to yes, if you want all text to be in UPPERCASE.
#
uppercase no
####
## 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
####
## My colors (suit yourself)
#
color0 White #FFFFFF
color1 Ivory #FFFFF0
color2 Ivory2 #EEEEE0
color3 Ivory3 #CDCDC1
color4 Tan1 #FFA54F
color5 Tan2 #EE9A49
color6 Gray #7E7E7E
color7 AntiqueWhite4 #8B8378
color8 DimGray #696969
color9 Tomato #FF6347
####
## Load Lua for shading (optional).
## Set the path to your script here.
#
lua_load /home/davejr/.conky/MyConkyLatest/bargraph_small.lua
lua_draw_hook_post main_bars
lua_load /home/davejr/.conky/MyConkyLatest/Radar/radartest.lua
lua_draw_hook_pre radar
TEXT
#### LOGO ####
${voffset -33}${font OpenLogos:size=100}${color0}v${voffset -67}${font Arial:bold:size=18}${color5}${pre_exec cat /etc/*release | grep 'RELEASE' | awk -F'=' '{print $2}'}${font}
#### TIME ####
${voffset 20}${font Arial:bold:size=8.75}${color4}TIME&DATE${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 1}${if_match ${time %l}<=9}${voffset -4}${font RadioSpace:size=32}${color3}${alignc 7}${time %l:%M%p}${font}${else}${if_match ${time %l}>=10}${voffset -4}${font RadioSpace:size=32}${color3}${alignc -1}${time %l:%M%p}${font}${endif}${endif}
#### CALENDAR ####
${voffset 18}${font LiberationMono:size=8}${color1}${alignc 75}${time %A}${font}
${voffset -3}${if_match ${time %e}<=9}${font LiberationMono:size=22}${color4}${alignc 83}${time %e}${font}${else}${if_match ${time %e}>=10}${font LiberationMono:size=22}${color9}${alignc 75}${time %e}${font}${endif}${endif}
${voffset -1}${font LiberationMono:size=8}${color1}${alignc 75}${time %B}${font}
${voffset -3}${font LiberationMono:size=8}${color1}${alignc 73}${time %Y}${font}
${voffset -80}${font LiberationMono:size=9}${color1}${execpi 60 VinDSL_Cal_5=`date +%-d`; cal | sed '1d' | sed s/^/"\$\{offset 90"\}/ | sed '/^ *$/d' | sed 's/\<'"$VinDSL_Cal_5"'\>/${color9}&${color3}/'}${font}
${voffset -100}${font CutOutsFor3DFX:size=64}${color8}${alignc 110}2${font}
#### SYSTEM ####
${voffset 18}${font Arial:bold:size=8.75}${color4}SYSTEM${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 4}${font OpenLogos:size=10}${color2}u${voffset -4}${font}${color1}${offset 5}${sysname}${offset 5}${kernel}${alignr}${machine}
${voffset 2}${font StyleBats:size=10}${color2}q${voffset -1}${font}${color1}${offset 5}Uptime${alignr}${uptime}
${voffset 2}${font StyleBats:size=10}${color2}o${voffset -1}${font}${color1}${offset 5}File${offset 3}System${alignr}${fs_type}
#### PROCESSORS ####
${voffset 4}${font Arial:bold:size=8.75}${color4}PROCESSORS${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 4}${font StyleBats:size=14}${color2}A${voffset -7}${font}${color1}${offset 5}AMD${offset 3}Athlon64 ${cpu cpu1}%${alignr}${freq_g cpu0}${offset 1}GHz
${voffset 8}${goto 10}${font Weather:size=16}${color0}y ${font}${voffset -7}${goto 25}CPU Temp:${hwmon temp 1}ºC
#### MEMORY ####
${voffset 6}${font Arial:bold:size=8.75}${color4}MEMORY${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 4}${font StyleBats:size=14}${color2}k${voffset -6}${font}${color1}${offset 3}RAM${goto 97}${mem}${goto 133}/${offset 5}${memmax}${alignr}${memperc}%
#### HDD ####
${voffset 6}${font Arial:bold:size=8.75}${color4}HDD${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 4}${font StyleBats:size=14}${color2}x${voffset -6}${font}${color1}${offset 4}LINUX${goto 95}${fs_used /}${goto 133}/${offset 5}${fs_size /}${alignr}${fs_used_perc /}%
${voffset 1}${font StyleBats:size=14}${color2}x${voffset -6}${font}${color1}${offset 4}WinXP${goto 95}${fs_used /media/1CB8948DB89466D4}${goto 133}/${offset 5}${fs_size /media/1CB8948DB89466D4}${alignr}${fs_used_perc /media/1CB8948DB89466D4}%
${voffset 1}${font StyleBats:size=14}${color2}x${voffset -6}${font}${color1}${offset 4}NetDisk${goto 95}${fs_used /media/NetDisk}${goto 133}/${offset 5}${fs_size /media/NetDisk}${alignr}${fs_used_perc /media/NetDisk}%
${voffset 1}${font StyleBats:size=14}${color2}x${voffset -6}${font}${color1}${offset 4}NewVolume${goto 95}${fs_used /media/NewVolume}${goto 133}/${offset 5}${fs_size /media/NewVolume}${alignr}${fs_used_perc /media/NewVolume}%
#### TOP PROCESSES ####
${voffset 1}${font Arial:bold:size=8.75}${color4}TOP PROCESSES${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 4}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color1}${offset 5}${top_mem name 1}${goto 115}${top_mem mem_res 1}${alignr}${top_mem mem 1}%
${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color1}${offset 5}${top_mem name 2}${goto 115}${top_mem mem_res 2}${alignr}${top_mem mem 2}%
${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color1}${offset 5}${top_mem name 3}${goto 115}${top_mem mem_res 3}${alignr}${top_mem mem 3}%
${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color1}${offset 5}${top_mem name 4}${goto 115}${top_mem mem_res 4}${alignr}${top_mem mem 4}%
#### NETWORK ####
${voffset 4}${font Arial:bold:size=8.75}${color4}NETWORK${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 6}${font PizzaDudeBullets:size=14}${color1}T${font}${color1}${offset 5}${voffset -7}Down${goto 115}${downspeed eth0}
${font}${goto 25}${color1}${voffset -2}${offset 5}Downloaded${goto 115}${totaldown eth0}${voffset -15}${downspeedgraph eth0 20,100 ff0000 0000ff}
${font PizzaDudeBullets:size=14}${color1}N${font}${color1}${voffset -6}${offset 5}Up${goto 115}${upspeed eth0}
${font}${color1}${goto 25}${voffset -2}${offset 5}Uploaded${goto 115}${totalup eth0}${voffset -15}${upspeedgraph eth0 20,100 0000ff ff0000}
#### WEATHER ####
${font Arial:bold:size=8.75}${color FFA54F}WEATHER${offset 8}${color 696969}${voffset -2}${hr 2}${font}
${texeci 60 bash /home/davejr/.conky/MyConkyLatest/Accuweather/acc_usa_images}
${goto 145}${voffset -15}$color${font Arial:size=10}${execpi 60 sed -n '3p' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond}${font}
${voffset 13}${goto 145}${color FFA54F}TEMP:$color${alignr}${execpi 60 sed -n '4p' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond}°F
${goto 145}${color FFA54F}WIND:$color${alignr}${execpi 60 sed -n '6p' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond} ${execpi 60 sed -n '14p' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond}
${goto 145}${color FFA54F}HUM:$color${alignr}${execpi 60 sed -n '7p' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond}
${goto 145}${color FFA54F}PRESS:$color${alignr}${execpi 60 sed -n '8p' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond}
${goto 145}${color FFA54F}CLOUD CVR:$color${alignr}${execpi 60 sed -n '9p' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond}
${goto 145}${color FFA54F}UV INDEX:$color${alignr 10}${execpi 60 sed -n '10p' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond}
${goto 145}${color FFA54F}DEW PNT:$color${alignr}${execpi 60 sed -n '11p' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond}
${goto 145}${color FFA54F}VISIB.:$color${alignr}${execpi 60 sed -n '13p' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond}
${voffset -10}${goto 20}${color FFA54F}SUNRISE:$color${goto 80}${execpi 600 sed -n '15p' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond}${goto 140}${color FFA54F}SUNSET:$color${goto 195}${execpi 600 sed -n '16p' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond}
${voffset -5}${color 696969}${hr 1}
${font Arial:size=9}${goto 18}${color FFA54F}${execpi 600 sed -n '6p' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton}${goto 83}${execpi 600 sed -n '11p' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton}${goto 143}${execpi 600 sed -n '16p' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton}$color${goto 208}${font Arial:size=9}${color FFA54F}${execpi 600 sed -n '21p' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton}$color
${voffset 5}${font Arial:size=8}${goto 15}H:${execpi 600 sed -n '9p' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton}°F${goto 82}H:${execpi 600 sed -n '14p' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton}°F${goto 143}H:${execpi 600 sed -n '19p' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton}°F${font Arial:size=8}${goto 207}H:${execpi 600 sed -n '24p' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton}°F
${font Arial:size=8}${goto 15}L:${execpi 600 sed -n '10p' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton}°F${goto 82}L:${execpi 600 sed -n '15p' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton}°F${goto 143}L:${execpi 600 sed -n '20p' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton}°F${font Arial:size=8}${goto 207}L:${execpi 600 sed -n '25p' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton}°F
#### MUSIC ####
${voffset 4}${font Arial:bold:size=8.75}${color4}MUSIC${offset 8}${color8}${voffset -2}${hr 2}${font}
${if_running rhythmbox}
${voffset -10}${goto 15}${color4}${font}ARTIST:${goto 70}$color${exec rhythmbox-client --no-start --print-playing-format %aa}
${goto 15}${color4}${font}ALBUM:${goto 70}$color${exec rhythmbox-client --no-start --print-playing-format %at}
${goto 15}${color4}${font}SONG:${goto 70}$color${exec rhythmbox-client --no-start --print-playing-format %tt}
${voffset -2}${goto 15}${color8}${execibar 1 conkyRhythmbox --datatype=PP}
${goto 15}$color${exec rhythmbox-client --no-start --print-playing-format %te}${goto 125}${exec conkyRhythmbox --datatype=PP}%${alignr}${exec rhythmbox-client --no-start --print-playing-format %td}
${image /home/davejr/.conky/MyConkyLatest/Accuweather/cc.png -p 213,620 -s 30x30}
${image /home/davejr/.conky/MyConkyLatest/Accuweather/7.png -p 5,800 -s 40x40}
${image /home/davejr/.conky/MyConkyLatest/Accuweather/12.png -p 72,800 -s 40x40}
${image /home/davejr/.conky/MyConkyLatest/Accuweather/17.png -p 133,800 -s 40x40}
${image /home/davejr/.conky/MyConkyLatest/Accuweather/22.png -p 197,800 -s 40x40}
the bargraph_small.lua:
Code:
--[[
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 CPU1 ]--
name="cpu",
arg="cpu1",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.60},
bg_colour={0xFFFFFF,0.20},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=31,y=290,
blocks=18,
space=2,
height=10,width=4,
angle=90,
smooth=true
},
{ --[ Graph for hwmon temp 1 ]--
name="hwmon temp 1",
arg="hwmon temp 1",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.60},
bg_colour={0xFFFFFF,0.20},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=31,y=312,
blocks=18,
space=2,
height=10,width=4,
angle=90,
smooth=true
},
{ --[ Graph for Memory ]--
name="memperc",
arg="",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.60},
bg_colour={0xFFFFFF,0.20},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=30,y=346,
blocks=18,
space=2,
height=10,width=4,
angle=90,
smooth=true
},
{ --[ Graph for Root ]--
name="fs_used_perc",
arg="/",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.60},
bg_colour={0xFFFFFF,.20},
fg_colour={0x00FF00,0.50},
mid_colour={{0.45,0xFFFF00,0.70}},
x=31,y=381,
blocks=18,
space=2,
height=10,width=4,
angle=90,
smooth=true
},
{ --[ Graph for WinXP ]--
name="fs_used_perc",
arg="/media/1CB8948DB89466D4",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.60},
bg_colour={0xFFFFFF,0.20},
fg_colour={0x00FF00,0.50},
mid_colour={{0.45,0xFFFF00,0.70}},
x=31,y=408,
blocks=18,
space=2,
height=10,width=4,
angle=90,
smooth=true
},
{ --[ Graph for NetDisc ]--
name="fs_used_perc",
arg="/media/NetDisk",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.60},
bg_colour={0xFFFFFF,0.20},
fg_colour={0x00FF00,0.50},
mid_colour={{0.45,0xFFFF00,0.70}},
x=31,y=435,
blocks=18,
space=2,
height=10,width=4,
angle=90,
smooth=true
},
{ --[ Graph for NewVolume ]--
name="fs_used_perc",
arg="/media/NewVolume",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.60},
bg_colour={0xFFFFFF,0.20},
fg_colour={0x00FF00,0.50},
mid_colour={{0.45,0xFFFF00,0.70}},
x=31,y=462,
blocks=18,
space=2,
height=10,width=4,
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
the radartest.lua:
Code:
--[[
call
lua_load /home/davejr/.conky/MyConkyLatest/Radar/radartest.lua
lua_draw_hook_pre radar
]]
require 'cairo'
require 'imlib2'
------------------------------------------------------------------------------
function string:split(delimiter)
local result = { }
local from = 1
local delim_from, delim_to = string.find( self, delimiter, from )
while delim_from do
table.insert( result, string.sub( self, from , delim_from-1 ) )
from = delim_to + 1
delim_from, delim_to = string.find( self, delimiter, from )
end
table.insert( result, string.sub( self, from ) )
return result
end
--------------------------------------------------------------------------------
function conky_radar()
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)
local updates=tonumber(conky_parse('${updates}'))
if updates>5 then
--#########################################################################################################
--#########################################################################################################
file="/home/davejr/.conky/MyConkyLatest/Radar/FTG_Topo_Short.jpg"
image(75,700,135,135,file)
interval=60
timer=(updates % interval)+1
if timer==1 or updates==10 then
if timer==1 or updates==10 then
os.execute("rm /home/davejr/.conky/MyConkyLatest/Radar/FTG_N0R_0.gif")
os.execute("rm /home/davejr/.conky/MyConkyLatest/Radar/FTG_N0R_Legend_0.gif")
os.execute("rm /home/davejr/.conky/MyConkyLatest/Radar/FTG_Warnings_0.gif")
os.execute("wget --directory-prefix=/home/davejr/.conky/MyConkyLatest/Radar/ http://radar.weather.gov/ridge/RadarImg/N0R/FTG_N0R_0.gif")
os.execute("wget --directory-prefix=/home/davejr/.conky/MyConkyLatest/Radar/ http://radar.weather.gov/ridge/Legend/N0R/FTG_N0R_Legend_0.gif")
os.execute("wget --directory-prefix=/home/davejr/.conky/MyConkyLatest/Radar/ http://radar.weather.gov/ridge/Warnings/Short/FTG_Warnings_0.gif")
end
end
file="/home/davejr/.conky/MyConkyLatest/Radar/FTG_N0R_0.gif"
image(75,700,130,130,file)
file="/home/davejr/.conky/MyConkyLatest/Radar/FTG_County_Short.gif"
image(75,700,130,130,file)
file="/home/davejr/.conky/MyConkyLatest/Radar/FTG_Highways_Short.gif"
image(75,700,130,130,file)
file="/home/davejr/.conky/MyConkyLatest/Radar/FTG_City_Short.gif"
image(75,700,130,130,file)
file="/home/davejr/.conky/MyConkyLatest/Radar/FTG_N0R_Legend_0.gif"
image(75,700,130,130,file)
file="/home/davejr/.conky/MyConkyLatest/Radar/FTG_Warnings_0.gif"
image(75,700,130,130,file)
end-- if updates>5
cairo_destroy(cr)
cairo_surface_destroy(cs)
cr=nil
end-- end main function
function image(center_x,center_y,w,h,file)
show = imlib_load_image(file)
if show == nil then return end
imlib_context_set_image(show)
if tonumber(w)==0 then
width=imlib_image_get_width()
else
width=tonumber(w)
end
if tonumber(h)==0 then
height=imlib_image_get_height()
else
height=tonumber(h)
end
iacross=center_x-(width/2)
idown=center_y-(height/2)
imlib_context_set_image(show)
scaled=imlib_create_cropped_scaled_image(0, 0, imlib_image_get_width(), imlib_image_get_height(), width, height)
imlib_free_image()
imlib_context_set_image(scaled)
imlib_render_image_on_drawable(iacross, idown)
imlib_free_image()
end
and the acc_usa_images script:
Code:
#!/bin/bash
#function: test_image_day
test_image_day () {
case $1 in
su)
echo 1su
;;
msu)
echo 2msu
;;
psu)
echo 3psu
;;
ic)
echo 4ic
;;
h)
echo 5h
;;
mc)
echo 6mc
;;
c)
echo 7c
;;
d)
echo 8d
;;
f)
echo 9f
;;
s)
echo 10s
;;
mcs)
echo 11mcs
;;
psus)
echo 12psus
;;
t)
echo 13t
;;
mct)
echo 14mct
;;
psut)
echo 15psut
;;
r)
echo 16r
;;
fl)
echo 17fl
;;
mcfl)
echo 18mcfl
;;
psfl)
echo 19psfl
;;
sn)
echo 20sn
;;
mcsn)
echo 21mcsn
;;
i)
echo 22i
;;
sl)
echo 23sl
;;
fr)
echo 24fr
;;
rsn)
echo 25rsn
;;
w)
echo 26w
;;
ho)
echo 27ho
;;
co)
echo 28co
;;
cl)
echo 29cl
;;
mcl)
echo 31mcl
;;
pc)
echo 32pc
;;
pcs)
echo 36pcs
;;
pct)
echo 38pct
;;
esac
}
#function: test_image_night
test_image_night () {
case $1 in
su)
echo 1su
;;
msu)
echo 2msu
;;
psu)
echo 3psu
;;
c)
echo 7c
;;
d)
echo 8d
;;
f)
echo 9f
;;
s)
echo 10s
;;
psus)
echo 12psus
;;
t)
echo 13t
;;
psut)
echo 15psut
;;
r)
echo 16r
;;
fl)
echo 17fl
;;
psfl)
echo 19psfl
;;
sn)
echo 20sn
;;
i)
echo 22i
;;
sl)
echo 23sl
;;
fr)
echo 24fr
;;
rsn)
echo 25rsn
;;
ho)
echo 27ho
;;
co)
echo 28co
;;
cl)
echo 29cl
;;
w)
echo 30w
;;
mcl)
echo 31mcl
;;
pc)
echo 32pc
;;
ic)
echo 33ic
;;
h)
echo 34h
;;
mc)
echo 35mc
;;
pcs)
echo 36pcs
;;
mcs)
echo 37mcs
;;
pct)
echo 38pct
;;
mct)
echo 39mct
;;
mcfl)
echo 40mcfl
;;
mcsn)
echo 41mcsn
;;
esac
}
#put your Accuweather address here
address="http://www.accuweather.com/en/us/denver-co/80203/weather-forecast/347810?unit=f"
#http://www.accuweather.com/en/us/midway-oh/43151/weather-forecast/2214620"
loc_id=$(echo $address|sed 's/\/weather-forecast.*$//'|sed 's/^.*\///')
last_number=$(echo $address|sed 's/^.*\///')
kill -STOP $(pidof conky)
killall wget
curr_addr="$(echo $address|sed 's/weather-forecast.*$//')"current-weather/"$loc_id"us?day=1
wget -O /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond_raw "$curr_addr"
addr1="$(echo $address|sed 's/weather-forecast.*$//')"daily-weather-forecast/"$last_number"
wget -O /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton_raw "$addr1"
addr2="$addr1"?day=6
wget -O /home/davejr/.conky/MyConkyLatest/Accuweather/last_days_raw "$addr2"
if [[ -s /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond_raw ]]; then
#current conditions
sed -i '/detail-now/,/Moonrise/!d' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond_raw
egrep -i '"cond"|Humidity|Pressure|Cloud Cover|UV Index|Dew Point|Amount of Precipitation|Visibility|AM|PM|mph|icons-wind|detail-tab-panel|icon i-' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond_raw > /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond
sed -i -e 's/^.*icon i-//g' -e 's/^.*tab-panel //g' -e 's/^.*start">//g' -e 's/^.*finish">//g' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond
sed -i 's/^.*<li>//g' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond
sed -i -e 's/<strong>//g' -e 's/<\/strong>//g' -e 's/<\/li>//g' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond
sed -i -e '1d' -e 's/^.*center;">//g' -e 's/^.*icons-wind\///g' -e 's/\.gif.*$//g' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond
sed -i -e 's/^.*"cond">//g' -e 's/temp">/\n/g' -e 's/realfeel">/\n/g' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond
sed -i -e 's/">.*$//g' -e 's/<\/span>.*$//g' -e 's/<span>.*$//g' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond
sed -i -e 's/°//g' -e 's/ //g' -e 's/RealFeel® //g' -e 's/<\/div>.*$//g' -e '15d' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond
sed -i -e 's/Humidity: //g' -e 's/Pressure: //g' -e 's/Cloud Cover: //g' -e 's/UV Index: //g' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond
sed -i -e 's/Dew Point: //g' -e 's/Amount of Precipitation(1 Hr): //g' -e 's/Visibility: //g' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond
sed -i 's/ i-alarm.*$//g' /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond
time=$(sed -n 1p /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond)
image=$(sed -n 2p /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond)
if [[ $time == day ]]; then
sed -i 2s/$image/$(test_image_day $image)/ /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond
elif [[ $time == night ]]; then
sed -i 2s/$image/$(test_image_night $image)/ /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond
fi
cp /home/davejr/.conky/MyConkyLatest/Accuweather/Forecast_Images/$(sed -n 2p /home/davejr/.conky/MyConkyLatest/Accuweather/curr_cond).png /home/davejr/.conky/MyConkyLatest/Accuweather/cc.png
fi
if [[ -s /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton_raw ]]; then
#today - tonight - first 4 days
sed -i '/current first/,/<h4>Night<\/h4>/!d' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton_raw
egrep -i 'h3|"cond"|temp|icon i-|RealFeel' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton_raw > /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton
sed -i -e 's/^.*"#">//' -e 's/<\/a>.*$//' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton
now=$(sed -n 1p /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton)
if [[ $now == Tonight || $now == Overnight ]]; then
sed -i '1s/night/night\n/' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton
fi
sed -i -e 's/^.*icon i-//g' -e 's/^.*"cond">//g' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton
sed -i -e '1,21s/^.*"temp">//g' -e 's/^.*"">//g' -e 's/Lo<\/span> /\n/' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton
sed -i -e '27s/<span>°/\n/' -e 's/<\/a>.*$//g' -e 's/"><.*$//g' -e 's/<\/span><\/span> <span class="realfeel">RealFeel® //g' -e 's/^[ ,\t]*//g' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton
sed -i -e 's/^ *//g' -e '22s/<span>°/\n/' -e 's/<span>.*$//g' -e 's/<\/span>.*"temp">/\n/' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton
sed -i -e 's/<\/span>.*$//g' -e 's/°.*$//g' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton
sed -i -e 's/Tomorrow/TOM./' -e 's/Monday/MON/' -e 's/Tuesday/TUES/' -e 's/Wednesday/WED/' -e 's/Thursday/THURS/' -e 's/Friday/FRI/' -e 's/Saturday/SAT/' -e 's/Sunday/SUN/' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton
sed -i 's/ i-alarm.*$//g' /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton
for (( i=7; i<=22; i+=5 ))
do
image_raw=$(sed -n "${i}"p /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton)
sed -i ${i}s/$image_raw/$(test_image_day $image_raw)/ /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton
cp /home/davejr/.conky/MyConkyLatest/Accuweather/Forecast_Images/$(sed -n ${i}p /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton).png /home/davejr/.conky/MyConkyLatest/Accuweather/$i.png
done
image_raw=$(sed -n 26p /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton)
sed -i 26s/$image_raw/$(test_image_day $image_raw)/ /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton
cp /home/davejr/.conky/MyConkyLatest/Accuweather/Forecast_Images/$(sed -n 26p /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton).png /home/davejr/.conky/MyConkyLatest/Accuweather/today.png
image_raw=$(sed -n 30p /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton)
sed -i 30s/$image_raw/$(test_image_night $image_raw)/ /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton
cp /home/davejr/.conky/MyConkyLatest/Accuweather/Forecast_Images/$(sed -n 30p /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton).png /home/davejr/.conky/MyConkyLatest/Accuweather/tonight.png
fi
if [[ -s /home/davejr/.conky/MyConkyLatest/Accuweather/last_days_raw ]]; then
#last days
sed -i '/day=6/,/<h4>Night<\/h4>/!d' /home/davejr/.conky/MyConkyLatest/Accuweather/last_days_raw
egrep -i 'h3|"cond"|temp|icon i-|RealFeel' /home/davejr/.conky/MyConkyLatest/Accuweather/last_days_raw > /home/davejr/.conky/MyConkyLatest/Accuweather/last_days
sed -i -e 's/^.*icon i-//g' -e 's/^.*"cond">//g' /home/davejr/.conky/MyConkyLatest/Accuweather/last_days
sed -i -e '1,21s/^.*"temp">//g' -e 's/^.*"#">//g' -e 's/Lo<\/span> /\n/' /home/davejr/.conky/MyConkyLatest/Accuweather/last_days
sed -i -e '27s/<span>°/\n/' -e 's/<\/a>.*$//g' -e 's/"><.*$//g' -e 's/<\/span><\/span> <span class="realfeel">RealFeel® //g' /home/davejr/.conky/MyConkyLatest/Accuweather/last_days
sed -i -e 's/^ *//g' -e '22s/<span>°/\n/' -e 's/<span>.*$//g' -e 's/<\/span>.*"temp">/\n/' /home/davejr/.conky/MyConkyLatest/Accuweather/last_days
sed -i -e 's/<\/span>.*$//g' -e 's/°.*$//g' -e 's/^[ ,\t]*//g' /home/davejr/.conky/MyConkyLatest/Accuweather/last_days
sed -i -e 's/Monday/MON/' -e 's/Tuesday/TUES/' -e 's/Wednesday/WED/' -e 's/Thursday/THURS/' -e 's/Friday/FRI/' -e 's/Saturday/SAT/' -e 's/Sunday/SUN/' /home/davejr/.conky/MyConkyLatest/Accuweather/last_days
sed -i 's/ i-alarm.*$//g' /home/davejr/.conky/MyConkyLatest/Accuweather/last_days
for (( i=2; i<=22; i+=5 ))
do
image_raw=$(sed -n "${i}"p /home/davejr/.conky/MyConkyLatest/Accuweather/last_days)
sed -i ${i}s/$image_raw/$(test_image_day $image_raw)/ /home/davejr/.conky/MyConkyLatest/Accuweather/last_days
cp /home/davejr/.conky/MyConkyLatest/Accuweather/Forecast_Images/$(sed -n ${i}p /home/davejr/.conky/MyConkyLatest/Accuweather/last_days).png /home/davejr/.conky/MyConkyLatest/Accuweather/N$i.png
done
fi
if [[ -s /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton_raw && -s /home/davejr/.conky/MyConkyLatest/Accuweather/last_days_raw ]]; then
#messages - messages_curr
sed -n 27p /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton > /home/davejr/.conky/MyConkyLatest/Accuweather/messages_curr
sed -n 31p /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton >> /home/davejr/.conky/MyConkyLatest/Accuweather/messages_curr
sed -n 8p /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton > /home/davejr/.conky/MyConkyLatest/Accuweather/messages_raw
sed -n 13p /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton >> /home/davejr/.conky/MyConkyLatest/Accuweather/messages_raw
sed -n 18p /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton >> /home/davejr/.conky/MyConkyLatest/Accuweather/messages_raw
sed -n 23p /home/davejr/.conky/MyConkyLatest/Accuweather/tod_ton >> /home/davejr/.conky/MyConkyLatest/Accuweather/messages_raw
sed -n 3p /home/davejr/.conky/MyConkyLatest/Accuweather/last_days >> /home/davejr/.conky/MyConkyLatest/Accuweather/messages_raw
sed -n 8p /home/davejr/.conky/MyConkyLatest/Accuweather/last_days >> /home/davejr/.conky/MyConkyLatest/Accuweather/messages_raw
sed -n 13p /home/davejr/.conky/MyConkyLatest/Accuweather/last_days >> /home/davejr/.conky/MyConkyLatest/Accuweather/messages_raw
sed -n 18p /home/davejr/.conky/MyConkyLatest/Accuweather/last_days >> /home/davejr/.conky/MyConkyLatest/Accuweather/messages_raw
sed -n 23p /home/davejr/.conky/MyConkyLatest/Accuweather/last_days >> /home/davejr/.conky/MyConkyLatest/Accuweather/messages_raw
for (( i=1; i<=4; i++))
do
no=$(sed -n ${i}p /home/davejr/.conky/MyConkyLatest/Accuweather/messages_curr|wc -c)
if (( no<=31 )); then
sed -i $i"s/$/\n/" /home/davejr/.conky/MyConkyLatest/Accuweather/messages_curr
i=$((i+1))
elif (( no>31 )); then
sed -i $i"s/^\(.\{31\}\)/\1\n/" /home/davejr/.conky/MyConkyLatest/Accuweather/messages_curr
i=$((i+1))
fi
done
cat /home/davejr/.conky/MyConkyLatest/Accuweather/messages_raw| cut -c -40 > /home/davejr/.conky/MyConkyLatest/Accuweather/messages
for (( i=1; i<=18; i++))
do
no=$(sed -n ${i}p /home/davejr/.conky/MyConkyLatest/Accuweather/messages|wc -c)
if (( no<=21 )); then
sed -i $i"s/$/\n/" /home/davejr/.conky/MyConkyLatest/Accuweather/messages
i=$((i+1))
elif (( no>21 )); then
sed -i $i"s/^\(.\{21\}\)/\1\n/" /home/davejr/.conky/MyConkyLatest/Accuweather/messages
i=$((i+1))
fi
done
fi
kill -CONT $(pidof conky)
these are the images that go with the weather, cropped and squared:
Attachment 220433
Re: Post your .conkyrc files w/ screenshots
Quote:
Originally Posted by
davesbrain
...I think I'll just set this right here...
Gorgeous!
Re: Post your .conkyrc files w/ screenshots
Quote:
Originally Posted by
davesbrain
Trying to isolate the albumart mystery, here is a simple conky just for rhythmbox info. I get an error(?) as shown in picture.
Attachment 220429
Colored in GREEN is what you didn't included when you typed this script in your editor, but what is essential - you omitted $STR string with album and artist name so www.albumart.org returns some garbage instead a link to cover, which in turn makes second wget to go insane because it expects URI as a input, not some garbage text.
But most of it is because script is not well formated and use BASHizm that's less recognizable. If linuxfanboi would use "$()" as command parser instead of "``", and made some indentation, then it could be easier to figure it out.
Quote:
Originally Posted by
davesbrain
...and the albumart script:
Code:
$#!/bin/bash
fail=`echo "Unknown"`
artist=`conkyRhythmbox --datatype=AR`
album=`conkyRhythmbox --datatype=AL`
str="`echo "$artist $album" | sed -e s/\\ /+/g`"
if [ "$artist" = "$fail" ]; then
echo "Rhythmbox is not playing"
if [ -f /home/davejr/.album ]; then
rm /home/davejr/.album
fi
else
wget `wget "http://www.albumart.org/index.php?srchkey=$str&itempage=1&newsearch=1&searchindex=Music" -q -O - |
grep "http://www.albumart.org/images/zoom-icon.jpg" -m 1 |
sed -e 's/" border="0" class="image_border.*//' |
sed -e 's/.*img src="//'` -q -O /home/davejr/.album
fi
Both are in /home/davejr/.conky/music
Re: Post your .conkyrc files w/ screenshots
Thank you dk75. I tried your suggestion, but still same thing.
Re: Post your .conkyrc files w/ screenshots
Quote:
Originally Posted by
davesbrain
...I think I'll just set this right here...
Props to VinDSL, Tobigusgeekus, Wlourf, and MrPeachy ):P
Oooh! I see the networking stuff I was hoping to add later. Thanks for the timely posting!
http://i230.photobucket.com/albums/e.../Musicdj07.gif