Let's put the current iTunes track into the Tmux status line
Michael Welford
Posted on September 8, 2018
When you go full terminal it can be nice to know what music is playing for when it really sucks/rocks. Wouldn't it be nice to get something like this into your Tmux status bar:
(the answer is yes)
Let's do this
First you need to get the following into a script file, let's say we put this into ~/.config/itunes_status.sh
.
#!/usr/bin/env bash
ITUNES_TRACK=$(osascript <<EOF
if appIsRunning("iTunes") then
tell app "iTunes" to get the name of the current track
end if
on appIsRunning(appName)
tell app "System Events" to (name of processes) contains appName
end appIsRunning
EOF
if [[ ! -z "$ITUNES_TRACK" ]]; then
ITUNES_ARTIST=$(osascript <<EOF
if appIsRunning("iTunes") then
tell app "iTunes" to get the artist of the current track
end if
on appIsRunning(appName)
tell app "System Events" to (name of processes) contains appName
end appIsRunning
EOF
TRACK_LEN=${#ITUNES_TRACK}
if [[ "$TRACK_LEN" -gt 30 ]]; then
ITUNES_TRACK=`echo "$ITUNES_TRACK" | cut -c -30`
ITUNES_TRACK+=...
fi
ARTIST_LEN=${#ITUNES_ARTIST}
if [[ "$ARTIST_LEN" -gt 20 ]]; then
ITUNES_ARTIST=`echo "$ITUNES_ARTIST" | cut -c -20`
ITUNES_ARTIST+=...
fi
echo '#[fg=#99a4bc]♫#[fg=#b4b4b9]' "$ITUNES_TRACK" '#[fg=#787882]-#[fg=#b4b4b9]' "$ITUNES_ARTIST"
exit
else
echo "#[fg=#787882]No music playing"
fi
Essentially this does the following:
- Check if iTunes is running, and if so grab the name of the track
- If we have a track name, also grab the artist
- If the track name is over 30 characters in length, truncate and insert an ellipsis
- If the artist name is over 20 characters in length, do the same
- Output this with some colours and space it out
- Otherwise write "No music playing"
Insert into the Tmux status bar
Ok, so that's nice an' all but we need to get that into the Tmux status. That can be accomplished by inserting something like the following into your .tmux.conf
:
set -g status-right "#(~/.config/itunes_status.sh) #[fg=#57575e]│ #[fg=white]%d/%m/%Y %H:%M "
Note as a "bonus" I have also put in the time after the iTunes track (yes, yes, such a generous bonus). If you are wondering what those colour hex values are, they come from the falcon theme (made by moi). Don't forget that you will need to make this script executable too.
Posted on September 8, 2018
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.