App

PyCharm from a game controller

Download InputConfig on the Mac App StoreThe PyCharm 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: Native on the Mac. The layout sends PyCharm's default keymap. Nothing to enable.

Yes, you can get around PyCharm on a Mac from a game controller: go to file, go to declaration, comment, run and debug are each one button. The layout sends PyCharm's default keymap, the same in every JetBrains IDE, with Python's run and debug. Nobody writes code with this. Everybody navigates it.

The layout, control by control

Click a control. Labels:

How the layout thinks

  • Navigate. Go to file on the bottom face button (Command Shift O), go to declaration on the right (Command B).
  • Edit and run. Comment line on the left (Command slash), run on the top (Control R), debug on Start (Control D).
  • Find. Find on the left bumper (Command F), find in path on the right (Command Shift F).
  • Save. Save all on Back (Command S).
  • Pointer. The left stick moves the pointer, the right stick scrolls, the right trigger clicks. D-pad up and down move the caret a line.

Go to file and go to declaration are the two buttons you will press all day.

Make it yours

  • Dictation. Both stick clicks are empty. Give one the Start Dictation output, for comments and commit messages.
  • Refactor. Put rename on a chord row.
  • Other JetBrains IDEs. The same layout works there. Per-app auto-switch turns it on for each.

With dictation on a stick click, comments no longer need the keyboard.

Check that it works

  • You: Open a project in PyCharm, then press Activate on this preset.
  • InputConfig: Sends the shortcuts in the table to the window in front.
  • Check: Press the bottom face button and Go to File opens. If nothing happens, your keymap is not the default. Change that row's output.

If Go to File opens, the rest of the keymap matches.

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 PyCharm 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 PyCharm preset in InputConfig, drawn on a DualSense Edge with each control labeled with the key or action it sends.
Figure 1. The PyCharm 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

Can I write code with a controller?

Navigating, yes. Writing, only with dictation. This layout is for the hand that is not on the keyboard.

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