.Dd 27. Oktober 2021
.Dt WELTSCHMERZ 1
.Os
.Sh BEZEICHNUNG
.Nm weltschmerz
.Nd ein kleiner Terminalemulator auf VTE-Basis
.Sh ÜBERSICHT
.Nm
.Oo
.Ar Befehl
.Op Ar Argument...
.Oc
.Sh BESCHREIBUNG
.Nm
ist ein Terminalemulator der auf dem VTE-Widget aufgebaut ist.
Er liefert klickbare URLs und Hyperlinks, beinhaltet eine einfache
Suchfunktion, und kann die Konfiguration während der Laufzeit neu laden.
.Pp
.Nm
führt den angegebenen Befehl aus, oder - falls kein Befehl übergeben
wurde - das Programm, das in der Umgebungsvariable
.Ev SHELL
angegeben ist.
Im Falle dass diese Umgebungsvariable nicht vorhanden oder leer ist,
greift
.Nm
auf die Shell des Benutzers wie in
.Pa /etc/passwd
angegeben zurück.
Schlussendlich, falls auch dieser Eintrag fehlt, wird
.Pa /bin/sh
ausgeführt.
.Pp
Die Zwischenablage kann mit
.Sy Strg + Umschalt + C
befüllt und mit
.Sy Strg + Umschalt + V
eingefügt werden.
.Pp
Die Fontgröße kann durch das Scrollen mit gedrückter
.Sy Strg-Taste
oder durch das Betätigen von
.Sy Strg + =
und
.Sy Strg + -
vergrößert und verkleinert werden.
Die Standardgröße kann mit
.Sy Strg + 0
wiederhergestellt werden.
.Pp
Das aktuelle Verzeichnis des Programms kann mit
.Sy Strg + Umschalt + O
im Dateimanager und mit
.Sy Strg + Umschalt + T
in einem neuen Terminal-Fenster geöffnet werden.
Diese Funktionen sind nur vorhanden, wenn das zugrunde liegende Programm
(etwa der Editor oder die Shell) die OSC 7 Escape-Sequenz unterstützt
oder das Betriebssystem ein Linux-artiges procfs auf
.Pa /proc
bereitstellt.
.Sh SUCHFELD
Das Suchfeld lässt sich mit
.Sy Strg + Umschalt + F
öffnen.
Die Suche wird hierbei beim Tippen im Suchfeld automatisch aktualisiert.
.Pp
Im Suchfeld gelten die folgenden Tastenkombinationen:
.Bl -tag -width Ds
.It Sy Enter , Strg + G
Zum nächsten Suchergebnis springen.
.It Sy Umschalt + Enter , Strg + Umschalt + G
Zum vorherigen Suchergebnis springen.
.It Sy Escape
Das Suchfeld schließen.
.El
.Sh KONFIGURATION
Die Konfiguration geschieht durch eine Konfigurationsdatei.
.Nm
liest diese Datei beim Empfang des SIGUSR1-Signals oder beim Druck auf
.Sy Strg + Umschalt + R
neu.
.Pp
.Nm
benutzt den Schlüssel-Wert-Parser aus GLib.
Das Dateiformat hierfür besteht aus Gruppen von Schlüssel-Wert-Paaren:
.Bd -literal -offset indent
[misc]
font = Iosevka Light 16
[colours]
foreground = #000000
background = #ffffff
[open-with]
mpv = mpv %
.Ed
.Pp
Die GLib-Dokumentation enthält weiterführende Informationen über dieses
Format.
.Pp
Die Einstellungen für die Schlüsselgruppe
.Em misc
sind wie folgt:
.Bl -tag -width Ds
.It Sy allow-hyperlinks
Ist der Wert
.Sy true ,
so werden OSC-8-Hyperlinks verarbeitet und hervorgehoben.
Ist er
.Sy false ,
so werden diese Hyperlinks komplett ignoriert.
Der Standardwert ist
.Sy false .
.It Sy autohide-mouse
Ist der Wert
.Sy true ,
so wird der Mauszeiger nach einer Tasteneingabe versteckt und bei dem
Bewegen des Zeigers wieder angezeigt.
Ist er
.Sy false ,
so wird der Mauszeiger immer angezeigt.
Der Standardwert ist
.Sy false .
.It Sy cursor-shape
Gibt die Form des Terminal-Cursors an.
Mögliche Werte sind
.Sy beam ,
.Sy block ,
und
.Sy underline .
Der Standardwert ist
.Sy block .
.It Sy cursor-blink
Gibt an, ob der Terminal-Cursor blinken soll.
Mögliche Werte sind
.Sy true ,
.Sy false ,
und
.Sy system .
Der Standardwert ist
.Sy system .
.Pp
Ist der Wert
.Sy system ,
so zieht
.Nm
die GTK-Einstellung
.Sy gtk-cursor-blink
heran.
Die GTK-Dokumentation enthält weiterführende Informationen über diese
Einstellung.
.It Sy font
Gibt an, welche Schriftart für den Text verwendet wird.
Die Schriftart wird in Form einer Schriftbezeichnung der
Pango-Bibliothek angegeben.
Diese besteht aus einer oder mehreren Schriftartfamilien, null oder
mehreren Stilen, und der Größe der Schriftart in Punkten (oder Pixeln,
wenn ein Suffix
.Dq px
angegeben wird):
.Bd -literal -offset indent
Monospace 12
Iosevka, DejaVu Sans Mono bold italic 16
Gohu GohuFont 11px
.Ed
.Pp
Die Pango-Dokumentation enthält hierüber weiterführende Informationen.
.Pp
Der Standardwert ist
.Sy Monospace 12 .
.It Sy scrollback
Gibt an, wie viele Zeilen im Ausgabeverlauf gespeichert werden.
Mit einem Wert von
.Sy -1
wird die Größe des Ausgabeverlaufs nicht limitiert.
Der Standardwert ist
.Sy 10000 .
.It Sy prefer-osc7
Ist der Wert
.Sy true ,
so versucht
.Nm
das aktuelle Verzeichnis durch OSC 7 zu finden.
Wird kein gültiger lokaler Pfad gefunden, so wird das Verzeichnis des
zugrunde liegenden Programms aus
.Pa /proc
herangezogen.
Ist der Wert
.Sy false ,
so wird lediglich
.Pa /proc
herangezogen.
Der Standardwert ist
.Sy true .
.It Sy scrollbar
Ist der Wert
.Sy true ,
so zeigt
.Nm
auf der rechten Seite des Terminal-Fensters einen Scrollbalken
an.
Ist er
.Sy false ,
so wird kein Scrollbalken angezeigt.
Der Standardwert ist
.Sy true .
.Pp
.Nm
benutzt falls möglich das von GTK sogennante
.Dq overlay scrolling .
Das bedeutet, dass der Scrollbalken über das Terminal gezeichnet und bei
Bedarf versteckt wird.
Dieses Verhalten kann durch das Setzen der Umgebungsvariable
.Ev GTK_OVERLAY_SCROLLING
auf
.Sy 0
unterdrückt werden.
Genau so kann auch die GTK-Einstellung
.Sy gtk-overlay-scrolling
verwendet werden.
.El
.Pp
Die Schlüsselgruppe
.Em colours
enthält die Farbpalette und andere Farbeinstellungen.
Die Werte in dieser Gruppe sind ausschließlich Farbangaben:
.Bd -filled -offset indent
.TS
tab(/);
l |l
lb |l.
Angabeart/Beispielangabe
=
Hexadezimal/#00ffff
RGB/rgb(0, 255, 255)
RGBA/rgba(0, 255, 255, 1)
X11-Farben/cyan
.TE
.Ed
.Pp
Die Farbpalette enthält die 16 Grundfarben für das Terminal.
Die Schlüssel für die Farbpalette werden wie folgt gebildet:
.Bd -literal -offset indent
<Farbtyp>.<Farbname>
.Ed
.Pp
Der Farbtyp ist entweder
.Dq normal
für normale Farben oder
.Dq bright
für helle Farben.
Die Farbnamen sowie deren Standardwerte sind wie folgt:
.Bd -filled -offset indent
.TS
tab(/);
l |l |l
lb |l |l.
Farbname/Standardwert (normal)/Standartwert (bright)
=
black/black/grey50
red/red3/red
green/green3/green
yellow/yellow3/yellow
blue/blue2/#5c5cff
magenta/magenta3/magenta
cyan/cyan3/cyan
white/grey90/white
.TE
.Ed
.Pp
Die folgenden Farbeinstellungen geben an, welche Farben für bestimmte
Teile des Terminals (wie etwa Vorder- und Hintergrund, sowie die Auswahl
und fett gedruckter Text) verwendet werden.
Die Standardwerte werden benutzt, wenn diese Einstellungen nicht gesetzt
sind:
.Bd -filled -offset indent
.TS
tab(/);
l |l
lb |il.
Schlüssel/Standardwert
=
foreground/normal.white
background/normal.black
cursor.foreground/Invertierte Darstellung
cursor.background/Invertierte Darstellung
selection.foreground/Invertierte Darstellung
selection.background/Invertierte Darstellung
bold/Farbe bleibt unverändert
.TE
.Ed
.Pp
Die Schlüsselgruppe
.Em open-with
enthält Definitionen für benutzerdefinierte Programme, die durch das
URI-Kontextmenü aufrufbar sind.
Hierbei bestimmt der Schlüsselname mit welchem Namen das Programm im
Menü angezeigt wird und der Wert das auszuführende Programm.
.Pp
.Nm
befolgt die Quoting-Regeln der POSIX
.Xr sh 1 ,
führt aber weder Globbing noch Expansion von Variablen durch.
Das Zeichen
.Dq %
im Befehl wird vor der Ausführung durch die URI ersetzt.
.Sh DATEIEN
.Bl -tag -width Ds
.It Em $XDG_CONFIG_HOME/weltschmerz/config
Die Konfigurationsdatei für
.Nm .
.El
.Pp
.Nm
hält sich an die
.Dq XDG Base Directory Specification .
Ist $XDG_CONFIG_HOME nicht vorhanden oder leer, so
wird
.Em ~/.config
verwendet.
.Sh AUTOREN
.An -nosplit
.Nm
wurde von
.An Wolfgang Müller Aq Mt wolf@oriole.systems
entwickelt.