Unterwegs mit dem Textbrowser W3m

Aus LinuxUser 02/2010

Unterwegs mit dem Textbrowser W3m

© Steve Cukrov, 123rf.com

Surfen in der Shell

Der Webbrowser W3m beherrscht Tabs, Grafiken und das Rendern von Frames, lässt sich per Maus steuern und bindet externe Programme ein – und das alles in einer Konsole.

Bereits 1995 erblickte in Japan die Software W3m das Licht der Welt, vom Entwickler Akinori Ito zunächst als reiner Pager wie Less oder More geplant. Aus diesen Anfängen entwickelte sich W3m zu einem komplexen Webbrowser und erfreut sich heute einer großen Fan-Gemeinde. Dieser Beliebtheit ist auch die Tatsache geschuldet, dass beinahe jede große Linux-Distribution den Textbrowser im Repository bereit hält, manchmal sogar in der Standardinstallation. Für Debian- und Ubuntu-Anwender steht zudem neben dem Hauptpaket w3m das Paket w3m-img bereit: Es ermöglicht dem Textbrowser, Grafiken in Terminals mit Framebuffer-Support darzustellen (Abbildung 1).

Abbildung 1: Selbst Grafiken stellen den Textbrowser vor kein großes Problem.

Abbildung 1: Selbst Grafiken stellen den Textbrowser vor kein großes Problem.

Sollten Sie das Programm nicht in den Lagerbeständen Ihres Distributors entdecken, finden Sie den Quellcode auf der Homepage des Sourceforge-Projektes [2]. Nach dem Herunterladen und Entpacken des Tarballs w3m-0.5.2.tar.gz bekommen Sie mit der Datei w3m-0.5.2/doc/README eine Anleitung zum Selbstkompilieren samt Hinweisen für die dazu benötigte GC-Bibliothek von Hans J. Boehm [3]. Falls Ihnen die Anleitung zu kompliziert erscheint, bietet Ihnen das Heft-Archiv von LinuxUser im Internet Hilfe zu diesem Thema an [4].

Der Browser

Zu einem erfolgreichen Start benötigt W3m verschiedene Parameter, wie etwa Webadressen, lokale Dateien auf Ihrem Rechner oder die Option -B, die das Programm mit den Bookmarks aufruft, falls Sie solche bereits vermerkt haben. Auch der Aufruf eines einzelnen Verzeichnispfades wie w3m /usr/share/doc/ ist möglich, W3m verwandelt sich in diesem Fall zu einem Dateibrowser mit geteilter Ansicht (Abbildung 2).

Abbildung 2: W3m zeigt Verzeichnisse und Verzeichnisinhalte in getrennten Fenstern.

Abbildung 2: W3m zeigt Verzeichnisse und Verzeichnisinhalte in getrennten Fenstern.

Nachdem Sie zum Beispiel mit dem Befehl w3m www.ubuntu-user.de das Programm mit einer URL als Argument gestartet haben, gilt es, sich mit dem Bedienkonzept des Browsers vertraut zu machen. Natürlich erlaubt er wie jedes Konsolen-Tool, das etwas auf sich hält, eine Steuerung komplett per Tastatur. Das heißt aber nicht, dass via Maus nichts geht: Mit einem Klick der rechten Maustaste zaubern Sie ein Popup-Menü hervor, über das Sie navigieren, Dokumente speichern, Tabs auswählen, Bookmarks auflisten oder die Hilfe und Einstellungen öffnen (Abbildung 3).

Abbildung 3: W3m bringt eine komfortable Maussteuerung mit.

Abbildung 3: W3m bringt eine komfortable Maussteuerung mit.

Die entsprechende Tastenfunktionen stehen in Klammern hinter den einzelnen Menüpunkten. Ein Doppelklick mit der linken Taste hingegen öffnet den Link unter dem Mauspfeil direkt. Falls Sie nicht zu den Freunden der Mausschubserei gehören, seien Sie beruhigt: Die Entwickler haben die Shortcuts der Tastaturbefehle gut durchdacht. So gelangen Sie mit [Umschalt]+[B] ein Dokument zurück, [Umschalt]+[J] und [Umschalt]+[K] scrollen in der Seite auf und ab, und [Q] beendet den Browser. Die Tabelle “Shortcuts” fasst die wichtigen Funktionen zusammen.

Shortcuts

Tasten Funktion
[O] Einstellungsmenü öffnen
[Umschalt]+[H] Online-Hilfe öffnen
[Umschalt]+[K] eine Zeile abwärts scrollen
[Umschalt]+[J] eine Zeile aufwärts scrollen
[Umschalt]+[<] nach rechts scrollen
[<] nach links scrollen
[Pfeiltasten] Cursor bewegen
[Umschalt]+[B] in der Browser-Chronik zurück
[Umschalt]+[E] Dokument editieren
[Enter] Link öffnen
[Strg]+[T] Link in neuem Tab öffnen
[Alt Gr]+[7] vorherigen Tab öffnen
[Alt Gr]+[0] nächsten Tab öffnen
[Umschalt]+[S] Dokument speichern
[Umschalt]+[U] neuen URL eingeben
[Esc]+[B] Lesezeichen betrachten
[Esc]+[A] aktuelle Seite zu Lesezeichen hinzufügen
[Umschalt]+[ 7] im Dokument vorwärts suchen
[Umschalt]+[ß] im Dokument rückwärts suchen
[Q] Programm beenden

Der Pager

Auch als Pager – also als Programm zum Anzeigen einzelner Dateien – hinterlässt W3m dank der ausgereiften Funktionen einen guten Eindruck. Das Programm öffnet natürlich nicht nur HTML-Dokumente, sondern auch Textdateien.

Stehen in der Textdatei URLs wie http://www.linux.org oder file:///usr/local beziehungsweise und für Newsgroups und Mail news:de.rec.film.misc respektive mailto:tux@tux.tld, dann verwandelt ein Druck auf die Doppelpunkt-Taste ([Umschalt]+[.]) diese in anwähl- und klickbare Links.

Konfrontieren Sie W3m mit einer Grafik-, Video oder PDF-Datei als Option – einem Format also, das der Pager selbst nicht beherrscht – dann schaut die Software in verschiedenen Dateien nach Hilfsanwendungen. Dabei handelt es sich in der Regel um die Files ~/.mailcap oder /etc/mailcap und bei W3m je nach Distribution zusätzlich um /etc/w3m/mailcap oder ~/.w3m/mailcap. Darin erfährt das Programm, welches externe Tool beispielsweise das PDF-Dokumente anzeigt, und startet dieses bei Bedarf.

Möchten Sie ein HTML-Dokument ungerendert im Quelltext betrachten, geben Sie dem Programm die Option -T text/plain mit. Das -T spezifiziert den Content-Type, den W3m bei der Darstellung annehmen soll. In diesem Falle text/plain, also Klartext, statt text/html, wie für HTML üblich:

$ w3m -T text/plain Datei.html

Als Pager arbeitet W3m mit dem Programm Man zusammen, das die Hilfedateien zu Programmen aufruft und strukturiert. Für gewöhnlich kommen hier die Pager Less oder More zum Einsatz. Bevorzugen Sie den flinken Japaner, geben Sie das entsprechend in der Kommandozeile über die Option -P (für Pager) an:

man -P"w3m" bash

Möchten Sie W3m dauerhaft als Pager einsetzen, definieren Sie dies über die gleichnamige Umgebungsvariable in der Konfiguration Ihrer Shell. Diese finden Sie, sofern Sie die Bash als Shell nutzen, in der Datei ~/.bashrc. Dort fügen Sie mit export PAGER="w3m" einen entsprechenden Eintrag hinzu. Nach einem Neustart der Shell oder einem Einlesen der veränderten Konfiguration benötigen Sie den Parameter -P nicht mehr, da Man in Zukunft automatisch zu W3m greift.

Der Konvertierer

Wie sein älterer Bruder, der textbasierter Webbrowser Lynx, konvertiert auch W3m HTML-Dokumente bei Bedarf zu reinen Textdateien ohne HTML-Tags. Dazu dient die Option -dump. Der Parameter übergibt die roh formatierte Seite an die Standardausgabe, das heißt, Sie können das Ergebnis in der Anzeige der Shell auf dem Monitor lesen. Diese Standardausgabe leiten Sie nun mit dem Zeichen > in eine Textdatei um:

$ w3m -dump linux.html > linux.txt

Nach der Eingabe des obigen Befehls erhalten Sie die Datei linux.txt, in der ein von allen HTML-Formatierungen befreiter Textinhalt der Datei linux.html steht. Die voreingestellte Textweite beträgt hierbei 80 Zeichen. Mit der Option -cols passen Sie diese an:

$ w3m -cols 50 -dump linux.html > linux.txt

Das Weiterleiten der Ausgabe an ein anderes Programm funktioniert Bash-typisch über die Pipe (|), die die Ausgabe das ersten Befehls an ein externes Tool zum weiteren Verarbeiten durchreicht:

w3m -dump http://www.linux-user.de | egrep -e "LinuxUser.*erscheint am"

Als externes Tool fungiert im Beispiel der Suchmuster-Finder Egrep. Er durchforstet den Textstrom nach dem regulären Ausdruck [6]"LinuxUser.* erscheint am" und zeigt Ihnen so in einer schnellen, kurzen Zeile in der Shell, wann die nächste Ausgabe von LinuxUser am Kiosk erscheint.

W3m arbeitet Hand in Hand mit Mailern wie Mutt, indem er HTML-Mails rendert. Wie weiter oben beschrieben, kommen an dieser Stelle die Mailcap-Dateien zum Einsatz, nach denen sich auch Mutt richtet. Das folgende Beispiel zeigt eine typische Mailcap-Regel, um die Option -I erweitert. Sie ruft den Webbrowser mit dem in der HTML-Mail festgelegten Zeichensatz auf:

text/html; w3m -I %{charset} -T text/html -dump %s; copiousoutput

Weitere Details zur Mailcap erhalten Sie mit dem Kommando man mailcap in der Shell.

Der Newsreader

W3m eignet sich aber nicht nur zum Surfen, Anzeigen und Konvertieren von Dokumenten. Er bietet außerdem das Feature, Newsgroups zu lesen – eine Fähigkeit, die er sich ebenfalls mit Lynx teilt. Um diese Fähigkeit zu nutzen, müssen Sie dem Tool zuerst einen Newsserver bekannt machen. Dazu drücken Sie in W3m [O], um das interaktive Einstellungsmenü namens Option Setting Panel zu öffnen. Hier wählen Sie im Abschnitt Network Settings den Punkt News server.

In das freie Feld dort tragen Sie Ihren Newsserver oder den Ihres Anbieters ein. Für Kunden des Providers T-Online würde sich dort news.t-online.de anbieten, aber natürlich ist dort jeder andere NNTP-Server möglich. In der Zeile Number of news messages legen Sie fest, wie viele neue Nachrichten W3m anzeigt. Abschließend speichern Sie ihre Einstellungen mit dem Button [OK] am Ende des Abschnitts. Nun genügt in der Kommandozeile folgender Befehl, um die Newsgroups de.comp.os.unix.linux.hardware zu lesen, in der sich alles um Hardware-Fragen von Linuxern dreht:

$ w3m news:de.comp.os.unix.linux.hardware

Eine Liste aller auswählbaren Untergruppen wie de.comp.os.unix.misc, de.comp.os.unix.apps.gnome oder de.comp.os.unix.shell liefert Ihnen das Programm, wenn Sie lediglich einen Hauptstamm der Usenet-Hierarchie als Option mitgeben:

$ w3m news:de.comp.os.unix

Konfiguration

Im Einstellungsmenü Option Setting Panel legen Sie nicht nur den zu verwendenden Newsserver fest. In den über 100 Optionen, die von der Konfiguration zum Darstellen von Grafiken und Nummerieren der Zeilen, Farben der Anzeige, Netzwerk- und Proxyeinstellungen bis hin zu SSL, Cookies und Zeichensatz reichen, findet sich auch Platz für externe Programme wie Editor, Mailer und weitere Webbrowser, die dann einspringen, wenn W3m an seine Grenzen stößt.

Obwohl das Einstellungsmenü keine deutsche Lokalisierung mitbringt, machen der logische Aufbau und eingängige Schlagworte es leicht, das Programm ohne Englischkenntnisse zu konfigurieren. Legen Sie als echter “Linux-Fundi” Wert darauf, die Konfiguration ohne Eingabemaske allein mit Editor und Textdatei zu gestalten, nutzen Sie dazu die Datei ~/.w3m/config. Die systemweite Konfiguration steckt im Pfad /etc/w3m/config.

Ebenfalls etwas Handarbeit erfordert das Anpassen der Tastaturkürzel und des Popup-Menüs, das Sie im Webbrowser über die rechte Maustaste erreichen. Die Standardvorgaben für die Tastaturbelegung finden Sie in der Datei /usr/share/doc/w3m/examples/keymap.default als Vorlage, oder als Besitzer des aus dem Tarball entpackten Quelltextes im Pfad /w3m-0.5.2/doc.

Um eigene Shortcuts zu definieren, kopieren Sie die keymap.default nach ~/.w3m/keymap. Der Aufbau der Datei folgt dem Muster keymap Taste(n)Funktion, wobei die Funktionen selbsterklärende Namen wie CLOSE_TAB oder MOVE_DOWN tragen und eigene Anpassungen damit erleichtern.

Kaum schwerer fällt das Gestalten eines eigenen Popup-Menüs, dessen Vorlage Sie als Textdateien menu.default und menu.submenu ebenfalls in den Pfaden /usr/share/doc/w3m/examples/ oder /w3m-0.5.2/doc vorfinden. Kopiert und umbenannt als ~/.w3m/menu bietet sie Ihnen – hilfreich kommentiert – viel Freiraum für Experimente.

Interaktive Konfiguration

Außerhalb der Vorgaben aus der Datei ~/.w3m/config nehmen Sie durch den Parameter -o (für “Option”) Einfluss auf die Konfiguration. Wie Sie im nächsten Befehl sehen, stellt sich der Textbrowser der Website unseres Magazins als Internet Explorer 6.0 mit dem Betriebssystem Windows 98 vor:

$ w3m -o "user_agent=MSIE 6.0 (Mozilla/4.0 (compatible; MSIE 6.0 Win98))" http://www.linux-user.de

Desgleichen schalten Sie anhand der Option -o das Darstellen von Grafiken für einzelne Webseiten ein, selbst wenn Sie dieses Feature generell unterbinden:

$ w3m -o "auto_image=1" -o "display_image=1"  http://www.ubuntu-user.de

Neben den im Artikel aufgeführten Parametern gibt es noch eine Reihe weiterer wichtiger und interessanter Optionen, die Sie in der Tabelle “Optionen für die Kommandozeile” finden.

Optionen für die Kommandozeile

Parameter Funktion
-B Lesezeichendatei laden
-o Option=Wert eine Option zur Laufzeit setzen
-cookie Cookies akzeptieren
-no-cookie Cookies verbieten
-dump Text an die Standardausgabe übergeben
-cols Anzahl Anzahl der Zeichen in einer Spalte definieren
-header HTTP-Header setzen (zum Beispiel "Referer: http://tux.tld")
-no-proxy keinen Proxy-Server verwenden
-T Typ Content-Type definieren
-M monochrome Darstellung einschalten

Fazit

Trotz seines geradezu biblischen Alters von 15 Jahren gehört W3m noch immer zu den schnittigsten und vielseitigsten Programmen, die das Internet je erobert haben. Die ausgefeilte Ergonomie und Vielfältigkeit macht die lediglich englische Lokalisierung und die spröde anmutende Oberfläche mehr als wett. Und wer den schnellen Japaner gerne mit Buttons, Menüleiste und Scrollbalken hätte: Der Befehl emacs -f w3m[5] lässt keine Wünsche unerfüllt (Abbildung 4).

Abbildung 4: Die Allrounder Emacs und W3m in einer Oberfläche vereint.

Abbildung 4: Die Allrounder Emacs und W3m in einer Oberfläche vereint.

Infos

[1] W3m-Homepage: http://w3m.sourceforge.net/

[2] W3m-Quellcode: http://sourceforge.net/projects/w3m/files/

[3] GC-Bibliothek: http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/

[4] Programme selbst kompilieren: Andreas Kneib, “Auf zu den Quellen”, http://www.linux-user.de/ausgabe/2005/07/086-kompilieren/

[5] Emacs-W3m: http://emacs-w3m.namazu.org/

[6] Reguläre Ausdrücke: Martin Möller, “Strukturierte Suche”, http://www.linux-user.de/ausgabe/2005/08/090-regex/

LinuxUser 02/2010 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben