[bash] mpd-Steuerung als bash-Script mit Menü

Twostone

Commodore
Registriert
Dez. 2013
Beiträge
4.950
Hallo.

Nach ein paar verschiedenen Ansätzen mit "select" suche ich eher nach einer Möglichkeit, ein einfaches Menü darzustellen, das den MPD-Status anzeigt und eine Tastenauswahl zur Steuerung des MPD über mpc (sowie einiger eigener Scripte zur Steuerung der Soundkarte und ein paar andere Helfer). Diese Tastenauswahl werte ich derzeit durch ein case-statement aus.

Mein Ziel ist, den Bildschirm nicht stets neu zeichnen zu müssen, wenn ich eine Taste gedrückt habe. Bisher dachte ich an eine Lösung gemäß
Code:
 read TASTE -n 1 -s

Jetzt ist natürlich mpc so vermessen, und gibt nach jedem Befehl noch einmal eine extra status-Ausgabe. Ein Umleiten nach /dev/nul kommt nicht in Frage, da der Benutzer selber sehr wenig Berechtigungen erhält. Auch würde dennoch eine neue Zeile begonnen werden, und nach ein paar Tasteneingaben wäre dann das Menü verschwunden.

Habt Ihr eine Idee, wie man das lösen könnte?
 
case ""
function a
case ""
function b

function a
{
mpc....
printMenu()
}

function b
{
mpc....
printMenu()
}

function printMenu()
{
...clear screen
echo "..."
echo "..."
echo "..."
}
 
yummycandy schrieb:
function a
{
mpc....
printMenu()
}

genau dies versuche ich zu vermeiden, da dieses Script oft genug innerhalb einer screen-session über SSH ausgeführt werden wird. Ein "clear" sorgt lediglich dafür, daß der Verlaufspuffer um eine weitere Bildschirmseite aufgefüllt wird. Da das Terminal aber sehr gerne auch mal unterschiedliche Größen haben wird, wäre dieses weiterscrollen suboptimal.
 
Erstmals vielen Dank für die Antworten.

Letztlich werde ich wohl auf ncurses umsteigen müssen, um auch die MPD-Status-updates ohne einen Seitenvorschub mitverfolgen zu können.

Dennoch waren ein paar hilfreiche Sachen unter den Links zu finden, auch für andere projekte, darum Danke.
 
dialog geht für die geplante Anwendung nicht weit genug. Es müssen laufende aktualisierungen in einem Teil der Anzeigefläche durchgeführt werden, der Rest ist eher statisch. dialog eignet sich mehr für die Darstellung von Auswahlmenüs, dafür reicht es dann leider nicht.
 
Zurück
Oben