mardi 10 octobre 2017

Un indicateur pour Music on Console avec Byobu

Depuis que j'ai redécouvert Byobu grâce à l'intervention de Dustin Kirkland à l'UbuCon EU 2017, je ne peux plus m'en passer. A tel point que maintenant, pour écouter ma musique, je me suis remis à utiliser Music on Console, un lecteur audio pour Linux en ligne de commande.

Je voulais donc être en mesure de pouvoir visualiser d'un coup d'oeil le morceau écouté dans la barre des statuts de Byobu.

Car oui, Byobu vous permet d'écrire vos propres indicateurs. Pour cela, il vous faut seulement créer le répertoire $HOME/.byobu/bin, puis de créer un ficher dont le nom à pour forme fréquence_de_rafraichissement_en_secondes_nom_de_lindicateur.

Tout d'abord il nous faut installer MoC :

sudo apt install moc

Ensuite nous allons créer le répertoire pour les indicateurs personnalisés de Byobu :

mkdir $HOME/.byobu/bin/

Puis on crée le fichier 5_mocp :

vi $HOME/.byobu/bin/5_mocp

Voici le script, écrit en bash :

#!/bin/bash

music=$(mocp -i 2>&1)

## check if moc is running

function music_info() {

    mocp -i | grep -i $1 | awk -F": " '{print $2}'

}

function transform_state() {

    case $1 in 

        PLAY)

            echo ">>"
            ;;

        STOP)

            echo "[]"
            ;;

        PAUSE)

            echo "||"
            ;;
    esac
}

if [ $(echo $music | head | awk -F ':' '{print $1}') == 'State' ]; then
    
    if [ $(music_info state) != 'STOP' ]; then
        
        echo """\
$(transform_state $(music_info state)) \
$(music_info songtitle) \
by $(music_info artist) \
($(music_info album))
"""
    
    else

        echo """\
$(transform_state $(music_info state)) \
No music played !
"""

    fi

fi

On lui donne les droits d’exécution :

chmod +x $HOME/.byobu/bin/5_mocp

Et voilà :)

Concrètement, si le serveur MoC n'est pas lancé, l'indicateur n'affiche rien. Sinon il affiche la ligne suivante : $title by $artist ($album) préfixé par le symbole >>
en cas de lecture, et || lorsque le morceau est en pause.

Si aucun morceau n'est joué, l'indicateur affiche [] No music played !

Voici quelques copies d'écran :





Enjoy !

Aucun commentaire:

Enregistrer un commentaire