Do not use global variables
lcpz opened this issue · comments
The following widgets use _now
global variables:
$ git grep "_now" | cut -d: -f1 | uniq
alsa.lua
alsabar.lua
bat.lua
contrib/moc.lua
contrib/tp_smapi.lua
cpu.lua
fs.lua
imap.lua
mem.lua
mpd.lua
net.lua
pulse.lua
pulsebar.lua
temp.lua
weather.lua
We should use table-based variables instead, and thus eliminate the use of widget
within a settings()
function. Example:
local mpd = lain.widget.mpd {
settings = function()
local title = "mpd"
local artist = "off"
if mpd.now.state == "play" then -- instead of `mpd_now`
title = mpd.now.title
artist = mpd.now.artist
end
mpd.widget:set_text(title .. " " .. artist) -- instead of `widget:set_text`
end
}
This will break the current usage.
i can start doing this for the widgets that i actively use (pulsebar, mpd), touched recently for prototyping (weather), and anything else when i feel bored.
as for how this should land wrt #549, i get the sense you want it separated and after it?
PTAL @ https://github.com/razamatan/lain/pull/1/files.
i actually went with the direction of assuming that i would land the libsoup change first, then this one, hence i didn't do a pr yet (and showing the pr diff to address this issue in my own repo). if you feel strongly about flipping the order, i can do the work to put the glob pr before the libsoup one.
lmk.
everything ok..?