From b2115553b829bb3023e1d256f222798cff93f30f Mon Sep 17 00:00:00 2001 From: kunchenguid Date: Fri, 10 Jul 2026 22:36:25 -0700 Subject: [PATCH 1/2] feat(wezterm): enable kitty keyboard protocol to fix Herdr Esc swallow Herdr holds a lone Escape ~150ms and coalesces it with a tailgating SGR mouse event, then drops the pair - swallowing Escape in editors like Neovim. Enabling the kitty keyboard protocol makes WezTerm emit Escape as an atomic key event (\x1b[27u), so Herdr never enters the hold/fold path. --- home/.config/wezterm/wezterm.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/home/.config/wezterm/wezterm.lua b/home/.config/wezterm/wezterm.lua index 8bb9ce8..be8c7c0 100644 --- a/home/.config/wezterm/wezterm.lua +++ b/home/.config/wezterm/wezterm.lua @@ -10,4 +10,8 @@ config.macos_window_background_blur = 50 config.hide_tab_bar_if_only_one_tab = true config.window_decorations = "RESIZE" +-- Emit Esc as an atomic key event (\x1b[27u) so Herdr can't fold a lone +-- Escape into a tailgating mouse event and swallow it in editors like Neovim. +config.enable_kitty_keyboard = true + return config From d088f36a5031b844a806d75e82f3bd0436a46798 Mon Sep 17 00:00:00 2001 From: kunchenguid Date: Fri, 10 Jul 2026 22:40:58 -0700 Subject: [PATCH 2/2] no-mistakes(document): Document Herdr-safe WezTerm keyboard behavior --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d55dfb9..3e35239 100644 --- a/README.md +++ b/README.md @@ -111,6 +111,7 @@ Read through `brews` and `casks` before you run `bootstrap.sh` or `rebuild.sh` f **About `herdr`:** it's in the `brews` list. It's a real public Homebrew formula (`brew info herdr` finds it in homebrew-core, no tap needed), so it will install fine. +The tracked WezTerm config enables the kitty keyboard protocol so Escape is sent as an atomic key event instead of being swallowed by Herdr when a mouse event follows it closely. If you don't use it, just remove it from `brews` in your copy. **Heads-up:**