Chawan
„Chawan“ wurde von Dirk (Diskussion) als in Bearbeitung markiert. Um Bearbeitungskonflikte zu vermeiden, kontaktiere Dirk (Diskussion) bitte, bevor du den Artikel bearbeitest.

Chawan ist ein moderner konsolenbasierter Browser mit Mausunterstützung, optionaler Bildanzeige, und der Möglichkeit Javascript auszuführen. Der Browser verfügt über eine HTML-Renderingengine die viele gängige HTML-Definitionen und CSS-Styleinformationen interpretieren und in eine textbasierte Darstellung umwandeln kann.
Installation
Das Programm ist als
chawan
in extra
verfügbar, und kann von dort
mittels Pacman
installiert werden.
Nach der Installation ist der Browser über den Kurzbefehl cha startbar.
Benutzung
Mittels cha -V wird visual-home geöffnet – die Startseite. Durch Angabe eines URLs als Parameter wird die dazugehörige Website geladen. Wenn der Browser geladen ist, kann mittels ⇧ Shift + → ein Kontextmenü mit diversen Optionen geöffnet werden. Mittels Strg + L wird die Adresszeile geöffnet. Mittels Q wird der Browser beendet. Vor und zurück navigieren kann man mittels , und .
[Später hier mehr]
Konfiguration
Die Konfiguration erfolgt mittels einer optionalen
TOML-Datei die an einer der entsprechenden Stellen definiert wird:
- Wenn die Umgebungsvariable
CHA_DIRgesetzt ist, dann wird$CHA_DIR/config.tomlbenutzt. - Wenn der XDG-basierende Pfad
${XDG_CONFIG_HOME:-~/.config}/chawan/config.tomlexistiert, wird diese Datei benutzt. - Ansonsten wird
~/.chawan/config.tomlbenutzt wenn es existiert.
Mittels cha -C datei kann man die Verwendung der genannten Datei erzwingen. Mittels cha --opt parameter=wert kann gezielt ein einzelner Konfgigurationsparameter mit dem gewünschten Wert übergeben werden. Chawan berücksichtigt zudem diverse Umgebungsvariablen wie unter anderem COLORTERM, VISUAL, oder LINES und COLUMNS.
Der Browser verfügt zudem über eine Vielzahl an Manpages mit detaillierten Informationen zu Funktionen, Verwendung, Konfiguration, Implementation, einer API, sowie tiefer gehender Entwicklung. Diese beginnen alle mit dem Prefix cha-.
Dieser Wiki-Artikel geht aufgrund der vielfältigen Möglichkeiten und Komplexität in Verwendung, Konfiguration, und Implementation nur auf einige grundlegende Dinge ein. Viele Optionen können zudem im Abschnitt [siteconf.seitenname] seitenspezifisch konfiguriert werden.
Bildanzeige
Die Bildanzeige in Chawan wird mittels der Sixel-Spezifikation umgesetzt. Terminals, die diese unterstützen, können damit Bilder anzeigen. Wenn Kitty verwendet wird, dessen Terminal graphics protocol zur Bildausgabe verwendet.
Will man gezielt ein system verwenden, so kann man dies in der Konfiguration im Abschnitt [display]hinterlegen.
$XDG_CONFIG_HOME/chawan/config.toml
[display] # Anzeigemodus für Bilder. Alternativ entsprechend 'kitty'. image-mode = 'sixel' # Optional: Anzahl der verwendeten Farben bei Verwendung # von Sixel, 'auto' oder 2 bis 65535 sixel-colors = 32000
Chawan ist im Grunde sehr gut darin, den richtigen Grafikmodus basierend auf dem verwendeten Environment zu wählen. Will man den Browser als reinen Textbrowser verwenden, so kann man dies in der generellen Pufferkonfiguration hinterlegen.
$XDG_CONFIG_HOME/chawan/config.toml
[buffer] images = false
Statt des Bildes wird nun immer [img] angezeigt, auch wenn man Kitty benutzt, oder das Terminal die Sixel-Spezifikation implementiert hat.
Will man ein Bild öffnen oder herunterladen, so kann man mit dem Cursor auf den [img]-Platzhalter navigieren und dann mittels ⇧ Shift + I eine Bildaktion ausführen, mittels R wird die spezifizierte Anwendung ausgeführt, standardmäßig xdg-open aus den xdg-utils.
Die Konfiguration auf der dies basiert, wird ausführlich in der Manpage cha-mailcap beschrieben, und erlaubt die Konfiguration nicht nur für Bilder. Die Standardkonfiguration ist im allgemeinen ausreichend, da xdg-open die Erkennung des Dateityps und Auswahl des passenden Programms übernimmt, und die Konfiguration nicht explizit für Chawan separat vorgenommen werden muss.
Seitenstil
Bei der Darstellung der Seite verwendet Chawan das eingestellte Theme des Terminalemulators als Grundlage. Für den Seitenstil werden die angenommene Terminalvordergrundfarbe und -hintergrundfarbe verwendet. Wenn die Hintergrundfarbe eine als Dunkel erkannte Farbe ist, wird die CSS-Option prefers-color-scheme: dark angewendet, die Seiten werden also immer in ihrem dunklen Modus angezeigt. Bei einer als Hell erkannten Farbe entsprechend der helle Modus.
Will man den Modus wechseln, aber dafür nicht die Terminalhintergrundfarbe anpassen, so geht dies in der [display]-Konfiguration. Wobei hier „ganz weiß“ und „ganz schwarz“ nicht funktionieren.
$XDG_CONFIG_HOME/chawan/config.toml
[display] # heller Modus für websites, alternativ '000001' für # den dunklen Modus verwenden default-background-color = 'fffff0'
Zudem besteht die Möglichkeit, ein eine komplett eigene Stildefinition zu verwenden. Die Definition erfolgt inline direkt in der Konfigurationsdatei, erlaubt aber das @import-Statement um eine externe Datei zu laden.
$XDG_CONFIG_HOME/chawan/config.toml
[buffer] user-style = ''' @import 'user.css' '''
Der Pfad ist dabei relativ zur Konfigurationsdatei von Chawan anzugeben. In der Datei kann mehr oder weniger normales CSS verwendet werden, Stildefinitionen müssen je nach Seite aber mittels !important markiert werden.
$XDG_CONFIG_HOME/chawan/user.css
body {
background-color: #babdb6 !important;
color: #2e3436 !important;
& a {
color: #729fcf !important;
font-weight: bold !important;
text-decoration: underline !important;
}
}
Dies konfiguriert einen Grauton als Hintergrund und einen Fast-Schwarz-Ton als Textfarbe, sowie blaugraue, unterstrichene, fett geschriebene Links. Es können die meisten gängigen CSS-Definitionen im CSS-Level-3 benutzt werden (Nesting, Scoping, diverse Querys).
Da Chawan ein Textbasierter Browser ist, haben viele Stildefinitionen wie z.B. Textgröße, Zeichen-Kerning, Animationen, etc. natürlich keinen Effekt in der Ausgabe.
Cookies und Javascript
Standardmäßig werden Cookies nicht berücksichtigt, und auch Javascript ist nicht aktiv. Es wird seitens der Entwickler empfohlen, dies per Siteconf vorzunehmen.
$XDG_CONFIG_HOME/chawan/config.toml
[siteconf.arch] host = '(.*\.)?archlinux\.(de
Hier werden unter der ID arch per regulärem Ausdruck für alle Subdomains und archlinux.de und archlinux.org direkt sowohl Cookies gespeichert, als auch Javascript aktiviert. Cookies werden standardmäßig in $CHA_DATA_DIR abngelegt, was in der Standardkonfiguration auf ${XDG_DATA_HOME:-$HOME/.local/share}/chawan verweist. Die Cookies liegen dort in der Datei cookies.txt in der Syntax der Netscape-HTTP-Cookie-file-Definition vor.
Mittels cookie = 'save' werden Cookies gespeichert und geladen, mittels cookie = true werden Cookies nicht gespeichert, sondern nur geladen. So kann man die Cookie-Datei im Nur-Lese-Zugriff umsetzen und außerhalb von Chawan selbst verwalten.
Für die Verwendung von Javascript stehen scripting = true und scripting = 'app' zur Verfügung. true aktiviert generell das Scripting, lässt aber einige Javascript-APIs deaktiviert, die für erweitere Funktionen benutzt werden, die das Fingerprinting einfacher machen. Mittels 'app' werden diese Funktionen ebenfalls aktiviert, was bei einigen Seiten bessere Ergebnisse erzielen kann, aber eine leichtere Nachverfolgung des Benutzers ermöglicht (weniger Anonymität).
Omnirules
Die so genannte Omni-Bar, die standardmäßig mittels Strg + L geöffnet wird, kann nicht nur zur URL-Eingabe benutzt werden, sondern erlaubt auch sehr flexible Umformatierungen von eingegebenen Strings. Dabei wird nach einem regulären Ausdruck gesucht, und dann auf die gesamte Zeile die in substitute-url definierte Javascript-Funktion angewendet und das Ergebnis als URL-Aufruf interpretiert.
$XDG_CONFIG_HOME/chawan/config.toml
[omnirule.aur]
match = '^aur '
substitute-url = '(x)=>"https://aur.archlinux.org/packages?K="+encodeURIComponent(x.split(" ").slice(1))'
Dies definiert aur irgendwas als Shortcut für die Websuche nach irgendwas im AUR. Es gibt bereits einige vordefinierte Suchfunktionen, diese sind in der Syntax shortcut:suchbegriff, funktionieren aber genau so. Eine Übersicht ist in der Manpage cha-config im Abschnitt zu den Omnirules zu finden.
Will man automatisch immer alle Nicht-URLs z.B. als Websuche an DuckDuckGo senden, so kann man folgende Omnirule verwenden.
$XDG_CONFIG_HOME/chawan/config.toml
[omnirule.toDDG] match = '^(?![^:]*:\/\/|about:)' substitute-url = '(x)=>"https://lite.duckduckgo.com/lite/?kp=-1&kd=-1&q="+encodeURIComponent(x)'
Dies ignoriert alles, was irgendwas:// oder about:irgendwas ist, so dass die normale Funktionalität erhalten bleibt, ruft für alle anderen Abfragen aber die Lite-Version von DuckDuckGo mit dem eingegebenen String als Suchbegriff auf. Diese Omnirule muss bei Verwendung von Chawan für andere Protokolle entsprechend erweitert werden.