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

31
rc.lua
View file

@ -27,33 +27,32 @@ tags.setup()
-- {{{ widgets -- {{{ widgets
widgets = require("widgets") widgets = require("widgets")
widgets.setup()
for s = 1, screen.count() do for s = 1, screen.count() do
local ltop = widgets.layout(s,"left","top") local ltop = widgets.layout(s, "left", "top")
local rtop = widgets.layout(s,"right","top") local rtop = widgets.layout(s, "right", "top")
local lbottom = widgets.layout(s,"left","bottom") local lbottom = widgets.layout(s, "left", "bottom")
local rbottom = widgets.layout(s,"right","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.layout(lbottom)
widgets.add.taglist("tags", s, 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.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.spacer(rtop)
widgets.add.battery("bat", s, rtop, "BAT0") widgets.add.battery("int", rtop, "BAT0")
widgets.add.spacer(rtop) widgets.add.spacer(rtop)
widgets.add.battery("slice", s, rtop, "BAT1") widgets.add.battery("ext", rtop, "BAT1")
widgets.add.spacer(rtop) widgets.add.spacer(rtop)
widgets.add.wifi("wlan", s, rtop, "wlan0") widgets.add.wifi("wlan", rtop, "wlan0")
widgets.add.spacer(rtop) widgets.add.spacer(rtop)
widgets.add.systray(s, rtop) widgets.add.systray(rtop)
widgets.set_spacer_text(" ") widgets.set_spacer_text(" ")
end end
-- }}} -- }}}

View file

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