Global controls
These controls work in every app. An app profile overrides only the controls explicitly listed on that app’s page.
| Gamepad control | Default action | Notes |
|---|---|---|
| Left stick | Move pointer | Immediate, continuous movement |
| Right stick | Scroll | Vertical scrolling |
| A | Left mouse button | Hold to drag or select |
| X | Right mouse button | Hold for right-button drag |
| Y | Voice input | Taps physical right Alt |
| Y, then A | Press Enter | Available in every app |
| D-pad | Arrow keys | Up, down, left, right |
| LT | Precision movement | Reduces pointer speed |
| RT | Boost movement | Increases pointer speed |
| LT + LB | Previous window | Alt + Shift + Tab |
| LT + RB | Next window | Alt + Tab |
| Back + Start | Emergency exit | Hold for 1.5 seconds |
Voice submit in every app
Section titled “Voice submit in every app”Press Y to start voice input, speak, and pause briefly before pressing A. By default, A can submit only two seconds after Y. CouchPilot triggers the operating system’s voice input but does not receive microphone or VAD events, so this configurable minimum delay prevents an immediate accidental send. Pressing A too early is safely ignored instead of clicking or sending. Moving the pointer, changing apps, pressing another control, submitting, or reaching the timeout restores A to the normal left mouse button.
Codex additionally lets you tap or hold B to delete characters before submitting. See the Codex page for those app-specific editing controls.
How app profiles override controls
Section titled “How app profiles override controls”When CouchPilot matches the foreground app to a profile, it replaces only the bindings declared by that profile. For example, RB moves to the next tab in a browser, while pointer movement, scrolling, right click, voice input, and window switching remain global.