aboutsummaryrefslogtreecommitdiffstatshomepage
WELTSCHMERZ(1) General Commands Manual WELTSCHMERZ(1)

weltschmerz
a small VTE-based terminal emulator

weltschmerz [command [argument...]]

weltschmerz is a terminal emulator using the VTE widget. It supports clickable URLs and hyperlinks, contains basic search functionality, and can reload its configuration whilst running.

weltschmerz executes the given command, or the program specified in the SHELL environment variable if no command was given. If the SHELL environment variable is unset or empty, weltschmerz will fall back to the user's shell as configured in /etc/passwd, or finally use /bin/sh if there is no such entry.

The clipboard can be copied to and pasted from with CTRL + Shift + C and CTRL + Shift + V, respectively.

The font scale can be adjusted by scrolling up or down whilst holding CTRL, or by using CTRL + = and CTRL + -. It can be reset to its default value with CTRL + 0.

The default file manager can be opened in the current directory with CTRL + Shift + O and a new terminal window with CTRL + Shift + T. These features require the terminal application to send OSC 7 escape sequences or for the platform to provide a Linux-style procfs at /proc.

The search overlay can be opened by pressing CTRL + Shift + F. The search will be updated automatically as the user types in the search bar.

The key bindings for the overlay are as follows:

Enter, CTRL + G
Go to next search result.
Shift + Enter, CTRL + Shift + G
Go to previous search result.
Escape
Close search overlay.

Configuration is done using a configuration file. weltschmerz will reread that file when receiving SIGUSR1, or when the user presses CTRL + Shift + R.

weltschmerz uses GLib's key-value file parser. The file format consists of key-value pairs collected in groups:

[misc]
font = Iosevka Light 16

[colours]
foreground = #000000
background = #ffffff

[open-with]
mpv = mpv %

Refer to the GLib documentation for detailed information on this format.

The options for the misc group are as follows:

allow-hyperlinks
When set to true, weltschmerz will highlight and process OSC 8 hyperlinks. When set to false, hyperlink support will be disabled completely. The default is false.
autohide-mouse
When set to true, the mouse cursor will be hidden once the user presses a key, and shown once the user moves the mouse. When set to false, the mouse cursor will always be shown. The default is false.
cursor-blink
Specifies whether the cursor should blink. Possible values are true, false, and system. The default is system.

When set to system, weltschmerz will honour the GTK setting gtk-cursor-blink. Refer to the GTK documentation for more details.

cursor-shape
Specifies the shape of the terminal cursor. Possible values are beam, block, and underline. The default is block.
font
Specifies the font used to draw text, in the form of a Pango font description. Consists of one or more font families, zero or more style options, and the size in points (or in pixels if given a suffix of “px”):
Monospace 12
Iosevka, DejaVu Sans Mono bold italic 16
Gohu GohuFont 11px
    

Refer to the Pango documentation for detailed information.

The default is Monospace 12.

scrollback
Specifies how many lines of scrollback to keep. A value of -1 means infinite scrollback. The default is 10000.
scrollbar
When set to true, weltschmerz will draw a scrollbar at the right side of the terminal window. When set to false, no scrollbar is drawn. The default is true.
prefer-osc7
When set to true, weltschmerz attempts to use OSC 7 to obtain the current directory. If this does not produce a valid local path, weltschmerz obtains the child process's working directory from /proc. When set to false, only /proc is used. The default is true.

Note that weltschmerz uses overlay scrolling if available. This means that the scrollbar is drawn on top of the terminal and fades out automatically if unused. If you wish to turn this behaviour off, set the GTK_OVERLAY_SCROLLING environment variable to 0 or modify the GTK setting gtk-overlay-scrolling.

The colours group contains the palette and colour overrides. All keys in this group take a colour representation as their value:

Representation Example value
Hexadecimal #00ffff
RGB rgb(0, 255, 255)
RGBA rgba(0, 255, 255, 1)
X11 colour cyan

The palette defines the 16 base colours available to the terminal. Keys for the palette are in the form of:

<colour type>.<colour name>

The colour type is either “normal” or “bright”, and the possible colour names along with their default representations are as follows:

Colour name Default (normal) Default (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

The colour overrides specify which colour to use for certain parts of the terminal. The following table contains all possible keys for the colour overrides, along with the default behaviour if the override is not set:

Key Default
foreground normal.white
background normal.black
cursor.foreground reverse video
cursor.background reverse video
selection.foreground reverse video
selection.background reverse video
bold inherit colour

The options in the open-with section define programs that can be invoked from the URI context menu. The option name determines the name of the program as displayed in the menu, and the value the command to be executed.

weltschmerz handles quotes in the command following POSIX sh(1) rules, but does not do wildcard or variable expansion. Any “%” is replaced with the URI when executing the command.

$XDG_CONFIG_HOME/weltschmerz/config
The configuration file for weltschmerz.

weltschmerz adheres to the XDG Base Directory Specification. If $XDG_CONFIG_HOME is unset or empty, it will default to ~/.config

weltschmerz was written by Wolfgang Müller
October 23, 2021