1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-26 23:04:49 +03:00
wezterm/docs/troubleshooting.md
2023-01-19 10:44:05 -07:00

117 lines
3.6 KiB
Markdown

# Troubleshooting
## Review logs/error messages
If things aren't working out, there may be an issue printed in the logs.
Read on to learn more about how to see those logs.
### Debug Overlay
By default, pressing <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>L</kbd> will activate
the debug overlay and allow you to review the most recently logged issues.
It also gives you access to a Lua REPL for evaluating built-in lua functions.
See [ShowDebugOverlay](config/lua/keyassignment/ShowDebugOverlay.md) for more
information on this key assignment.
### Log Files
You can find log files in `$XDG_RUNTIME_DIR/wezterm` on unix systems,
or `$HOME/.local/share/wezterm` on macOS and Windows systems.
### Increasing Log Verbosity
The `WEZTERM_LOG` environment variable can be used to adjust the level
of logging for different modules within wezterm.
To see maximum verbosity, you can start wezterm like this:
```
WEZTERM_LOG=debug wezterm
```
to see debug level logs for everything on stdout.
On Windows systems you'll usually need to set the environment variable separately:
Using `cmd.exe`:
```
C:\> set WEZTERM_LOG=debug
C:\> wezterm
```
Using powershell:
```
PS C:\> $env:WEZTERM_LOG="debug"
PS C:\> wezterm
```
Each log line will include the module name, which is a colon separated
namespace; in the output below the modules are `config`,
`wezterm_gui::frontend`, `wezterm_font::ftwrap` and `wezterm_gui::termwindow`:
```
10:29:24.451 DEBUG config > Reloaded configuration! generation=2
10:29:24.452 DEBUG wezterm_gui::frontend > workspace is default, fixup windows
10:29:24.459 DEBUG wezterm_font::ftwrap > set_char_size computing 12 dpi=124 (pixel height=20.666666666666668)
10:29:24.461 DEBUG wezterm_font::ftwrap > set_char_size computing 12 dpi=124 (pixel height=20.666666666666668)
10:29:24.494 DEBUG wezterm_gui::termwindow > FocusChanged(true)
10:29:24.495 DEBUG wezterm_gui::termwindow > FocusChanged(false)
```
Those modules generally match up to directories and file names within the
wezterm source code, or to external modules that wezterm depends upon.
You can set a more restrictive filter to focus in on just the things you want.
For example, if you wanted to debug only configuration related things you might
set:
```
WEZTERM_LOG=config=debug,info
```
which says:
* log `config` at `debug` level
* everything else at `info` level
You can add more comma-separated items:
```
WEZTERM_LOG=config=debug,wezterm_font=debug,info
```
See Rust's [env_logger
documentation](https://docs.rs/env_logger/latest/env_logger/#enabling-logging)
for more details on the syntax/possibilities.
## Debugging Keyboard Related issues
Turn on [debug_key_events](config/lua/config/debug_key_events.md) to log
information about key presses.
Use [wezterm show-keys](cli/show-keys.md) or `wezterm show-keys --lua` to show
the effective set of key and mouse assignments defined by your config.
Consider changing [use_ime](config/lua/config/use_ime.md) to see that is
influencing your keyboard usage.
Double check to see if you have some system level utility/software that might
be intercepting or changing the behavior of a keyboard shortcut that you're
trying to use.
## Debugging Font Display
Use `wezterm ls-fonts` to explain which fonts will be used for different styles
of text.
Use `wezterm ls-fonts --list-system` to get a list of fonts available on your
system, in a form that you can use in your config file.
Use `wezterm ls-fonts --text foo` to explain how wezterm will render the text
`foo`, and `wezterm ls-fonts --text foo --rasterize-ascii` to show an ascii art
rendition of that text.