From 1c2f118aa858c3467753cf373ce3405e27fae7a5 Mon Sep 17 00:00:00 2001 From: Lorenzo Torres Date: Sun, 10 Aug 2025 20:08:32 +0200 Subject: [PATCH] Fixed input handling on Xorg --- src/xorg.zig | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/xorg.zig b/src/xorg.zig index 2626e28..c3019c3 100644 --- a/src/xorg.zig +++ b/src/xorg.zig @@ -34,6 +34,13 @@ fn mapError(result: c_int) !void { }; } +fn mapKeysym(keysym: u32) u32 { + return switch (keysym) { + 0xffe1 => 340, + else => keysym, + }; +} + fn vulkan_init_instance(allocator: std.mem.Allocator, handle: *c.VkInstance) !void { const extensions = [_][*c]const u8{ c.VK_KHR_XCB_SURFACE_EXTENSION_NAME, c.VK_KHR_SURFACE_EXTENSION_NAME }; @@ -176,12 +183,12 @@ pub fn main() !void { c.XCB_KEY_PRESS => { const ev: *c.xcb_key_press_event_t = @ptrCast(e); const key = c.xcb_key_symbols_get_keysym(keysyms, ev.detail, 0); - sideros.sideros_key_callback(key, false); + sideros.sideros_key_callback(mapKeysym(key), false); }, c.XCB_KEY_RELEASE => { const ev: *c.xcb_key_release_event_t = @ptrCast(e); const key = c.xcb_key_symbols_get_keysym(keysyms, ev.detail, 0); - sideros.sideros_key_callback(key, false); + sideros.sideros_key_callback(mapKeysym(key), true); }, else => {}, }