LinuxCommandLibrary

wezterm

Provide a GPU-accelerated terminal emulator

TLDR

Start a new Wezterm process and create a window

$ wezterm
copy

Establish an ssh session in a new Wezterm window
$ wezterm ssh [user]@[host]:[port]
copy

Connect to the multiplexer (wezterm-mux-server)
$ wezterm connect [domain_name]
copy

Output an image to the terminal
$ wezterm imgcat [path/to/image]
copy

Record a terminal session as an asciicast (by default recordings are saved to /tmp)
$ wezterm record
copy

Replay an asciicast terminal session
$ wezterm replay [path/to/cast_file]
copy

Specify the configuration file to use (overrides the normal configuration file resolution)
$ wezterm --config-file [path/to/config_file]
copy

Display help
$ wezterm help
copy

SYNOPSIS

wezterm [OPTIONS] [COMMAND]
wezterm start [OPTIONS]
wezterm cli <SUBCOMMAND> [ARGS]

PARAMETERS

--config <FILE>
    Specify an alternative configuration file to load instead of the default.

--font <FONT>
    Override the default font family for the session.

--class <CLASS>
    Set a specific window class/resource name, useful for window manager rules.

--daemonize
    Start the WezTerm multiplexer server in the background as a daemon.

--front-end <BACKEND>
    Select the rendering backend for the UI (e.g., OpenGL, WebGpu).

--program <PROGRAM>
    Specify the program to run in the initial terminal pane instead of the default shell.

--cwd <DIR>
    Set the current working directory for the initial pane.

--dimension <COLSxROWS>
    Set the initial window dimensions in columns and rows.

--tab-title <TITLE>
    Set the title for the initial tab opened.

--color-scheme <SCHEME>
    Apply a specific color scheme for the session.

--lua <SCRIPT>
    Execute a Lua script on startup, then exit. Useful for scripting tasks.

--hide-tab-bar
    Hide the tab bar even if multiple tabs are open.

--hide-window-decorations
    Hide native window decorations (title bar, borders), relying on WezTerm's own UI.

DESCRIPTION

WezTerm is a powerful, cross-platform terminal emulator written in Rust, leveraging GPU acceleration for exceptional performance and smooth rendering. It's designed to be highly customizable and extensible, offering features typically found in separate tools like terminal multiplexers (e.g., tmux or screen). WezTerm supports true color, font ligatures, Unicode, and various modern terminal capabilities.

A standout feature is its comprehensive Lua scripting API, allowing users to deeply customize keybindings, appearance, and automate complex workflows. It includes a built-in multiplexer, enabling splitting panes and managing tabs within a single window, and even connecting to remote multiplexer instances via SSH, providing a seamless multi-session experience. WezTerm aims to be a modern, fast, and feature-rich replacement for traditional terminal setups.

CAVEATS

WezTerm's powerful Lua scripting for configuration and automation, while highly flexible, can have a learning curve for new users. As an actively developed project, new features and behaviors are frequently introduced, which occasionally might require adjustments to existing configurations.

SUBCOMMANDS

WezTerm extends its functionality through several powerful subcommands beyond just starting the GUI:

  • wezterm cli: The command-line interface for interacting with a running WezTerm multiplexer server, used for managing panes, tabs, windows, and sending commands programmatically.
  • wezterm ssh: Connects to a remote host via SSH, optionally launching a remote multiplexer server or connecting to an existing one.
  • wezterm connect: Connects to a WezTerm multiplexer domain, which can be local or remote, enabling seamless session management.
  • wezterm ls-fonts: Lists all fonts detected and available to WezTerm, useful for debugging and configuring font settings.

CONFIGURATION FILE

WezTerm's primary configuration is done via a Lua script, typically located at ~/.config/wezterm/wezterm.lua (or %USERPROFILE%\.wezterm.lua on Windows). This file allows for deep customization of nearly every aspect of the terminal, from keybindings and color schemes to font rendering, appearance, and multiplexer behavior, offering unparalleled flexibility.

HISTORY

WezTerm was initiated by Wez Furlong, a prominent open-source developer with contributions to projects like Rust and MySQL. The first public commit to its GitHub repository dates back to August 2018. Furlong developed WezTerm to create a modern, high-performance terminal emulator that could address the limitations of older options. It was designed from scratch in Rust, prioritizing GPU acceleration, cross-platform compatibility, and extensive customizability through a Lua scripting interface. Its continuous development has integrated features like a built-in multiplexer and advanced rendering capabilities, solidifying its position as a leading modern terminal solution.

SEE ALSO

kitty(1), alacritty(1), tmux(1), screen(1), gnome-terminal(1), xterm(1)

Copied to clipboard