[BUG] Uppercase German umlauts (Ä, Ö, Ü) silently dropped in chat input on Linux/WezTerm

Resolved 💬 2 comments Opened Apr 30, 2026 by Stereo157E Closed May 31, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

When typing uppercase German umlauts (Ä, Ö, Ü) via Shift+umlaut key into the Claude Code chat input on Linux/WezTerm, the characters are silently dropped — nothing appears in the input field. Lowercase umlauts (ä, ö, ü) work correctly and Caps-Lock+Umlauts work.

What Should Happen?

Uppercase German umlauts typed via Shift+umlaut (Ä, Ö, Ü) should appear in the Claude Code input field, identical to how they work in Alacritty on the same machine.

Error Messages/Logs

None — characters are silently swallowed with no error output.

Steps to Reproduce

  1. Launch Claude Code in WezTerm on Linux (Wayland/Hyprland)
  2. At the chat input prompt, type ä, ö, ü → characters appear correctly ✅
  3. Type Ä (Shift+ä), Ö (Shift+ö), Ü (Shift+ü) → nothing appears ❌

Isolation steps already performed:

  • Verified WezTerm sends correct UTF-8 bytes outside Claude Code using Python raw input reader:

Ä = c3 84, Ö = c3 96, Ü = c3 9c (all correct)

  • Same machine, same locale, same shell: Ä/Ö/Ü work correctly in Claude Code when using Alacritty instead of WezTerm → confirms the issue is WezTerm + Claude Code specific, not locale/OS

Tried without success:

  • config.enable_kitty_keyboard = true / false
  • config.use_ime = false
  • TERM=wezterm (explicit)
  • LC_ALL=de_DE.UTF-8 explicitly exported
  • LANG=de_DE.UTF-8 LC_ALL=de_DE.UTF-8 claude (env prefix on launch)

Related issues checked that do NOT match this bug:

  • #38842 — Shift+letter as lowercase in xterm (normal letters, different terminal)
  • #17400 — Kitty protocol issues with German keymap on Ghostty (different terminal)
  • #14131 — Umlauts dropped in Claude's output, not input
  • #43429 — Key events from uinput virtual keyboards dropped (different input source)

Claude Model

Sonnet (default)

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.1.123

Platform

Anthropic API

Operating System

Other Linux

Terminal/Shell

Other

Additional Information

Regression: first time using WezTerm, previously used Alacritty where it works.
Terminal/Shell: WezTerm, zsh, TERM=wezterm, LANG=de_DE.UTF-8
---
The issue is specifically Shift+umlaut combinations. Regular Shift+ASCII letters (A, B, C...) work fine. Only Shift+ä/ö/ü (producing Ä/Ö/Ü) are affected. This suggests Claude Code's input handler handles the Shift modifier correctly for ASCII but fails for multi-byte UTF-8 characters that require Shift.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗