Skip to main content
WezTerm is a GPU-accelerated terminal emulator with extensive Lua-based configuration. This guide shows how to configure WezTerm with the Vesper theme and optimized settings for Windows 11.

Installation

Verify installation:
wezterm --version

Configuration File

WezTerm uses a Lua configuration file located at ~/.config/wezterm/wezterm.lua. Create the configuration directory:
New-Item -ItemType Directory -Path "$HOME\.config\wezterm" -Force

Complete Configuration

Here’s the complete wezterm.lua configuration with the Vesper theme:
local wezterm = require 'wezterm'
local config = {}

config.window_close_confirmation = 'NeverPrompt'

--! DEFAULT SHELL
config.default_domain = 'WSL:Ubuntu-24.04'  -- Or remove for PowerShell default
-- config.default_prog = {"pwsh"}

--! FONT
config.font = wezterm.font 'JetBrains Mono'

--! TAB
config.enable_tab_bar = false

--! WINDOW
config.window_background_opacity = 0.7
config.macos_window_background_blur = 20

--! CURSOR
config.default_cursor_style = 'BlinkingBar'

--! COLOR SCHEME
config.color_scheme = 'Vesper'

config.color_schemes = {
  ['Vesper'] = {
    -- The default text color
    foreground = '#FFFFFF',
    -- The default background color
    background = '#101010',

    -- Cursor colors
    cursor_bg = '#FFC799',
    cursor_fg = '#101010',
    cursor_border = '#FFC799',

    -- Selection colors
    selection_bg = 'rgba(50% 50% 50% 50%)',

    -- Scrollbar thumb color
    scrollbar_thumb = 'rgba(50% 50% 50% 50%)',

    -- Split line color
    split = '#505050',

    -- ANSI colors
    ansi = {
      '#101010',  -- black
      '#F5A191',  -- red
      '#90B99F',  -- green
      '#E6B99D',  -- yellow
      '#ACA1CF',  -- blue
      '#E29ECA',  -- magenta
      '#EA83A5',  -- cyan
      '#A0A0A0',  -- white
    },
    brights = {
      '#7E7E7E',  -- bright black
      '#FF8080',  -- bright red
      '#99FFE4',  -- bright green
      '#FFC799',  -- bright yellow
      '#B9AEDA',  -- bright blue
      '#ECAAD6',  -- bright magenta
      '#F591B2',  -- bright cyan
      '#FFFFFF',  -- bright white
    },
  }
}

return config

Configuration Sections

Font Configuration

Install JetBrains Mono Nerd Font for icon support:
scoop install nerd-fonts/JetBrainsMono-NF
Alternative fonts:
scoop install nerd-fonts/FiraCode-NF
scoop install nerd-fonts/CascadiaCode-NF
config.font = wezterm.font 'JetBrains Mono'
config.font_size = 11.0  -- Optional: adjust size

Window Settings

config.window_background_opacity = 0.7
config.macos_window_background_blur = 20  -- Also works on Windows 11

Default Shell

config.default_prog = {"pwsh"}

Cursor Style

-- Options: 'BlinkingBar', 'SteadyBar', 'BlinkingBlock', 'SteadyBlock', 'BlinkingUnderline', 'SteadyUnderline'
config.default_cursor_style = 'BlinkingBar'

Tab Bar

config.enable_tab_bar = false

Vesper Color Palette

The Vesper theme uses warm, muted colors optimized for long coding sessions:
ColorHexUsage
Background#101010Terminal background
Foreground#FFFFFFDefault text
Cursor#FFC799Cursor and accent
Selectionrgba(50% 50% 50% 50%)Selected text
Split#505050Pane borders

ANSI Colors

NameHexUsage
Black#101010Dark backgrounds
Red#F5A191Errors, deletions
Green#90B99FSuccess, additions
Yellow#E6B99DWarnings
Blue#ACA1CFInformation
Magenta#E29ECASpecial text
Cyan#EA83A5Links, highlights
White#A0A0A0Normal text
NameHexUsage
Bright Black#7E7E7EComments
Bright Red#FF8080Bold errors
Bright Green#99FFE4Strings, success
Bright Yellow#FFC799Keywords, highlights
Bright Blue#B9AEDAFunctions
Bright Magenta#ECAAD6Constants
Bright Cyan#F591B2Types
Bright White#FFFFFFEmphasis

Advanced Options

config.keys = {
  -- Split panes
  { key = 'd', mods = 'CTRL|SHIFT', action = wezterm.action.SplitHorizontal { domain = 'CurrentPaneDomain' } },
  { key = 'D', mods = 'CTRL|SHIFT', action = wezterm.action.SplitVertical { domain = 'CurrentPaneDomain' } },
  
  -- Navigate panes
  { key = 'h', mods = 'CTRL|SHIFT', action = wezterm.action.ActivatePaneDirection 'Left' },
  { key = 'l', mods = 'CTRL|SHIFT', action = wezterm.action.ActivatePaneDirection 'Right' },
  { key = 'k', mods = 'CTRL|SHIFT', action = wezterm.action.ActivatePaneDirection 'Up' },
  { key = 'j', mods = 'CTRL|SHIFT', action = wezterm.action.ActivatePaneDirection 'Down' },
}
-- Force GPU usage
config.front_end = 'WebGpu'
config.webgpu_power_preference = 'HighPerformance'
-- Increase scrollback
config.scrollback_lines = 10000

-- Faster rendering
config.max_fps = 120
config.animation_fps = 60

Testing Configuration

After editing wezterm.lua, test the configuration:
wezterm --config-file "$HOME\.config\wezterm\wezterm.lua"
WezTerm automatically reloads configuration changes - no restart needed!

Troubleshooting

  1. Ensure Nerd Font is installed: scoop install nerd-fonts/JetBrainsMono-NF
  2. Verify font name in config matches installed font exactly
  3. Restart WezTerm after font installation
Check for syntax errors in wezterm.lua:
wezterm --config-file "$HOME\.config\wezterm\wezterm.lua" --version
Ensure you’re running Windows 11 with acrylic transparency enabled in system settings.

Build docs developers (and LLMs) love