vincentbernat.i3wm-configur.../lib/spotify.lua
Vincent Bernat 8b1417a75d Revert "spotify: do not expect an answer to DBus request"
This reverts commit 1342c2b227. Doesn't
work otherwise... Odd?
2016-04-29 19:52:16 +02:00

80 lines
1.5 KiB
Lua

-- Drive spotify
-- Spotify uses the MPRIS D-BUS interface. See more information here:
-- http://specifications.freedesktop.org/mpris-spec/latest/
-- To get the complete interface:
-- mdbus2 org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2
local awful = require("awful")
local dbg = dbg
local pairs = pairs
local os = os
local capi = {
client = client
}
module("vbe/spotify")
-- Get spotify window
local function spotify()
local clients = capi.client.get()
for k, c in pairs(clients) do
if awful.rules.match(c, { instance = "spotify",
class = "Spotify" }) then
return c
end
end
return nil
end
-- Send a command to spotify
local function cmd(command)
local client = spotify()
if client then
os.execute("dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify " ..
"/org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player." .. command)
end
end
-- Show spotify
function show()
local client = spotify()
if client then
if not client:isvisible() then
awful.tag.viewonly(client:tags()[1])
end
capi.client.focus = client
client:raise()
else
awful.util.spawn("spotify")
end
end
function playpause()
cmd("PlayPause")
end
function play()
cmd("Play")
end
function pause()
cmd("Pause")
end
function stop()
cmd("Stop")
end
function next()
cmd("Next")
end
function previous()
cmd("Previous")
end
function mixer()
awful.util.spawn("pavucontrol")
end