xenia emulator keyboard controls Image xenia emulator keyboard controls
xenia emulator keyboard controls xenia emulator keyboard controls xenia emulator keyboard controls

Emulator Keyboard Controls | Xenia

You can combine keys using .With:

[ "Key::LShift.With(Key::W)", "Button::LB" ]

(This means hold Left Shift + W to press Left Bumper.)

The Xenia team has been actively improving input handling. Recent Canary builds introduced: xenia emulator keyboard controls

However, a visual input mapper (like Dolphin’s) is not on the immediate roadmap because the priority is compatibility and performance. If keyboard controls are essential for you, consider joining the Xenia Discord or Patreon to support developers focusing on input layers.


If you added Xenia as a non-Steam game to your Steam library, you can leverage Steam’s powerful input remapper. You can combine keys using

This method is cleaner than x360ce but adds slight input latency due to Steam’s overlay.


  • Open the input/controller section of the config file (often JSON or INI).
  • Edit the mapping entries to assign keyboard keys to controller inputs. Example JSON snippet:
    "input": 
      "left_stick_x_neg": "A",
      "left_stick_x_pos": "D",
      "a_button": "Z",
      ...
    
  • Save and start Xenia. Test and iterate until comfortable.
  • If Xenia’s build uses an in-emulator UI for input mapping, use that UI instead of editing files manually. (This means hold Left Shift + W to press Left Bumper

    Xenia supports mouse input for the right analog stick, which is essential for first-person shooters. In the [keyboard] section, add or modify these lines:

    keyboard_key_RIGHT_STICK_UP = "mouse_up"
    keyboard_key_RIGHT_STICK_DOWN = "mouse_down"
    keyboard_key_RIGHT_STICK_LEFT = "mouse_left"
    keyboard_key_RIGHT_STICK_RIGHT = "mouse_right"
    keyboard_mouse_look_sensitivity = 1.5
    

    Adjust the mouse_look_sensitivity value (default is 1.0). Higher values (2.0–3.0) make the camera move faster.

    Scroll down until you see [keyboard]. This section contains all the bindings. It will look like this:

    [keyboard]
    keyboard_key_A = "key_a"
    keyboard_key_B = "key_b"
    # ... and so on