Block > shell-fm - Last.fm ueber die Shell steuern
2 min (383 Wörter, 2165 Zeichen)
Hinweis
Dieser Eintrag ist älter als 3 Jahre und entspricht vermutlich nicht mehr dem neuesten Stand der Technik/Realität.
Letztens hab ich ja das grossartige Tool shell-fm
entdeckt. Dabei bringt es
sehr viele Moeglichkeiten mit sich.
shell-fm -d -i localhost
erlaubt es mir nach Eingabe von Benutzername und
Passwort das Programm “von fern” zu steuern. D.h. ich kann von ueberall aus
mal eben schnell pausieren, skippen oder sogar die Playlist wechseln. Auch
kann ich mir das gerade gespielte Lied in meiner Statusbar in WMII anzeigen
lassen, samt verbleibende Sekunden.
Die Moeglichkeiten sind vielfaeltig.
Alles was man dazu braucht, ist shell-fm
und netcat
.
Hat man die beiden Tools installiert, kann man sich eine shell-fm.rc
erstellen, in der zB sowas drin steht:
# ~/.shell-fm/shell-fm.rc
username =[name]
default-radio = lastfm://tag/Metal
t-color = 0;31
a-color = 0;34
bind = 127.0.0.1
Sinnvoll ist es dabei, in seine .bash_aliases folgendes einzutragen:
# shell-fm
alias shell-fm='shell-fm -d'
alias inf='echo info %t by %a - %l on %s/%S | nc localhost 54311'
alias skip='echo skip | nc localhost 54311'
alias quit='echo quit | nc localhost 54311'
Nun kann man auch schon mit shell-fm anfangen, Musik zu hoeren.
Der Rest ist selbsterklaerend/kann in der Manpage nachgelesen werden.
Nutzt man WMII, so kann man sein gerade gespieltes Lied anzeigen lassen:
# --- 8< ---
# ~/.wmii-3.5/wmiirc
# Status Bar Info
status() {
echo -n $(echo info '%t by %a (%l) - %R' | nc localhost 54311) '|' \
$(acpi -b | sed 's/%.*//' | sed 's/.*,//') '% ' $(acpi -b | \
sed 's/ remaining.*//' | sed 's/.*,//') '|' $(uptime | \
sed 's/.*://; s/,//g') '|' $(date)
}
# --- 8< ---
Da man durch das %R
nur die verbleibenden Sekunden angezeigt bekommt, habe ich
mir ein kleines C++ Programm geschrieben, das diese Sekunden per Pipe einliest
und in Minuten:Sekunden
umwandelt.
Das Programm (danke dabei an [flo], der mir dabei etwas geholfen hat): sec2minpipe.cpp
Kompilieren kann man es mit:
g++ sec2minpipe.cpp -o sec2minpipe
Nun erweitert man seine Statusbar so:
# --- 8< ---
# ~/.wmii-3.5/wmiirc
# Status Bar Info
status() {
echo -n $(echo info '%t by %a (%l)' | nc localhost 54311) '-' \
$(echo info '%R' | nc localhost 54311 | /pfad/zum/programm/sec2minpipe) \
'|' $(acpi -b | sed 's/%.*//' | sed 's/.*,//') '% ' $(acpi -b | \
sed 's/ remaining.*//' | sed 's/.*,//') '|' $(uptime | \
sed 's/.*://; s/,//g') '|' $(date)
}
# --- 8< ---
Fertig 😊