|Jan 16, 2026|11 min read|21.8K views Keybinding Design Philosophy
Configure custom keybindings, set up shell integration for semantic zones, and build a hyperlink-aware terminal that understands your workflow.
WezTerm uses Lua for config — the same language as Neovim and Hammerspoon. Once you know one, the others click into place. Plus, GPU rendering means zero lag.
By the end of this 11 min guide, you'll have a working Wezterm setup and practical WezTerm workflows you can use immediately.
- Understand what Wezterm does and why it matters for Terminal
- Install and configure Wezterm for your environment
- Build WezTerm-specific workflows with real examples
- Troubleshoot common Wezterm issues with concrete fixes
Default Key Maps Reference
Install Wezterm:
brew install --cask wezterm
- Terminal environment with appropriate permissions
- No prior WezTerm experience needed
- A terminal with true color support
- Git for version-controlling your config
Tip: Verify the installation with wezterm --version or wezterm -V after installing.
Custom Keybindings in Lua
Your config is a single Lua file that returns a table. Every option is documented — start with font, color scheme, and window opacity.
Here's a foundational configuration to start with:
local wezterm = require "wezterm"
return {
font = wezterm.font("JetBrains Mono Nerd Font"),
font_size = 14,
color_scheme = "Catppuccin Mocha",
front_end = "WebGpu",
window_background_opacity = 0.95,
}
- Begin with this config and make small, incremental changes
- Document each setting with inline comments
- Test changes one at a time to isolate issues
- Keep your config in a Git repo for easy rollback and sharing
Shell Integration & Working Directory
With Wezterm configured, these WezTerm-specific workflows will save you time every day:
Cmd+T new tab, Cmd+D split right- Built-in multiplexer — no tmux needed
- GPU rendering via WebGpu or Metal
- Shell integration tracks working directory
Pro tip: Don't try to adopt everything at once. Start with Cmd+T new tab, Cmd+D split right and add more as it becomes habit.
Copy Mode & Scrollback Search
Once you're comfortable with Wezterm basics, these advanced techniques will transform your WezTerm workflow:
- Dynamic themes based on system dark/light mode
- Custom keybindings with per-pane conditional logic
- Tab titles showing git branch and process
- SSH with local keybindings:
wezterm ssh user@host
Key Conflict Resolution
Here are the most common Wezterm issues and how to fix them:
- Fonts blurry? Try
front_end = "WebGpu" - Config errors? Run
wezterm --config-file to debug - Wrong colors? Check scheme name with
wezterm ls-fonts - GPU issues? Fall back to
front_end = "OpenGL"
Keybinding Mastery
Congratulations — you now have a solid Wezterm foundation. Here's where to go next:
- Explore the official Wezterm documentation for features not covered here
- Join the WezTerm community (GitHub Discussions, Discord, or Reddit)
- Check the related tutorials below for deeper WezTerm dives
- Build your own Wezterm configuration and share it with the community