--]]
local helpers = require("lain.helpers")
-
local shell = require("awful.util").shell
local focused = require("awful.screen").focused
local escape_f = require("awful.util").escape
local naughty = require("naughty")
local wibox = require("wibox")
-
local os = { getenv = os.getenv }
local string = { format = string.format,
gmatch = string.gmatch }
-
local setmetatable = setmetatable
-- MOC audio player
-- lain.widgets.contrib.moc
-local moc = helpers.make_widget_textbox()
+local moc = {}
local function worker(args)
local args = args or {}
local followtag = args.followtag or false
local settings = args.settings or function() end
+ moc.widget = wibox.widget.textbox()
+
moc_notification_preset = { title = "Now playing", timeout = 6 }
helpers.set_map("current moc track", nil)
}
local path = string.format("%s/%s", music_dir, string.match(moc_now.file, ".*/"))
- local cover = string.format("%s -c \"find '%s' -maxdepth 1 -type f | egrep -i -m1 '%s'\"", shell, path, cover_pattern)
- helpers.async(cover, function(current_icon)
+ local cover = string.format("find '%s' -maxdepth 1 -type f | egrep -i -m1 '%s'", path, cover_pattern)
+ helpers.async({ shell, "-c", cover }, function(current_icon)
common.icon = current_icon:gsub("\n", "")
moc.id = naughty.notify(common).id
end)
end)
end
- helpers.newtimer("moc", timeout, moc.update)
+ moc.timer = helpers.newtimer("moc", timeout, moc.update, true, true)
- return setmetatable(moc, { __index = moc.widget })
+ return moc
end
return setmetatable(moc, { __call = function(_, ...) return worker(...) end })