WezTerm
Back to Terminal
WezTermIntermediate11 min

WezTerm Keybindings and Shell Integration: Connect Your Terminal to Your Shell

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.

Default Key Maps Reference

Install Wezterm:

brew install --cask wezterm
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,
}

Shell Integration & Working Directory

With Wezterm configured, these WezTerm-specific workflows will save you time every day:

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:

Key Conflict Resolution

Here are the most common Wezterm issues and how to fix them:

Keybinding Mastery

Congratulations — you now have a solid Wezterm foundation. Here's where to go next:

← PreviousWezTerm Color Schemes and Font Configuration: A Visual Customization GuideNext →Hammerspoon App Switcher and Menu Bar: Build a Custom macOS Command Center