Script pour MPD

Rédigé par lkiefer - - Aucun commentaire

MPD (Music Player Daemon) est un lecteur audio, qui a la particularité de se lancer en tant que démon (sans interface). Pour le contrôler, il faut passer par un logiciel client, qui envoie les commandes au lecteur (logiciel serveur). On peut ainsi contrôler le lecteur à distance (ethernet, wifi, bluetooth...), à partir d'un client graphique (Ario, Sonata...), interactif pour terminal (ncmpc), avec son téléphone (applications Android/iPhone ou en Java), en passant par une interface web, ou encore en ligne de commande (mpc).


C'est le logiciel que j'ai choisi pour écouter de la musique chez moi. Problème: l'ordinateur sur lequel est installé le logiciel n'est relié qu'au réseau (pas d'écran / clavier), et souvent je n'ai pas d'autre ordinateur allumé pour contrôler la lecture.


Je possède un petit pavé numérique USB, que j'aimerai utiliser pour contrôler MPD: à chaque touche correspondra une fonction. Vu qu’apparemment, ça n'existe pas, il ne reste plus qu'à créer ça :). La solution sera de créer un script bash, qui scrutera les touches enfoncées sur le numpad, et enverra les bonnes commandes grâce au logiciel client mpc.


Attention: une mauvaise manipulation peut engendrer des pertes de données ou endommager votre système. N’exécuter ces commandes qu'en connaissance de cause...

Télécharger le script: numpd


Pour pouvoir utiliser facilement le programme, il faut placer ce script dans le répertoire /usr/bin. On pourra ainsi le lancer en tapant simplement son nom dans un terminal. Attention aux droits alloués au script: seul l'utilisateur root doit pouvoir le modifier:

# chown root:root /usr/bin/numpd
# chmod 755 /usr/bin/numpd 

Il faut maintenant pouvoir lancer le script au démarrage de l'ordinateur. Pour qu'il soit utilisable, il faut qu'il soit affiché dans un terminal courant, de façon à ce qu'il capte les touches enfoncées sur le clavier. On va donc le lancer à la place du terminal par défaut, TTY1.
Pour éviter que le script soit lancé en tant que root, il faut créer un script de démarrage, qu'on va appeler /etc/init.d/numpd.sh, contenant ceci:

#!/bin/bash
su user -c /usr/bin/numpd

Remplacer "user" par un utilisateur existant et ayant des droits restreints. Adapter les permissions sur le fichier:

# chown root:root /etc/init.d/numpd.sh
# chmod 755 /etc/init.d/numpd.sh

Il ne reste plus qu'à editer le fichier /etc/inittab. Repérer la ligne correspondant au TTY1, qui doit ressembler à ça:

1:2345:respawn:/sbin/getty 38400 tty1

Remplacer /sbin/getty par le chemin complet vers le script de démarrage, comme ceci:

1:2345:respawn:/etc/init.d/numpd.sh 38400 tty1

Enregistrer, redémarrer, et voir le résultat!

Écrire un commentaire

Les commentaires sont modérés avant d'être postés. Les commentaires à vocation publicitaire, ou comportant un lien vers un site non personnel, ne seront pas publiés

Quelle est le deuxième caractère du mot qv6phf4 ?