diff --git a/src/keyboard.c b/src/keyboard.c index 364e8048..2f0dd66d 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -226,8 +226,12 @@ keyboard_init(struct seat *seat) struct xkb_context *context = xkb_context_new(XKB_CONTEXT_NO_FLAGS); struct xkb_keymap *keymap = xkb_map_new_from_names(context, &rules, XKB_KEYMAP_COMPILE_NO_FLAGS); - wlr_keyboard_set_keymap(kb, keymap); - xkb_keymap_unref(keymap); + if (keymap) { + wlr_keyboard_set_keymap(kb, keymap); + xkb_keymap_unref(keymap); + } else { + wlr_log(WLR_ERROR, "Failed to create xkb keymap"); + } xkb_context_unref(context); wlr_keyboard_set_repeat_info(kb, rc.repeat_rate, rc.repeat_delay);