Rendez-vous sur Arrakis

C'est lorsque nous croyons savoir quelque chose qu'il faut justement réfléchir un peu plus profondément. F. Herbert

De simples notifications pour mpd

Je voulais afficher une notification lorsque la chanson jouée par MPD change, sans qu'elle ne soit trop envahissante. C'est donc parti pour un petit vilain hack

Voici le résultat :

Le script utilisé est lancé au début de ma session. Le voici :

Et voici le script :


 
 #!/usr/bin/env python3.4
 # -*- coding:Utf-8 -*- 
 
 
 """
 Auteur :      thuban <thuban@yeuxdelibad.net>  
 licence :     MIT
 """
 
 import sys
 import time
 import os
 from mpd import MPDClient
 
 ypos = 760 #change me
 def notify(t1, t2):
     #os.system('notify-send "{}"'.format(t1 + "
" + t2))
     os.system('echo "♪ {} - {} ♪" | dzen2 -p 5 -y {}'.format(t1, t2, ypos))
 
 
 def main():
     client = MPDClient()
     client.connect('localhost', 6600)
 
     oldsong = ''
     while True :
         try:
             try:
                 newsong = client.currentsong()['title']
                 artist = client.currentsong()['artist']
                 if newsong != oldsong:
                     oldsong = newsong
                     notify(newsong, artist)
             except KeyError:
                 pass
 
         except KeyboardInterrupt:
             print('Bye Bye!')
             client.close()
             client.disconnect()
             sys.exit(0)
 
         time.sleep(.2)
 
     return 0
 
 if __name__ == '__main__':
    main()
 
 
 # vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
 

Pour changer la position de la barre, modifiez le valeur de ypos = 760 .
Vous aurez besoin de dzen pour le notifications, sinon décommentez la ligne avec notify-send. python-mpd est nécessaire aussi.

Pour le reste, je vous laisse hacker à votre bon plaisir :)

le 13/11/2016 à 20:09:54, arno a dit :

Salut Thuban :)
Sous linux, il y a vraiment pléthore de lecteur de musique !! perso, je viens de découvrir Mplayer que je trouve vraiment cool; sinon pour les playlist j'utilise MOCP.
Donc ma question est: ...tintintin.... pourquoi mpd ?

A plus !!

le 13/11/2016 à 21:13:54, thuban a dit :

@arno : Pourquoi MPD ? ouhla, tout un programme!
- Il est léger
- Il est en mode "serveur" : ça permet de le contrôler avec n'importe quel client : en ligne de commande, en programme ncurse, en graphique (Gtk ou Qt ou autre), voire même en interface web.
- Ce dernier point le rend très facile à bricoler : gestions de playlists automatiques via des scripts divers
- ...