X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/8d3868d7ce528cfc075e246c8935bae2724e0868..f1964b40e49dff92abdff97b7bd0408435ed589f:/widget/mpd.lua?ds=inline diff --git a/widget/mpd.lua b/widget/mpd.lua index b5281b0..01f28e6 100644 --- a/widget/mpd.lua +++ b/widget/mpd.lua @@ -1,34 +1,30 @@ - --[[ - - Licensed under GNU General Public License v2 - * (c) 2013, Luke Bonham - * (c) 2010, Adrian C. - + + Licensed under GNU General Public License v2 + * (c) 2013, Luca CPZ + * (c) 2010, Adrian C. + --]] -local helpers = require("lain.helpers") -local shell = require("awful.util").shell -local escape_f = require("awful.util").escape -local focused = require("awful.screen").focused -local naughty = require("naughty") -local wibox = require("wibox") -local os = { getenv = os.getenv } -local string = { format = string.format, - gmatch = string.gmatch, - match = string.match } -local setmetatable = setmetatable +local helpers = require("lain.helpers") +local shell = require("awful.util").shell +local escape_f = require("awful.util").escape +local focused = require("awful.screen").focused +local naughty = require("naughty") +local wibox = require("wibox") +local os = os +local string = string -- MPD infos -- lain.widget.mpd -local mpd = {} -local function worker(args) +local function factory(args) + local mpd = { widget = wibox.widget.textbox() } local args = args or {} local timeout = args.timeout or 2 local password = (args.password and #args.password > 0 and string.format("password %s\\n", args.password)) or "" - local host = args.host or "127.0.0.1" - local port = args.port or "6600" + local host = args.host or os.getenv("MPD_HOST") or "127.0.0.1" + local port = args.port or os.getenv("MPD_PORT") or "6600" local music_dir = args.music_dir or os.getenv("HOME") .. "/Music" local cover_pattern = args.cover_pattern or "*\\.(jpg|jpeg|png|gif)$" local cover_size = args.cover_size or 100 @@ -41,8 +37,6 @@ local function worker(args) local echo = string.format("printf \"%sstatus\\ncurrentsong\\nclose\\n\"", password) local cmd = string.format("%s | curl --connect-timeout 1 -fsm 3 %s", echo, mpdh) - mpd.widget = wibox.widget.textbox() - mpd_notification_preset = { title = "Now playing", timeout = 6 } helpers.set_map("current mpd track", nil) @@ -112,7 +106,8 @@ local function worker(args) if not string.match(mpd_now.file, "http.*://") then -- local file instead of http stream local path = string.format("%s/%s", music_dir, string.match(mpd_now.file, ".*/")) - local cover = string.format("find '%s' -maxdepth 1 -type f | egrep -i -m1 '%s'", path:gsub("'", "'\\''"), cover_pattern) + local cover = string.format("find '%s' -maxdepth 1 -type f | egrep -i -m1 '%s'", + path:gsub("'", "'\\''"), cover_pattern) helpers.async({ shell, "-c", cover }, function(current_icon) common.icon = current_icon:gsub("\n", "") if #common.icon == 0 then common.icon = nil end @@ -134,4 +129,4 @@ local function worker(args) return mpd end -return setmetatable(mpd, { __call = function(_, ...) return worker(...) end }) +return factory