lain/mpd.md

84 lines
2.8 KiB
Markdown
Raw Normal View History

2013-09-07 14:33:53 +02:00
[<- widgets](https://github.com/copycat-killer/lain/wiki/Widgets)
2013-09-07 13:37:51 +02:00
Shows MPD status in a textbox.
2013-09-07 13:30:54 +02:00
2013-09-10 23:47:19 +02:00
mpdwidget = lain.widgets.mpd()
2013-09-07 13:30:54 +02:00
Now playing songs are notified like this:
+--------------------------------------------------------+
| +-------+ |
| |/^\_/^\| Now playing |
| |\ O O /| Cannibal Corpse (Hammer Smashed Face) - 1993 |
| | '.o.' | Hammer Smashed Face (Radio Disney Version) |
| +-------+ |
+--------------------------------------------------------+
2013-09-14 00:04:30 +02:00
You need a file like this
2013-09-14 00:05:37 +02:00
(front|cover|art|Folder|folder)\.(jpg|jpeg|png|gif)$
2013-09-14 00:04:30 +02:00
in the album folder in order to show album art in the notification too.
2013-09-10 23:52:25 +02:00
### input table
2013-09-07 13:30:54 +02:00
Variable | Meaning | Type | Default
--- | --- | --- | ---
2013-09-10 23:47:19 +02:00
`timeout` | Refresh timeout seconds | int | 1
2013-09-07 13:37:51 +02:00
`password` | MPD password | string | ""
`host` | MPD server | string | "127.0.0.1"
`port` | MPD port | string | "6600"
2013-09-07 13:30:54 +02:00
`music_dir` | Music directory | string | "~/Music"
2013-09-14 00:04:30 +02:00
`cover_size` | Album art notification size | int | 100
2013-09-10 23:47:19 +02:00
`settings` | User settings | function | empty function
`settings` can use `mpd_now` table, which contains the following string values:
2013-09-11 16:09:56 +02:00
- state (possible values: "play", "pause", "stop")
2013-09-10 23:47:19 +02:00
- file
- artist
- title
- album
- date
2013-09-12 17:47:10 +02:00
and can modify `mpd_notification_preset` table, which will be the preset for the naughty notifications. Check [here](http://awesome.naquadah.org/doc/api/modules/naughty.html#notify) for the list of variables it can contain. Default definition:
2013-09-07 13:30:54 +02:00
2013-09-12 17:47:10 +02:00
mpd_notification _preset = {
2013-09-10 23:47:19 +02:00
title = "Now playing",
2013-09-11 19:06:31 +02:00
timeout = 6,
text = string.format("%s (%s) - %s\n%s", mpd_now.artist,
mpd_now.album, mpd_now.date, mpd_now.title)
2013-09-10 23:47:19 +02:00
}
2013-09-07 13:30:54 +02:00
2013-09-10 23:47:19 +02:00
### output table
2013-09-07 13:30:54 +02:00
Variable | Meaning | Type
--- | --- | ---
`widget` | The textbox | `wibox.widget.textbox`
2013-09-13 02:33:41 +02:00
`update` | The notification | function
2013-09-07 13:30:54 +02:00
2013-09-10 23:47:19 +02:00
You can control the widget with key bindings like these:
2013-09-07 13:30:54 +02:00
-- MPD control
awful.key({ altkey, "Control" }, "Up",
2013-09-08 01:37:33 +02:00
function ()
awful.util.spawn_with_shell("mpc toggle || ncmpcpp toggle || ncmpc toggle || pms toggle")
2013-09-12 18:15:04 +02:00
mpdwidget.update()
2013-09-08 01:37:33 +02:00
end),
2013-09-07 13:30:54 +02:00
awful.key({ altkey, "Control" }, "Down",
2013-09-08 01:37:33 +02:00
function ()
awful.util.spawn_with_shell("mpc stop || ncmpcpp stop || ncmpc stop || pms stop")
2013-09-12 18:15:04 +02:00
mpdwidget.update()
2013-09-08 01:37:33 +02:00
end),
2013-09-07 13:30:54 +02:00
awful.key({ altkey, "Control" }, "Left",
2013-09-08 01:37:33 +02:00
function ()
awful.util.spawn_with_shell("mpc prev || ncmpcpp prev || ncmpc prev || pms prev")
2013-09-12 18:15:04 +02:00
mpdwidget.update()
2013-09-08 01:37:33 +02:00
end),
2013-09-07 13:30:54 +02:00
awful.key({ altkey, "Control" }, "Right",
2013-09-08 01:37:33 +02:00
function ()
awful.util.spawn_with_shell("mpc next || ncmpcpp next || ncmpc next || pms next")
2013-09-12 18:15:04 +02:00
mpdwidget.update()
2013-09-08 01:37:33 +02:00
end),
2013-09-07 13:30:54 +02:00
where `altkey = "Mod1"`.