Skip to main content
This guide covers common issues you might encounter with WezTerm and how to resolve them.

Debugging and Logs

Debug Overlay

The fastest way to see recent log messages is using the debug overlay:
Press Ctrl+Shift+L (or Cmd+Shift+L on macOS) to activate the debug overlay. This shows recent log messages and provides access to a Lua REPL.
The debug overlay lets you:
  • Review recently logged issues
  • Evaluate Lua functions interactively
  • Test configuration changes without reloading

Log Files Location

Log files are stored in different locations depending on your system:
  • Unix systems: $XDG_RUNTIME_DIR/wezterm
  • macOS/Windows: $HOME/.local/share/wezterm

Increasing Log Verbosity

To see more detailed logs, use the WEZTERM_LOG environment variable:

Targeted Logging

You can filter logs to specific modules for more focused debugging:
Log modules correspond to source code paths. Common modules include:
  • config - Configuration loading and parsing
  • wezterm_gui::frontend - GUI and window management
  • wezterm_font - Font loading and rendering
  • wezterm_gui::termwindow - Terminal window behavior

Font Issues

Glyphs Render as Underscores or Question Marks

This typically indicates a font fallback issue or missing glyphs. Solution 1: Configure Font Fallback Add fonts that contain the missing glyphs:
Solution 2: Check Font Installation Use WezTerm’s font debugging tools:
WezTerm automatically includes Nerd Font Symbols and Noto Color Emoji in the default fallback. You don’t need specially patched fonts for powerline or icon support.

Font Looks Blurry or Wrong Size

On X11 systems with high-DPI displays, you may need to override the DPI:

Ligatures Not Working (or Want to Disable Them)

To disable ligatures:
To troubleshoot ligature rendering:

Unicode and Locale Issues

Unicode Characters Don’t Display Correctly

Problem: Characters appear garbled or show as multiple incorrect glyphs. Solution: Check your locale settings:
Set a UTF-8 locale in your shell configuration:
Locale settings must be correct on both local and remote systems when using SSH or multiplexer connections.

Unicode in tmux Shows Underscores

This is usually a locale issue with tmux:
  1. Set LANG before starting tmux:
  2. Kill and restart your tmux server after changing locale:
  3. Ensure tmux is configured for UTF-8:

zsh Shows Broken Unicode When Pasting

zsh’s line editor doesn’t support combining characters by default:

Keyboard Issues

Keys Don’t Work or Produce Weird Characters

Step 1: Enable Debug Logging
This will log all key presses to help identify the issue. Step 2: Check Key Bindings
Step 3: Test with xxd To see raw byte sequences:

Alt/Option Key Issues on macOS

The Option key behavior can be configured:

Caps Lock as Leader Key on Linux

If you’ve remapped Caps Lock using setxkbmap -option caps:none:

Mouse Cursor Issues (X11/Wayland)

Old-School X11 Cursor Appearance

WezTerm tries to load XCursor themes but may fall back to basic X11 cursors. Enable Debug Logging:
Solution: Configure XCursor Theme
Or Set Environment Variable:
WezTerm resolves cursor themes through these steps:
  1. Check xcursor_theme in config
  2. X11: Check RESOURCE_MANAGER property on root window
  3. Wayland: Check XCURSOR_THEME environment variable
  4. Fall back to “default” theme
For icon paths:
  1. Check XCURSOR_PATH environment variable
  2. Construct path from XDG_DATA_HOME and XDG_DATA_DIRS
  3. Use hardcoded fallback paths

Terminal Compatibility Issues

Programs Don’t Recognize Function Keys

Problem: F-keys or other special keys aren’t working in applications. Solution: The TERM environment variable should be set correctly:
Changing TERM to non-standard values can break key handling in many programs. Only change this if you know what you’re doing.

Neovim: Curly Underlines Don’t Work

WezTerm supports curly underlines, but Neovim needs terminfo:
For vim, add to .vimrc:
On Windows, ConPTY strips curly underline sequences. Use wezterm ssh or multiplexing to bypass ConPTY when connecting to WSL.

Shell-Specific Issues

PowerShell: Cursor Keys Don’t Work in External Programs

This is a known PowerShell issue. PowerShell enables DECCKM mode and doesn’t restore it. Workaround: This affects all terminal emulators. Consider using a different shell or report the issue to the PowerShell team.

Bash: readline Issues

If you have set convert-meta on in ~/.inputrc: Problem: Latin-1 and other characters appear broken. Solution: Disable this setting for UTF-8 environments:

macOS Specific Issues

WezTerm Can’t Find Programs in PATH

When launched from Finder, WezTerm inherits the minimal macOS PATH. Solution 1: Spawn via Shell
For zsh users, add -l flag to source .zprofile, or -i flag to source .zshrc.
Solution 2: Use Full Path
Solution 3: Set PATH in Config
Solution 4: Configure launchd (Advanced)
Changing the launchd user path can affect all GUI applications. Use with caution.

Performance Issues

High CPU or GPU Usage

  1. Disable transparency if not needed:
  2. Reduce animation:
  3. Check for runaway processes in terminal:

Slow Rendering with Background Images

Large images consume VRAM and slow rendering:

Getting More Help

When reporting issues, include:
  • WezTerm version (wezterm --version)
  • Operating system and version
  • Output of wezterm ls-fonts (for font issues)
  • Log output with WEZTERM_LOG=debug
  • Your configuration file (or relevant parts)

Useful Diagnostic Commands

Report Issues

If you can’t resolve the issue:
  1. Check existing issues on GitHub
  2. Search the WezTerm documentation
  3. Open a new issue with diagnostic information