WezTerm
Back to Terminal
WezTermIntermediate13 min

WezTerm Configuration Guide: GPU-Accelerated Terminal with Lua Setup

Why WezTerm?

WezTerm is a GPU-accelerated terminal emulator configured in Lua. Unlike Alacritty (which uses TOML/YAML), WezTerm's Lua config gives you the full power of a programming language for keybindings, tab management, and dynamic theming.

This guide sets up WezTerm from scratch: GPU rendering, fonts, color schemes, tab and pane management, and shell integration.

Installing WezTerm

Install WezTerm:

brew install --cask wezterm

Create your config file:

~/.wezterm.lua

Lua Config Basics

Start with a foundational config that covers the essentials:

local wezterm = require 'wezterm'
return {
-- GPU frontend
front_end = "WebGpu",
-- Font configuration
font = wezterm.font('JetBrains Mono Nerd Font'),
font_size = 14.0,
-- Color scheme
color_scheme = 'Catppuccin Mocha',
-- Window appearance
window_background_opacity = 0.95,
window_decorations = "RESIZE",
-- Tab bar
enable_tab_bar = true,
tab_bar_at_bottom = true,
}

Window & Tab Management

WezTerm has its own multiplexer — you don't need tmux. Manage tabs and split panes directly:

Pro tip: WezTerm's multiplexer works across SSH too. Use wezterm ssh user@host and your local keybindings work on the remote machine.

GPU Rendering & Font Tuning

WezTerm's Lua config means you can do anything. Here are advanced patterns:

-- Dynamic theme based on system appearance
function scheme_for_appearance(appearance)
if appearance:find("Dark") then
return "Catppuccin Mocha"
else
return "Catppuccin Latte"
end
end
wezterm.on('window-config-reloaded', function(window)
window:set_config_overrides({
color_scheme = scheme_for_appearance(
wezterm.gui.get_appearance()
)
})
end)

Config & Rendering Issues

Rendering and config issues:

Terminal Perfection

Your WezTerm is configured. Explore more:

← Previousfzf and ripgrep Integration: Fuzzy Search Your Codebase from the TerminalNext →BetterTouchTool Tutorial: Trackpad Gestures, Window Snapping, and Custom Actions