# Objective The [`KeyCode`](https://github.com/bevyengine/bevy/blob/main/crates/bevy_input/src/keyboard.rs#L86) enum cases `LWin` and `RWin` are too opinionated because they are also assigned meaning by non-Windows operating systems. macOS calls the keys completely different. ## Solution Match [winits approach](https://github.com/rust-windowing/winit/blob/master/src/keyboard.rs#L1635) naming convention. --- ## Migration Guide Migrate by replacing: - `LAlt` → `AltLeft` - `RAlt` → `AltRight` - `LBracket` → `BracketLeft` - `RBracket` → `BracketRight` - `LControl` → `ControlLeft` - `RControl` → `ControlRight` - `LShift` → `ShiftLeft` - `RShift` → `ShiftRight` - `LWin` → `SuperLeft` - `RWin` → `SuperRight`
		
			
				
	
	
		
			21 lines
		
	
	
		
			598 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			598 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
//! Demonstrates using key modifiers (ctrl, shift).
 | 
						|
 | 
						|
use bevy::prelude::*;
 | 
						|
 | 
						|
fn main() {
 | 
						|
    App::new()
 | 
						|
        .add_plugins(DefaultPlugins)
 | 
						|
        .add_systems(Update, keyboard_input_system)
 | 
						|
        .run();
 | 
						|
}
 | 
						|
 | 
						|
/// This system prints when `Ctrl + Shift + A` is pressed
 | 
						|
fn keyboard_input_system(input: Res<Input<KeyCode>>) {
 | 
						|
    let shift = input.any_pressed([KeyCode::ShiftLeft, KeyCode::ShiftRight]);
 | 
						|
    let ctrl = input.any_pressed([KeyCode::ControlLeft, KeyCode::ControlRight]);
 | 
						|
 | 
						|
    if ctrl && shift && input.just_pressed(KeyCode::A) {
 | 
						|
        info!("Just pressed Ctrl + Shift + A!");
 | 
						|
    }
 | 
						|
}
 |