id = "wezterm" name = "WezTerm" homepage = "https://wezterm.org" description = "A GPU-accelerated cross-platform terminal emulator and multiplexer implemented in Rust." icon = "SimpleIcons:wezterm" # `wezterm` is the CLI and multiplexer client; `wezterm-gui` is the window the # desktop launcher starts. Both read the same file. executables = ["wezterm", "wezterm-gui"] [dotfiles] # https://wezterm.org/config/files.html — after the --config-file option and # WEZTERM_CONFIG_FILE, wezterm looks for # $HOME/.wezterm.lua # $XDG_CONFIG_HOME/wezterm/wezterm.lua # $HOME/.config/wezterm/wezterm.lua # and takes the first that exists. "The recommendation is to place your # configuration file at $HOME/.wezterm.lua (%USERPROFILE%/.wezterm.lua on # Windows)" — the same path once a consumer resolves the home directory, so # only the `~/` spelling is listed. The remaining candidate, a wezterm.lua # beside wezterm.exe, is thumb-drive mode and is not user-level. # # The directory is listed whole rather than just wezterm.lua: a config split # across several files keeps the other Lua modules it requires beside it. paths = [ "~/.wezterm.lua", "~/.config/wezterm/", ] # wezterm's own state and caches live elsewhere — $XDG_RUNTIME_DIR/wezterm, # ~/.local/share/wezterm and ~/.cache/wezterm — so the config directory has # nothing to carve out. # A wezterm.lua is fonts, colours, keys and multiplexer domains. An SSH domain # names a host and a username, not a key; wezterm reads keys through ~/.ssh. secret = [] # No machine_lines: a config is Lua, so a prefix rule would be matching source # lines rather than settings, and the values a user does put there — fonts, # colour schemes, key tables, launch menus — are exactly what should travel. [commands] format = 1 label = "WezTerm" description = "Start the GUI or open an SSH session in a new window. Multiplexer, font and recording commands are left out." quality = "ai-draft" base = "fig:wezterm" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/wezterm.ts" license = "MIT" [[commands.subcommand]] path = ["start"] label = "Start WezTerm" description = "Open a window, optionally running a program." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/wezterm.ts" license = "MIT" [[commands.subcommand.field]] id = "prog" label = "Program and arguments" description = "Program to run instead of the default shell." type = "string" position = 0 multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "cwd" label = "Working directory" type = "path" option = ["--cwd"] path = { kind = "directory", role = "input" } sources = ["fig"] [[commands.subcommand.field]] id = "workspace" label = "Workspace" type = "string" option = ["--workspace"] sources = ["fig"] [[commands.subcommand.field]] id = "class" label = "Window class" type = "string" option = ["--class"] sources = ["fig"] [[commands.subcommand.field]] id = "always_new_process" label = "Always start a new process" type = "boolean" option = ["--always-new-process"] sources = ["fig"] [[commands.subcommand.field]] id = "no_auto_connect" label = "Skip auto-connect domains" type = "boolean" option = ["--no-auto-connect"] sources = ["fig"] [[commands.subcommand.task]] id = "start" label = "Start window" fields = ["cwd", "prog"] [[commands.subcommand.task]] id = "new" label = "Start new process" fields = ["cwd", "always_new_process"] set = { always_new_process = [true] } [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["prog", "cwd", "always_new_process"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["class", "no_auto_connect", "workspace"] [[commands.subcommand]] path = ["ssh"] label = "SSH session" description = "Connect to a host in a WezTerm window." [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/wezterm.ts" license = "MIT" [[commands.subcommand.field]] id = "target" label = "User@host[:port]" type = "string" position = 0 sources = ["fig"] [[commands.subcommand.field]] id = "prog" label = "Remote program" type = "string" position = 1 multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "class" label = "Window class" type = "string" option = ["--class"] sources = ["fig"] [[commands.subcommand.field]] id = "verbose" label = "Trace SSH protocol" type = "boolean" option = ["-v"] sources = ["fig"] [[commands.subcommand.task]] id = "ssh" label = "Connect" fields = ["target", "prog"] required = ["target"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["target", "prog"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["class", "verbose"]