From 21c97aa9d64769061351df82eee7e0b7a27de71e Mon Sep 17 00:00:00 2001 From: Jonatan Borkowski Date: Sun, 25 May 2025 22:22:07 +0200 Subject: [PATCH] add support for buffer switching with CSI ? 47 h/l --- src/terminal/modes.zig | 1 + src/termio/stream_handler.zig | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/src/terminal/modes.zig b/src/terminal/modes.zig index 60ecc7698..b36266b32 100644 --- a/src/terminal/modes.zig +++ b/src/terminal/modes.zig @@ -206,6 +206,7 @@ const entries: []const ModeEntry = &.{ .{ .name = "cursor_visible", .value = 25, .default = true }, .{ .name = "enable_mode_3", .value = 40 }, .{ .name = "reverse_wrap", .value = 45 }, + .{ .name = "alt_screen_legacy", .value = 47 }, .{ .name = "keypad_keys", .value = 66 }, .{ .name = "enable_left_and_right_margin", .value = 69 }, .{ .name = "mouse_event_normal", .value = 1000 }, diff --git a/src/termio/stream_handler.zig b/src/termio/stream_handler.zig index 299c7cd45..ffd00e14d 100644 --- a/src/termio/stream_handler.zig +++ b/src/termio/stream_handler.zig @@ -582,6 +582,16 @@ pub const StreamHandler = struct { self.terminal.scrolling_region.right = self.terminal.cols - 1; }, + .alt_screen_legacy => { + if (enabled) + self.terminal.alternateScreen(.{}) + else + self.terminal.primaryScreen(.{}); + + // Schedule a render since we changed screens + try self.queueRender(); + }, + .alt_screen => { const opts: terminal.Terminal.AlternateScreenOptions = .{ .cursor_save = false,