a modern tui library written in zig

caps: implement first capability response (kitty keyboard)

Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>

+15 -1
+5
src/Tty.zig
··· 175 175 vx.postEvent(.paste_end); 176 176 } 177 177 }, 178 + .cap_kitty_keyboard => { 179 + if (@hasField(EventType, "cap_kitty_keyboard")) { 180 + vx.postEvent(.cap_kitty_keyboard); 181 + } 182 + }, 178 183 } 179 184 } 180 185 }
+1
src/event.zig
··· 8 8 focus_out, 9 9 paste_start, 10 10 paste_end, 11 + cap_kitty_keyboard, 11 12 };
+1
src/main.zig
··· 7 7 8 8 pub const Key = @import("Key.zig"); 9 9 pub const Winsize = @import("Tty.zig").Winsize; 10 + pub const Event = @import("event.zig").Event; 10 11 11 12 pub const widgets = @import("widgets/main.zig"); 12 13
+8 -1
src/parser.zig
··· 273 273 } 274 274 }, 275 275 'u' => blk: { 276 - if (seq.private_indicator) |_| { 276 + if (seq.private_indicator) |priv| { 277 277 // response to our kitty query 278 278 // TODO: kitty query handling 279 + if (priv == '?') { 280 + return .{ 281 + .event = .cap_kitty_keyboard, 282 + .n = i + 1, 283 + }; 284 + } 285 + 279 286 log.warn("unhandled csi: CSI {s}", .{input[start + 1 .. i + 1]}); 280 287 return .{ 281 288 .event = null,