Community profile · Final Cut Pro

Final Cut Pro.
Play, mark, blade.

Face buttons handle playback and range marks, the triggers cut and ripple, and the stick clicks step one frame at a time.

Final Cut Pro · default mappings
Controller inputActionMac shortcut
A / crossPlay ForwardDouble-tap: Play Faster LL
B / circleStop PlaybackK
X / squareMark InHold: Clear Range ⌥ XI
Y / triangleMark OutO
Left bumper (LB / L1)Previous Clip↑
Right bumper (RB / R1)Next Clip↓
Left trigger (LT / L2)Add Blade⌘ B
Right trigger (RT / R2)Ripple Delete⇧ Delete
D-pad upZoom In⌘ =
D-pad downZoom Out⌘ -
D-pad leftNudge Left,
D-pad rightNudge Right.
Menu / OptionsAdd MarkerHold: Add & Edit Marker ⌥ MM
View / CreateFit Timeline⇧ Z
ShareUndoHold: Redo ⇧⌘ Z⌘ Z
Left stick clickStep Back 1 Frame←
Right stick clickStep Forward 1 Frame→
9 button chords included
  • LB + RB Clear Range (Opt+X)
  • LT + X Trim Start to Playhead (Opt+[)
  • LT + Y Trim End to Playhead (Opt+])
  • LB + A Reverse Play (J)
  • RT + B Delete (Backspace)
  • ☰ + ← Nudge Left 10 Frames (Shift+,)
  • ☰ + → Nudge Right 10 Frames (Shift+.)
  • ⧉ + X Set Range Start (I) — in Viewer

Labels vary by controller; match the button shown in ControllerKeys. Download Final Cut Pro profile · Inspect it on GitHub.

Community profile · DaVinci Resolve

DaVinci Resolve.
Same muscle memory.

The Resolve layout mirrors the Final Cut one, so switching editors doesn’t mean relearning the controller.

DaVinci Resolve · default mappings
Controller inputActionMac shortcut
A / crossPlay ForwardDouble-tap: Reverse Play JL
B / circleStopK
X / squareMark InHold: Clear In/Out ⌥ XI
Y / triangleMark OutO
Left bumper (LB / L1)Previous Edit Point↑
Right bumper (RB / R1)Next Edit Point↓
Left trigger (LT / L2)Blade at Playhead⌘ B
Right trigger (RT / R2)Ripple Delete⇧ Delete
D-pad upZoom In⌘ =
D-pad downZoom Out⌘ -
D-pad leftNudge Clip Left,
D-pad rightNudge Clip Right.
Menu / OptionsAdd MarkerM
View / CreateFit Timeline⇧ Z
ShareUndoHold: Redo ⇧⌘ Z⌘ Z
Left stick clickStep Back 1 Frame←
Right stick clickStep Forward 1 Frame→
7 button chords included
  • LB + RB Clear In/Out (Opt+X)
  • LT + X Trim Start to Playhead (Shift+I)
  • LT + Y Trim End to Playhead (Shift+O)
  • RT + B Delete Selected Clip (Cmd+Delete)
  • LB + A Reverse Play (J)
  • ☰ + ← Nudge Left 5 Frames (Shift+,)
  • ☰ + → Nudge Right 5 Frames (Shift+.)

Labels vary by controller; match the button shown in ControllerKeys. Download DaVinci Resolve profile · Inspect it on GitHub.

Edit and Cut pages. These mappings follow Resolve’s default DaVinci keyboard preset. If you use a Premiere or Final Cut keyboard preset inside Resolve, remap the affected buttons.

Community profile · Premiere Pro

Premiere Pro.
Cut and extract.

Space plays and pauses, the left trigger adds an edit, the right trigger extracts, and chords trim to the playhead.

Premiere Pro · default mappings
Controller inputActionMac shortcut
A / crossPlay / PauseDouble-tap: Reverse Play JSpace
B / circleStopK
X / squareMark InHold: Go to In Point ⇧ II
Y / triangleMark OutHold: Go to Out Point ⇧ OO
Left bumper (LB / L1)Previous Edit↑
Right bumper (RB / R1)Next Edit↓
Left trigger (LT / L2)Add Edit / Cut⌘ K
Right trigger (RT / R2)Extract'
D-pad upZoom In⌘ =
D-pad downZoom Out⌘ -
D-pad leftNudge Left,
D-pad rightNudge Right.
Menu / OptionsAdd MarkerM
View / CreateFit Timeline\
ShareUndoHold: Redo ⇧⌘ Z⌘ Z
Left stick clickStep Back 1 Frame←
Right stick clickStep Forward 1 Frame→
4 button chords included
  • LT + X Trim Start to Playhead (Q)
  • LT + Y Trim End to Playhead (W)
  • ☰ + ← Nudge Left 5 Frames (Shift+,)
  • ☰ + → Nudge Right 5 Frames (Shift+.)

Labels vary by controller; match the button shown in ControllerKeys. Download Premiere Pro profile · Inspect it on GitHub.

Import, then make it yours

Import it.
Make it yours.

Open a scratch project with a couple of clips on the timeline. Test each action before using it on client work.

  1. Connect and complete onboarding.

    Pair your controller with your Mac, open ControllerKeys and grant the requested Accessibility permission.

  2. Import a profile.

    Download: Final Cut Pro final-cut-pro.json · DaVinci Resolve davinci-resolve.json · Premiere Pro premiere-pro.json.

    In ControllerKeys, click + beside Profiles, choose Import Profile… and select the file. The same layouts are also available through Import Community Profile….

  3. Check the linked app.

    Right-click the imported profile, choose Linked Apps… and confirm your installed app is selected. Bring that app forward and the profile switches automatically.

  4. Test, then remap.

    Play with A/cross, mark in and out with X and Y, then try a blade and an undo. To change a binding, open it, choose Key and press the shortcut you want.

Built by one person

Using a different app?
Tell me.

ControllerKeys is made by Kevin Tang, an indie developer. Many of these profiles started as a single email from someone describing their setup. If your app or workflow isn’t here yet, email me what you’d like to control or use Send Feedback in the app’s settings.

A few useful answers

Before you connect.

Do I need a special editing controller?

No. ControllerKeys sends the editor’s own keyboard shortcuts, so a standard Xbox, PlayStation, Nintendo or 8BitDo controller works. If the shortcut works from your keyboard, it can work from a button.

Will it work with my custom keyboard layout?

The profiles use each editor’s default shortcuts. If you’ve changed them, open the mapping in ControllerKeys and press your own shortcut instead.

Can one controller handle several editors?

Yes. Each profile is linked to its app, and ControllerKeys switches profiles when you bring a different app to the front.

Can a button run a multi-step edit?

Yes. Macros chain key presses, delays and text into one button, and chords map two buttons pressed together. Hold and double-tap actions add more per button.

Try your next edit
with a controller.

Use the 14-day trial to try your controller with your own projects. Keep ControllerKeys for a one-time $19.99 purchase.

Download free trialBuy ControllerKeys · $19.99 ↗