input: encode alt+escape with MOK2

This commit is contained in:
Mitchell Hashimoto
2026-09-04 09:41:08 -07:00
parent e7bdda9918
commit 37e3cdd2d2
2 changed files with 24 additions and 1 deletions

View File

@@ -237,7 +237,8 @@ pub const keys = keys: {
result.set(.escape, &.{
.{ .mods = .{ .shift = true }, .sequence = "\x1b[27;2;27~" },
.{ .mods = .{ .alt = true }, .sequence = "\x1b\x1b" },
.{ .mods = .{ .alt = true }, .modify_other_keys = .set, .sequence = "\x1b\x1b" },
.{ .mods = .{ .alt = true }, .modify_other_keys = .set_other, .sequence = "\x1b[27;3;27~" },
.{ .mods = .{ .alt = true, .shift = true }, .sequence = "\x1b[27;4;27~" },
.{ .mods = .{ .ctrl = true }, .sequence = "\x1b[27;5;27~" },
.{ .mods = .{ .ctrl = true, .shift = true }, .sequence = "\x1b[27;6;27~" },

View File

@@ -2033,6 +2033,28 @@ test "legacy: esc with utf8 (dead key state)" {
try testing.expectEqualStrings("A", writer.buffered());
}
test "legacy: alt+escape with modify other state 2" {
var buf: [128]u8 = undefined;
{
var writer: std.Io.Writer = .fixed(&buf);
try legacy(&writer, .{
.key = .escape,
.mods = .{ .alt = true },
}, .{});
try testing.expectEqualStrings("\x1b\x1b", writer.buffered());
}
{
var writer: std.Io.Writer = .fixed(&buf);
try legacy(&writer, .{
.key = .escape,
.mods = .{ .alt = true },
}, .{ .modify_other_keys_state_2 = true });
try testing.expectEqualStrings("\x1b[27;3;27~", writer.buffered());
}
}
test "legacy: ctrl+shift+minus (underscore on US)" {
var buf: [128]u8 = undefined;
var writer: std.Io.Writer = .fixed(&buf);