Pausa musiken i iTunes/Spotify via tangentbordet
2011-06-22 - applescript, itunes, spotify
Uppdaterade den här eftersom senaste versionen av Spotify stöder AppleScript! Så nu funkar detta ännu smidigare när man har Spotify igång.
Ja, Apple släppte ju nyligen nya tangentbord som är väldigt tunna och har så där härligt låga tangenter. Jag älskar dom och skulle aldrig byta tillbaka. Men det är en sak som stör mig med dem. Dom har "inbyggda" knappar för iTunes. F7, F8 och F9 är specialknappar som styr iTunes. Det vore väl helt i sin ordning om det inte var så att man måste stänga av F-funktionaliteten på knapparna för att kunna använda det, eller trycka på den illa placerade Fn-knappen likt på en laptop.
Sen så använder jag F-tangenterna faktiskt, speciellt för saker som att byta Space, lite code completion i BBEdit och sådant, men mest för att jag ställt in att F1/F2 är framåt/bakåt i Safari och i Findern och det kan jag inte leva utan.
Så vad gör man åt det då? Jo, man låter knapparna vara F-tangenter och använder Quicksilver (om du inte redan använder Quicksilver så är det verkligen dags att börja nu, världens mest användbara program) för att knyta AppleScripts till tangenter. Det är väldigt enkelt och kallas för Triggers. Du skapar ett AppleScript och lägger det på ett ställe som Quicksilver indexerar och sen lägger du upp en ny trigger i Preferences för Quicksilver. Där söker du upp ditt script och sen kan du sätta att det ska köras när du klickar på till exempel F8, som är play/pause-knappen på tangentbordet.
Play/pause
tellapplication "iTunes" to playpause
Ovanstående script pausar eller startar musiken i iTunes. Enkelt och smidigt. Men sedan en stund tillbaka så använder jag Spotify också, och det vore ju synd om ovanstående script startar iTunes bara för att jag just nu lyssnar på musik i Spotify, så därför så använder jag nedanstående script:
iTunes/Spotify
tellapplication "System Events" set aApps to (name of every process) end tell if "Spotify" is in aApps then tell application "Spotify" to playpause else if "iTunes" is in aApps then tell application "iTunes" to playpause end if
Ok, för att förklarar lite så frågar jag först "System Events" om vilka program som är igång, sen kollar jag om Spotify är med i listan. Om det är det så är det med allra största säkerhet det jag lyssnar på. Om Spotify inte är igång så faller vi tillbaka på iTunes, om det är igång. Annars händer inget.
Det är för play/pause det, sedan måste vi ha script för volym och nästa/föregående spår
Next track
tellapplication "System Events" set aApps to (name of every process) end tell if "Spotify" is in aApps then tell application "Spotify" to next track else if "iTunes" is in aApps then tell application "iTunes" if player state is playing then next track end if end tell end if
Previous track
tellapplication "System Events" set aApps to (name of every process) end tell if "Spotify" is in aApps then tell application "Spotify" to previous track else if "iTunes" is in aApps then tell application "iTunes" if player state is playing then previous track end if end tell end if
Volume up
setgetSound to (get volume settings) as list set Theoutput to item 1 of getSound set volume output volume Theoutput + 10
Volume down
setgetSound to (get volume settings) as list set Theoutput to item 1 of getSound set volume output volume Theoutput - 10
Och det är allt - mycket nöje!