普段はGhosttyの上でtmuxを使って生活しているが、Claude CodeやらCodexやらCopilotのCLIで入力するときに複数行が入力できない問題があった。
これらのツールはKitty keyboard protocolというものでGhosttyなどのターミナルエミュレーターからShift+Enterを受信するようだが、tmuxを経由するとその入力が中継できずにただの改行として認識されてしまうようだった。
tmuxでKitty keyboard protocolに完全対応するのは厳しそうだったが、 .tmux.conf に以下の1行を入れたところ期待通りの動作をした。
bind -n S-Enter send-keys Escape "[13;2u"
Shift+Enterを検知したら本来送られて欲しい Escape "[13;2u" を送信するようにリマップする設定。
他の用途でShift+Enterをフックしたいケースは今の所思いつかないので、これでよさそう。