In questo angolo di web, dove scrivo cose sparse, senza badare alla benché minima connessione logica tra i post, oggi vediamo l'argomento Conky.
Di recente mi sono interessato in particolare alla visualizzazione di artista e titolo della canzone in riproduzione. Ho trovato una soluzione, un po' artigianale (e che non richiede plugin esterni), per Pragha e Quodlibet.

L'idea di fondo

Entrambi i player possono essere lanciati da terminale con una particolare opzione, che mostra lo stato di riproduzione.

Pragha
«mattux@artemide:~»$ pragha -c
state: Playing
file: /home/mattux/Musica/Fabrizio De André (1967-2003)/1999 - In concerto Live/09 - Il testamento di Tito.mp3
title: Il testamento di Tito
artist: Fabrizio De André
album: In Concerto
genre: Other
year: 1999
track_no: 9
comment:
length: 498
bitrate: 252
channels: 2
samplerate: 44100

Quodlibet
«mattux@artemide:~»$ quodlibet --print-playing
Fabrizio De André - In Concerto - 9 - Il testamento di Tito
L'idea di fondo è filtrare l'output di questi comandi e visualizzare solo quello che ci interessa, cioè Artista - Titolo.

Pragha

Estrapoliamo l'artista:
pragha -c | grep artist | sed s/artist://
Estrapoliamo il titolo della canzone:
pragha -c | grep title | sed s/title://
In sostanza quello che stiamo facendo è dire a grep di selezionare solo la riga contenete la parola "artist" e a sed di eliminare, da quella riga, la stringa "artist:".
Per il titolo della canzone agiamo in maniera analoga.

E in Conky come lo inseriamo? Così:
${if_running pragha}
${exec pragha -c | grep artist | sed s/artist://} -${exec pragha -c | grep title | sed s/title://}
${endif}
Possiamo anche inserire un controllo per fare eseguire il comando a Conky soltanto se il player è in esecuzione.

Quodlibet

nota: In fondo al post (paragrafo "update" ) ho aggiunto un modo più semplice. Questo metodo rimane comunque valido.

Possiamo estrapolare tutto con un solo comando:
quodlibet --print-playing | awk 'BEGIN { FS = " - " } ; { print $1,$4 }'
Il problema è il trattino da visualizzare a schermo, che io onestamente non saprei come inserire in un comando del genere. Perciò...

Estrapoliamo l'artista:
quodlibet --print-playing | awk 'BEGIN { FS = " - " } ; { print $1 }'
Estrapoliamo il titolo della canzone:
quodlibet --print-playing | awk 'BEGIN { FS = " - " } ; { print $4 }'
Qui ci stiamo affidando ad awk, facendogli stampare rispettivamente la prima e la quarta colonna, usando il trattino come separatore (FS = " - ").

In Conky diventa:
${if_running quodlibet}
${exec quodlibet --print-playing | awk 'BEGIN { FS = " - " } ; { print $1 }'} - ${exec quodlibet --print-playing | awk 'BEGIN { FS = " - " } ; { print $4 }' }
${endif}

Il risultato

Se non abbiamo sbagliato nulla, a schermo dovremmo avere qualcosa del tipo

Con entrambi i player.

Update
Riguardo a Quodlibet, ho appena scoperto che l'opzione --print-playing supporta come parametro dei tag. La sintassi è piuttosto semplice:
quodlibet --print-playing ""
Si possono anche usare più tag, unendoli con una tilde (~):
quodlibet --print-playing ""
Ad esempio:
«mattux@artemide:~»$ quodlibet --print-playing "<artist~title>"
Fabrizio De André - Il testamento di Tito
Perciò in Conky diventa, molto più semplicemente:
${if_running quodlibet}
${exec quodlibet --print-playing "<artist~title>" }
${endif}