Skip to content

Controllers & Input

Ember reads controller events directly from /dev/input/event* using a pure Node.js binary reader. This gives low-latency input without relying on higher-level abstraction layers.

Your user must be a member of the input group to access device nodes without root.

All distros:

Terminal window
sudo usermod -aG input $USER

Most standard USB and Bluetooth gamepads are supported, including:

  • Xbox One / Series controllers
  • PlayStation 4 / 5 controllers
  • Nintendo Switch Pro Controller
  • Generic XInput-style gamepads

Ember is designed to be fully navigable by controller:

  • D-pad / Left stick — navigate menus
  • A / Cross — select
  • B / Circle — back
  • Start — pause / menu
  • Shoulder buttons — page left / right in grids

No keyboard or mouse is required for normal use.