Skip to content

Switching from Ghostty to WezTerm

Published:  at 12:08 PM
Table of Contents

After trying out Ghostty, I found it solid overall and had few complaints. But then I stumbled across some videos about WezTerm, and they piqued my interest:

WezTerm is a GPU-accelerated terminal emulator written in Rust, and what stood out to me was its smooth performance and powerful Lua-based configuration. Below is my setup process.

Install Wezterm

brew install --cask wezterm

Install Meslo Nerd Font

brew install font-meslo-lg-nerd-font

Setup Wezterm Config File

WezTerm is configured with a Lua file stored at ~/.wezterm.lua. This allows you to script your terminal behavior instead of just working with static settings.

$ touch ~/.wezterm.lua

In my case, it’s like this:

-- Pull in the wezterm API
local wezterm = require("wezterm")

-- This will hold the configuration.
local config = wezterm.config_builder()

-- This is where you actually apply your config choices

config.font = wezterm.font("MesloLGS Nerd Font Mono")
config.font_size = 18

config.enable_tab_bar = false

config.window_decorations = "RESIZE"

config.window_background_opacity = 0.9
config.macos_window_background_blur = 10

-- my coolnight colorscheme:
config.colors = {
	foreground = "#CBE0F0",
	background = "#011423",
	cursor_bg = "#47FF9C",
	cursor_border = "#47FF9C",
	cursor_fg = "#011423",
	selection_bg = "#033259",
	selection_fg = "#CBE0F0",
	ansi = { "#214969", "#E52E2E", "#44FFB1", "#FFE073", "#0FC5ED", "#a277ff", "#24EAF7", "#24EAF7" },
	brights = { "#214969", "#E52E2E", "#44FFB1", "#FFE073", "#A277FF", "#a277ff", "#24EAF7", "#24EAF7" },
}

-- Key bindings for Claude Code compatibility
-- Shift+Enter sends ESC+Enter to allow multi-line input in Claude Code
config.keys = {
  {key="Enter", mods="SHIFT", action=wezterm.action{SendString="\x1b\r"}},
}

-- return the configuration to wezterm
return config

Install powerlevel10k Theme

For the shell itself, I use Powerlevel10k, an excellent Zsh theme with fast rendering and tons of customization.

brew install powerlevel10k
echo "source $(brew --prefix)/share/powerlevel10k/powerlevel10k.zsh-theme" >> ~/.zshrc
source ~/.zshrc

The Powerlevel10k configuration wizard should pop up now:

You can always re-run the wizard with:

p10k configure

Fix Directory Background Color (for Rainbow Style)

If you choose the “rainbow” prompt style, the default directory background color is a bright blue that can clash with darker terminal themes. I prefer black for better contrast.

Open your Powerlevel10k config file which is at ~/.p10k.zsh

Find the line that sets POWERLEVEL9K_DIR_BACKGROUND and change it from 4 (blue) to 0 (black):

typeset -g POWERLEVEL9K_DIR_BACKGROUND=0

Here’s how it looks after the tweak:

Resources