wezterm-pi-helper
v1.0.0
Published
Fixes WezTerm keyboard issues on WSL2
Readme
wezterm-pi-helper
Fixes WezTerm keyboard issues when running pi on WSL2.
Problem
WezTerm on WSL2 for Windows has a bug where Kitty keyboard protocol flag 4 ("report alternate keys") causes shifted keys (capitals, @, #, $, etc.) to not be sent at all. This makes typing very inpractical.
Solution
This extension monkey-patches pi's terminal handling to use Kitty protocol flag 3 instead of 7 when running in WezTerm, avoiding the buggy flag 4.
Installation
cd ~/.pi/agent/extensions
npm install wezterm-pi-helperOr add to your ~/.pi/agent/extensions/package.json:
{
"dependencies": {
"wezterm-pi-helper": "^1.0.0"
}
}Then run npm install.
How it works
The extension detects WezTerm via the TERM_PROGRAM environment variable. When detected, it overrides ProcessTerminal.prototype.setupStdinBuffer to use Kitty keyboard protocol flags 1+2 (value 3) instead of 1+2+4 (value 7).
- Flag 1: Disambiguate escape codes
- Flag 2: Report event types (press/repeat/release)
- Flag 4: Report alternate keys (causes the bug in WezTerm on WSL2)
Why tmux works without this patch
If you've noticed pi works fine in tmux on WezTerm, that's because tmux intercepts the Kitty protocol query and handles keyboard input itself, masking the buggy WezTerm behavior.
License
MIT
