local artist = self._currentsong.artist
local title = self._currentsong.title
local file = self._currentsong.file
- if not artist then
+ if artist and title then
+ text = string.format("%s - %s", artist, title)
+ elseif title or file then
text = string.format("%s", title or file )
else
- text = string.format("%s - %s", artist, title)
+ text = "-"
end
self._textbox.text = text
end
end
function widget:get_info()
- local info = {}
local status, song = self._status, self._currentsong
+ if not status.state then return nil end
+ if not status.song then return nil end
+
+ local info = {}
info.title = status.state .. " " .. status.song .. "/" .. status.playlistlength .. " " .. song_duration(status.elapsed, status.duration)
if not song.artist then
info.text = string.format("%s", song.title or song.file)
function widget:popup_show()
if self._notification then return end
+
local table = self:get_info()
+ if not table then return end
+
self._timer:start()
self._notification = naughty.notify(
{ title = table.title
function widget:run()
self._status = {}
- self._status.songid = nil
self._connection = mpc.new(nil, nil, nil, function(err) self:error_handler(err) end,
"player", function(conn)
conn:send("currentsong", function(_, song)
self._currentsong = song
+ if not song then
+ self:update_widget()
+ return
+ end
conn:albumart(song.file, function(_, art)
self._albumart = art
self:update_widget()
)
globalkeys = gears.table.join(globalkeys,
+ --TODO headphone support
+ awful.key({ }, "XF86AudioPlay", function() widget._connection:play() end,
+ { description = "play", group = "mpd" }),
+ awful.key({ }, "XF86AudioPause", function() widget._connection:pause() end,
+ { description = "pause", group = "mpd" }),
awful.key({ modkey }, "p", function() widget._connection:toggle_play() end,
{ description = "toogle play", group = "mpd" }),
awful.key({ modkey }, "'", function() widget:popup_oneshot(5) end,