--- x11-wm/i3/files/patch-i3-config-wizard_main.c (revision 0) +++ x11-wm/i3/files/patch-i3-config-wizard_main.c (working copy) @@ -0,0 +1,40 @@ +--- i3-config-wizard/main.c.orig 2016-03-06 15:17:18 UTC ++++ i3-config-wizard/main.c +@@ -264,21 +264,29 @@ static char *next_state(const cmdp_token + const xkb_keysym_t *syms; + int num = xkb_keymap_key_get_syms_by_level(xkb_keymap, keycode, 0, 0, &syms); + if (num == 0) +- errx(1, "xkb_keymap_key_get_syms_by_level returned no symbols for keycode %d", keycode); +- if (!keysym_used_on_other_key(syms[0], keycode)) +- level = 0; ++ fprintf(stderr, "xkb_keymap_key_get_syms_by_level returned no symbols for keycode %d\n", keycode); ++ if (num != 0) ++ { ++ if (!keysym_used_on_other_key(syms[0], keycode)) ++ level = 0; ++ } + } + + const xkb_keysym_t *syms; + int num = xkb_keymap_key_get_syms_by_level(xkb_keymap, keycode, 0, level, &syms); + if (num == 0) +- errx(1, "xkb_keymap_key_get_syms_by_level returned no symbols for keycode %d", keycode); ++ fprintf(stderr, "xkb_keymap_key_get_syms_by_level returned no symbols for keycode %d\n", keycode); + if (num > 1) +- printf("xkb_keymap_key_get_syms_by_level (keycode = %d) returned %d symbolsinstead of 1, using only the first one.\n", keycode, num); +- ++ fprintf(stderr, "xkb_keymap_key_get_syms_by_level (keycode = %d) returned %d symbolsinstead of 1, using only the first one.\n", keycode, num); + char str[4096]; +- if (xkb_keysym_get_name(syms[0], str, sizeof(str)) == -1) +- errx(EXIT_FAILURE, "xkb_keysym_get_name(%u) failed", syms[0]); ++ if (num != 0) { ++ if (xkb_keysym_get_name(syms[0], str, sizeof(str)) == -1) ++ errx(EXIT_FAILURE, "xkb_keysym_get_name(%u) failed", syms[0]); ++ } ++ else ++ { ++ strcpy(str, get_string("key")); ++ } + const char *release = get_string("release"); + char *res; + char *modrep = (modifiers == NULL ? sstrdup("") : sstrdup(modifiers));