diff --git a/sway/commands/input.c b/sway/commands/input.c index 903d574f..2de07de6 100644 --- a/sway/commands/input.c +++ b/sway/commands/input.c @@ -43,24 +43,17 @@ static struct cmd_handler input_config_handlers[] = { * Re-translate keysyms if a change in the input config could affect them. */ static void retranslate_keysyms(struct input_config *input_config) { - bool matched = false; for (int i = 0; i < config->input_configs->length; ++i) { struct input_config *ic = config->input_configs->items[i]; - matched |= ic->identifier == input_config->identifier; - - // the first configured xkb_layout if (ic->xkb_layout) { - if (matched) { + // this is the first config with xkb_layout + if (ic->identifier == input_config->identifier) { translate_keysyms(ic->xkb_layout); } - // nothing has changed return; } } - - // no xkb_layout has been set, restore the default - translate_keysyms(getenv("XKB_DEFAULT_LAYOUT")); } struct cmd_results *cmd_input(int argc, char **argv) { diff --git a/sway/config.c b/sway/config.c index c5d892f3..8579e865 100644 --- a/sway/config.c +++ b/sway/config.c @@ -340,7 +340,7 @@ static void config_defaults(struct sway_config *config) { // The keysym to keycode translation config->keysym_translation_state = - keysym_translation_state_create(getenv("XKB_DEFAULT_LAYOUT")); + keysym_translation_state_create(NULL); return; cleanup: