Actions & Variables
Actions
These actions are listed under Gamepad Actions in the action list while gamepad support is active.
| Action | What it does |
|---|---|
| Gamepad: Pause / Resume Mappings | Pauses, resumes or toggles all gamepad mappings, e.g. before you start a game BetterTouchTool doesn't recognize. |
| Gamepad: Set Stick Mode | Switches a stick or the touchpad to Mouse Pointer, Scroll, Smooth Zoom or Direction Triggers, toggles between two modes, or goes back to the profile setting. |
| Gamepad: Rumble | Makes the controller vibrate, with adjustable intensity, sharpness and duration. Works on controllers whose vibration macOS supports. |
| Gamepad: Set Light Bar Color | Sets the light bar color of PlayStation controllers. macOS may change it back when you switch apps. |
Rumble and light bar can target all connected controllers, or only the ones whose name contains a given text.
Variables
You can use these variables in Conditional Activation Groups, scripts and anywhere else BetterTouchTool supports variables.
| Variable | Contains |
|---|---|
gamepad_connected_count | The number of connected controllers. |
gamepad_connected_names | The names of the connected controllers. |
currently_pressed_gamepad_buttons | The buttons held right now, e.g. ButtonA,LeftShoulder,. |
gamepad_active_layer | The button of the hold layer that is held right now. |
gamepad_mappings_paused | 1 while the gamepad mappings are paused. |
gamepad_battery_1, gamepad_battery_2, … | Battery level in percent, in the order the controllers connected. |
gamepad_last_control, gamepad_last_device | The control and controller that triggered the last gamepad action. |
For example, a Conditional Activation Group with the condition
currently_pressed_gamepad_buttons contains LeftShoulder is active while L1 / LB is held.
JSON
Gamepad profiles and triggers can be exported, imported and created with scripts like every other trigger. The format is documented in the trigger definitions.