From 93a5cf16ba5856fa5fe4e5b255853d40a96923bd Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Sun, 12 Jul 2015 21:26:41 +0200 Subject: [PATCH] Revert "spotify: try to support the new version of Spotify" This reverts commit 6c8985a9ae8b98f65c7b1d49392ec51bd264f497. Well, keep old version of Spotify until MPRIS DBus support is updated. --- bin/xss-lock | 3 +- lib/spotify.lua | 96 +++++++++++++++++++++++-------------------------- rc/tags.lua | 8 ----- 3 files changed, 47 insertions(+), 60 deletions(-) diff --git a/bin/xss-lock b/bin/xss-lock index 42ffac3..4513483 100755 --- a/bin/xss-lock +++ b/bin/xss-lock @@ -22,7 +22,8 @@ case "$1" in ;; lock) # First, stop Spotify - xdotool key XF86AudioPause + dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify \ + /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Pause # Then, lock screen i3lock_options="-e -i $HOME/.cache/awesome/current-wallpaper.png -t" echo "$(date --rfc-3339=seconds) $me: lock: lock screen" diff --git a/lib/spotify.lua b/lib/spotify.lua index 1dd6ac9..1c756cd 100644 --- a/lib/spotify.lua +++ b/lib/spotify.lua @@ -8,67 +8,61 @@ local awful = require("awful") local pairs = pairs -local os = os local capi = { client = client } module("vbe/spotify") --- Get spotify window -local function spotify() +-- Send a command to spotify +local function spotify(command) + awful.util.spawn("dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify " .. + "/org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player." .. command, false) +end + +function playpause() + spotify("PlayPause") +end + +function play() + -- Play seems unable to play in many situations, let's use + -- PlayPause instead. + spotify("PlayPause") +end + +function pause() + spotify("Pause") +end + +function stop() + spotify("Stop") +end + +function next() + spotify("Next") +end + +function previous() + spotify("Previous") +end + +function show() + -- This should work, but no: + -- spotify("Raise") local clients = capi.client.get() for k, c in pairs(clients) do if awful.rules.match(c, { instance = "spotify", class = "Spotify" }) then - return c + if not c:isvisible() then + awful.tag.viewonly(c:tags()[1]) + end + capi.client.focus = c + c:raise() + return end end - return nil -end - --- Send a command to spotify -local function cmd(command) - local client = spotify() - if client then - os.execute("xdotool key --window " .. client.window .. " " .. 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("space") -end - -function play() - cmd("XF86AudioPlay") -end - -function pause() - cmd("XF86AudioPause") -end - -function stop() - cmd("XF86AudioStop") -end - -function next() - cmd("XF86AudioNext") -end - -function previous() - cmd("XF86AudioPrev") + awful.util.spawn("spotify") + -- To disable notifications, add the following line to + -- ~/.config/spotify/Users/-user/prefs: + -- ui.track_notifications_enabled=false end diff --git a/rc/tags.lua b/rc/tags.lua index b409170..a9c4bcd 100644 --- a/rc/tags.lua +++ b/rc/tags.lua @@ -43,10 +43,6 @@ shifty.config.tags = { screen = math.max(screen.count(), 2), icon = tagicon("im"), nopopup = true, -- don't give focus on creation - }, - spotify = { - screen = 1, - exclusive = true } } @@ -64,10 +60,6 @@ shifty.config.apps = { match = { class = { "Skype", "Pidgin" } }, tag = "im", }, - { - match = { class = { "Spotify" } }, - tag = "spotify" - }, { match = { config.termclass }, startup = {