Rendez-vous sur Arrakis, Le site perso d'un hacker libriste curieux crêpophile étourdi
Le 22/05/2019 à 13:52 dans /Journal/2016/

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 <prx@ybad.name>  
 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 + "\n" + 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 :)