Sobre el proyecto

Este repositorio resuelve un problema específico de compatibilidad con métodos de entrada: al usar Sogou Pinyin bajo el marco fcitx 4 en Linux, la terminal integrada de VS Code pierde los envíos de un solo carácter. Por ejemplo, al escribir `ni` y presionar espacio, la terminal recibe un espacio literal en lugar de `你`, lo cual ocurre tanto en el prompt de bash como en TUIs como Claude Code. Los envíos de múltiples caracteres (por ejemplo, `nihao` + espacio produce `你好`) funcionan con normalidad. El repositorio incluye un script de parche en Python, `fix-vscode-xterm-ime.py`, que modifica el método `_keyDown` del xterm.js integrado en VS Code insertando una declaración de paso directo antes de la llamada a `preventDefault()`, de modo que las pulsaciones de un solo carácter se transmitan al PTY a través del evento `keypress`. El script admite modo de prueba (`--check`), reversión (`--revert`) y ruta de instalación personalizada (`--asar`), y realiza una verificación de sintaxis antes de modificar para garantizar la seguridad. Además, se proporcionan dos herramientas de diagnóstico: `tools/ime-probe.js`, que registra los eventos DOM en el textarea oculto de xterm.js mediante el protocolo de Chrome DevTools para confirmar el problema, y `tools/pty-tee.py`, que registra los bytes que el programa recibe desde stdin para verificar si los caracteres se pierden. El README documenta detalladamente el análisis de la causa raíz: fcitx4 y Sogou dibujan su propia ventana de preedición, por lo que la página no recibe eventos de composición y el CompositionHelper de xterm.js no se activa; en el envío de un solo carácter, Chromium entrega el keydown de la tecla original junto con un keypress que porta el carácter, pero xterm.js procesa el keydown y llama a `preventDefault()`, lo que suprime el keypress. El entorno de prueba fue Ubuntu 22.04 (X11), VS Code 1.137.0 (instalación .deb), fcitx 4.2.9.8 y Sogou Pinyin 4.2.1.145. Tenga en cuenta que las actualizaciones de VS Code reemplazan node_modules.asar, por lo que es necesario volver a ejecutar el script; las instalaciones Snap y Flatpak no pueden parchearse debido a que son de solo lectura. La licencia es MIT.