FbTerm: Konsole muss nicht langweilig sein

Inspiriert von K.Mandlas Post zu FbTerm, habe ich mich mal daran gewagt und mir diesen Framebuffer Terminal Emulator etwas genauer angeschaut.

Das ist FbTerm in Aktion und in der Tat, das ist nicht X!

FbTerm schafft es den Anschein zu erwecken, als ob man sich auf einem grafischen Desktop befände, indem es ein Programm wie fbi oder fbv dazu nutzen kann ein Hintergrundbild zu setzen.

Zumindest mit fbi hatte ich keinen Erfolg, aber vielleicht gibt es da draußen jemanden, der mehr Glück als ich damit hat.

Für mich funktionierte schließlich fbv, welches auch von den Entwicklern des Framebuffer Terminals vorgeschlagen wird. Riskiert man einen Blick auf man fbterm findet sich dort schon ein vorgefertigtes Miniskript, mit welchem es möglich ist ein Bild gegen den Framebuffer darzustellen und das dann von fbterm quasi abgegriffen und als Hintergrundbild verwendet wird.

#!/bin/bash

# fbterm-bi: a wrapper script to enable background image with fbterm
# usage: fbterm-bi /path/to/image fbterm-options

echo -ne "e[?25l" # hide cursor

fbv -ciuker "$1" << EOF
q
EOF

shift
export FBTERM_BACKGROUND_IMAGE=1
exec fbterm "$@"

Eine kleine Hürde war das Installieren von fbv. Dieses kleine Programm kann zwar genauso wie fbi Bilder gegen den Framebuffer darstellen, wird aber seit sieben Jahren nicht mehr weiterentwickelt, weshalb es in Debian nicht mehr zur Verfügung steht.

Nicht immer muss aber hohes Alter gleichzeitig schlechte Software bedeuten. Ich lud den Quellcode von der Projektseite herunter und kompilierte fbv kurzerhand selbst.

./configure
make

Zum erfolgreichen Übersetzen sollte man sich vorher die Entwicklerpakete für libjpeg, libungif und libpng herunterladen. Danach verschob ich die fbv Binärdatei manuell nach /usr/local/bin.

Um FbTerm schließlich mit einem beliebigen Hintergrundbild zu starten, kopiert man das Skript z.B. in eine Datei namens fbterm-bi, macht sie mit chmod u+x ausführbar und führt das Ganze aus.

./fbterm-bi mein-hintergrund-bild.jpg

Innerhalb von fbterm wird man darauf hingewiesen, dass fbterm die Tastaturbelegung nicht ändern konnte, um die eigenen Tastaturkürzel ausführen zu können. Laut Handbuch kann man entweder fbterm mit setuid(0) Rechten ausstatten, mit dem der Prozess kurzzeitig Rechte erhält, die eigentlich nur root zustehen, um die Tastaturbelegung ändern zu können.

Die zweite Möglichkeit ist das Programm setcap aus dem Paket libcap2-bin zu benutzen, um nur einen klar definierten Teil der Root-Rechte auf FbTerm kurzzeitig übergehen zu lassen.

Mir erschien letzteres die bessere Methode zu sein, weswegen ich das vorgeschlagene Kommando ausführte.

setcap 'cap_sys_tty_config+ep' /usr/bin/fbterm

Nun hat man auch als normaler Benutzer eines Systems Zugriff auf FbTerms Tastenkürzel. So ähnlich wie bei screen lassen sich weitere Fenster innerhalb von FbTerm mit STRG+ALT+c öffnen und mit STRG+ALT+d schließen. Mit STRG+ALT+Zahl lässt sich dann wieder zwischen Fenstern hin- und herwechseln. Besonders nützlich ist auch die eingebaute “History” Funktion SHIFT+Bildhoch bzw. SHIFT+Bildrunter, womit man die komplette Anzeige hoch – und runterscrollen kann.

Interessant wird es aber erst richtig mit einem Programm wie screen, womit sich der Bildschirm innerhalb von FbTerm teilen lässt oder man seine gesamten Anwendung einfach wieder abtrennen, in den Hintergrund bringen und auch wieder nach Bedarf hervorholen kann.

Ebenfalls bemerkenswert sind die Verwendung von fontconfig und der damit einhergehende Zugriff auf die gleichen Schriften, die auch in GTK oder QT Anwendungen eingesetzt werden. Die Schriftfarbe und -familie lässt sich leicht in der Konfigurationsdatei ~/.fbtermrc ändern.

So lässt sich mit ein paar Handgriffen selbst vollkommen überholte Hardware, die ausschließlich mit Konsolenanwendungen betrieben wird, schnell bunter und ansprechender machen. Da behaupte noch einer die Konsole sei langweilig. :)

2 Kommentare zu FbTerm: Konsole muss nicht langweilig sein

Hinterlasse eine Antwort

  

  

  

Du kannst diese HTML tags benutzen

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>