-- {{{ Misc widgets
dofile(configdir .. "/leds.lua")
dofile(configdir .. "/volume.lua")
dofile(configdir .. "/battery.lua")
if file_exists(homedir .. "/.custom/awesome/awesompd.lua") then
awesompd = true
dofile(configdir .. "/awesompd.lua")
end
-- }}}
--{{---| Text clock widget |------------------------------------------------------------------------------
mytextclock = awful.widget.textclock({ align = "right" })
--{{---| Systray widget |------------------------------------------------------------------------------
mysystray = widget({ type = "systray" })
--{{---| Chat widget |------------------------------------------------------------------------------
chaticon = widget ({type = "imagebox" })
chaticon.image = image(beautiful.widget_chat)
chaticon:buttons(awful.util.table.join(awful.button({ }, 1,
function () awful.util.spawn_with_shell(chat) end)))
--{{---| Mail widget |------------------------------------------------------------------------------
mailicon = widget ({type = "imagebox" })
mailicon.image = image(beautiful.widget_mail)
mailicon:buttons(awful.util.table.join(awful.button({ }, 1,
function () awful.util.spawn_with_shell(mailmutt) end)))
--{{---| Music widget |-----------------------------------------------------------------------------
music = widget ({type = "imagebox" })
music.image = image(beautiful.widget_music)
music:buttons(awful.util.table.join(
awful.button({ }, 1, function () awful.util.spawn_with_shell(musicplr) end),
awful.button({ modkey }, 1, function () awful.util.spawn_with_shell("ncmpcpp toggle") end),
awful.button({ }, 3, function () couth.notifier:notify( couth.alsa:setVolume('Master','toggle')) end),
awful.button({ }, 4, function () couth.notifier:notify( couth.alsa:setVolume('PCM','2dB+')) end),
awful.button({ }, 5, function () couth.notifier:notify( couth.alsa:setVolume('PCM','2dB-')) end),
awful.button({ }, 4, function () couth.notifier:notify( couth.alsa:setVolume('Master','2dB+')) end),
awful.button({ }, 5, function () couth.notifier:notify( couth.alsa:setVolume('Master','2dB-')) end)))
--{{---| TaskWarrior widget |-----------------------------------------------------------------------
--task_warrior = blingbling.task_warrior.new(beautiful.widget_task)
--task_warrior:set_task_done_icon(beautiful.task_done_icon)
--task_warrior:set_task_icon(beautiful.task_icon)
--task_warrior:set_project_icon(beautiful.project_icon)
--{{---| MEM widget |-------------------------------------------------------------------------------
memwidget = widget({ type = "textbox" })
vicious.register(memwidget, vicious.widgets.mem, ' $2MB ', 13)
memicon = widget ({type = "imagebox" })
memicon.image = image(beautiful.widget_mem)
--{{---| CPU / sensors widget |---------------------------------------------------------------------
--cpuwidget = widget({ type = "textbox" })
--vicious.register(cpuwidget, vicious.widgets.cpu,
--' $2% · $3% ', 3)
--cpuicon = widget ({type = "imagebox" })
--cpuicon.image = image(beautiful.widget_cpu)
--sensors = widget({ type = "textbox" })
--vicious.register(sensors, vicious.widgets.sensors)
--tempicon = widget ({type = "imagebox" })
--tempicon.image = image(beautiful.widget_temp)
--blingbling.popups.htop(cpuwidget,
--{ title_color = beautiful.notify_font_color_1,
--user_color = beautiful.notify_font_color_2,
--root_color = beautiful.notify_font_color_3,
--terminal = "terminal --geometry=130x56-10+26"})
--{{---| FS's widget / udisks-glue menu |-----------------------------------------------------------
--fswidget = widget({ type = "textbox" })
--vicious.register(fswidget, vicious.widgets.fs,
--' ${/mnt/storage avail_gb}GB ', 8)
--udisks_glue = blingbling.udisks_glue.new(beautiful.widget_hdd)
--udisks_glue:set_mount_icon(beautiful.accept)
--udisks_glue:set_umount_icon(beautiful.cancel)
--udisks_glue:set_detach_icon(beautiful.cancel)
--udisks_glue:set_Usb_icon(beautiful.usb)
--udisks_glue:set_Cdrom_icon(beautiful.cdrom)
--awful.widget.layout.margins[udisks_glue.widget] = { top = 0}
--udisks_glue.widget.resize = false
--{{---| Battery widget |---------------------------------------------------------------------------
baticon = widget ({type = "imagebox" })
baticon.image = image(beautiful.widget_battery)
batwidget = widget({ type = "textbox" })
vicious.register( batwidget, vicious.widgets.bat, ' $1$2% ', 1, "BAT0" )
--{{---| Net widget |-------------------------------------------------------------------------------
netwidget = widget({ type = "textbox" })
vicious.register(netwidget,
vicious.widgets.net,
' ${eth0 down_kb} ↓↑ ${eth0 up_kb} ', 3)
neticon = widget ({type = "imagebox" })
neticon.image = image(beautiful.widget_net)
netwidget:buttons(awful.util.table.join(awful.button({ }, 1,
function () awful.util.spawn_with_shell(iptraf) end)))
--{{---| Binary Clock |-----------------------------------------------------------------------------
binaryclock = {}
binaryclock.widget = widget({type = "imagebox"})
binaryclock.w = 42
binaryclock.h = 16
binaryclock.show_sec = true
binaryclock.color_active = beautiful.binclock_fga
binaryclock.color_bg = beautiful.binclock_bg
binaryclock.color_inactive = beautiful.binclock_fgi
binaryclock.dotsize = math.floor(binaryclock.h / 5)
binaryclock.step = math.floor(binaryclock.dotsize / 3)
binaryclock.widget.image = image.argb32(binaryclock.w, binaryclock.h, nil)
if (binaryclock.show_sec) then binaryclock.timeout = 1 else binaryclock.timeout = 20 end
binaryclock.DEC_BIN = function(IN)
local B,K,OUT,I,D=2,"01","",0
while IN>0 do
I=I+1
IN,D=math.floor(IN/B),math.mod(IN,B)+1
OUT=string.sub(K,D,D)..OUT
end
return OUT
end
binaryclock.paintdot = function(val,shift,limit)
local binval = binaryclock.DEC_BIN(val)
local l = string.len(binval)
local height = 0
if (l < limit) then
for i=1,limit - l do binval = "0" .. binval end
end
for i=0,limit-1 do
if (string.sub(binval,limit-i,limit-i) == "1") then
binaryclock.widget.image:draw_rectangle(shift,
binaryclock.h - binaryclock.dotsize - height,
binaryclock.dotsize, binaryclock.dotsize, true, binaryclock.color_active)
else
binaryclock.widget.image:draw_rectangle(shift,
binaryclock.h - binaryclock.dotsize - height,
binaryclock.dotsize,binaryclock.dotsize, true, binaryclock.color_inactive)
end
height = height + binaryclock.dotsize + binaryclock.step
end
end
binaryclock.drawclock = function ()
binaryclock.widget.image:draw_rectangle(0, 0, binaryclock.w, binaryclock.h, true, binaryclock.color_bg)
local t = os.date("*t")
local hour = t.hour
if (string.len(hour) == 1) then
hour = "0" .. t.hour
end
local min = t.min
if (string.len(min) == 1) then
min = "0" .. t.min
end
local sec = t.sec
if (string.len(sec) == 1) then
sec = "0" .. t.sec
end
local col_count = 6
if (not binaryclock.show_sec) then col_count = 4 end
local step = math.floor((binaryclock.w - col_count * binaryclock.dotsize) / 8)
binaryclock.paintdot(0 + string.sub(hour, 1, 1), step, 2)
binaryclock.paintdot(0 + string.sub(hour, 2, 2), binaryclock.dotsize + 2 * step, 4)
binaryclock.paintdot(0 + string.sub(min, 1, 1),binaryclock.dotsize * 2 + 4 * step, 3)
binaryclock.paintdot(0 + string.sub(min, 2, 2),binaryclock.dotsize * 3 + 5 * step, 4)
if (binaryclock.show_sec) then
binaryclock.paintdot(0 + string.sub(sec, 1, 1), binaryclock.dotsize * 4 + 7 * step, 3)
binaryclock.paintdot(0 + string.sub(sec, 2, 2), binaryclock.dotsize * 5 + 8 * step, 4)
end
binaryclock.widget.image = binaryclock.widget.image
end
binarytimer = timer { timeout = binaryclock.timeout }
binarytimer:add_signal("timeout", function()
binaryclock.drawclock()
end)
binarytimer:start()
-- binaryclock.widget:buttons(awful.util.table.join(
-- awful.button({ }, 1, function ()
-- end)
-- ))
--{{---| Calendar widget |--------------------------------------------------------------------------
-- my_cal = blingbling.calendar.new({type = "imagebox", image = beautiful.widget_cal})
-- my_cal:set_cell_padding(4)
-- my_cal:set_title_font_size(9)
-- my_cal:set_title_text_color("#4F98C1")
-- my_cal:set_font_size(9)
-- my_cal:set_inter_margin(1)
-- my_cal:set_columns_lines_titles_font_size(8)
-- my_cal:set_columns_lines_titles_text_color("#d4aa00ff")
-- my_cal:set_link_to_external_calendar(true) --{{ <-- popup reminder
--{{---| Separators widgets |-----------------------------------------------------------------------
spr = widget({ type = "textbox" })
spr.text = ' '
sprd = widget({ type = "textbox" })
sprd.text = ' '
spr3f = widget({ type = "textbox" })
spr3f.text = ' '
arr1 = widget ({type = "imagebox" })
arr1.image = image(beautiful.arr1)
arr2 = widget ({type = "imagebox" })
arr2.image = image(beautiful.arr2)
arr3 = widget ({type = "imagebox" })
arr3.image = image(beautiful.arr3)
arr4 = widget ({type = "imagebox" })
arr4.image = image(beautiful.arr4)
arr5 = widget ({type = "imagebox" })
arr5.image = image(beautiful.arr5)
arr6 = widget ({type = "imagebox" })
arr6.image = image(beautiful.arr6)
arr7 = widget ({type = "imagebox" })
arr7.image = image(beautiful.arr7)
arr8 = widget ({type = "imagebox" })
arr8.image = image(beautiful.arr8)
arr9 = widget ({type = "imagebox" })
arr9.image = image(beautiful.arr9)
arr0 = widget ({type = "imagebox" })
arr0.image = image(beautiful.arr0)