Windows and Spaces from a game controller
The Window Management layout is built into InputConfig, free on the Mac App Store. You don't have to make an account, there are no subscriptions, and nothing is locked. Optimized for Apple silicon.
On a Mac: Sends the standard macOS window and Spaces shortcuts, so it works in every app. If you changed those shortcuts in System Settings, change the matching rows' outputs too.
Yes, you can manage windows on a Mac from a game controller: Mission Control on the big button, Command Tab on another, Spaces left and right on the D-pad. The app layouts handle the apps. This one is for the space between them, switching, hiding, and finding the window you lost. Most people add a few of these rows to every preset they make.
The layout, control by control
How the layout thinks
- See everything. Mission Control (Control Up Arrow) on the bottom face button, the current app's windows (Control Down Arrow) on the right.
- Switch and hide. The app switcher (Command Tab) on the left face button, hide (Command H) on the top.
- Spaces. Left and right (Control Left and Right Arrow) on the D-pad.
- Window size. Full screen (Control Command F) on the left bumper, minimize (Command M) on the right.
- Pick a window. The left stick is the pointer and the right trigger clicks, once Mission Control is open.
Add these rows to every preset
- Command Tab that walks the list. A single Command Tab jumps to the last app. Hold Command with a row set to Toggle, tap a Tab row, and the arrow keys move through the switcher. The App Switcher page has the steps.
- Quit and close. Command Q and Command W on the stick clicks, deliberately away from the face buttons.
- Tiling. Rectangle's and the built-in tiling keys are in the Window Tiling layout.
- Stage Manager. It has its own layout, if you use it.
Mission Control on one button is the fastest way back to a lost window.
Get it in two clicks
- Get InputConfig free on the Mac App Store, open it, and click Smart Preset Maker on the welcome screen.
- Search for Window Management and pick it. The layout is created as a preset in your sidebar, named and ready.
- Press Activate. Every row can be changed afterwards: the editor's Scan button rebinds any control the moment you touch it.
Every binding, as a table

| Controller | Sends | What it does |
|---|---|---|
| A / Cross | Ctrl (Left), Up | Mission Control (Ctrl+Up) |
| B / Circle | Ctrl (Left), Down | App windows (Ctrl+Down) |
| X / Square | Command (Left), Tab | Switch app (Cmd+Tab) |
| Y / Triangle | Command (Left), H | Hide app (Cmd+H) |
| D-pad left | Ctrl (Left), Left | Space left (Ctrl+Left) |
| D-pad right | Ctrl (Left), Right | Space right (Ctrl+Right) |
| LB / L1 | Command (Left), Ctrl (Left), F | Toggle fullscreen |
| RB / R1 | Command (Left), M | Minimize (Cmd+M) |
| Left stick left | Mouse motion left (speed 16) | Cursor left |
| Left stick right | Mouse motion right (speed 16) | Cursor right |
| Left stick up | Mouse motion up (speed 16) | Cursor up |
| Left stick down | Mouse motion down (speed 16) | Cursor down |
| Right trigger | Left click | Click |
Button names follow the Xbox / PlayStation pair shown in the editor, so A / Cross is the bottom face button on either pad. On a Switch Pro Controller the bottom button is labeled B; the mapping still fires on position.
Questions
Why do some of these not work?
Mission Control and Spaces shortcuts can be changed in System Settings, Keyboard, Keyboard Shortcuts. If yours differ, change the row's output to your shortcut.
Related
Completely free. You don't have to make an account, there are no subscriptions, and nothing is locked. Optimized for Apple silicon. Open source on GitHub.
Updated