-- Widgets
require("vicious")
-- Separator
local separator = widget({ type = "textbox" })
separator.text = ' | '
-- Date
local datewidget = widget({ type = "textbox" })
vicious.register(datewidget, vicious.widgets.date,
'%a %d/%m, %H:%M', 61)
-- CPU usage
local cpuwidget = widget({ type = "textbox" })
cpuwidget.text = 'CPU: '
local cpugraph = awful.widget.graph()
cpugraph:set_width(45):set_height(12):set_max_value(100)
cpugraph:set_border_color(beautiful.fg_widget_border)
cpugraph:set_gradient_angle(0):set_gradient_colors({
beautiful.fg_widget_start, beautiful.fg_widget_center, beautiful.fg_widget_end
})
vicious.register(cpugraph, vicious.widgets.cpu, "$1")
local cpuvalue = widget({ type = "textbox" })
vicious.register(cpuvalue, vicious.widgets.cpu,
function (widget, args)
return string.format(' %2d%%', args[1])
end)
-- Battery
local batwidget = nil
if config.hostname == "guybrush" then
batwidget = widget({ type = "textbox" })
vicious.register(batwidget, vicious.widgets.bat,
'BAT: ' ..
'$1 $2%',
61, "BAT0")
end
-- Memory usage
local memwidget = widget({ type = "textbox" })
vicious.register(memwidget, vicious.widgets.mem,
'Mem: ' ..
'$1%',
13)
-- Volume level
local volwidget = widget({ type = "textbox" })
vicious.register(volwidget, vicious.widgets.volume,
'Vol: ' ..
'$2 $1%',
2, "Master")
volwidget:buttons(awful.util.table.join(
awful.button({ }, 1, function () awful.util.spawn("pavucontrol", false) end),
awful.button({ }, 4, function () awful.util.spawn("amixer -q -c 0 set Master 2dB+", false) end),
awful.button({ }, 5, function () awful.util.spawn("amixer -q -c 0 set Master 2dB-", false) end)
))
local systray = widget({ type = "systray" })
-- {{{ Wibox initialisation
local wibox = {}
local promptbox = {}
local layoutbox = {}
local taglist = {}
taglist.buttons = awful.util.table.join(
awful.button({ }, 1,
function(t)
if t.screen ~= mouse.screen then
sharetags.tag_move(t, mouse.screen)
end
awful.tag.viewonly(t)
end),
awful.button({ modkey }, 1, awful.client.movetotag),
awful.button({ }, 3,
function(t)
if t.screen ~= mouse.screen then
sharetags.tag_move(t, mouse.screen)
end
awful.tag.viewtoggle(t)
end),
awful.button({ modkey }, 3, awful.client.toggletag),
awful.button({ }, 4, awful.tag.viewnext),
awful.button({ }, 5, awful.tag.viewprev))
local tasklist = {}
tasklist.buttons = awful.util.table.join(
awful.button({ }, 1, function (c)
if c == client.focus then
c.minimized = true
else
if not c:isvisible() then
awful.tag.viewonly(c:tags()[1])
end
-- This will also un-minimize
-- the client, if needed
client.focus = c
c:raise()
end
end))
for s = 1, screen.count() do
promptbox[s] = awful.widget.prompt({ layout = awful.widget.layout.horizontal.leftright })
layoutbox[s] = awful.widget.layoutbox(s)
tasklist[s] = awful.widget.tasklist(
function(c)
return awful.widget.tasklist.label.currenttags(c, s)
end, tasklist.buttons)
-- Create the taglist
taglist[s] = sharetags.taglist(s, sharetags.label.all, taglist.buttons)
-- Create the wibox
wibox[s] = awful.wibox({ screen = s,
fg = beautiful.fg_normal,
bg = beautiful.bg_widget,
position = "top",
height = 14,
})
-- Add widgets to the wibox
local onfirst = function(what)
if s == 1 then return what end
return nil
end
local onsecond = function(what)
if s == 2 or screen.count() == 1 then return what end
return nil
end
wibox[s].widgets = {
{
taglist[s], layoutbox[s],
separator, promptbox[s],
layout = awful.widget.layout.horizontal.leftright
},
onfirst(systray), onfirst(seperator),
datewidget, separator,
onsecond(volwidget), onsecond(separator),
onsecond(batwidget), onsecond(batwidget and separator or nil),
onfirst(memwidget), onfirst(separator),
onfirst(cpuvalue), onfirst(cpugraph.widget), onfirst(cpuwidget), onfirst(separator),
tasklist[s], separator,
layout = awful.widget.layout.horizontal.rightleft }
end
config.keys.global = awful.util.table.join(
config.keys.global,
awful.key({ modkey }, "r", function () promptbox[mouse.screen]:run() end))