Skip to content

xtermおよびVS Code統合ターミナルでkittyキーボードプロトコル使用時に大文字が小文字に変換されていた問題の修正

原文(日本語に翻訳)

kittyキーボードプロトコルが有効な状態で、xtermおよびVS Code統合ターミナルで大文字が小文字に変換されていた問題を修正しました。

原文(英語)

Fixed capital letters being dropped to lowercase on xterm and VS Code integrated terminal when the kitty keyboard protocol is active

概要

kittyキーボードプロトコルは、ターミナルエミュレータがキーボード入力をより詳細に伝達するための拡張プロトコルです。このバグでは、xtermやVS Codeの統合ターミナルでこのプロトコルが有効になっている場合に、大文字(Shift+キー)の入力が小文字として認識されるという問題がありました。テキスト入力時に大文字が消えてしまい、正確な入力が困難になっていました。v2.1.98でこの問題が修正され、大文字が正しく入力できるようになりました。

基本的な使い方

修正前の動作(問題のある挙動)

# 修正前:VS Code統合ターミナルやxtermで
# 「Hello World」と入力しようとすると...
$ claude
> Hello World
# 実際に入力されていた内容(画面表示):
> hello world
# 大文字が小文字に変換されてしまっていた

修正後の動作(v2.1.98以降)

# 修正後:大文字が正しく入力される
$ claude
> Hello World
# 画面表示:
> Hello World ✓

v2.1.98へのアップデートのみで修正されます。追加の設定変更は不要です。

実践例

シナリオ1:VS Code統合ターミナルでのClaude Code使用(修正後)

VS Codeのターミナルパネル(Ctrl+`)でClaude Codeを使用する場合、大文字入力が正常に動作します。

bash
# VS Code統合ターミナルで
# コマンド入力例
$ claude "GitHubのPRを作成するためのコミットメッセージを提案してください"
#         ^^^^^^^^ 大文字Gと大文字Pと大文字Rが正しく入力される(修正後)

# ファイル名の入力
$ claude "README.mdのContent sectionを更新してください"
#         ^^^^^^^^^^^ 大文字Rと大文字MとCが正しく入力される(修正後)

シナリオ2:xtermでのClaude Code使用(修正後)

xtermターミナルエミュレータでClaude Codeを使用する場合も同様に修正されます。

bash
# xtermでの作業
# 変数名やクラス名の入力
$ claude "JavaScriptでUserAuthenticationクラスを作成してください"
#                    ^^^^^^^^^^^^^^^^^^ 大文字が正しく入力される

# 英語の大文字略語も正しく入力可能
$ claude "APIのRESTエンドポイントを設計してください"
#         ^^^  ^^^^ 大文字略語が正しく認識される

シナリオ3:kittyキーボードプロトコルの確認方法

自分の環境でkittyキーボードプロトコルが有効かどうか確認する方法:

bash
# ターミナルのキーボードプロトコルをチェック
# (kittyキーボードプロトコルをサポートするターミナル: kitty, Ghostty, VS Code, xterm等)

# VS Code の場合:デフォルトで有効になっている場合がある
# settings.json での確認:
# "terminal.integrated.experimentalTerminalCellHovering": ...

# xtermでの確認
echo $TERM
# xterm-256color や xterm-kitty などが表示される場合、影響を受ける可能性があった

シナリオ4:アップデート前後の動作比較

アップデート前 (v2.1.97以前):
キーボード入力: S h i f t + H → 'H' のはずが 'h' として認識
例: "Hello" → "hello"
例: "GitHub" → "github"
例: "README" → "readme"

アップデート後 (v2.1.98以降):
キーボード入力: S h i f t + H → 'H' として正しく認識
例: "Hello" → "Hello" ✓
例: "GitHub" → "GitHub" ✓
例: "README" → "README" ✓

注意点

  • この問題はkittyキーボードプロトコルが有効な環境(主にxterm、VS Code統合ターミナル)でのみ発生していました。
  • ネイティブのkittyターミナル、Ghostty、Alacrittyなど、kittyキーボードプロトコルをネイティブにサポートするターミナルには影響がなかった可能性があります。
  • macOSのTerminal.appやiTerm2では通常このプロトコルが使用されないため、影響が少なかったと考えられます。
  • v2.1.98にアップデートすれば、ターミナルや設定の変更なしに自動修正されます。

関連情報