diff --git a/codex-rs/tui/src/bottom_pane/chat_composer.rs b/codex-rs/tui/src/bottom_pane/chat_composer.rs index 5927b898c9..7286816195 100644 --- a/codex-rs/tui/src/bottom_pane/chat_composer.rs +++ b/codex-rs/tui/src/bottom_pane/chat_composer.rs @@ -1143,7 +1143,14 @@ impl ChatComposer { } fn is_send_immediately_key(&self, key_event: &KeyEvent) -> bool { - if key_event.kind != KeyEventKind::Press || key_event.code != KeyCode::Enter { + if key_event.kind != KeyEventKind::Press { + return false; + } + let is_enter = matches!( + key_event.code, + KeyCode::Enter | KeyCode::Char('\n') | KeyCode::Char('\r') + ); + if !is_enter { return false; } let modifiers = key_event.modifiers; diff --git a/codex-rs/tui2/src/bottom_pane/chat_composer.rs b/codex-rs/tui2/src/bottom_pane/chat_composer.rs index 87d2d150ee..2496b631b8 100644 --- a/codex-rs/tui2/src/bottom_pane/chat_composer.rs +++ b/codex-rs/tui2/src/bottom_pane/chat_composer.rs @@ -1077,7 +1077,14 @@ impl ChatComposer { } fn is_send_immediately_key(&self, key_event: &KeyEvent) -> bool { - if key_event.kind != KeyEventKind::Press || key_event.code != KeyCode::Enter { + if key_event.kind != KeyEventKind::Press { + return false; + } + let is_enter = matches!( + key_event.code, + KeyCode::Enter | KeyCode::Char('\n') | KeyCode::Char('\r') + ); + if !is_enter { return false; } let modifiers = key_event.modifiers;