Fjärrstyrning av Spotify
Jag använder min Macbook mest som musikmaskin. Den står i en bokhylla i vardagsrummet, inkopplad till stereon och programmet som spelar musiken är Spotify. Det är däremot sällan jag står vid datorn och glor på skärmen, den bara finns där och spelar den musik jag vill höra för tillfället. Däremot har jag allt som oftast en surfdator i gång - antingen min lilla Eee PC eller min jobblaptop. Båda kör Linux och Openbox. Jag ville ha ett sätt att kontrollera Spotify från dessa två Linux-datorer utan att behöva gå bort till Macen. Detta är vad jag kom fram till...
Apple erbjuder ett par trevliga och väldigt lättarbetade verktyg för automatisering - Automator och Applescript. Det förra visade sig inte fungera med Spotify då det är mest fokuserat på att automatisera Apples egna program och verktyg, men Applescript visade sig vara som klippt och skuret. Man kan spela in script med Applescript Editor och sedan redigera och finjustera dem för hand. Sagt och gjort, jag gjorde på ett par minuter script för att hoppa till nästa låt, föregående låt och pausa musikeriet. Scripten kan man sedan köra från kommandoprompten med programmet osascript. Jag testade att SSH:a från min Eee till Macen och köra scripten - vilket gick alldeles utmärkt: Jag kunde hoppa till nästa låt, pausa, etc.
På Linuxmaskinen hackade jag sedan snabbt ihop ett shellscript för att via SSH köra mina script på Macen. Sedan kunde jag helt enkelt definiera keybindings i Openbox för att med en knapptryckning på Linuxmaskinen byta låt som spelas på Macen.
Om man ska pyssla med sånt här måste man använda public key authentication, något som de flesta borde göra hur som helst.
shellscriptet som körs på Linux-maskinerna (~/bin/spotter):
#!/bin/sh
local user="hakan"
local host="192.168.1.9"
local scriptpath="/Users/hakan/scripts/spotify"
if [[ -z ${1} ]]; then
echo "Usage: ${0} [next|prev|pause]"
fi
case ${1} in
next)
ssh ${user}@${host} osascript ${scriptpath}/ntrack.scpt
;;
prev)
ssh ${user}@${host} osascript ${scriptpath}/ptrack.scpt
;;
pause)
ssh ${user}@${host} osascript ${scriptpath}/ptrack.scpt
;;
esac
Ett exempel på Applescript:
tell application "Spotify" to activate
tell application "System Events"
tell process "Spotify"
click menu item 3 of menu 1 of menu bar item 5 of menu bar 1
end tell
end tell
Och så en liten snutt Openbox-konfiguration (från ~/.config/openbox/rc.xml):
<keybind key="W-n">
<action name="Execute">
<startupnotify>
<enabled>true</enabled>
<name>spotter next</name>
</startupnotify>
<command>~/bin/spotter next</command>
</action>
</keybind>