diff --git a/src/keyboard.zig b/src/keyboard.zig index 984f96d..a360ce0 100644 --- a/src/keyboard.zig +++ b/src/keyboard.zig @@ -77,14 +77,16 @@ fn handleKey(_: *wl.Listener(*wlr.Keyboard.event.Key), event: *wlr.Keyboard.even var handled = false; const modifiers = server.seat.keyboard_group.keyboard.getModifiers(); - for (server.seat.keyboard_group.keyboard.xkb_state.?.keyGetSyms(keycode)) |sym| { - if (server.keymaps.get(Keymap.hash(modifiers, sym))) |map| { - if (event.state == .pressed and map.lua_press_ref_idx > 0) { - map.callback(false); - handled = true; - } else if (event.state == .released and map.lua_release_ref_idx > 0) { - map.callback(true); - handled = true; + if (server.seat.keyboard_group.keyboard.xkb_state) |xkb_state| { + for (xkb_state.keyGetSyms(keycode)) |sym| { + if (server.keymaps.get(Keymap.hash(modifiers, sym))) |map| { + if (event.state == .pressed and map.lua_press_ref_idx > 0) { + map.callback(false); + handled = true; + } else if (event.state == .released and map.lua_release_ref_idx > 0) { + map.callback(true); + handled = true; + } } } }