Re: Post your .conkyrc files w/ screenshots
Quote:
Originally Posted by
pressko
Din't weather.com dropped the support for us ?!
...No... We went to personal weather scripts. They can't stop us from using those.
ConkyForecast is dead. But, there is an alternative using bash scripts.
See the link in my signature marked TeoBigusGeekus' Conky Weather Method. The (New) will take you to the current place to download it.
Re: Post your .conkyrc files w/ screenshots
Quote:
Originally Posted by
42dorian
...No... We went to personal weather scripts. They can't stop us from using those.
ConkyForecast is dead. But, there is an alternative using bash scripts.
See the link in my signature marked TeoBigusGeekus' Conky Weather Method. The (New) will take you to the current place to download it.
It seems weather.com has changed the format of their site a couple days ago, my weather is down also. I'm sure it's a simple fix once I figure out what they did. One was an obvious change in the addy, another is the icons are all different. Not sure what else they did yet, got another project in front of it for a day or two.
I take these as learning experiences :biggrin:
Re: Post your .conkyrc files w/ screenshots
Quote:
Originally Posted by
FrankenCub
It seems weather.com has changed the format of their site a couple days ago, my weather is down also. I'm sure it's a simple fix once I figure out what they did. One was an obvious change in the addy, another is the icons are all different. Not sure what else they did yet, got another project in front of it for a day or two.
I take these as learning experiences :biggrin:
Thing is... that's not "Broken" in any way. The format changed, so the bash scripts just need to search and edit something different to get the same data from them.
Teo is on a trip at the moment and won't be back for a good week. So, his scripts work just fine, but weather.com changed it's format and you'll have to wait until he updates his script accordingly.
Personally? I boycott Weather.com and Accuweather. They change so often that it is a headache for me and all of you who use them. It's a double headache for Teo who does all the work updating the scripts all the time. I use the WeatherUnderground script and a custom script for Intellicast to get all my weather. They've never failed on me.
Re: Post your .conkyrc files w/ screenshots
Quote:
Originally Posted by
42dorian
Thing is... that's not "Broken" in any way. The format changed, so the bash scripts just need to search and edit something different to get the same data from them.
Teo is on a trip at the moment and won't be back for a good week. So, his scripts work just fine, but weather.com changed it's format and you'll have to wait until he updates his script accordingly.
Personally? I boycott Weather.com and Accuweather. They change so often that it is a headache for me and all of you who use them. It's a double headache for Teo who does all the work updating the scripts all the time. I use the WeatherUnderground script and a custom script for Intellicast to get all my weather. They've never failed on me.
Of course, I didn't mean to imply that the script was broke, only weather.com.
The only reason I use that one is cause their short term forecast is quite accurate, it comes from our local NOAA radar station 10 miles from me. I will look at the others however.
Re: Post your .conkyrc files w/ screenshots
Quote:
Originally Posted by
FrankenCub
Of course, I didn't mean to imply that the script was broke, only weather.com.
The only reason I use that one is cause their short term forecast is quite accurate, it comes from our local NOAA radar station 10 miles from me. I will look at the others however.
No no. You didn't imply it was. It's just, to someone who isn't as up on scripting, is new to Conky, or needs suggestions like the previous poster to yourself, it can seem like it IS broken, solely because it doesn't "Just work for them." A lot of users make that mistake. They copy and paste or arrange things as they were instructed, and something changes, and they don't know if it broke on them or not. The truth is, the script and what they were doing is working perfectly. Nothing is broken, it just needs updating. It's a learning curve thing.
1 Attachment(s)
Re: Post your .conkyrc files w/ screenshots
just getting started but I have all these lines working with out errors at this point that's a plus :)
Code:
background yes
font Snap.se:size=8
xftfont Snap.se:size=8
use_xft yes
xftalpha 0.1
update_interval 1.0
total_run_times 0
own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
draw_shades yes
draw_outline no
draw_borders no
draw_graph_borders no
minimum_size 206 5
maximum_width 300
default_color ffffff
default_shade_color 000000
default_outline_color 000000
alignment top_right
gap_x 6
gap_y 22
no_buffers yes
cpu_avg_samples 2
override_utf8_locale no
uppercase no # set to yes if you want all text to be in uppercase
use_spacer no
# Gap between borders of screen and text
gap_x 10
gap_y 10
# stuff after 'TEXT' will be formatted on screen
TEXT
$color
${font Impact:size=20}${alignr} UBUNTU $font
${color orange}SYSTEM ${hr 2}$color
$nodename $sysname $kernel on $machine
${color orange}CPU ${hr 2}$color
${freq}MHz Load: ${loadavg} Temp: ${acpitemp}
$cpubar
${cpugraph 000000 ffffff}
NAME PID CPU% MEM%
${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}
${color orange}MEMORY / DISK ${hr 2}$color
RAM: $memperc% ${membar 6}$color
Swap: $swapperc% ${swapbar 6}$color
Root: ${fs_free_perc /}% ${fs_bar 6 /}$color
${color magenta}Battery ${hr 4} $color
Power: ${battery_percent}% ${color lightgray}${battery_bar BAT0}$color
Time ${battery_time BAT0}
${color orange}NETWORK (${addr eth0}) ${hr 2}$color
Down: $color${downspeed eth0} k/s ${alignr}Up: ${upspeed eth0} k/s
${downspeedgraph eth0 25,140 000000 ff0000} ${alignr}${upspeedgraph eth0
25,140 000000 00ff00}$color
Total: ${totaldown eth0} ${alignr}Total: ${totalup eth0}
${execi 30 netstat -ept | grep ESTAB | awk '{print $9}' | cut -d: -f1 | sort | uniq -c | sort -nr}
${color orange}LOGGING ${hr 2}$color
${color green}Total: ${color white}${totaldown eth1} ${alignr}${color green}Total: ${color white}${totalup eth1}
${color green}Inbound: ${color white}${tcp_portmon 1 32767 count} ${color green}Outbound: ${color white}${tcp_portmon 32768
61000 count}${alignr}${color green}Total: ${color white}${tcp_portmon 1 65535 count}
Connections ${tcp_portmon 32768 61000 count} ${alignr} Service/Port
${tcp_portmon 32768 61000 rhost 0} ${alignr} ${tcp_portmon 32768 61000 rservice 0}
${tcp_portmon 32768 61000 rhost 1} ${alignr} ${tcp_portmon 32768 61000 rservice 1}
${tcp_portmon 32768 61000 rhost 2} ${alignr} ${tcp_portmon 32768 61000 rservice 2}
${tcp_portmon 32768 61000 rhost 3} ${alignr} ${tcp_portmon 32768 61000 rservice 3}
${tcp_portmon 32768 61000 rhost 4} ${alignr} ${tcp_portmon 32768 61000 rservice 4}
${tcp_portmon 32768 61000 rhost 5} ${alignr} ${tcp_portmon 32768 61000 rservice 5}
${color orange} ${hr 3}$color/
${voffset 5}${font Impact:size=20}${time %I:%M}$font
${voffset -70}${font Impact:size=12}${color1}$alignr${time %A}
$alignr${time %B %d}
$alignr${time %Y}$font
Re: Post your .conkyrc files w/ screenshots
Quote:
Originally Posted by
42dorian
No no. You didn't imply it was. It's just, to someone who isn't as up on scripting, is new to Conky, or needs suggestions like the previous poster to yourself, it can seem like it IS broken, solely because it doesn't "Just work for them." A lot of users make that mistake. They copy and paste or arrange things as they were instructed, and something changes, and they don't know if it broke on them or not. The truth is, the script and what they were doing is working perfectly. Nothing is broken, it just needs updating. It's a learning curve thing.
I can see where it could confuse things some (:-\"thinking back at my first go at a conky :mrgreen:)
3 Attachment(s)
Re: Post your .conkyrc files w/ screenshots
Remodified my modifications again (is that redundant?) I THINK I am happy with my setup, at least for now. Cleaned up code fairly well, I think. I'm using a separate borderrc for the weather because, when drawn in the lua script, the color didn't match the others. Here are the files, (lots of them):
conky_weather
HTML Code:
##############################################
# Settings
##############################################
max_specials 10000
max_user_text 1500000
background no
use_xft yes
#xftfont Sans:size=12
#xftalpha 1
font Mono:size=8
total_run_times 0
own_window yes
own_window_argb_visual yes
own_window_transparent yes
own_window_type normal
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
minimum_size 1550 900
maximum_width 1550
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders yes
default_color white
default_shade_color black
default_outline_color white
alignment top_left
gap_x 0
gap_y 15
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
color1 86acad #darker blue
color2 b1c9c9 #lighter blue
text_buffer_size 100000
top_name_width 10
update_interval 1
lua_load ~/v9000/v9000.lua
lua_draw_hook_pre weather
lua_load ~/v9000/s11templateh.lua
TEXT
v9000.lua:
HTML Code:
--weather v9000 by mrpeachy 01/10/12; released: Feb 29, 2012
require 'cairo'
require 'imlib2'
local username = os.getenv("USERNAME")
--you can enter your username here in case of errors,
--enter username in quotes like this username = "yourname"
local username = "dale"
package.path = '/home/'..username..'/.v9000_config.lua'
require '.v9000_config'
start=1
--INITIALIZE SETTINGS-- need only be run once
settings_table=weather_settings()
--##################################
--######## main function ###########
function conky_weather()--##########
--##################################
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}'))
--###UNCOMMENT THE BELOW LINE TO ENABLE CPU DELAY##########################################################
--if updates>5 then--###### YOU WILL ALSO HAVE TO UNCOMMENT THE MATCHING end ON LINE 923 ####################
--#########################################################################################################
local testing=0--this setting is for script testing, if not in testing set to 0
--#########################################################################################################
--############start of timed section#######################################################################
--#########################################################################################################
local timer=(updates %tonumber(settings_table[1]))
--################################################
if timer==0 or start==1 then--######
start=nil--#######################################
local web=settings_table[2]
local alert_check=settings_table[13]
--################################################
print ("gathering data with curl")
local f=io.popen("curl --max-time 60 '"..web.."' | sed 's/%//g'")
allweatherdata=f:read("*a")
f:close()
allweatherdata=string.gsub(allweatherdata,"[\n\r]","")
testall=string.find(allweatherdata,">10 Day Forecast ")
--CHECK FOR WEATHER ALERTS
if testall~=nil and alert_check==1 then
local alert=string.find(allweatherdata,"Severe Weather Alert!")
if alert~=nil then
print ("getting weather alerts")
--get alert web
local a,b,alertchunk=string.find(allweatherdata,">Local Information</div>(.*)>Severe Weather Alert!<")
local a,b,alertsite=string.find(alertchunk,"><a href=%p(.*)%p><img src=")
local f=io.popen("curl --max-time 60 'http://www.intellicast.com"..alertsite.."' | sed 's/%//g'")
alertdata=f:read("*a")
f:close()
alertdata=string.gsub(alertdata,"[\n\r]","")
alerttest=string.find(alertdata,"%a")
else
print ("you have no weather alerts")
alerttest=0
end--if alert~=nil
else
print ("not checking for alerts")
alerttest=1
end--if testall and alert check
processall=1
end--of timed data gathering section
--#########################################################################
--#########################################################################
--in case curl craps up it should retry until it works
if testall==nil or alerttest==nil then
print ("curl attempt timed out, trying again")
local web=settings_table[2]
local alert_check=settings_table[13]
local f=io.popen("curl --max-time 60 '"..web.."' | sed 's/%//g'")
allweatherdata=f:read("*a")
f:close()
allweatherdata=string.gsub(allweatherdata,"[\n\r]","")
testall=string.find(allweatherdata,">10 Day Forecast ")
--CHECK FOR WEATHER ALERTS
if testall~=nil and alert_check==1 then
local alert=string.find(allweatherdata,"Severe Weather Alert!")
if alert~=nil then
print ("getting weather alerts")
--get alert web
local a,b,alertchunk=string.find(allweatherdata,">Local Information</div>(.*)>Severe Weather Alert!<")
local a,b,alertsite=string.find(alertchunk,"><a href=%p(.*)%p><img src=")
local f=io.popen("curl --max-time 60 'http://www.intellicast.com"..alertsite.."' | sed 's/%//g'")
alertdata=f:read("*a")
f:close()
alertdata=string.gsub(alertdata,"[\n\r]","")
alerttest=string.find(alertdata,"%a")
else
print ("you have no weather alerts")
alerttest=0
end--if alert~=nil
else
print ("not checking for alerts")
alerttest=1
end--if testall and alert_check
processall=1
end--if testall==nil
--end or curl reruns ######################################################
--START PROCESSING ###########################################################################
if testall~=nil and alerttest~=nil and processall==1 then
local weathericons=settings_table[3]
local con_short=settings_table[4]
local visibility_unit=settings_table[6]
local wind_mph_unit=settings_table[7]
local wind_km_unit=settings_table[8]
local wind_kts_unit=settings_table[9]
local ceiling_unit=settings_table[10]
local wind_degrees_unit=settings_table[11]
local translate=settings_table[12]
local alert_check=settings_table[13]
--#########################################################################
--LOAD TRANSLATE TABLES IF TRANSLATE SETTING = 1
if translate==1 then
monthshort=settings_table[21]
monthnames=settings_table[20]
dayhort=settings_table[19]
daynames=settings_table[18]
neswtext=settings_table[14]
tsuffix=settings_table[15]
uvindextext=settings_table[16]
moonphases=settings_table[17]
additional=settings_table[22]
else--neswtext,tsuffix,uvindextext,moonphases,daynames,dayshort,monthnames,monthshort
dayshort={Monday="Mon",Tuesday="Tue",Wednesday="Wed",Thursday="Thu",Friday="Fri",Saturday="Sat",Sunday="Sun"}
monthshort={January="Jan",February="Feb",March="Mar",April="Apr",May="May",June="Jun",July="Jul",August="Aug",September="Sep",October="Oct",November="Nov",December="Dec"}
end--end if translate =1
--#########################################################################
--process data tables
--intellicast to conky weather icon conversion
wimage={
wx_65="32", -- Clear
wx_66="30", -- Partly Cloudy
wx_67="26", -- Cloudy
wx_68="32", -- Clear
wx_69="28", -- Mostly Cloudy
wx_70="20", -- Fog
wx_71="32", -- Clear
wx_72="21", -- Haze
wx_73="36", -- Hot
wx_74="14", -- Light Snow Showers
wx_75="28", -- Mostly Cloudy
wx_76="18", -- Sleet
wx_77="14", -- Light Snow Showers
wx_78="23", -- Blustery
wx_79="05", -- Mixed Rain and Snow
wx_80="15", -- Drifting Snow
wx_81="15", -- Drifting Snow
wx_82="11", -- Light Rain
wx_83="16", -- Snow
wx_84="00", -- Tornado
wx_85="32", -- Clear
wx_86="25", -- N/A
wx_87="09", -- Drizzle
wx_88="05", -- Mixed Rain and Snow
wx_89="18", -- Sleet
wx_90="18", -- Sleet
wx_91="39", -- Scattered Showers
wx_92="39", -- Scattered Showers
wx_93="39", -- Scattered Showers
wx_94="39", -- Scattered Showers
wx_95="37", -- Isolated Thunderstorms
wx_96="37", -- Isolated Thunderstorms
wx_97="31", -- Clear
wx_98="29", -- Partly Cloudy
wx_99="27", -- Mostly Cloudy
wx_100="47", -- Isolated Thunderstorms
wx_101="47", -- Isolated Thunderstorms
wx_102="33", -- Fair
wx_103="26", -- Cloudy
wx_104="20", -- Fog
wx_105="45", -- Scattered Showers
wx_106="45", -- Scattered Showers
wx_107="11", -- Light Rain
wx_108="46", -- Snow Showers
wx_109="46", -- Snow Showers
wx_110="06", -- Mixed Rain and Sleet
wx_111="18", -- Sleet
wx_112="06", -- Mixed Rain and Sleet
wx_113="46", -- Snow Showers
wx_114="46", -- Snow Showers
wx_115="31", -- Clear
wx_116="47", -- Isolated Thunderstorms
}--end w image table
--convert intellicast icons to weather font
wfont={
wx_65="a",
wx_66="c",
wx_67="f",
wx_68="a",
wx_69="d",
wx_70="0",
wx_71="a",
wx_72="9",
wx_73="5",
wx_74="p",
wx_75="d",
wx_76="w",
wx_77="p",
wx_78="6",
wx_79="x",
wx_80="8",
wx_81="8",
wx_82="h",
wx_83="q",
wx_84="m",
wx_85="a",
wx_86="-",
wx_87="h",
wx_88="x",
wx_89="w",
wx_90="w",
wx_91="g",
wx_92="g",
wx_93="g",
wx_94="g",
wx_95="k",
wx_96="k",
wx_97="A",
wx_98="C",
wx_99="D",
wx_100="K",
wx_101="K",
wx_102="B",
wx_103="f",
wx_104="0",
wx_105="G",
wx_106="G",
wx_107="h",
wx_108="O",
wx_109="O",
wx_110="x",
wx_111="w",
wx_112="x",
wx_113="O",
wx_114="O",
wx_115="A",
wx_116="K",
}--end w font table
--conversion day and month tables
moonfontt={
["New"]="@",
["Full"]="=",
["First Quarter"]="T",
["Last Quarter"]="G",
["Waning Gibbous"]="D",
["Waning Crescent"]="J",
["Waxing Crescent"]="Q",
["Waxing Gibbous"]="W",
}--end of moon font table
moonicont={
["New"]=weathericons.."moon_new.png",
["Full"]=weathericons.."moon_full.png",
["First Quarter"]=weathericons.."moon_first_quarter.png",
["Last Quarter"]=weathericons.."moon_last_quarter.png",
["Waning Gibbous"]=weathericons.."moon_waning_gibbous.png",
["Waning Crescent"]=weathericons.."moon_waning_crescent.png",
["Waxing Crescent"]=weathericons.."moon_waxing_crescent.png",
["Waxing Gibbous"]=weathericons.."moon_waxing_gibbous.png",
}--end of moon icon table
windfontt={
S="9",
SSW=":",
SW=";",
WSW="<",
W="=",
WNW=">",
NW="?",
NNW="@",
N="1",
NNE="2",
NE="3",
ENE="4",
E="5",
ESE="6",
SE="7",
SSE="8"
}--end of wind direction font table
--#########################################################################
--#########################################################################
--setup tables for forecast weather
forecast_day={}
forecast_day_caps={}
forecast_day_lc={}
forecast_day_short={}
forecast_day_short_caps={}
forecast_day_short_lc={}
forecast_month={}
forecast_month_caps={}
forecast_month_lc={}
forecast_month_short={}
forecast_month_short_caps={}
forecast_month_short_lc={}
forecast_date={}
weather_icon={}
weather_font={}
high_temp={}
low_temp={}
conditions={}
conditions_caps={}
conditions_lc={}
conditions_short={}
conditions_short_caps={}
conditions_short_lc={}
sun_rise={}
sun_rise_lc={}
sun_rise_time={}
sun_rise_24={}
moon_rise={}
moon_rise_lc={}
moon_rise_time={}
moon_rise_24={}
moon_rise_ampm={}
moon_rise_ampm_lc={}
sun_set={}
sun_set_lc={}
sun_set_time={}
sun_set_24={}
moon_set={}
moon_set_lc={}
moon_set_time={}
moon_set_24={}
moon_set_ampm={}
moon_set_ampm_lc={}
humidity={}
precipitation={}
snow={}
cloud_cover={}
moon_phase={}
moon_phase_caps={}
moon_phase_lc={}
moon_font={}
moon_icon={}
wind_mph={}
wind_km={}
wind_kts={}
wind_font={}
wind_icon={}
wind_deg={}
wind_nesw={}
uv_index_num={}
uv_index_txt={}
uv_index_txt_caps={}
uv_index_txt_lc={}
--#########################################################################
--#########################################################################
--get forecast chunk
local a,b,allweather=string.find(allweatherdata,">10 Day Forecast (.*)>More from Intellicast</div>")
--extract information into tables
local start=0
local f=1
while f~=nil do
--match forecast day name and date
local s,f,t=string.find(allweather,"<td colspan=\"2\"><strong>([%a,%s%d]*)</strong></td>",start)
if t~=nil then
--split name from month and date
local a,b,day=string.find(t,"(%a*),%s")
local a,b,month=string.find(t,",%s(%a*)%s")
local a,b,date=string.find(t,"(%d*)$")
--ser day names, regular, caps, lowercase and short
table.insert(forecast_day_short,dayshort[day])
table.insert(forecast_day_short_caps,string.upper(dayshort[day]))
table.insert(forecast_day_short_lc,string.lower(dayshort[day]))
if translate==1 then
day=daynames[day]
else
day=day
end
table.insert(forecast_day,day)
table.insert(forecast_day_caps,string.upper(day))
table.insert(forecast_day_lc,string.lower(day))
--set month types
table.insert(forecast_month_short,monthshort[month])
table.insert(forecast_month_short_caps,string.upper(monthshort[month]))
table.insert(forecast_month_short_lc,string.lower(monthshort[month]))
if translate==1 then
month=monthnames[month]
else
month=month
end
table.insert(forecast_month,month)
table.insert(forecast_month_caps,string.upper(month))
table.insert(forecast_month_lc,string.lower(month))
--set date
table.insert(forecast_date,date)
end--if t~= nil
--intellicast weather icon match
local s,f,t=string.find(allweather,"40_white/(wx_[%d]*).png\"",start)
--convert to conkyweather icon
if t~=nil then
table.insert(weather_icon,weathericons..wimage[t]..".png")
--convert to weather font
table.insert(weather_font,wfont[t])
end
--match conditions
local s,f,t=string.find(allweather," /><br />([%a%s%p]*)</td>",start)
if t~=nil then
table.insert(conditions,t)
table.insert(conditions_caps,string.upper(t))
table.insert(conditions_lc,string.lower(t))
--set short versions--------------------------------
local cons=t
for k,v in pairs(con_short) do
local cons_length=string.len(cons)
local match_length=string.len(k)
if cons_length==match_length then
cons=string.gsub(cons,k,v)
end
end
table.insert(conditions_short,cons)
table.insert(conditions_short_caps,string.upper(cons))
table.insert(conditions_short_lc,string.lower(cons))
-----------------------------------------------------
end
--match high temp
local s,f,t=string.find(allweather,"\"Hi\">([%p%d]*)°",start)
table.insert(high_temp,t)
--match low temp
local s,f,t=string.find(allweather,"\"Lo\">([%p%d]*)°",start)
table.insert(low_temp,t)
--match sun rise times
local s,f,t=string.find(allweather,"Rise:</strong> (%d*:%d*%s%u%u)</td>",start)
if t~=nil then
--get time only
local a,b,tm=string.find(t,"([%d%p]*)")
--get suffix only
local a,b,suf=string.find(t,"(%u%u)")
--###############################
--24 hour conversion
table.insert(sun_rise_24,convert24(tm,suf))
--###############################
if translate==1 then
suf=tsuffix[suf]
else
suf=suf
end
table.insert(sun_rise,tm.." "..suf)
table.insert(sun_rise_lc,string.lower(tm.." "..suf))
table.insert(sun_rise_time,tm)
end
--match sun set times
local s,f,t=string.find(allweather,"Set:</strong> (%d*:%d*%s%u%u)</td>",f)
if t~=nil then
--get time only
local a,b,tm=string.find(t,"([%d%p]*)")
--get suffix only
local a,b,suf=string.find(t,"(%u%u)")
--###############################
--24 hour conversion
table.insert(sun_set_24,convert24(tm,suf))
--###############################
if translate==1 then
suf=tsuffix[suf]
else
suf=suf
end
table.insert(sun_set,tm.." "..suf)
table.insert(sun_set_lc,string.lower(tm.." "..suf))
table.insert(sun_set_time,tm)
end
--moon rise
local s,f,t=string.find(allweather,"Rise:</strong> (%d*:%d*%s%u%u)</td>",f)
if t~=nil then
--get time only
local a,b,tm=string.find(t,"([%d%p]*)")
--get suffix only
local a,b,suf=string.find(t,"(%u%u)")
--###############################
--24 hour conversion
table.insert(moon_rise_24,convert24(tm,suf))
--###############################
if translate==1 then
suf=tsuffix[suf]
else
suf=suf
end
table.insert(moon_rise,tm.." "..suf)
table.insert(moon_rise_lc,string.lower(tm.." "..suf))
table.insert(moon_rise_time,tm)
table.insert(moon_rise_ampm,suf)
table.insert(moon_rise_ampm_lc,string.lower(suf))
end
--moon set
local s,f,t=string.find(allweather,"Set:</strong> (%d*:%d*%s%u%u)</td>",f)
if t~=nil then
--get time only
local a,b,tm=string.find(t,"([%d%p]*)")
--get suffix only
local a,b,suf=string.find(t,"(%u%u)")
--###############################
--24 hour conversion
table.insert(moon_set_24,convert24(tm,suf))
--###############################
if translate==1 then
suf=tsuffix[suf]
else
suf=suf
end
table.insert(moon_set,tm.." "..suf)
table.insert(moon_set_lc,string.lower(tm.." "..suf))
table.insert(moon_set_time,tm)
table.insert(moon_set_ampm,suf)
table.insert(moon_set_ampm_lc,string.lower(suf))
end
--match uv index
local s,f,tuv=string.find(allweather,"UV Index:</strong>%s*(%d*%s*%([%a%s]*%))%s*<br />",start)
if tuv~=nil then
--get just number
local a,b,unm=string.find(tuv,"(%d*)%s*%([%a%s]*%)")
--get just text
local a,b,utx=string.find(tuv,"%d*%s*%(([%a%s]*)%)")
table.insert(uv_index_num,unm)
if translate==1 then
utx=uvindextext[utx]
else
utx=utx
end
table.insert(uv_index_txt,utx)
table.insert(uv_index_txt_caps,string.upper(utx))
table.insert(uv_index_txt_lc,string.lower(utx))
end
--match humidity
local s,f,t=string.find(allweather,"Humidity:</strong> (%d*)<br />",start)
table.insert(humidity,t)
--match ppt
local s,f,t=string.find(allweather,"Precipitation:</strong> (%d*)<br />",start)
table.insert(precipitation,t)
--match snow %
local s,f,t=string.find(allweather,"Snow Probability:</strong>%s*(%d*)<br />",start)
table.insert(snow,t)
--match cloud coveage
local s,f,t=string.find(allweather,"Cloud Coverage:</strong> (%d*)<br />",start)
table.insert(cloud_cover,t)
--match moon phase
local s,f,t=string.find(allweather,"Moon Phase:</strong> ([%a%s]*) <br />",start)
--set moon phase text
if t~= nil then
--set moon phase font and icon
table.insert(moon_font,moonfontt[t])
table.insert(moon_icon,moonicont[t])
if translate==1 then
t=moonphases[t]
else
t=t
end
table.insert(moon_phase,t)
table.insert(moon_phase_caps,string.upper(t))
table.insert(moon_phase_lc,string.lower(t))
end
--match wind speeds
local s,f,tmph=string.find(allweather,"Wind Speed:</strong> (%d*)Mph",start)
local tmph=tonumber(tmph)
table.insert(wind_mph,tmph)
local s,f,t=string.find(allweather,"Mph%s*%((%d*)Km,",start)
table.insert(wind_km,t)
local s,f,t=string.find(allweather,"Km,%s*(%d*)Kts%)",start)
table.insert(wind_kts,t)
--match wind direction
local s,f,twd=string.find(allweather,"Wind Direction:</strong> ([%d&;%s%(%a%)]*)%s*</div>",start)
if twd~=nil then
local a,b,tdeg=string.find(twd,"(%d*)°")
table.insert(wind_deg,tdeg)
--match wind font and nesw
local a,b,tnesw=string.find(twd,"%((%a*)%)")
table.insert(wind_font,windfontt[tnesw])
if tmph>0 and tmph<19 then
table.insert(wind_icon,weathericons.."green_"..string.lower(tnesw)..".png")
elseif tmph>18 and tmph<38 then
table.insert(wind_icon,weathericons.."yellow_"..string.lower(tnesw)..".png")
elseif tmph>37 and tmph<64 then
table.insert(wind_icon,weathericons.."orange_"..string.lower(tnesw)..".png")
elseif tmph>63 then
table.insert(wind_icon,weathericons.."green_"..string.lower(tnesw)..".png")
elseif tmph==0 then
table.insert(wind_icon,weathericons.."no_wind.png")
end
if translate==1 then
tnesw=neswtext[tnesw]
else
tnesw=tnesw
end
table.insert(wind_nesw,tnesw)
end
if f==nil then break end
start=f
end--while
--#########################################################################################################################################
--#########################################################################
--get location
local a,b,wl=string.find(allweatherdata,"<title>%s*Intellicast%s%p%s(.*)</title>")
weather_location=string.gsub(wl," Extended Forecast in",",")
--#########################################################################
--#########################################################################
--format now weather
--extract current data
--get now weather chunk
local a,b,nowweather=string.find(allweatherdata,">Current Conditions (.*)>View Detailed Observations for the last<br />")
now={}
monthlong={Jan="January",Feb="February",Mar="March",Apr="April",May="May",Jun="June",Jul="July",Aug="August",Sep="September",Oct="October",Nov="November",Dec="December"}
local s,f,tnow=string.find(nowweather,"<div style=\"float:right;color:#666;\"> As of ([%d%p%a%s]*) %(Local Time%)")
local s,f,t=string.find(tnow,"(%d*%p%d*%s%a*) on")
--get time only
local a,b,ntm=string.find(t,"(%d*%p%d*)")
--get suffix only
local a,b,suf=string.find(t,"(%u%u)")
--###############################
--24 hour conversion
now["time_24"]=convert24(ntm,suf)
--###############################
if translate==1 then
suf=tsuffix[suf]
else
suf=suf
end
now["time"]=ntm.." "..suf
now["time_lc"]=string.lower(ntm.." "..suf)
now["time_num"]=ntm
now["time_ampm"]=suf
now["time_ampm_lc"]=string.lower(suf)
--get day
local s,f,t=string.find(tnow,"on (%a*)%s%d*")
if translate==1 then
day=daynames[t]
else
day=t
end
now["day"]=day
now["day_caps"]=string.upper(day)
now["day_lc"]=string.lower(day)
--short day names
local ds=dayshort[t]
now["day_short"]=ds
now["day_short_caps"]=string.upper(ds)
now["day_short_lc"]=string.lower(ds)
--get date
local s,f,t=string.find(tnow,"%s(%d%d)%s")
now["date"]=t
--get months
local s,f,t=string.find(tnow,"%d%d%s(%a*)%s%d")
if translate==1 then
mnth=monthlong[t]
now["month_short"]=monthshort[mnth]
now["month_short_caps"]=string.upper(monthshort[mnth])
now["month_short_lc"]=string.lower(monthshort[mnth])
mnth=monthnames[mnth]
else
now["month_short"]=t
now["month_short_caps"]=string.upper(t)
now["month_short_lc"]=string.lower(t)
mnth=monthlong[t]
end
now["month"]=mnth
now["month_caps"]=string.upper(mnth)
now["month_lc"]=string.lower(mnth)
--get year
local s,f,t=string.find(tnow,"%a%a%a%s(%d%d%d%d)")
now["year"]=t
--get weather icon
local s,f,t=string.find(nowweather,"40_white/(wx_[%d]*)%ppng%p%stitle=%p")
now["weather_icon"]=weathericons..wimage[t]..".png"
now["weather_font"]=wfont[t]
--class=%pIcon%p /> ([%a%s]*)%s*</td>
local s,f,t=string.find(nowweather,"class=%pIcon%p /> ([%a%s%p]*)%s*%s*</td>%s*<td class=%pEmpty%p> ")
local t=t:gsub("^%s*(.-)%s*$", "%1")
now["conditions"]=t
now["conditions_caps"]=string.upper(t)
now["conditions_lc"]=string.lower(t)
--set short versions------------------------
local cons=t
for k,v in pairs(con_short) do
local cons_length=string.len(cons)
local match_length=string.len(k)
if cons_length==match_length then
cons=string.gsub(cons,k,v)
end
end
now["conditions_short"]=cons
now["conditions_short_caps"]=string.upper(cons)
now["conditions_short_lc"]=string.lower(cons)
--------------------------------------------
local s,f,t=string.find(nowweather,"Temperature\">([%p%d]*)°")
now["temp"]=t
local s,f,t=string.find(nowweather,">Feels Like: ([%p%d]*)°</a>")
now["feels_like"]=t
local s,f,t=string.find(nowweather,">Wind Chill: </a></td>%s*<td>([%p%d]*)°</td>")
now["wind_chill"]=t
local s,f,t=string.find(nowweather,">Ceiling: </a></td>%s*<td>([%a%d]*)</td>")
if t~="Unl" then
local s,f,t=string.find(t,"([%d%p]*)")
tc=t..ceiling_unit
else
if translate==1 then unlset=additional.Unl else unlset=t end
tc=unlset
end
now["ceiling"]=tc
now["ceiling_caps"]=string.upper(tc)
now["ceiling_lc"]=string.lower(tc)
--get heat index
local s,f,t=string.find(nowweather,">Heat Index: </a></td>%s*<td>([%p%d]*)°</td>")
now["heat_index"]=t
--get visibility
local s,f,t=string.find(nowweather,">Visibility: </a></td>%s*<td>([%a%d%p]*)</td>")
if t~="Unl" then
local s,f,t=string.find(t,"([%d%p]*)")
tv=t..visibility_unit
else
if translate==1 then unlset=additional.Unl else unlset=t end
tv=unlset
end
now["visibility"]=tv
now["visibility_caps"]=string.upper(tv)
--get dew point
local s,f,t=string.find(nowweather,">Dew Point: </a></td>%s*<td>([%p%d]*)°</td>")
now["dew_point"]=t
--get wind speed
local s,f,t=string.find(nowweather,">Wind: </a></td>%s*<td>(%d*)mph</td>")
local tmph=tonumber(t)
now["wind_mph"]=t..wind_mph_unit
now["wind_mph_caps"]=string.upper(t..wind_mph_unit)
--convert mph to km and knots #################################################
--[[1 mile per hour = 0.869 international nautical mile per hour (knot)
1 mile per hour = 1.609 kilometers per hour
1 mile per hour = 0.4470 meter per second
1 knot = 1.852 kilometers per hour
1 knot = 0.5144 meter per second
1 meter per second = 3.6 kilometers per hour]]
now["wind_km"]=round(tonumber(t)*1.609)..wind_km_unit
now["wind_km_caps"]=string.upper(round(tonumber(t)*1.609)..wind_km_unit)
now["wind_kts"]=round(tonumber(t)*0.869)..wind_kts_unit
now["wind_kts_caps"]=string.upper(round(tonumber(t)*0.869)..wind_kts_unit)
--#############################################################################
local s,f,t=string.find(nowweather,">Humidity: </a></td>%s*<td>(%d*)</td>")
now["humidity"]=t
--get wind direction #######################################################
local s,f,twd=string.find(nowweather,">Direction: </a></td>%s*<td style=[%p%a]*>([%d&;%s%(%a%)]*)</td>%s*</tr>")
--check for NA
local a,b,t=string.find(twd,"(%a*)")
local tnesw=t
if tnesw~="NA" then
local a,b,t=string.find(twd,"(%d*)°")
now["wind_deg"]=t..wind_degrees_unit
local a,b,tnesw=string.find(twd,"%((%a*)%)")
if tmph>0 and tmph<19 then
now["wind_icon"]=weathericons.."green_"..string.lower(tnesw)..".png"
elseif tmph>18 and tmph<38 then
now["wind_icon"]=weathericons.."yellow_"..string.lower(tnesw)..".png"
elseif tmph>37 and tmph<64 then
now["wind_icon"]=weathericons.."orange_"..string.lower(tnesw)..".png"
elseif tmph>63 then
now["wind_icon"]=weathericons.."green_"..string.lower(tnesw)..".png"
end
now["wind_font"]=windfontt[tnesw]
--################################
if translate==1 then
tnesw=neswtext[tnesw]
else
tnesw=tnesw
end
--################################
now["wind_nesw"]=tnesw
else
if translate==1 then naset=additional.NA else naset="NA" end
now["wind_deg"]=naset
now["wind_icon"]=weathericons.."no_wind.png"
now["wind_nesw"]=naset
now["wind_font"]=windfontt["N"]
end
--END WIND DIRECTION #######################################################
--get pressure
local s,f,t=string.find(nowweather,">Pressure: </a></td>%s*<td>([%d%p]*)\"</td>")
now["pressure"]=t
--convert pressures ########################################################
--[[ 1 inch of mercury = 25.4 mm of mercury = 33.86 millibars
= 33.86 hectoPascals]]
now["pressure_mb"]=round(tonumber(t))
--##########################################################################
local s,f,t=string.find(nowweather,">Gusts: </a></td>%s*<td>([%d%a]*)</td>")
if t~="NA" then
local s,f,t=string.find(t,"(%d*)")
tg=t..wind_mph_unit
tgkm=round(tonumber(t)*1.609)..wind_km_unit
tgkts=round(tonumber(t)*0.869)..wind_kts_unit
else
if translate==1 then naset=additional.NA else naset="NA" end
tg=naset
tgkm=naset
tgkts=naset
end
now["wind_gusts"]=tg
now["wind_gusts_caps"]=string.upper(tg)
now["wind_gusts_km"]=tgkm
now["wind_gusts_km_caps"]=string.upper(tgkm)
now["wind_gusts_kts"]=tgkts
now["wind_gusts_kts_caps"]=string.upper(tgkts)
--##########################################################################
--get hourly forecast options hour1--------------------
--get day 1 bit
local s,f,hfc=string.find(nowweather,"<td class=%pHour%p%sstyle=%ppadding%pleft([%a%d%p%s]*)%pdeg%p</strong>",1)
--get time and conditions
--<strong>1 PM</strong><br />%s*P Cloudy%s*</td>%s*<td class=%pHour%p
local a,b,tm=string.find(hfc,"<strong>([%d%p]*)[%s%a]*</strong><br",1)
local a,b,suf=string.find(hfc,"<strong>[%d%p%s]*([%a]*)</strong><br",1)
--24 hour conversion ######################
now["fc_hour1_time_24"]=convert24(tm,suf)
--#########################################
if translate==1 then
suf=tsuffix[suf]
else
suf=suf
end
now["fc_hour1_time"]=tm
now["fc_hour1_ampm"]=suf
now["fc_hour1_ampm_lc"]=string.lower(suf)
local a,b,t=string.find(hfc,"</strong><br%s/>%s*([%p%s%a]*)%s*</td>%s*<td class=%pHour%p",1)
now["fc_hour1_cond"]=t
now["fc_hour1_cond_lc"]=string.lower(t)
now["fc_hour1_cond_caps"]=string.upper(t)
----------set short versions--------------------------------
local cons=t
for k,v in pairs(con_short) do
local cons_length=string.len(cons)
local match_length=string.len(k)
if cons_length==match_length then
cons=string.gsub(cons,k,v)
end
end
now["fc_hour1_cond_short"]=cons
now["fc_hour1_cond_short_caps"]=string.upper(cons)
now["fc_hour1_cond_short_lc"]=string.lower(cons)
-------------------------------------------------------------
--get weather icon and font
local a,b,t=string.find(hfc,"32_white/(wx_[%d]*)%ppng%p%stitle=%p",1)
now["fc_hour1_wicon"]=weathericons..wimage[t]..".png"
now["fc_hour1_wfont"]=wfont[t]
--get temperature
--><strong>-5°</strong></td>
local a,b,t=string.find(hfc,"><strong>([%p%d]*)°</strong></td>",1)
now["fc_hour1_temp"]=t
--end of hour1 data gathering--repeat 2 more times
--get hourly forecast options hour2--------------------
local start=tonumber(b)
--get time and conditions
--<strong>1 PM</strong><br />%s*P Cloudy%s*</td>%s*<td class=%pHour"%p
local a,b,tm=string.find(hfc,"<strong>([%d%p]*)[%s%a]*</strong><br",start)
local a,b,suf=string.find(hfc,"<strong>[%d%p%s]*([%a]*)</strong><br",start)
--24 hour conversion ######################
now["fc_hour2_time_24"]=convert24(tm,suf)
--#########################################
if translate==1 then
suf=tsuffix[suf]
else
suf=suf
end
now["fc_hour2_time"]=tm
now["fc_hour2_ampm"]=suf
now["fc_hour2_ampm_lc"]=string.lower(suf)
local a,b,t=string.find(hfc,"</strong><br%s/>%s*([%a%s%p]*)%s*</td>%s*<td class=%pHour%p",start)
now["fc_hour2_cond"]=t
now["fc_hour2_cond_lc"]=string.lower(t)
now["fc_hour2_cond_caps"]=string.upper(t)
----------set short versions--------------------------------
local cons=t
for k,v in pairs(con_short) do
local cons_length=string.len(cons)
local match_length=string.len(k)
if cons_length==match_length then
cons=string.gsub(cons,k,v)
end
end
now["fc_hour2_cond_short"]=cons
now["fc_hour2_cond_short_caps"]=string.upper(cons)
now["fc_hour2_cond_short_lc"]=string.lower(cons)
-------------------------------------------------------------
--get weather icon and font
local a,b,t=string.find(hfc,"32_white/(wx_[%d]*)%ppng%p%stitle=%p",start)
now["fc_hour2_wicon"]=weathericons..wimage[t]..".png"
now["fc_hour2_wfont"]=wfont[t]
--get temperature
--><strong>-5°</strong></td>
local a,b,t=string.find(hfc,"><strong>([%p%d]*)°</strong></td>",start)
now["fc_hour2_temp"]=t
--end of hour2 data gathering--repeat 1 more times
--get hourly forecast options hour3--------------------
local start=tonumber(b)
--get time and conditions
--<strong>1 PM</strong><br />%s*P Cloudy%s*</td>%s*<td class=%pHour"%p
local a,b,tm=string.find(hfc,"<strong>([%d%p]*)[%s%a]*</strong><br",start)
local a,b,suf=string.find(hfc,"<strong>[%d%p%s]*([%a]*)</strong><br",start)
--24 hour conversion ######################
now["fc_hour3_time_24"]=convert24(tm,suf)
--#########################################
if translate==1 then
suf=tsuffix[suf]
else
suf=suf
end
now["fc_hour3_time"]=tm
now["fc_hour3_ampm"]=suf
now["fc_hour3_ampm_lc"]=string.lower(suf)
local a,b,t=string.find(hfc,"</strong><br%s/>%s*([%a%s%p]*)%s*</td>%s*<td class=%pHour%p",start)
now["fc_hour3_cond"]=t
now["fc_hour3_cond_lc"]=string.lower(t)
now["fc_hour3_cond_caps"]=string.upper(t)
----------set short versions--------------------------------
local cons=t
for k,v in pairs(con_short) do
local cons_length=string.len(cons)
local match_length=string.len(k)
if cons_length==match_length then
cons=string.gsub(cons,k,v)
end
end
now["fc_hour3_cond_short"]=cons
now["fc_hour3_cond_short_caps"]=string.upper(cons)
now["fc_hour3_cond_short_lc"]=string.lower(cons)
-------------------------------------------------------------
--get weather icon and font
local a,b,t=string.find(hfc,"32_white/(wx_[%d]*)%ppng%p%stitle=%p",start)
now["fc_hour3_wicon"]=weathericons..wimage[t]..".png"
now["fc_hour3_wfont"]=wfont[t]
--get temperature
--><strong>-5°</strong></td>
local a,b,t=string.find(hfc,"><strong>([%p%d]*)",start)
now["fc_hour3_temp"]=t
--end of hour3 data gathering--finished for all hours
--ALERTS###############################################################
if alert_check==1 then
--set tables
alert_type={}
alert_issued={}
if alerttest~=0 then
alert_icon=weathericons.."icon_alert_1.gif"
--extract information into tables
local start=0
local f=1
while f~=nil do
local s,f,t=string.find(alertdata,"><strong class='Alert'>([%a%s]*)</strong><br/>",start)
if t~=nil then
table.insert(alert_type,string.upper(t))
end--if t~=nil
local s,f,t=string.find(alertdata,"<br />([%d%a%s:]*)<br /><br />",start)
if t~=nil then
table.insert(alert_issued,t)
end--if t~=nil
if f==nil then break end
start=f
alert_number=#alert_type
end--while
else
alert_icon=weathericons.."icon_alert_0.gif"
table.insert(alert_type,"NO ALERTS")
table.insert(alert_issued,"")
alert_number=0
end--alerttest~=nil
else
alert_type={}
alert_issued={}
alert_icon=weathericons.."icon_alert_0.gif"
table.insert(alert_type,"alerts turned off")
table.insert(alert_issued,"")
alert_number=0
end--if alert check ###########################################
--###############end of data processing########################
--#########################################################################
if testing==0 then
processall=0
print ("processing complete")
elseif testing==1 then
processall=1
end--if testing ==0
--###################################################################################
end--of data processing section #####################################################
--###################################################################################
if processall==0 or testing==1 then
_G.weather_script()
end
--#########################################################################################################
--###UNCOMMENT THE BELOW LINE TO ENABLE CPU DELAY##########################################################
--end--####### end of if updates>5 #############################
--#########################################################################################################
cairo_destroy(cr)
cairo_surface_destroy(cs)
cr=nil
--######################################
end-- end main function ################
--######################################
function round(num)
local idp=tonumber(settings_table[5])
local mult = 10^(idp or 0)
return math.floor(num * mult + 0.5) / mult
end--of round function #################################################################
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--string split #######################################################################
function xout(txj)--c,a,f,fs,x,y,txt,j ##################################################
c=nil
c=(txj.c or default_color)
a=nil
a=(txj.a or default_alpha)
f=nil
f=(txj.f or default_font)
fs=nil
fs=(txj.fs or default_font_size)
x=nil
x=(txj.x or 0)
y=nil
y=(txj.y or 0)
txt=nil
txt=(txj.txt or "set txt")
j=nil
j=(txj.j or "l")
local function col(c,a)
return ( (c/0x10000) % 0x100)/255,( (c/0x100) % 0x100)/255,(c % 0x100)/255,a
end--local function
cairo_select_font_face (cr, f, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
cairo_set_font_size (cr, fs)
local text=string.gsub(txt," ","_")
extents=cairo_text_extents_t:create()
cairo_text_extents(cr,text,extents)
local wx=extents.width
cairo_set_source_rgba (cr,col(c,a))
if j=="l" then
cairo_move_to (cr,x,y)
adx=wx
elseif j=="c" then
cairo_move_to (cr,x-(wx/2),y)
adx=wx/2
elseif j=="r" then
cairo_move_to (cr,x-wx,y)
adx=0
end
cairo_show_text (cr,txt)
cairo_stroke (cr)
nextx=nil
nextx=adx+x
return nextx
end--function xout ###################################################################
function out(tx)--####################################################################
c=nil
c=(tx.c or default_color)
a=nil
a=(tx.a or default_alpha)
f=nil
f=(tx.f or default_font)
fs=nil
fs=(tx.fs or default_font_size)
x=nil
x=(tx.x or 0)
y=nil
y=(tx.y or 0)
txt=nil
txt=(tx.txt or "set txt")
local function col(c,a)
return ( (c/0x10000) % 0x100)/255,( (c/0x100) % 0x100)/255,(c % 0x100)/255,a
end--local function
cairo_select_font_face (cr, f, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
cairo_set_font_size (cr, fs)
cairo_set_source_rgba (cr,col(c,a))
cairo_move_to (cr,x,y)
cairo_show_text (cr,txt)
cairo_stroke (cr)
end--function out ###################################################################
function image(im)--#################################################################
x=nil
x=(im.x or 0)
y=nil
y=(im.y or 0)
w=nil
w=(im.w or default_image_width)
h=nil
h=(im.h or default_image_height)
file=nil
file=tostring(im.file)
if file==nil then print("set image file") end
---------------------------------------------
local 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
imlib_context_set_image(show)
local 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(x, y)
imlib_free_image()
show=nil
end--function image ##################################################################
function convert24(tm,suf)
local tmlen=string.len(tm)
local colon=string.find(tm,":")
if colon~=nil then
tmhr=string.sub(tm,1,colon-1)
tmmn=string.sub(tm,colon+1,tmlen)
else
tmhr=tm
tmmn=""
end
if suf=="PM" and tonumber(tmhr)~=12 then
tmhr=tmhr+12
elseif suf=="PM" and tonumber(tmhr)==12 then
tmhr=12
elseif suf=="AM" and tonumber(tmhr)<10 then
tmhr="0"..tmhr
elseif suf=="AM" and tonumber(tmhr)>=10 and tonumber(tmhr)~=12 then
tmhr=tmhr
elseif suf=="AM" and tonumber(tmhr)==12 then
tmhr="00"
end
if colon~=nil then
return tmhr..":"..tmmn
else
return tmhr
end--if colon~=nil
end--of function
--END OF SCRIPT
v9000_config.lua:
HTML Code:
--SETTINGS AND PREFERENCES--SETTINGS AND PREFERENCES--SETTINGS AND PREFERENCES
function weather_settings()--#### DO NOT EDIT THIS LINE #################
--#######################################################################
--[[set update interval. update interval is based on conky cycles
if your conkyrc has an update_interval of 1, ie updates every second
then if you enter 60 below, the script will update every 60 seconds
however, if your conkyrc update_interval is 10, then by setting 60 below,
v9000 will update every 600 seconds (10 minutes)]]
local update_interval=1800 --avoid an interval of 1
--get web address by going to the intellicast site and entering your location in the box
--click on "Extended Forecast" to get the necessary address
local web="http://www.intellicast.com/Local/Weather.aspx?location=USGA0333"--insert unit=C& after aspx? for C
--set location of weather images (replace "benjamin" with your own username)
local weathericons="/home/benjamin/v9000/additional_files/weathericons/"
--short conditions setup
--this section allows you to set your own shorter terms to replace the terms foud in conditions
--to use for current: now["conditions_short"], now["conditions_short_caps"], now["conditions_short_lc"]
--to use for forecast: conditions_short[n], conditions_short_caps[n], conditions_short_lc[n]
--ALSO USE THIS TABLE TO ENTER CONDITIONS TRANSLATIONS
con_short={--start of table, put entries below in form eg: ["Thunderstorm"]="T.Strm",
["Wind Early"]="Wnd AM",
["Snow Showers"]="Sn Shws",
["Thunderstorm"]="T.Strm",--remember to put a comma at the end of every entry
["Scattered"]="Scat",
["Few Snow Showers"]="Fw Sn Shws",
["Wind"]="Wnd",
["Showers"]="Shws",
["Isolated Thunderstorms"]="Iso. T.Strm",
["Scattered Thunderstorms"]="Scat. T.Strm",
}--this bracket closes the table
--the script is capable of converting between several unit types
--set how many decimal places you want the conversions to show
local decimal_places=1
--some weather data options need to come with their own units attached as they can be NA on occasion
--set here what you want to have for units, or set "" for nothing
--include spaces, if desired, for formatting purposes.
--NOTE ALSO EDIT THESE SETTINGS FOR TRANSLATION PURPOSES
local visibility_unit=" mi"
local wind_mph_unit=" mph"
local wind_km_unit=" kmh"
local wind_kts_unit=" kts"
local ceiling_unit=" ft"
local wind_degrees_unit="°"
--do you want the script to use translation tables?
--set 1 if you want to translate, 0 if not.
--the translation tables are located below
local translate=1
--set alerts on or off, set to 0 so that the script does not check for alerts
--set 1 to check for alerts
local alert_check=1
--#######################################################################
--TRANSLATION TABLES, activate by setting translate=1 above
--use con_short table above to translate weather conditions
--edit units settings above to complete translation
--translate NESW text
neswtext={
S="t_S",
SSW="tsetSSW",
SW="t_SW",
WSW="t_WSW",
W="t_W",
WNW="t_WNW",
NW="t_NW",
NNW="t_NNW",
N="t_N",
NNE="t_NNE",
NE="t_NE",
ENE="t_ENE",
E="t_E",
ESE="t_ESE",
SE="t_SE",
SSE="t_SSE",
}--end of N E S W text table
--translate time suffix
tsuffix={
AM="t_AM",
PM="t_PM",
}--end of time suffix table
--enter translations for uv index text
uvindextext={
["Low"]="t_Low",
["Moderate"]="t_Moderate",
["High"]="t_High",
["Very High"]="t_Very High",--format is different because of the space in the text
["Extreme"]="t_Extreme",
}--end of uv text table
--enter translations for moonpahse
moonphases={
["New"]="t_New",
["Full"]="t_Full",
["First Quarter"]="t_First Quarter",
["Last Quarter"]="t_Last Quarter",
["Waning Gibbous"]="t_Waning Gibbous",
["Waning Crescent"]="t_Waning Crescent",
["Waxing Crescent"]="t_Waxing Crescent",
["Waxing Gibbous"]="t_Waxing Gibbous",
}--end of moon phase table
--enter translations for FULL day names
daynames={
Monday="t_Monday",
Tuesday="t_Tuesday",
Wednesday="t_Wednesday",
Thursday="t_Thursday",
Friday="t_Friday",
Saturday="t_Saturday",
Sunday="t_Sunday",
}--end day names table
--enter translations for SHORT day names
dayshort={
Monday="t_Mon",
Tuesday="t_Tue",
Wednesday="t_Wed",
Thursday="t_Thu",
Friday="t_Fri",
Saturday="t_Sat",
Sunday="t_Sun"
}--end short day names table
--enter translation for FULL month names
monthnames={
January="t_January",
February="t_February",
March="t_March",
April="t_April",
May="t_May",
June="t_June",
July="t_July",
August="t_August",
September="t_September",
October="t_October",
November="t_November",
December="t_December"
}--end of month name translations
--enter translations for SHORT month names
monthshort={
January="t_Jan",
February="t_Feb",
March="t_Mar",
April="t_Apr",
May="t_May",
June="t_Jun",
July="t_Jul",
August="t_Aug",
September="t_Sep",
October="t_Oct",
November="t_Nov",
December="t_Dec"
}--end of short month name translations
--enter some additional translations
additional={
NA="t_NA",
Unl="t_Unl"--for ceiling data option
}--end of additional translations
--END OF TRANSLATION TABLES
--#######################################################################
--NOTE if you make changes to these settings, they will only take effect at the next weather update
--or after killall conky and restart
--#######################################################################
if translate==1 then
return {update_interval,web,weathericons,con_short,decimal_places,visibility_unit,wind_mph_unit,wind_km_unit,wind_kts_unit,ceiling_unit,wind_degrees_unit,translate,alert_check,neswtext,tsuffix,uvindextext,moonphases,daynames,dayshort,monthnames,monthshort,additional}
else
return {update_interval,web,weathericons,con_short,decimal_places,visibility_unit,wind_mph_unit,wind_km_unit,wind_kts_unit,ceiling_unit,wind_degrees_unit,translate,alert_check}
end
end--OF SETTINGS AND PREFERENCES ########################################
--#######################################################################
s11templateh.lua:
HTML Code:
--[[
The latest script is a lua only weather script. aka: v9000
http://crunchbanglinux.org/forums/topic/16100/weather-in-conky/
the file:
http://dl.dropbox.com/u/19008369/v9000.tar.gz
mrppeachys LUA Tutorial
http://crunchbanglinux.org/forums/topic/17246/how-to-using-lua-scripts-in-conky/
]]
_G.weather_script = function()--#### DO NOT EDIT THIS LINE ##############
--these tables hold the coordinates for each repeat do not edit #########
top_left_x_coordinate={}--###############################################
top_left_y_coordinate={}--###############################################
--#######################################################################
--SET DEFAULTS ##########################################################
--set defaults do not localise these defaults if you use a seperate display script
default_font="Anonymous Pro:bold"--font must be in quotes
default_font_size=11
default_color=0xffffff--white
default_alpha=1--fully opaque
default_image_width=50
default_image_height=50
--END OF DEFAULTS #######################################################
--START OF WEATHER CODE -- START OF WEATHER CODE -- START OF WEATHER CODE
--out({c=0x75b3d1,a=1,f="Ubuntu:Bold",fs=20,x=10,y=32,txt=weather_location})
out({c=0xffd700,a=1,f="Anonymous Pro:bold",fs=11,x=70,y=844,txt=now["date"].." "..now["month_short"].." "..now["year"]..": Fetched @ "..now["time"]})
image({x=20,y=50,h=45,w=45,file=now["weather_icon"]})
image({x=95,y=50,w=40,h=40,file=now["wind_icon"]})
-- Temp / FeelsLike & CONDITIONS TEXT
out({c=0xffd700,a=1,f="Digital-7",fs=50,x=150,y=92,txt=now["temp"]})
out({c=0x00BFFF,a=1,f="Digital-7",fs=50,x=215,y=92,txt=now["feels_like"]})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=155,y=55,txt="Temp:"})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=210,y=55,txt="Feels Like:"})
out({c=0x75b3d1,a=1,f="Zekton",fs=18,x=10,y=110,txt=now["conditions"]})
-- data titles
-- data output
datay=125 -- y=datay or
dataadd=15 -- y=datay+(dataadd*1) use 1 or more
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=160,y=datay+(dataadd*2),txt="Wind Chill:"})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=11,x=227,y=datay+(dataadd*2),txt=now["wind_chill"].."°"})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=160,y=datay+(dataadd*1),txt="Heat Index:"})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=11,x=227,y=datay+(dataadd*1),txt=now["heat_index"].."°"})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=10,y=datay,txt="Today's Hi:"})
out({c=0xffd700,a=1,f="Anonymous Pro:bold",fs=11,x=80,y=datay,txt=high_temp[1].."°"})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=160,y=datay,txt="Today's Lo:"})
out({c=0x00BFFF,a=1,f="Anonymous Pro:bold",fs=11,x=227,y=datay,txt=low_temp[1].."°"})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=10,y=datay+(dataadd*1),txt="Wind:"})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=11,x=80,y=datay+(dataadd*1),txt=now["wind_nesw"].."@"..now["wind_mph"]})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=10,y=datay+(dataadd*2),txt="Humidity:"})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=11,x=80,y=datay+(dataadd*2),txt=now["humidity"].."%"})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=160,y=datay+(dataadd*3),txt="Dew Point:"})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=11,x=227,y=datay+(dataadd*3),txt=now["dew_point"].."°"})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=10,y=datay+(dataadd*3),txt="Barometer:"})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=11,x=80,y=datay+(dataadd*3),txt=now["pressure_mb"].." in"})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=10,y=datay+(dataadd*4),txt="Ceiling:"})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=11,x=80,y=datay+(dataadd*4),txt=now["ceiling"]})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=160,y=datay+(dataadd*4),txt="Visibility:"})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=11,x=227,y=datay+(dataadd*4),txt=now["visibility"]})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=10,y=datay+(dataadd*5),txt="Precip:"})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=11,x=80,y=datay+(dataadd*5),txt=precipitation[1].."%"})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=160,y=datay+(dataadd*5),txt="Cloud Cvr:"})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=11,x=227,y=datay+(dataadd*5),txt=cloud_cover[1].."%"})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=10,y=datay+(dataadd*6),txt="Sunrise:"})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=11,x=80,y=datay+(dataadd*6),txt=sun_rise_time[1]})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=160,y=datay+(dataadd*6),txt="Sunset:"})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=11,x=227,y=datay+(dataadd*6),txt=sun_set_time[1]})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=10,y=datay+(dataadd*7),txt="Moon Rise:"})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=11,x=80,y=datay+(dataadd*7),txt=moon_rise_time[1]})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=160,y=datay+(dataadd*7),txt="Moon Set:"})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=11,x=227,y=datay+(dataadd*7),txt=moon_set_time[1]})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=14,x=50,y=datay+(dataadd*8)+10,txt="Moon Phase:"})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=14,x=142,y=datay+(dataadd*8)+10,txt=moon_phase[1]})
-- line
image({x=275,y=55,w=1,h=200,file="/home/dale/Pictures/border2.png"})
-- 3 hour output
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=12,x=285,y=60,txt="Next 3"})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=12,x=285,y=75,txt="Hours:"})
-- 1st hour
out({c=0x75b3d1,x=285,y=95,txt=now["fc_hour1_time"].." "..now["fc_hour1_ampm"]})
image({w=25,h=25,x=288,y=98,file=now["fc_hour1_wicon"]})
out({x=293,y=135,txt=now["fc_hour1_temp"] .."°"})
-- 2nd hour
out({c=0x75b3d1,x=285,y=150,txt=now["fc_hour2_time"].." "..now["fc_hour2_ampm"]})
image({w=25,h=25,x=288,y=153,file=now["fc_hour2_wicon"]})
out({x=293,y=190,txt=now["fc_hour2_temp"] .."°"})
-- 3rd hour
out({c=0x75b3d1,x=285,y=205,txt=now["fc_hour3_time"].." "..now["fc_hour3_ampm"]})
image({w=25,h=25,x=288,y=208,file=now["fc_hour3_wicon"]})
out({x=293,y=datay+(dataadd*8),txt=now["fc_hour3_temp"] .."°"})
-- line
--start or weather forecast table section
--set start forecast day
start_day=1
--set total forecast days you want to display
number_of_days=8
topy=287
topyy=70 -- topy+(topyy*1)
topx=15
topxx=165
--set coordinates for top lef corners for each repeat
top_left_x_coordinate[1],top_left_y_coordinate[1] =topx ,topy
top_left_x_coordinate[2],top_left_y_coordinate[2] =topx ,topy+(topyy*1)
top_left_x_coordinate[3],top_left_y_coordinate[3] =topx ,topy+(topyy*2)
top_left_x_coordinate[4],top_left_y_coordinate[4] =topx ,topy+(topyy*3)
top_left_x_coordinate[5],top_left_y_coordinate[5] =topx ,topy+(topyy*4)
top_left_x_coordinate[6],top_left_y_coordinate[6] =topx ,topy+(topyy*5)
top_left_x_coordinate[7],top_left_y_coordinate[7] =topx ,topy+(topyy*6)
top_left_x_coordinate[8],top_left_y_coordinate[8] =topx ,topy+(topyy*7)
--top_left_x_coordinate[9],top_left_y_coordinate[9] =topx+(topxx*3) ,topy+(topyy*3)
-- top_left_x_coordinate[10],top_left_y_coordinate[10] =topx+(topxx*4) ,topy+(topyy*3)
--########################################################################################
for i=start_day,number_of_days-(start_day-1) do --start of day repeat, do not edit #######
tlx=top_left_x_coordinate[i] --sets top left x position for each repeat ##################
tly=top_left_y_coordinate[i] --sets top left y position for each repeat ##################
--########################################################################################
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=15,x=tlx+15,y=tly,txt=forecast_day_short[i].." "..forecast_month_short[i].." "..forecast_date[i]})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=15,x=tlx+135,y=tly,txt=conditions_short[i]})
image({x=tlx+15,y=tly+5,h=40,w=40,file=weather_icon[i]})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=tlx+65,y=tly+14,txt="HIGH:"})
out({c=0xffd700,a=1,f="Anonymous Pro:bold",fs=11,x=tlx+100,y=tly+14,txt=high_temp[i].."°"})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=tlx+145,y=tly+14,txt="LOW:"})
out({c=0x00BFFF,a=1,f="Anonymous Pro:bold",fs=11,x=tlx+178,y=tly+14,txt=low_temp[i].."°"})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=tlx+65,y=tly+42,txt="Prec:"})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=11,x=tlx+100,y=tly+42,txt=precipitation[i].."%"})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=tlx+65,y=tly+28,txt="Hum:"})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=11,x=tlx+100,y=tly+28,txt=humidity[i].."%"})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=tlx+145,y=tly+27,txt="Sunrise:"})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=11,x=tlx+193,y=tly+27,txt=sun_rise[i]})
out({c=0x75b3d1,a=1,f="Anonymous Pro:bold",fs=11,x=tlx+145,y=tly+42,txt="Sunset:"})
out({c=0xe5e5e5,a=1,f="Anonymous Pro:bold",fs=11,x=tlx+193,y=tly+42,txt=sun_set[i]})
--########################################################################################
end--of forecast repeat section ##########################################################
--########################################################################################
--END OF WEATHER CODE ----END OF WEATHER CODE ----END OF WEATHER CODE ---
--#######################################################################
end--of weather_display function do not edit this line ##################
--#######################################################################
weather-borderrc:
HTML Code:
# Create own window instead of using desktop (required in nautilus)
own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorated,below,skip_taskbar,skip_pager
# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes
# fiddle with window
use_spacer yes
use_xft yes
# Update interval in seconds
update_interval 3
# Minimum size of text area
minimum_size 335 900
maximum_width 335
override_utf8_locale yes
# Draw shades?
draw_shades no
# Text stuff
draw_outline no # amplifies text if yes
draw_borders no
xftfont AriaLow:size=8
uppercase no # set to yes if you want all text to be in uppercase
# Stippled borders?
stippled_borders 3
# border margins
border_margin 9
# border width
border_width 10
# Default colors and also border colors, grey90 == #e5e5e5
default_color 848484
own_window_colour brown
own_window_transparent yes
# 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 0
gap_y 17
imlib_cache_size 0
# stuff after 'TEXT' will be formatted on screen
TEXT
${font Ubuntu:Bold:size=16}${goto 20}${color 75b3d1}Weather for Loganville,GA${color}${font}
${voffset -5}${hr 3}
${image /home/dale/Pictures/border2.png -p 332,27 -s 3x810}
${image /home/dale/Pictures/border-2.png -p 5,241 -s 20x20}
${image /home/dale/Pictures/border-2.png -p 300,241 -s 20x20}
${image /home/dale/Pictures/border2.png -p 15,250 -s 295x2}
${image /home/dale/Pictures/border-2.png -p 5,311 -s 20x20}
${image /home/dale/Pictures/border-2.png -p 300,311 -s 20x20}
${image /home/dale/Pictures/border2.png -p 15,320 -s 295x2}
${image /home/dale/Pictures/border-2.png -p 5,381 -s 20x20}
${image /home/dale/Pictures/border-2.png -p 300,381 -s 20x20}
${image /home/dale/Pictures/border2.png -p 15,390 -s 295x2}
${image /home/dale/Pictures/border-2.png -p 5,451 -s 20x20}
${image /home/dale/Pictures/border-2.png -p 300,451 -s 20x20}
${image /home/dale/Pictures/border2.png -p 15,460 -s 295x2}
${image /home/dale/Pictures/border-2.png -p 5,521 -s 20x20}
${image /home/dale/Pictures/border-2.png -p 300,521 -s 20x20}
${image /home/dale/Pictures/border2.png -p 15,530 -s 295x2}
${image /home/dale/Pictures/border-2.png -p 5,591 -s 20x20}
${image /home/dale/Pictures/border-2.png -p 300,591 -s 20x20}
${image /home/dale/Pictures/border2.png -p 15,600 -s 295x2}
${image /home/dale/Pictures/border-2.png -p 5,661 -s 20x20}
${image /home/dale/Pictures/border-2.png -p 300,661 -s 20x20}
${image /home/dale/Pictures/border2.png -p 15,670 -s 295x2}
${image /home/dale/Pictures/border-2.png -p 5,731 -s 20x20}
${image /home/dale/Pictures/border-2.png -p 300,731 -s 20x20}
${image /home/dale/Pictures/border2.png -p 15,740 -s 295x2}
${voffset 6}${hr 3}
${voffset -2}${hr 3}
sys_info_rc:
HTML Code:
# Create own window instead of using desktop (required in nautilus)
own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes
no_buffers yes
text_buffer_size 3072
# fiddle with window
use_spacer right
use_xft yes
# Update interval in seconds
update_interval 1.0
# Minimum size of text area
minimum_size 685 5
maximum_width 685
override_utf8_locale yes
temperature_unit celsius
#fahrenheit
top_name_width 10
top_cpu_separate false
# Draw shades?
draw_shades no
# Text stuff
draw_outline no # amplifies text if yes
draw_borders no
xftfont Ubuntu Mono Mono:size=8
uppercase no # set to yes if you want all text to be in uppercase
# Stippled borders?
stippled_borders 3
# border margins
# border_margin 9
# border width
border_width 10
## My colors (suit yourself)
color0 ffa54f #Tan1
color1 caff70 #DarkOliveGreen1
color2 ffec8b #Salomie
color3 cdb79e #bisque3
color4 0000FF #LightBlue
color5 00ffff #cyan1
color6 e5e5e5 #gray90
default_color 75b3d1
#color7 ffffff #white
#color8 fff68f #khaki1
#color8 FF6600 #orange
#color4 add8e6 #LightBlue
#own_window_colour red
own_window_transparent yes
# Text alignment, other possible values are commented
#alignment top_middle
alignment top_left
#alignment top_right
#alignment bottom_left
#alignment bottom_right
# Gap between borders of screen and text
gap_x 485
gap_y 17
# stuff after 'TEXT' will be formatted on screen
pad_percents 2
short_units yes
TEXT
${font Ubuntu:Bold:size=16}${goto 20}${color 75b3d1}System Information${font Ubuntu Mono:Bold:size=9}${goto 265}${color e5e5e5}Home build with ${execi 1000 cat /proc/cpuinfo | grep 'model name' | sed -e 's/model name.*: //'| uniq | cut -c 1-29}${goto 575}Running at: ${freq_g}GHz
${voffset -5}${color 848484}${font}${hr 3}${color}
#Line 1$
${font Ubuntu:size=12}${goto 90}${color ffd700}Hardware${goto 350}System${goto 570}Network${color}${font}
${goto 25}MoBo:${goto 90}${color e5e5e5}${pre_exec sed -n '13p' /home/dale/myconfig.txt | cut -c 16-18}${execpi 600 sed -n '12p' /home/dale/myconfig.txt | cut -c 16-36}${color}\
${goto 255}OS: ${goto 365}${color e5e5e5}${pre_exec cat /etc/issue.net} ${execi 1000 lsb_release -a | grep 'Codename' | cut -c 11-15}${color}\
${goto 520}External IP:${alignr 10}${color e5e5e5}${execi 360 wget -q -O /dev/stdout http://checkip.dyndns.org/ | cut -d : -f 2- | cut -d \< -f -1}${color}
#Line 2
${goto 25}Installed Memory: ${goto 213}${color e5e5e5}${pre_exec sed -n '48p' /home/dale/myconfig.txt | cut -c 16-20}${color}\
${goto 255}Kernel Name: ${goto 347}${color e5e5e5}${pre_exec sed -n '5p' /usr/src/linux-headers-2.6.38-13-generic/Makefile | cut -c 8-35}${color}\
${goto 520}Gateway IP:${alignr 10}${color e5e5e5}${gw_ip}${color}
#Line 3
${goto 25}HDD Size: ${goto 212}${color e5e5e5}${pre_exec sed -n '604p' /home/dale/myconfig.txt | cut -c 31-34}${color}${color}\
${goto 255}Kernel: ${goto 382}${color e5e5e5}${kernel}${color}\
${goto 520}Network Type: ${alignr 10}${color e5e5e5}${wireless_mode wlan0}${color}
#Line 4
${goto 25}FS Type: ${goto 217}${color e5e5e5}${fs_type /}${color}\
${goto 255}Available Updates: ${goto 497}${color e5e5e5}${execi 1800 aptitude search "~U" | wc -l | tail}${color}\
${goto 520}Network Name: ${alignr 10}${color e5e5e5}${wireless_essid wlan0}${color}
#Line 5
${goto 25}Architecture: ${goto 216}${color e5e5e5}$machine${color}\
${goto 255}Conky Version: ${goto 477}${color e5e5e5}${conky_version}${color}\
${goto 520}Gateway Interface: ${alignr 10}${color e5e5e5}${gw_iface}${color}
#Line 6
${goto 25}GPU: ${goto 105}${color e5e5e5}${pre_exec sed -n '424p' /home/dale/myconfig.txt | cut -c35-46}${execpi 3600 sed -n '424p' /home/dale/myconfig.txt | cut -c23-34}${color}\
${goto 255}Desktop Environment: ${goto 429}${color e5e5e5}${pre_exec env | grep "GDMSESSION" | cut -c12-}${pre_exec gnome-session --version | cut -c14-}${color}\
${goto 520}wlan Qual: ${alignr 4}${color e5e5e5}${wireless_link_qual wlan0}${color}
#Line 7
${goto 25}Audio Controller:${goto 170}${color e5e5e5}${pre_exec sed -n '460p' /home/dale/myconfig.txt | cut -c23-35}${color}\
${goto 255}Window Manager:${goto 465}${color e5e5e5}${pre_exec wmctrl -m | grep "Name" | cut -c7-}${color}\
${goto 520}wlan Max: ${alignr 4}${color e5e5e5}${wireless_link_qual_max wlan0}${color}
${goto 25}Volume: ${color e5e5e5}${if_match "${execi 10 /home/dale/scripts/vol.sh}" == "Master 100%"}${goto 169}${else}${goto 175}${endif}${color e5e5e5}${texeci 3 /home/dale/scripts/vol.sh}${color}${font}\
${goto 255}Compiz Version:${goto 474}${color e5e5e5}${pre_exec compiz --version | cut -c7-}${color}\
${goto 520}wlan Signal Percent:${alignr 10}${color e5e5e5}${wireless_link_qual_perc wlan0}%${color}
#Line 8
${voffset -5}${color 848484}${hr 3}${color}
#Line 9
${font Ubuntu Mono:Bold:size=14}${goto 20}Temps & Performance${font Ubuntu:Bold:size=10}${goto 305}Max Temp: ${color e5e5e5}72°C (162°F)${alignr 10}${color}Current User: ${color e5e5e5}${pre_exec env | grep "USERNAME" | cut -c10-}${font}
${voffset -5}${color 848484}${hr 3}${color}
#Line 10
${goto 25}CPU1 Temperature:${goto 146}${color e5e5e5}${execi 60 sensors | grep 'Core 0' | cut -c 13-21}${color}\
${goto 225}HDD Temp:${goto 357}${color e5e5e5}+${hddtemp}°C\
${goto 420}${color ffd700}Top CPU\
${goto 560}Top RAM${color}
#Line 11
${goto 25}CPU2 Temperature:${goto 146}${color e5e5e5}${execi 60 sensors | grep 'Core 1' | cut -c 13-21}${color}\
${goto 225}GPU Temp:${goto 341}${color e5e5e5}${execi 60 sensors | grep 'temp1' | cut -c 11-21}${color}\
#${goto 225}Load Average (1 Min):${goto 370}${color e5e5e5}${loadavg 1}${color}
${goto 430}${top name 1}${goto 505}${color e5e5e5}${top cpu 1}${color}\
${goto 570}${top_mem name 1}${alignr 10}${color e5e5e5}${top_mem mem 1}${color}
#Line 12
${goto 25}CPU3 Temperature:${goto 146}${color e5e5e5}${execi 60 sensors | grep 'Core 2' | cut -c 13-21}${color}\
${goto 225}Southbridge Temp:${goto 341}${color e5e5e5}${execi 60 sensors | grep 'temp2' | cut -c 11-21}${color}\
${goto 430}${top name 2}${goto 505}${color e5e5e5}${top cpu 2}${color}\
${goto 570}${top_mem name 2}${alignr 10}${color e5e5e5}${top_mem mem 2}${color}
#Line 13
${goto 25}CPU4 Temperature:${goto 146}${color e5e5e5}${execi 60 sensors | grep 'Core 3' | cut -c 13-21}${color}\
${goto 225}System Temp:${goto 341}${color e5e5e5}${execi 60 sensors | grep 'temp3' | cut -c 11-21}${color}\
${goto 430}${top name 3}${goto 505}${color e5e5e5}${top cpu 3}${color}\
${goto 570}${top_mem name 3}${alignr 10}${color e5e5e5}${top_mem mem 3}${color}
#Line 14
${goto 25}CPU Fan Speed:${goto 141}${color e5e5e5}${execi 60 sensors | grep 'fan1' | cut -c 13-21}${color}\
${goto 225}Total Processes:${goto 374}${color e5e5e5}${processes}${color}\
${goto 430}${top name 4}${goto 505}${color e5e5e5}${top cpu 4}${color}\
${goto 570}${top_mem name 4}${alignr 10}${color e5e5e5}${top_mem mem 4}${color}
#Line 15
${goto 25}Uptime: ${goto 156}${color e5e5e5}${uptime_short}${color}\
${goto 225}Running Processes:${goto 388}${color e5e5e5}${running_processes}${color}\
${goto 430}${top name 5}${goto 505}${color e5e5e5}${top cpu 5}${color}\
${goto 570}${top_mem name 5}${alignr 10}${color e5e5e5}${top_mem mem 5}
${voffset -3}${color 848484}${hr 3}${color}
${image /home/dale/Pictures/border2.png -p 0,25 -s 3x130}
${image /home/dale/Pictures/border2.png -p 232,25 -s 3x130}
${image /home/dale/Pictures/border2.png -p 497,25 -s 3x130}
${image /home/dale/Pictures/border2.png -p 682,25 -s 3x130}
${image /home/dale/Pictures/border2.png -p 0,185 -s 3x87}
${image /home/dale/Pictures/border2.png -p 195,185 -s 3x87}
${image /home/dale/Pictures/border2.png -p 395,185 -s 3x87}
${image /home/dale/Pictures/border2.png -p 535,185 -s 3x87}
${image /home/dale/Pictures/border2.png -p 682,185 -s 3x87}
${voffset -143}
schedule_rc:
HTML Code:
# Create own window instead of using desktop (required in nautilus)
own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes
no_buffers yes
text_buffer_size 3072
# fiddle with window
use_spacer right
use_xft yes
# Update interval in seconds
update_interval 1.0
# Minimum size of text area
minimum_size 160 5
maximum_width 160
override_utf8_locale yes
temperature_unit celsius
#fahrenheit
top_name_width 10
top_cpu_separate false
# Draw shades?
draw_shades no
# Text stuff
draw_outline no # amplifies text if yes
draw_borders no
xftfont Ubuntu Mono Mono:size=8
uppercase no # set to yes if you want all text to be in uppercase
# Stippled borders?
stippled_borders 3
# border margins
# border_margin 9
# border width
border_width 10
## My colors (suit yourself)
color0 ffa54f #Tan1
color1 caff70 #DarkOliveGreen1
color2 ffec8b #Salomie
color3 cdb79e #bisque3
color4 0000FF #LightBlue
color5 00ffff #cyan1
default_color e5e5e5
#own_window_colour red
own_window_transparent yes
# Text alignment, other possible values are commented
#alignment top_middle
alignment top_left
#alignment top_right
#alignment bottom_left
#alignment bottom_right
# Gap between borders of screen and text
gap_x 430
gap_y 350
# stuff after 'TEXT' will be formatted on screen
pad_percents 2
short_units yes
TEXT
${color 75b3d1}${font Ubuntu:Bold:size=16}${goto 20}Schedule${font}
${voffset -5}${color 848484}${hr 3}${color}
${goto 25}${execpi 600 sed -n '1p' /home/dale/Documents/schedule.txt}
${goto 25}${execpi 600 sed -n '2p' /home/dale/Documents/schedule.txt}
${goto 25}${execpi 600 sed -n '3p' /home/dale/Documents/schedule.txt}
${goto 25}${execpi 600 sed -n '4p' /home/dale/Documents/schedule.txt}
${goto 25}${execpi 600 sed -n '5p' /home/dale/Documents/schedule.txt}
${goto 25}${execpi 600 sed -n '6p' /home/dale/Documents/schedule.txt}
${goto 25}${execpi 600 sed -n '7p' /home/dale/Documents/schedule.txt}
${goto 25}${execpi 600 sed -n '8p' /home/dale/Documents/schedule.txt}
${goto 25}${execpi 600 sed -n '9p' /home/dale/Documents/schedule.txt}
${goto 25}${execpi 600 sed -n '10p' /home/dale/Documents/schedule.txt}
${voffset -5}${color 848484}${hr 3}${color}
${image /home/dale/Pictures/border2.png -p 0,25 -s 3x140}
${image /home/dale/Pictures/border2.png -p 157,25 -s 3x140}
todo_rc:
HTML Code:
# Create own window instead of using desktop (required in nautilus)
own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes
no_buffers yes
text_buffer_size 3072
# fiddle with window
use_spacer right
use_xft yes
# Update interval in seconds
update_interval 1.0
# Minimum size of text area
minimum_size 160 5
maximum_width 160
override_utf8_locale yes
temperature_unit celsius
#fahrenheit
top_name_width 10
top_cpu_separate false
# Draw shades?
draw_shades no
# Text stuff
draw_outline no # amplifies text if yes
draw_borders no
xftfont Ubuntu Mono Mono:size=8
uppercase no # set to yes if you want all text to be in uppercase
# Stippled borders?
stippled_borders 3
# border margins
# border_margin 9
# border width
border_width 10
## My colors (suit yourself)
color0 ffa54f #Tan1
color1 caff70 #DarkOliveGreen1
color2 ffec8b #Salomie
color3 cdb79e #bisque3
color4 0000FF #LightBlue
color5 00ffff #cyan1
default_color e5e5e5
#own_window_colour red
own_window_transparent yes
# Text alignment, other possible values are commented
#alignment top_middle
alignment top_left
#alignment top_right
#alignment bottom_left
#alignment bottom_right
# Gap between borders of screen and text
gap_x 1055
gap_y 350
# stuff after 'TEXT' will be formatted on screen
pad_percents 2
short_units yes
TEXT
${color 75b3d1}${font Ubuntu:Bold:size=16}${goto 20}To Do List${font}
${voffset -5}${color 848484}${hr 3}${color}
${goto 25}${execpi 600 sed -n '1p' /home/dale/Documents/todo.txt}
${goto 25}${execpi 600 sed -n '2p' /home/dale/Documents/todo.txt}
${goto 25}${execpi 600 sed -n '3p' /home/dale/Documents/todo.txt}
${goto 25}${execpi 600 sed -n '4p' /home/dale/Documents/todo.txt}
${goto 25}${execpi 600 sed -n '5p' /home/dale/Documents/todo.txt}
${goto 25}${execpi 600 sed -n '6p' /home/dale/Documents/todo.txt}
${goto 25}${execpi 600 sed -n '7p' /home/dale/Documents/todo.txt}
${goto 25}${execpi 600 sed -n '8p' /home/dale/Documents/todo.txt}
${goto 25}${execpi 600 sed -n '9p' /home/dale/Documents/todo.txt}
${goto 25}${execpi 600 sed -n '10p' /home/dale/Documents/todo.txt}
${voffset -5}${color 848484}${hr 3}
${image /home/dale/Pictures/border2.png -p 0,25 -s 3x140}
${image /home/dale/Pictures/border2.png -p 157,25 -s 3x140}
footprintrc (logos):
HTML Code:
# Create own window instead of using desktop (required in nautilus)
own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes
no_buffers yes
text_buffer_size 3072
# fiddle with window
use_spacer right
use_xft yes
# Update interval in seconds
update_interval 1.0
# Minimum size of text area
minimum_size 250 350
maximum_width 250
override_utf8_locale yes
temperature_unit celsius
#fahrenheit
top_name_width 10
top_cpu_separate false
# Draw shades?
draw_shades no
# Text stuff
draw_outline no # amplifies text if yes
draw_borders no
xftfont Ubuntu Mono Mono:size=8
uppercase no # set to yes if you want all text to be in uppercase
# Stippled borders?
stippled_borders 3
# border margins
# border_margin 9
# border width
border_width 10
## My colors (suit yourself)
color0 ffa54f #Tan1
color1 caff70 #DarkOliveGreen1
color2 ffec8b #Salomie
color3 cdb79e #bisque3
color4 0000FF #LightBlue
color5 00ffff #cyan1
default_color 1e90ff
color6 e5e5e5 #gray90
#own_window_colour red
own_window_transparent yes
# Text alignment, other possible values are commented
#alignment top_middle
alignment top_left
#alignment top_right
#alignment bottom_left
#alignment bottom_right
# Gap between borders of screen and text
gap_x 685
gap_y 327
# stuff after 'TEXT' will be formatted on screenUbuntu-glossy-logo2.png
pad_percents 2
short_units yes
TEXT
${image ~/Pictures/Ubuntu-embossed-green.png -p 0,0 -s 270x270}${image ~/Pictures/ubu4.png -p 10,278 -s 260x45}
cal_rc:
HTML Code:
# Create own window instead of using desktop (required in nautilus)
own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes
no_buffers yes
text_buffer_size 3072
# fiddle with window
use_spacer right
use_xft yes
# Update interval in seconds
update_interval 1.0
# Minimum size of text area
minimum_size 615 5
maximum_width 615
override_utf8_locale yes
temperature_unit celsius
#fahrenheit
top_name_width 10
top_cpu_separate false
# Draw shades?
draw_shades no
# Text stuff
draw_outline no # amplifies text if yes
draw_borders no
xftfont Ubuntu Mono Mono:size=8
uppercase no # set to yes if you want all text to be in uppercase
# Stippled borders?
stippled_borders 3
# border margins
# border_margin 9
# border width
border_width 10
## My colors (suit yourself)
color0 ffa54f #Tan1
color1 caff70 #DarkOliveGreen1
color2 ffec8b #Salomie
color3 cdb79e #bisque3
color4 0000FF #LightBlue
color5 00ffff #cyan1
default_color 75b3d1
#own_window_colour red
own_window_transparent yes
# Text alignment, other possible values are commented
#alignment top_middle
alignment top_left
#alignment top_right
#alignment bottom_left
#alignment bottom_right
# Gap between borders of screen and text
gap_x 516
gap_y 673
# stuff after 'TEXT' will be formatted on screen
pad_percents 2
short_units yes
TEXT
${font Ubuntu:Bold:size=16}${goto 20}${color 75b3d1}Calendar
${voffset -13}${color 848484}${hr 3}${color}
${font LCDMono:bold:size=16}${goto 60}Last Month${goto 294}${color e5e5e5}${time %B}${goto 472}${color}Next Month
${font LCDMono:bold:size=12}${color}${execpi 3600 gcal . --starting-day=sunday | sed -e "s/</\${color e5e5e5} /;s/>/\${color} /;s/^/\${goto 25}/" | tail -n 7}
${voffset -24}${color 848484}${hr 3}${color}
${image /home/dale/Pictures/border2.png -p 0,29 -s 3x150}
${image /home/dale/Pictures/border2.png -p 202,29 -s 3x150}
${image /home/dale/Pictures/border2.png -p 409,29 -s 3x150}
${image /home/dale/Pictures/border2.png -p 612,29 -s 3x150}
${voffset -105}
new_ringsrc:
HTML Code:
# Conky settings #
background no
update_interval 1
cpu_avg_samples 2
net_avg_samples 2
override_utf8_locale yes
double_buffer yes
no_buffers yes
text_buffer_size 2048
#imlib_cache_size 0
temperature_unit fahrenheit
# Window specifications #
own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
border_inner_margin 0
border_outer_margin 0
minimum_size 350 620
maximum_width 350
alignment tr
gap_x 0
gap_y 17
# Graphics settings #
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
# Text settings #
use_xft yes
xftfont Ubuntu:Bold:size=7
xftalpha 1
uppercase no
temperature_unit fahrenheit
#celsius
if_up_strictness address
default_color e5e5e5
# Lua Load #${color e5e5e5}75b3d1
lua_load ~/scripts/new_rings.lua
lua_draw_hook_pre clock_rings
TEXT
${font Ubuntu:Bold:size=16}${goto 80}${color 75b3d1}Meters
${voffset -15}${goto 71}${color 848484}${hr 3}${font}
${voffset -3}${goto 135}${color 30434e}${hr 10}
${color e5e5e5}${font Ubuntu:Bold:size=7}${voffset -10}${goto 145}HDD Size: ${pre_exec sed -n '604p' /home/dale/myconfig.txt | cut -c 31-34}${goto 235}Free: ${fs_free /}${alignr 5}${fs_used_perc /}% Used
${color 30434e}${voffset 3}${goto 135}${hr 10}
${color e5e5e5}${font Ubuntu:Bold:size=7}${voffset -10}${goto 145}Swap Size: ${swapmax}${goto 235}Free: ${swapfree}${alignr 5}${swapperc}% Used
${color 75b3d1}${font Ubuntu:Bold:size=16}${voffset 3}${goto 210}Disk / Swap${font}
${color 30434e}${voffset 63}${goto 135}${hr 10}
${color e5e5e5}${font Ubuntu:Bold:size=7}${voffset -10}${goto 210}CPU Avg: ${cpu cpu0}%
${color 30434e}${voffset 3}${goto 135}${hr 10}
${color e5e5e5}${font Ubuntu:Bold:size=7}${voffset -10}${goto 145}Max RAM: ${memmax}${goto 235}Free: ${memfree}${alignr 5}${memperc}% Used
${color 75b3d1}${font Ubuntu:Bold:size=16}${voffset 3}${goto 210}Performance${font}
${color 30434e}${voffset 63}${goto 135}${hr 10}
${color e5e5e5}${font Ubuntu:Bold:size=7}${voffset -10}${goto 210}CPU 1: ${cpu cpu1}%
${color 30434e}${voffset 3}${goto 135}${hr 10}
${color e5e5e5}${font Ubuntu:Bold:size=7}${voffset -10}${goto 210}CPU 2: ${cpu cpu2}%
${color 75b3d1}${font Ubuntu:Bold:size=16}${voffset 3}${goto 210}CPU 1 & 2${font}
${color 30434e}${voffset 63}${goto 135}${hr 10}
${color e5e5e5}${font Ubuntu:Bold:size=7}${voffset -10}${goto 210}CPU 3: ${cpu cpu3}%
${color 30434e}${voffset 3}${goto 135}${hr 10}
${color e5e5e5}${font Ubuntu:Bold:size=7}${voffset -10}${goto 210}CPU 4: ${cpu cpu4}%
${color 75b3d1}${font Ubuntu:Bold:size=16}${voffset 3}${goto 210}CPU 3 & 4${font}
${color 30434e}${voffset 63}${goto 135}${hr 10}
${color e5e5e5}${font Ubuntu:Bold:size=7}${voffset -10}${goto 190}Load Avg (1 Min): ${loadavg 1}
${color 30434e}${voffset 3}${goto 135}${hr 10}
${color e5e5e5}${font Ubuntu:Bold:size=7}${voffset -10}${goto 190}Load Avg (15 Min): ${loadavg 3}
${color 75b3d1}${font Ubuntu:Bold:size=16}${voffset 3}${goto 210}Load${font}
${color 30434e}${voffset 63}${goto 135}${hr 10}
${color e5e5e5}${font Ubuntu:Bold:size=7}${voffset -10}${goto 190}Upspeed wlan0: ${upspeedf wlan0} KiB/s
${color 30434e}${voffset 3}${goto 135}${hr 10}
${color e5e5e5}${font Ubuntu:Bold:size=7}${voffset -10}${goto 190}Downspeed wlan0: ${downspeedf wlan0} KiB/s
${color 75b3d1}${font Ubuntu:Bold:size=16}${voffset 3}${goto 210}Wireless
${goto 210}${voffset -5}${if_up wlan0}Is${else}Is Not${endif}
${goto 210}${voffset -5}Connected
${color 30434e}${voffset 12}${goto 135}${hr 10}
${color e5e5e5}${font Ubuntu:Bold:size=7}${voffset -27}${goto 190}Upspeed eth0: ${upspeedf eth0} KiB/s
${color 30434e}${voffset 3}${goto 135}${hr 10}
${color e5e5e5}${font Ubuntu:Bold:size=7}${voffset -10}${goto 190}Downspeed eth0: ${downspeedf eth0} KiB/s
${color 75b3d1}${font Ubuntu:Bold:size=16}${voffset 3}${goto 210}Ethernet
${goto 210}${voffset -5}${if_up eth0}Is${else}Is Not${endif}
${goto 210}${voffset -5}Connected
${voffset 7}${color 848484}${goto 71}${hr 3}${color}${font}
${image /home/dale/Pictures/upbar.png -p 164,55 -s 10x31}
${image /home/dale/Pictures/upbar.png -p 179,55 -s 10x31}
${image /home/dale/Pictures/upbar.png -p 164,172 -s 10x31}
${image /home/dale/Pictures/upbar.png -p 179,172 -s 10x31}
${image /home/dale/Pictures/upbar.png -p 164,287 -s 10x31}
${image /home/dale/Pictures/upbar.png -p 179,287 -s 10x31}
${image /home/dale/Pictures/upbar.png -p 164,402 -s 10x31}
${image /home/dale/Pictures/upbar.png -p 179,402 -s 10x31}
${image /home/dale/Pictures/upbar.png -p 164,516 -s 10x31}
${image /home/dale/Pictures/upbar.png -p 179,516 -s 10x31}
${image /home/dale/Pictures/upbar.png -p 164,631 -s 10x31}
${image /home/dale/Pictures/upbar.png -p 179,631 -s 10x31}
${image /home/dale/Pictures/upbar.png -p 164,746 -s 10x30}
${image /home/dale/Pictures/upbar.png -p 179,746 -s 10x30}
${image /home/dale/Pictures/border2.png -p 70,27 -s 3x811}
${voffset -198}
new_rings.lua:
HTML Code:
--[[
Clock Rings by londonali1010 (2009) Edited by jpope
This script draws percentage meters as rings, and also draws clock hands if you want! It is fully customisable; all options are described in the script. This script is based off a combination of my clock.lua script and my rings.lua script.
IMPORTANT: if you are using the 'cpu' function, it will cause a segmentation fault if it tries to draw a ring straight away. The if statement on line 145 uses a delay to make sure that this doesn't happen. It calculates the length of the delay by the number of updates since Conky started. Generally, a value of 5s is long enough, so if you update Conky every 1s, use update_num>5 in that if statement (the default). If you only update Conky every 2s, you should change it to update_num>3; conversely if you update Conky every 0.5s, you should use update_num>10. ALSO, if you change your Conky, is it best to use "killall conky; conky" to update it, otherwise the update_num will not be reset and you will get an error.
To call this script in Conky, use the following (assuming that you save this script to ~/scripts/rings.lua):
lua_load ~/scripts/clock_rings.lua
lua_draw_hook_pre clock_rings
Changelog:
+ v1.0 -- Original release (30.09.2009)
v1.1p -- Jpope edit (05.10.2009)
]]
settings_table = {
{
-- Edit this table to customise your rings.
-- You can create more rings simply by adding more elements to settings_table.
-- "name" is the type of stat to display; you can choose from 'cpu', 'memperc', 'fs_used_perc', 'battery_used_perc'.
name='swapperc',
-- "arg" is the argument to the stat type, e.g. if in Conky you would write ${cpu cpu0}, 'cpu0' would be the argument. If you would not use an argument in the Conky variable, use ''.
arg='',
-- "max" is the maximum value of the ring. If the Conky variable outputs a percentage, use 100.
max=100,
-- "bg_colour" is the colour of the base ring.
bg_colour=0x707070,
-- "bg_alpha" is the alpha value of the base ring.
bg_alpha=0.3,
-- "fg_colour" is the colour of the indicator part of the ring.
fg_colour=0x75b3d1,
-- "fg_alpha" is the alpha value of the indicator part of the ring.
fg_alpha=1,
-- "x" and "y" are the x and y coordinates of the centre of the ring, relative to the top left corner of the Conky window.
x=135, y=87,
-- "radius" is the radius of the ring.
radius=35,
-- "thickness" is the thickness of the ring, centred around the radius.
thickness=10,
-- "start_angle" is the starting angle of the ring, in degrees, clockwise from top. Value can be either positive or negative.
start_angle=90,
-- "end_angle" is the ending angle of the ring, in degrees, clockwise from top. Value can be either positive or negative, but must be larger than start_angle.
end_angle=360
},
{
name='fs_used_perc',
arg='/',
max=100,
bg_colour=0x707070,
bg_alpha=0.3,
fg_colour=0x75b3d1,
fg_alpha=1,
x=135, y=87,
radius=50,
thickness=10,
start_angle=90,
end_angle=360
},
{
name='cpu',
arg='cpu0',
max=100,
bg_colour=0x707070,
bg_alpha=0.3,
fg_colour=0x75b3d1,
fg_alpha=1,
x=135, y=202,
radius=50,
thickness=10,
start_angle=90,
end_angle=360
},
{
name='memperc',
arg='',
max=100,
bg_colour=0x707070,
bg_alpha=0.3,
fg_colour=0x75b3d1,
fg_alpha=1,
x=135, y=202,
radius=35,
thickness=10,
start_angle=90,
end_angle=360
},
{
name='cpu',
arg='cpu1',
max=100,
bg_colour=0x707070,
bg_alpha=0.3,
fg_colour=0x75b3d1,
fg_alpha=1,
x=135, y=317,
radius=50,
thickness=10,
start_angle=90,
end_angle=360
},
{
name='cpu',
arg='cpu2',
max=100,
bg_colour=0x707070,
bg_alpha=0.3,
fg_colour=0x75b3d1,
fg_alpha=1,
x=135, y=317,
radius=35,
thickness=10,
start_angle=90,
end_angle=360
},
{
name='cpu',
arg='cpu3',
max=100,
bg_colour=0x707070,
bg_alpha=0.3,
fg_colour=0x75b3d1,
fg_alpha=1,
x=135, y=432,
radius=50,
thickness=10,
start_angle=90,
end_angle=360
},
{
name='cpu',
arg='cpu4',
max=100,
bg_colour=0x707070,
bg_alpha=0.3,
fg_colour=0x75b3d1,
fg_alpha=1,
x=135, y=432,
radius=35,
thickness=10,
start_angle=90,
end_angle=360
},
{
name='loadavg',
arg='1',
max=1,
bg_colour=0x707070,
bg_alpha=0.3,
fg_colour=0x75b3d1,
fg_alpha=1,
x=135, y=547,
radius=50,
thickness=10,
start_angle=90,
end_angle=360
},
{
name='loadavg',
arg='2',
max=1,
bg_colour=0x707070,
bg_alpha=0.3,
fg_colour=0x75b3d1,
fg_alpha=1,
x=135, y=547,
radius=35,
thickness=10,
start_angle=90,
end_angle=360
},
{
name='upspeedf',
arg='wlan0',
max=100,
bg_colour=0x707070,
bg_alpha=0.3,
fg_colour=0x75b3d1,
fg_alpha=1,
x=135, y=662,
radius=50,
thickness=10,
start_angle=90,
end_angle=360
},
{
name='downspeedf',
arg='wlan0',
max=500,
bg_colour=0x707070,
bg_alpha=0.3,
fg_colour=0x75b3d1,
fg_alpha=1,
x=135, y=662,
radius=35,
thickness=10,
start_angle=90,
end_angle=360
},
{
name='upspeedf',
arg='eth0',
max=100,
bg_colour=0x707070,
bg_alpha=0.3,
fg_colour=0x75b3d1,
fg_alpha=1,
x=135, y=777,
radius=50,
thickness=10,
start_angle=90,
end_angle=360
},
{
name='downspeedf',
arg='eth0',
max=500,
bg_colour=0x707070,
bg_alpha=0.3,
fg_colour=0x75b3d1,
fg_alpha=1,
x=135, y=777,
radius=35,
thickness=10,
start_angle=90,
end_angle=360
},
}
-- Use these settings to define the origin and extent of your clock.
clock_r=65
-- "clock_x" and "clock_y" are the coordinates of the centre of the clock, in pixels, from the top left of the Conky window.
clock_x=100
clock_y=150
show_seconds=true
require 'cairo'
function rgb_to_r_g_b(colour,alpha)
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
function draw_ring(cr,t,pt)
local w,h=conky_window.width,conky_window.height
local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle']
local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha']
local angle_0=sa*(2*math.pi/360)-math.pi/2
local angle_f=ea*(2*math.pi/360)-math.pi/2
local t_arc=t*(angle_f-angle_0)
-- Draw background ring
cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f)
cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga))
cairo_set_line_width(cr,ring_w)
cairo_stroke(cr)
-- Draw indicator ring
cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc)
cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga))
cairo_stroke(cr)
end
function draw_clock_hands(cr,xc,yc)
local secs,mins,hours,secs_arc,mins_arc,hours_arc
local xh,yh,xm,ym,xs,ys
secs=os.date("%S")
mins=os.date("%M")
hours=os.date("%I")
secs_arc=(2*math.pi/60)*secs
mins_arc=(2*math.pi/60)*mins+secs_arc/60
hours_arc=(2*math.pi/12)*hours+mins_arc/12
--[[ Draw hour hand
xh=xc+0.7*clock_r*math.sin(hours_arc)
yh=yc-0.7*clock_r*math.cos(hours_arc)
cairo_move_to(cr,xc,yc)
cairo_line_to(cr,xh,yh)
cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND)
cairo_set_line_width(cr,5)
cairo_set_source_rgba(cr,0,0,1,1)
cairo_stroke(cr)
-- Draw minute hand
xm=xc+clock_r*math.sin(mins_arc)
ym=yc-clock_r*math.cos(mins_arc)
cairo_move_to(cr,xc,yc)
cairo_line_to(cr,xm,ym)
cairo_set_line_width(cr,3)
cairo_stroke(cr)
-- Draw seconds hand
if show_seconds then
xs=xc+clock_r*math.sin(secs_arc)
ys=yc-clock_r*math.cos(secs_arc)
cairo_move_to(cr,xc,yc)
cairo_line_to(cr,xs,ys)
cairo_set_line_width(cr,1)
cairo_stroke(cr)
end]]
end
function conky_clock_rings()
local function setup_rings(cr,pt)
local str=''
local value=0
str=string.format('${%s %s}',pt['name'],pt['arg'])
str=conky_parse(str)
value=tonumber(str)
pct=value/pt['max']
draw_ring(cr,pct,pt)
end
-- Check that Conky has been running for at least 5s
if conky_window==nil then return end
local cs=cairo_xlib_surface_create(conky_window.display,conky_window.drawable,conky_window.visual, conky_window.width,conky_window.height)
local cr=cairo_create(cs)
local updates=conky_parse('${updates}')
update_num=tonumber(updates)
if update_num>5 then
for i in pairs(settings_table) do
setup_rings(cr,settings_table[i])
end
end
draw_clock_hands(cr,clock_x,clock_y)
end
new-mailrc:
HTML Code:
# Create own window instead of using desktop (required in nautilus)
own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes
no_buffers yes
text_buffer_size 3072
# fiddle with window
use_spacer right
use_xft yes
# Update interval in seconds
update_interval 1.0
# Minimum size of text area
minimum_size 100 5
maximum_width 100
override_utf8_locale yes
temperature_unit celsius
#fahrenheit
top_name_width 10
top_cpu_separate false
# Draw shades?
draw_shades no
# Text stuff
draw_outline no # amplifies text if yes
draw_borders no
xftfont freesans:size=12
uppercase no # set to yes if you want all text to be in uppercase
# Stippled borders?
stippled_borders 3
# border margins
# border_margin 9
# border width
border_width 10
## My colors (suit yourself)
color0 ffa54f #Tan1
color1 caff70 #DarkOliveGreen1
color2 ffec8b #Salomie
color3 cdb79e #bisque3
color4 0000FF #LightBlue
color5 00ffff #cyan1
default_color 75b3d1
#own_window_colour red
own_window_transparent yes
# Text alignment, other possible values are commented
#alignment top_middle
alignment top_left
#alignment top_right
#alignment bottom_left
#alignment bottom_right
# Gap between borders of screen and text
gap_x 1110
gap_y 873
# stuff after 'TEXT' will be formatted on screen${font Caviar Dreams:Bold:size=12}
pad_percents 2
short_units yes
TEXT
${color 1f4066}${goto 48}${voffset 3}${execpi 300 python /home/dale/scripts/gmail_parser.py xxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyy 3}
${image /home/dale/Pictures/Mail2.png -p 0,0 -s 30x25}
gmail_parser.py:
HTML Code:
## check-gmail.py -- A command line util to check GMail -*- Python -*-
## modified to display mailbox summary for conky
# ======================================================================
# Copyright (C) 2006 Baishampayan Ghose <b.ghose@ubuntu.com>
# Modified 2008 Hunter Loftis <hbloftis@uncc.edu>
# Time-stamp: Mon Jul 31, 2006 20:45+0530
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
# ======================================================================
import sys
import urllib # For BasicHTTPAuthentication
import feedparser # For parsing the feed
from textwrap import wrap
_URL = "https://mail.google.com/gmail/feed/atom"
uname = sys.argv[1]
password = sys.argv[2]
maxlen = sys.argv[3]
urllib.FancyURLopener.prompt_user_passwd = lambda self, host, realm: (uname, password)
def auth():
'''The method to do HTTPBasicAuthentication'''
opener = urllib.FancyURLopener()
f = opener.open(_URL)
feed = f.read()
return feed
def readmail(feed, maxlen):
'''Parse the Atom feed and print a summary'''
atom = feedparser.parse(feed)
print '${color 1f4066} %s new\n' % (len(atom.entries))
# for i in range(min(len(atom.entries), maxlen)):
# print ' ${color}%s' % atom.entries[i].title
##uncomment the following line if you want to show the name of the sender
# print ' ${color e5e5e5}%s' % atom.entries[i].author
# if len(atom.entries) > maxlen:
# print ' ${color ffd700}more...'
if __name__ == "__main__":
f = auth() # Do auth and then get the feed
readmail(f, int(maxlen)) # Let the feed be chewed by feedparser
time-daterc:
HTML Code:
# Create own window instead of using desktop (required in nautilus)
own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes
no_buffers yes
text_buffer_size 3072
# fiddle with window
use_spacer right
use_xft yes
# Update interval in seconds
update_interval 1.0
# Minimum size of text area
minimum_size 500 5
maximum_width 500
override_utf8_locale yes
temperature_unit celsius
#fahrenheit
top_name_width 10
top_cpu_separate false
# Draw shades?
draw_shades no
# Text stuff
draw_outline no # amplifies text if yes
draw_borders no
xftfont Ubuntu Mono Mono:size=8
uppercase no # set to yes if you want all text to be in uppercase
# Stippled borders?
stippled_borders 3
# border margins
# border_margin 9
# border width
border_width 10
## My colors (suit yourself)
color0 ffa54f #Tan1
color1 caff70 #DarkOliveGreen1
color2 ffec8b #Salomie
color3 cdb79e #bisque3
color4 0000FF #LightBlue
color5 00ffff #cyan1
default_color 1e90ff
#own_window_colour red
own_window_transparent yes
# Text alignment, other possible values are commented
#alignment top_middle
alignment top_left
#alignment top_right
#alignment bottom_left
#alignment bottom_right
# Gap between borders of screen and text
gap_x 1325
gap_y 870
# stuff after 'TEXT' will be formatted on screen
pad_percents 2
short_units yes
TEXT
${font Pocket Calculator:size=22}${color 1f4066}${time %b %e, %Y} ${voffset -2}${font Pocket Calculator:size=26}${time %H:%M}
...and finally, the logos and screenshot. The other images (borders and upbar) are just 10pixel square pics I created with gimp in the colors I wanted.
Thanks to everyone whose files I "acquired', and a special thanks to mrpeachy and the folks (you know who you are) who helped in getting the v9000 weather script working and, in my opinion, perfected. Awesome script(s)!!!
Re: Post your .conkyrc files w/ screenshots
Quote:
Originally Posted by
stylintile
I THINK I am happy with my setup, at least for now.
You better be because I think you ran out of desktop space :tongue: :)
Re: Post your .conkyrc files w/ screenshots
Quote:
Originally Posted by
mips
You better be because I think you ran out of desktop space :tongue: :)
That's not an issue. If he runs out of room, there are options.
HOWTO: Conky Multi-Desktop Configuration