|  |  |  | @ -37,8 +37,8 @@ | 
			
		
	
		
			
				
					|  |  |  |  | struct sway_config *config = NULL; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | static struct xkb_state *keysym_translation_state_create( | 
			
		
	
		
			
				
					|  |  |  |  | 		struct xkb_rule_names rules) { | 
			
		
	
		
			
				
					|  |  |  |  | 	struct xkb_context *context = xkb_context_new(XKB_CONTEXT_NO_SECURE_GETENV); | 
			
		
	
		
			
				
					|  |  |  |  | 		struct xkb_rule_names rules, uint32_t context_flags) { | 
			
		
	
		
			
				
					|  |  |  |  | 	struct xkb_context *context = xkb_context_new(context_flags | XKB_CONTEXT_NO_SECURE_GETENV); | 
			
		
	
		
			
				
					|  |  |  |  | 	struct xkb_keymap *xkb_keymap = xkb_keymap_new_from_names( | 
			
		
	
		
			
				
					|  |  |  |  | 		context, | 
			
		
	
		
			
				
					|  |  |  |  | 		&rules, | 
			
		
	
	
		
			
				
					|  |  |  | @ -344,8 +344,11 @@ static void config_defaults(struct sway_config *config) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	// The keysym to keycode translation
 | 
			
		
	
		
			
				
					|  |  |  |  | 	struct xkb_rule_names rules = {0}; | 
			
		
	
		
			
				
					|  |  |  |  | 	config->keysym_translation_state = | 
			
		
	
		
			
				
					|  |  |  |  | 		keysym_translation_state_create(rules); | 
			
		
	
		
			
				
					|  |  |  |  | 	config->keysym_translation_state = keysym_translation_state_create(rules, 0); | 
			
		
	
		
			
				
					|  |  |  |  | 	if (config->keysym_translation_state == NULL) { | 
			
		
	
		
			
				
					|  |  |  |  | 		config->keysym_translation_state = keysym_translation_state_create(rules, | 
			
		
	
		
			
				
					|  |  |  |  | 			XKB_CONTEXT_NO_ENVIRONMENT_NAMES); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 	if (config->keysym_translation_state == NULL) { | 
			
		
	
		
			
				
					|  |  |  |  | 		goto cleanup; | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
	
		
			
				
					|  |  |  | @ -995,8 +998,7 @@ void translate_keysyms(struct input_config *input_config) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	struct xkb_rule_names rules = {0}; | 
			
		
	
		
			
				
					|  |  |  |  | 	input_config_fill_rule_names(input_config, &rules); | 
			
		
	
		
			
				
					|  |  |  |  | 	config->keysym_translation_state = | 
			
		
	
		
			
				
					|  |  |  |  | 		keysym_translation_state_create(rules); | 
			
		
	
		
			
				
					|  |  |  |  | 	config->keysym_translation_state = keysym_translation_state_create(rules, 0); | 
			
		
	
		
			
				
					|  |  |  |  | 	if (config->keysym_translation_state == NULL) { | 
			
		
	
		
			
				
					|  |  |  |  | 		sway_log(SWAY_ERROR, "Failed to create keysym translation XKB state " | 
			
		
	
		
			
				
					|  |  |  |  | 			"for device '%s'", input_config->identifier); | 
			
		
	
	
		
			
				
					|  |  |  | 
 |