Skip to content

Do not use global variables #550

Open
@lcpz

Description

@lcpz

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions