From 690498fdcc3e6fcb319ce3a3503dcc8830cacadc Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Wed, 26 Nov 2025 16:25:52 +0100 Subject: [PATCH] feat: add modes_can_change_cursor configuration option --- src/config.zig | 1 + src/tui/tui.zig | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/config.zig b/src/config.zig index d95970a..96b00c1 100644 --- a/src/config.zig +++ b/src/config.zig @@ -26,6 +26,7 @@ enable_format_on_save: bool = false, restore_last_cursor_position: bool = true, follow_cursor_on_buffer_switch: bool = false, //scroll cursor into view on buffer switch default_cursor: CursorShape = .default, +modes_can_change_cursor: bool = true, enable_auto_save: bool = false, limit_auto_save_file_types: ?[]const []const u8 = null, // null means *all* diff --git a/src/tui/tui.zig b/src/tui/tui.zig index bba3e28..20e4b21 100644 --- a/src/tui/tui.zig +++ b/src/tui/tui.zig @@ -1778,7 +1778,13 @@ fn set_terminal_style(self: *Self, theme_: *const Widget.Theme) void { pub fn get_cursor_shape() renderer.CursorShape { const self = current(); const default_cursor = self.config_.default_cursor; - const shape_ = if (self.input_mode_) |mode| mode.cursor_shape orelse default_cursor else default_cursor; + const shape_ = if (self.config_.modes_can_change_cursor) + if (self.input_mode_) |mode| + mode.cursor_shape orelse default_cursor + else + default_cursor + else + default_cursor; const shape = if (self.rdr_.vx.caps.multi_cursor and shape_ == .default) .beam_blink else shape_; return switch (shape) { .default => .default,