Widgets: Change interface to no longer need a screen parameter for each widget

This commit is contained in:
crater2150 2015-03-01 21:18:54 +01:00
parent 9265f70e4b
commit 15b75812cc
2 changed files with 45 additions and 45 deletions

29
rc.lua
View file

@ -27,31 +27,30 @@ tags.setup()
-- {{{ widgets
widgets = require("widgets")
widgets.setup()
for s = 1, screen.count() do
local ltop = widgets.layout(s,"left","top")
local rtop = widgets.layout(s,"right","top")
local lbottom = widgets.layout(s,"left","bottom")
local rbottom = widgets.layout(s,"right","bottom")
local ltop = widgets.layout(s, "left", "top")
local rtop = widgets.layout(s, "right", "top")
local lbottom = widgets.layout(s, "left", "bottom")
local rbottom = widgets.layout(s, "right", "bottom")
widgets.add.clock("clock", s, ltop)
widgets.add.clock("clock", ltop)
widgets.add.layout(s, lbottom)
widgets.add.taglist("tags", s, lbottom)
widgets.add.layout(lbottom)
widgets.add.taglist("tags", lbottom)
widgets.add.mail("mail_me", s, rbottom, { os.getenv("HOME") .. "/.maildir/me" }, "bottom_right")
widgets.add.mail("mail_me", rbottom, { os.getenv("HOME") .. "/.maildir/me" }, "bottom_right")
widgets.add.spacer(rbottom)
widgets.add.mail("mail_uber", s, rbottom, { os.getenv("HOME") .. "/.maildir/uber" }, "bottom_right")
widgets.add.mail("mail_uber", rbottom, { os.getenv("HOME") .. "/.maildir/uber" }, "bottom_right")
widgets.add.cpu("cpu", s, rtop)
widgets.add.cpu("cpu", rtop)
widgets.add.spacer(rtop)
widgets.add.battery("bat", s, rtop, "BAT0")
widgets.add.battery("int", rtop, "BAT0")
widgets.add.spacer(rtop)
widgets.add.battery("slice", s, rtop, "BAT1")
widgets.add.battery("ext", rtop, "BAT1")
widgets.add.spacer(rtop)
widgets.add.wifi("wlan", s, rtop, "wlan0")
widgets.add.wifi("wlan", rtop, "wlan0")
widgets.add.spacer(rtop)
widgets.add.systray(s, rtop)
widgets.add.systray(rtop)
widgets.set_spacer_text("")
end

View file

@ -86,7 +86,6 @@ local function setup() -- {{{
bars[s].right.top = right_top_layout
end
end -- }}}
widgets.setup = setup
-- }}}
--------------------------------------------------------------------------------
@ -114,7 +113,7 @@ widgets.update = update
local function get_layout(screen, bar, align) --{{{
if bars[screen][bar] == nil then return nil end
return bars[screen][bar][align]
return {screen = screen, layout = bars[screen][bar][align]}
end --}}}
widgets.layout = get_layout
@ -126,7 +125,7 @@ widgets.layout = get_layout
--------------------------------------------------------------------------------
-- mail widget
local function mailwidget(name, screen, parent_layout, mailboxes, notify_pos) --{{{
local function mailwidget(name, parent, mailboxes, notify_pos) --{{{
local widget = wibox.widget.textbox()
local bg = wibox.widget.background()
bg:set_widget(widget)
@ -149,60 +148,60 @@ local function mailwidget(name, screen, parent_layout, mailboxes, notify_pos) --
end
return "⬓⬓ Unread "..args[2].." / New "..args[1].. " "
end, 0, mailboxes)
wlist[screen][name] = widget
parent_layout:add(bg)
wlist[parent.screen][name] = widget
parent.layout:add(bg)
widgets.update(name)
end
--}}}
widgets.add.mail = mailwidget
-- text clock
local function clockwidget(name, screen, parent_layout) -- {{{
wlist[screen][name] = awful.widget.textclock()
parent_layout:add(wlist[screen][name])
local function clockwidget(name, parent) -- {{{
wlist[parent.screen][name] = awful.widget.textclock()
parent.layout:add(wlist[parent.screen][name])
end
--}}}
widgets.add.clock = clockwidget
-- layoutbox
local function layoutwidget(screen, parent_layout) -- {{{
wlist[screen]["layout"] = awful.widget.layoutbox(s)
parent_layout:add(wlist[screen]["layout"])
local function layoutwidget(parent) -- {{{
wlist[parent.screen]["layout"] = awful.widget.layoutbox(s)
parent.layout:add(wlist[parent.screen]["layout"])
end
--}}}
widgets.add.layout = layoutwidget
-- taglist
local function taglistwidget(name, screen, parent_layout) --{{{
local function taglistwidget(name, parent) --{{{
-- Create a taglist widget
wlist[screen][name] = awful.widget.taglist(screen,
wlist[parent.screen][name] = awful.widget.taglist(parent.screen,
awful.widget.taglist.filter.all,
mytaglist.buttons)
parent_layout:add(wlist[screen][name])
parent.layout:add(wlist[parent.screen][name])
end --}}}
widgets.add.taglist = taglistwidget
-- system tray
-- not using a name argument, because only one systray is allowed
local function systraywidget(screen, parent_layout) --{{{
local function systraywidget(parent) --{{{
if (wlist["systray"] ~= nil) then
return
end
wlist["systray"] = wibox.widget.systray()
parent_layout:add(wlist["systray"])
parent.layout:add(wlist["systray"])
end --}}}
widgets.add.systray = systraywidget
-- cpu usage
local function cpuwidget(name, screen, parent_layout) --{{{
wlist[screen][name] = wibox.widget.textbox()
vicious.register(wlist[screen][name], vicious.widgets.cpu, "CPU: $1%")
parent_layout:add(wlist[screen][name])
local function cpuwidget(name, parent) --{{{
wlist[parent.screen][name] = wibox.widget.textbox()
vicious.register(wlist[parent.screen][name], vicious.widgets.cpu, "CPU: $1%")
parent.layout:add(wlist[parent.screen][name])
end --}}}
widgets.add.cpu = cpuwidget
-- battery
local function batterywidget(name, screen, parent_layout, batname) --{{{
local function batterywidget(name, parent, batname) --{{{
print("creating batwidget '" .. name .. "' for battery '"..batname.."'")
local widget = wibox.widget.textbox()
local bg = wibox.widget.background()
@ -221,18 +220,18 @@ local function batterywidget(name, screen, parent_layout, batname) --{{{
args[1]..args[2].."% - "..args[3]
end
end, 61, batname)
wlist[screen][name] = widget
parent_layout:add(bg)
wlist[parent.screen][name] = widget
parent.layout:add(bg)
widgets.update(name)
end --}}}
widgets.add.battery = batterywidget
-- wireless status
local function wifiwidget(name, screen, parent_layout, interface) --{{{
wlist[screen][name] = wibox.widget.textbox()
vicious.register(wlist[screen][name], vicious.widgets.wifi,
local function wifiwidget(name, parent, interface) --{{{
wlist[parent.screen][name] = wibox.widget.textbox()
vicious.register(wlist[parent.screen][name], vicious.widgets.wifi,
"WLAN ${ssid} @ ${sign}, Q:${link}/70", 31, interface)
parent_layout:add(wlist[screen][name])
parent.layout:add(wlist[parent.screen][name])
end --}}}
widgets.add.wifi = wifiwidget
@ -247,8 +246,8 @@ local spacer = wibox.widget.textbox()
spacer:set_text(" ")
-- manual spacing between widgets
local function spacerwidget(parent_layout) --{{{
parent_layout:add(spacer)
local function spacerwidget(parent) --{{{
parent.layout:add(spacer)
end --}}}
widgets.add.spacer = spacerwidget
@ -261,6 +260,8 @@ widgets.set_spacer_text = spacertext
-- }}}
--------------------------------------------------------------------------------
setup()
return widgets
-- vim:foldmethod=marker