Zum Inhalt springen

Chawan

Aus wiki.archlinux.de

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


Chawan zeigt in Kitty unter Verwendung eines hellen Themes die Startseite von archlinux.de an, die Bildanzeige ist aktiviert.

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.

pacman -S chawan

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:

  1. Wenn die Umgebungsvariable CHA_DIR gesetzt ist, dann wird $CHA_DIR/config.toml benutzt.
  2. Wenn der XDG-basierende Pfad ${XDG_CONFIG_HOME:-~/.config}/chawan/config.toml existiert, wird diese Datei benutzt.
  3. Ansonsten wird ~/.chawan/config.toml benutzt 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.

Weitere Ressourcen