App

IntelliJ IDEA from a game controller

Download InputConfig on the Mac App StoreThe IntelliJ IDEA 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 IntelliJ's default macOS keymap, so it also works in PyCharm, WebStorm and the other JetBrains IDEs set to that keymap.

Yes, you can drive IntelliJ IDEA on a Mac from a game controller: go to file, go to declaration, comment and run on the face buttons, with Debug on Options, where a thumb has to mean it. It sends IntelliJ's default macOS keymap, so it also works in PyCharm, WebStorm and the other JetBrains IDEs set to that keymap. With dictation for the search boxes, most of a code review happens without a keyboard.

The layout, control by control

Click a control. Labels:

How the layout thinks

  • Move through code. Go to file (Command Shift O) on the bottom face button, go to declaration (Command B) on the right.
  • Act on it. Comment line (Command Slash) on the left, Run (Control R) on the top.
  • Search. Find and Find in Path on the bumpers.
  • Save and debug. Save All on Share or View, Debug (Control D) on Options.
  • Lines and pointer. D-pad up and down move a line. The left stick is the pointer, the right stick scrolls, the right trigger clicks.

Run and Debug use Control, not Command, because that is the default macOS keymap in JetBrains IDEs. The four keys you press between reading and running are on the face buttons.

If Run and Debug do nothing

The Control rows match only the default macOS keymap. Climb this ladder, smallest step first:

  1. Check the keymap. Open Settings, Keymap and see which one is active.
  2. Switch to the macOS keymap. If you do not rely on another one.
  3. Scan the rows. If you use a different keymap, such as the Windows-style one some people choose, Scan each row and press your keys.

Android Studio uses the same keymap by default. The layout follows the macOS keymap, so a different keymap needs a Scan for each row.

Tune it for IntelliJ

  • Search Everywhere. It is a double Shift. A row that sends Shift with How it fires set to Repeat 2 times per press does it from one press. The Android Studio layout already has one.
  • Back and forward. Put Command Left Bracket and Command Right Bracket behind a chord on the D-pad.
  • Refactor This. Put Control T on a stick click.
  • Recent files. Put Command E on the touchpad press.

PyCharm and Rider have their own entries too. Search Everywhere on one button is the row that saves the most reaching.

Get it in two clicks

  1. Get InputConfig free on the Mac App Store, open it, and click Smart Preset Maker on the welcome screen.
  2. Search for IntelliJ IDEA and pick it. The layout is created as a preset in your sidebar, named and ready.
  3. 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

The IntelliJ IDEA preset in InputConfig, drawn on a DualSense Edge with each control labeled with the key or action it sends.
Figure 1. The IntelliJ IDEA preset drawn on a DualSense Edge in InputConfig's Live Visualizer. For example, Right trigger is labeled Click, and A / Cross is labeled Go to file (Cmd+Shift+O). Any other controller shows the same layout on its own drawing.
ControllerSendsWhat it does
Left stick leftMouse motion left (speed 16)Pointer left
Left stick rightMouse motion right (speed 16)Pointer right
Left stick upMouse motion up (speed 16)Pointer up
Left stick downMouse motion down (speed 16)Pointer down
Right stick downScroll downScroll down
Right stick upScroll upScroll up
Right triggerLeft clickClick
A / CrossCommand (Left), Shift (Left), OGo to file (Cmd+Shift+O)
B / CircleCommand (Left), BGo to declaration (Cmd+B)
X / SquareCommand (Left), /Comment line (Cmd+/)
Y / TriangleCtrl (Left), RRun (Ctrl+R)
LB / L1Command (Left), FFind (Cmd+F)
RB / R1Command (Left), Shift (Left), FFind in path (Cmd+Shift+F)
Back / Share / SelectCommand (Left), SSave all (Cmd+S)
Start / OptionsCtrl (Left), DDebug (Ctrl+D)
D-pad upUpUp
D-pad downDownDown

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

Does it work in PyCharm, WebStorm or GoLand?

Yes. They share the keymap. PyCharm and Rider have their own entries too.

Why do Run and Debug use Control and not Command?

That is the default macOS keymap in JetBrains IDEs: Control R runs and Control D debugs.

Download InputConfig on the Mac App StoreCompletely 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