From 802de4f12f125abc261c58bdb5385f6be3ad469a Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Thu, 1 Oct 2026 09:43:37 -0300 Subject: Shift-Esc always backs out: in every mode and pane it goes to the previous pane, as Esc does from normal, and a raw program never sees it; Ctrl-b alone toggles raw Shift-Esc switched a terminal in normal or insert mode into raw, so the one key meant to get out of anything got a script or a person into a program instead. It is now handled before any mode: an open prompt is closed, insert mode left, a pending count dropped, and Last runs, the pane keeping its mode (a raw terminal stays raw). Ctrl-b is the only switch between raw and normal. The keymap's two chords become one, back_out; the cheatsheet row, the guide's mode table and the tutor say so, and the tty and builtins goldens are re-recorded. Co-Authored-By: Claude Opus 5.5 --- src/config.zig | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/config.zig') diff --git a/src/config.zig b/src/config.zig index cc46adfc..7559d481 100644 --- a/src/config.zig +++ b/src/config.zig @@ -249,10 +249,12 @@ pub const jump_keys = [_]struct { chord: Chord, cmd: Builtin }{ .{ .chord = .{ .cp = 'i', .ctrl = true }, .cmd = .Forward }, }; -pub const leave_pane: []const Chord = &.{.{ .cp = Key.escape, .shift = true }}; +/// Shift-Esc: the Esc nothing swallows. In every mode and pane it does what +/// Esc does from normal mode, back to the previous pane (Last); a raw +/// terminal's program never sees it. Ctrl-b alone toggles raw. +pub const back_out: []const Chord = &.{.{ .cp = Key.escape, .shift = true }}; pub const tty_toggle_default: u21 = 'b'; -pub const tty_toggle_alt: []const Chord = &.{.{ .cp = Key.escape, .shift = true }}; // OSC 133 prompt cells are hidden in normal mode; input columns stay intact. pub const tty_blank: enum { prompt, prompt_and_input } = .prompt; -- cgit v1.3