{"id":3977,"date":"2011-10-02T22:06:54","date_gmt":"2011-10-02T20:06:54","guid":{"rendered":"https:\/\/www.gambaru.de\/blog\/?p=3977"},"modified":"2019-10-21T03:42:23","modified_gmt":"2019-10-21T01:42:23","slug":"fbterm-konsole-muss-nicht-langweilig-sein","status":"publish","type":"post","link":"https:\/\/gambaru.de\/blog\/2011\/10\/02\/fbterm-konsole-muss-nicht-langweilig-sein\/","title":{"rendered":"FbTerm: Konsole muss nicht langweilig sein"},"content":{"rendered":"<p>Inspiriert von <a href=\"http:\/\/kmandla.wordpress.com\/2010\/05\/28\/fbterm-birth-of-the-cool-for-the-console\/\">K.Mandlas Post zu FbTerm<\/a>, habe ich mich mal daran gewagt und mir diesen Framebuffer Terminal Emulator etwas genauer angeschaut.<br \/>\nDas ist <a href=\"http:\/\/code.google.com\/p\/fbterm\/\">FbTerm<\/a> in Aktion und in der Tat, das ist nicht X!<\/p>\n<p><a href=\"https:\/\/gambaru.de\/blog\/wp-content\/uploads\/2011\/09\/fbterm_screen1-1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-3978 size-medium\" title=\"fbterm_screen\" src=\"https:\/\/gambaru.de\/blog\/wp-content\/uploads\/2011\/09\/fbterm_screen1-1-300x225.png\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/gambaru.de\/blog\/wp-content\/uploads\/2011\/09\/fbterm_screen1-1-300x225.png 300w, https:\/\/gambaru.de\/blog\/wp-content\/uploads\/2011\/09\/fbterm_screen1-1-768x576.png 768w, https:\/\/gambaru.de\/blog\/wp-content\/uploads\/2011\/09\/fbterm_screen1-1.png 1024w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\n<a href=\"https:\/\/gambaru.de\/blog\/wp-content\/uploads\/2011\/10\/20111003_fbterm_screen_schwarz_auf_weiss1-1.png\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-4013 size-medium\" title=\"20111003_fbterm_screen_schwarz_auf_weiss\" src=\"https:\/\/gambaru.de\/blog\/wp-content\/uploads\/2011\/10\/20111003_fbterm_screen_schwarz_auf_weiss1-1-300x225.png\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/gambaru.de\/blog\/wp-content\/uploads\/2011\/10\/20111003_fbterm_screen_schwarz_auf_weiss1-1-300x225.png 300w, https:\/\/gambaru.de\/blog\/wp-content\/uploads\/2011\/10\/20111003_fbterm_screen_schwarz_auf_weiss1-1-768x576.png 768w, https:\/\/gambaru.de\/blog\/wp-content\/uploads\/2011\/10\/20111003_fbterm_screen_schwarz_auf_weiss1-1.png 1024w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\nFbTerm schafft es den Anschein zu erwecken, als ob man sich auf einem grafischen Desktop bef\u00e4nde, indem es ein Programm wie <a href=\"https:\/\/www.gambaru.de\/blog\/2011\/07\/28\/fbi-kann-auch-ohne-x-x-files-offnen\/\">fbi<\/a> oder fbv dazu nutzen kann ein Hintergrundbild zu setzen.<br \/>\nZumindest mit fbi hatte ich keinen Erfolg, aber vielleicht gibt es da drau\u00dfen jemanden, der mehr Gl\u00fcck als ich damit hat.<br \/>\nF\u00fcr mich funktionierte schlie\u00dflich fbv, welches auch von den Entwicklern des Framebuffer Terminals vorgeschlagen wird. Riskiert man einen Blick auf <code>man fbterm<\/code> findet sich dort schon ein vorgefertigtes Miniskript, mit welchem es m\u00f6glich ist ein Bild gegen den Framebuffer darzustellen und das dann von fbterm quasi abgegriffen und als Hintergrundbild verwendet wird.<\/p>\n<pre class=\"brush:shell\">#!\/bin\/bash\n# fbterm-bi: a wrapper script to enable background image with fbterm\n# usage: fbterm-bi \/path\/to\/image fbterm-options\necho -ne \"e[?25l\" # hide cursor\nfbv -ciuker \"$1\" &lt;&lt; EOF\nq\nEOF\nshift\nexport FBTERM_BACKGROUND_IMAGE=1\nexec fbterm \"$@\"<\/pre>\n<p>Eine kleine H\u00fcrde war das Installieren von <a href=\"http:\/\/www.t2-project.org\/packages\/fbv.html\">fbv<\/a>. 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\u00fcgung steht.<br \/>\nNicht immer muss aber hohes Alter gleichzeitig schlechte Software bedeuten. Ich lud den Quellcode von der Projektseite herunter und kompilierte fbv kurzerhand selbst.<\/p>\n<pre>.\/configure\nmake\n<\/pre>\n<p>Zum erfolgreichen \u00dcbersetzen sollte man sich vorher die Entwicklerpakete f\u00fcr libjpeg, libungif und libpng herunterladen. Danach verschob ich die fbv Bin\u00e4rdatei manuell nach <em>\/usr\/local\/bin<\/em>.<br \/>\nUm FbTerm schlie\u00dflich mit einem beliebigen Hintergrundbild zu starten, kopiert man das Skript z.B. in eine Datei namens fbterm-bi, macht sie mit <code>chmod u+x<\/code> ausf\u00fchrbar und f\u00fchrt das Ganze aus.<br \/>\n<code>.\/fbterm-bi mein-hintergrund-bild.jpg<\/code><br \/>\nInnerhalb von fbterm wird man darauf hingewiesen, dass fbterm die Tastaturbelegung nicht \u00e4ndern konnte, um die eigenen Tastaturk\u00fcrzel ausf\u00fchren zu k\u00f6nnen. Laut Handbuch kann man entweder fbterm mit setuid(0) Rechten ausstatten, mit dem der Prozess kurzzeitig Rechte erh\u00e4lt, die eigentlich nur root zustehen, um die Tastaturbelegung \u00e4ndern zu k\u00f6nnen.<br \/>\nDie zweite M\u00f6glichkeit ist das Programm <strong>setcap<\/strong> aus dem Paket <a href=\"http:\/\/packages.debian.org\/libcap2-bin\">libcap2-bin<\/a> zu benutzen, um nur einen klar definierten Teil der Root-Rechte auf FbTerm kurzzeitig \u00fcbergehen zu lassen.<br \/>\nMir erschien letzteres die bessere Methode zu sein, weswegen ich das vorgeschlagene Kommando ausf\u00fchrte.<br \/>\n<code>setcap 'cap_sys_tty_config+ep' \/usr\/bin\/fbterm<\/code><br \/>\nNun hat man auch als normaler Benutzer eines Systems Zugriff auf FbTerms Tastenk\u00fcrzel. So \u00e4hnlich wie bei screen lassen sich weitere Fenster innerhalb von FbTerm mit STRG+ALT+c \u00f6ffnen und mit STRG+ALT+d schlie\u00dfen. Mit STRG+ALT+Zahl l\u00e4sst sich dann wieder zwischen Fenstern hin- und herwechseln. Besonders n\u00fctzlich ist auch die eingebaute \"History\" Funktion SHIFT+Bildhoch bzw. SHIFT+Bildrunter, womit man die komplette Anzeige hoch - und runterscrollen kann.<br \/>\nInteressant wird es aber erst richtig mit einem Programm wie <a href=\"https:\/\/www.gambaru.de\/blog\/2011\/03\/27\/screen-richtig-nutzen\/\">screen<\/a>, womit sich der Bildschirm innerhalb von FbTerm teilen l\u00e4sst oder man seine gesamten Anwendung einfach wieder abtrennen, in den Hintergrund bringen und auch wieder nach Bedarf hervorholen kann.<br \/>\nEbenfalls 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\u00e4sst sich leicht in der Konfigurationsdatei <em>~\/.fbtermrc<\/em> \u00e4ndern.<br \/>\nSo l\u00e4sst sich mit ein paar Handgriffen selbst vollkommen \u00fcberholte Hardware, die ausschlie\u00dflich mit Konsolenanwendungen betrieben wird, schnell bunter und ansprechender machen. Da behaupte noch einer die Konsole sei langweilig. \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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\u00e4nde, indem es ein Programm wie &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/gambaru.de\/blog\/2011\/10\/02\/fbterm-konsole-muss-nicht-langweilig-sein\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eFbTerm: Konsole muss nicht langweilig sein\u201c<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6],"tags":[53,72],"_links":{"self":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/3977"}],"collection":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/comments?post=3977"}],"version-history":[{"count":1,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/3977\/revisions"}],"predecessor-version":[{"id":10999,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/posts\/3977\/revisions\/10999"}],"wp:attachment":[{"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/media?parent=3977"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/categories?post=3977"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gambaru.de\/blog\/wp-json\/wp\/v2\/tags?post=3977"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}