diff --git a/src/config/Config.zig b/src/config/Config.zig index ace9c5e4a..4822e1b45 100644 --- a/src/config/Config.zig +++ b/src/config/Config.zig @@ -325,6 +325,7 @@ palette: Palette = .{}, /// * `block` /// * `bar` /// * `underline` +/// * `block_hollow` /// @"cursor-style": terminal.CursorStyle = .block, diff --git a/src/renderer/cursor.zig b/src/renderer/cursor.zig index 18af9228e..c7667d379 100644 --- a/src/renderer/cursor.zig +++ b/src/renderer/cursor.zig @@ -16,6 +16,7 @@ pub const CursorStyle = enum { return switch (style) { .bar => .bar, .block => .block, + .block_hollow => .block_hollow, .underline => .underline, }; } diff --git a/src/terminal/Screen.zig b/src/terminal/Screen.zig index 620267ad5..8b8941516 100644 --- a/src/terminal/Screen.zig +++ b/src/terminal/Screen.zig @@ -139,7 +139,7 @@ pub const Cursor = struct { /// The visual style of the cursor. Whether or not it blinks /// is determined by mode 12 (modes.zig). This mode is synchronized /// with CSI q, the same as xterm. -pub const CursorStyle = enum { bar, block, underline }; +pub const CursorStyle = enum { bar, block, underline, block_hollow }; /// Saved cursor state. pub const SavedCursor = struct { diff --git a/src/termio/stream_handler.zig b/src/termio/stream_handler.zig index 648efb6fb..16e6d5880 100644 --- a/src/termio/stream_handler.zig +++ b/src/termio/stream_handler.zig @@ -208,6 +208,7 @@ pub const StreamHandler = struct { const blink = self.terminal.modes.get(.cursor_blinking); const style: u8 = switch (self.terminal.screen.cursor.cursor_style) { .block => if (blink) 1 else 2, + .block_hollow => if (blink) 1 else 2, .underline => if (blink) 3 else 4, .bar => if (blink) 5 else 6, };