How-To

Control your Mac using a PlayStation, XBox, or Nintendo gaming controller


Gaming on Mac may not be quite as popular as gaming on a PC, but that doesn’t mean there aren’t plenty of great, macOS-compatible games out there for Mac owners to enjoy!

While it may be possible to play certain games using your Mac’s built-in keyboard and trackpad, there’s always going to be times where using the mouse and WASD keys feels clunky and restrictive – especially compared to a traditional gaming controller. In fact, if you’re obsessed with fast-paced shooters or racing games that demand lightning-fast reflexes, then you might find it impossible to play your favourite games using point-and-click and keyboard shortcuts alone!

If you have a gaming controller to hand, then plugging it into your Mac may seem like the obvious solution, but unfortunately, things aren’t always that easy! Few mainstream gaming controllers support macOS out-of-the-box, so you might have to put in a little extra work, before your controller plays nicely with your Mac.

In this article, I’ll show you how to setup any Bluetooth or USB-enabled gaming controller to work perfectly with macOS, using the free Enjoyable application.


Pair your controller via Bluetooth or USB

Depending on your brand of gaming controller, you may be able to connect it to your Mac via USB, or wirelessly over Bluetooth. If your controller has a USB cable and port, then simply plug it into your Mac and it should recognize the controller as an external device.

If your controller has Bluetooth support, then you’ll need to pair it with your Mac:

  • Make sure your controller is turned off. If you’re using a PlayStation controller that’s currently paired with your PlayStation 4, then you’ll need to hold down the “PlayStation” button and then select either “Log Out of PS4” or “Enter Reset Mode” when it appears on your TV. Your PlayStation 4 controller should then turn off automatically.
  • Select the “Apple” logo from your Mac’s menu bar.
  • Navigate to “System Preferences… > Bluetooth.”
  • If your Mac’s Bluetooth isn’t already active, then select the “Turn Bluetooth On” button.
  • Your controller should have a “Connect” or “Share” button that helps you connect to other Bluetooth-enabled devices; find this button and hold it down. If you’re unsure how to pair your controller to another Bluetooth-enabled device, then check your gaming console’s help manual, or online documentation for more information.
  • After a few moments, the controller should appear in your Mac’s list of detected devices. Click the “Pair” button, and the two should connect successfully.

Map your controller’s buttons

Just because your controller is connected to your Mac, doesn’t automatically mean that controller is ready to use! You need to configure your controller to work with macOS, by mapping the different button presses and analogue stick movements, to specific macOS key press events and mouse movements.

The major drawback, is that each game will require its own mapping profile, so if you’re the kind of person who always has several games on the go, then it may take a while to create profiles for all of your games.

There’s a few different apps that can perform this mapping, but I’ll be using the free Enjoyable app.

  • Head over to the Enjoyable website and download the latest version – make sure you click on the zip link and not the “git clone” link!
  • Unzip the Enjoyable.zip file, and launch the app. If your Mac complains that this app is from an unidentified developer, then navigate to your Mac’s “System Preferences… > Security & Privacy” and select “Open anyway.”
  • As already mentioned, you’ll need to create a separate mapping profile for each game. To create a new profile, press the “Command+N” keys on your keyboard, and then give the new profile a name. Alternatively, select the button in Enjoyable’s upper-left corner, and then click the little “+” button to create a new profile.

Now you have a blank profile, you’ll need to fill it with mappings!

Assigning a button

You’ll need to map each of the controller’s button press events, to a different action on macOS. Start by pressing the button that you want to assign an action to; Enjoyable should automatically select this button it its left-hand menu.

You can now map this button to an action, using the following options:

  • Press a key. Trigger a key press event, for example if you’d typically press your Mac’s “J” key to jump, then you might assign “Button 1” to the “J” key press event, so that pressing “Button 1” makes your onscreen character jump.
  • Move the mouse. Select the direction you’d like the mouse to move, every time you press this button. You can adjust the speed of the mouse movement, using the accompanying slider.
  • Press a mouse button. Choose from Left, Center, Right 4, or 5.
  • Scroll the mouse. Pressing a button can have the same effect as scrolling the mouse backwards, forwards, up or down. You can enable smooth scrolling, by selecting the “Smooth” checkbox and then using the accompanying slider to adjust the scrolling speed. Alternatively, you can opt for discrete scrolling, where pressing the button will trigger scrolling by exactly one line, regardless of how long you hold the button. To enable discrete scrolling, simply leave the “Smooth” checkbox deselected.

Repeat this process for each of your controller’s buttons.

Assigning analog axes

Analog sticks can be a little more confusing, as their movements are described in terms of Low and High axes. Here’s how the different axes translate:

  • Axis 1 Low: Left analog stick left.
  • Axis 1 High: Left analog stick right.
  • Axis 2 Low: Left analog stick up.
  • Axis 2 High: Left analog stick down.
  • Axis 3 Low: Right analog stick left.
  • Axis 3 High: Right analog stick right.
  • Axis 4 Low: Right analog stick up.
  • Axis 4 High: Right analog stick down.

Select the axis that you want to assign a movement to, and then choose from the available options. These are the same options you encounter when mapping buttons, so all of the above information is still relevant, with the exception of:

  • Move the mouse. When you’re mapping analog input, the speed set by the accompanying slider is always the maximum speed.
  • Scroll the mouse. If you opt for smooth scrolling, then the accompanying slider controls the maximum speed.

Once you’ve assigned actions to all of your buttons and axes, you’re ready to start gaming!

About the author

Jessica Thornsby

Jessica Thornsby is a technical writer based in Sheffield. She writes about Android, Java, Kotlin and all things Apple. She is the co-author of O'Reilly's "iWork: The Missing Manual," and the author of "Android UI Design," from Packt Publishing.

Add Comment

Click here to post a comment

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.