DEV Community

Bijan Boustani
Bijan Boustani

Posted on

How I Set Up a New MacBook Pro Dev Environment

🎆 New year!
💼 New job!
💻 New laptop!

I'm so excited for this brand new decade. It feels like an opportunity for a fresh start.

I had been working at the same company for years. So, I'm eager to start my new job and work with a distributed team of talented people at Enbala Power Networks. It's a perfect mix of technology I love (Elixir and Elm), fascinating work, and people I admire.

💻 Setting up a New Laptop

The timing worked out well. Apple recently released the new 16-inch MacBook Pro models, and I had been dying for a new setup.

I figured I would take this opportunity to write down a checklist of applications I use and preferences I have for setting up a new laptop.

Some of my settings are eccentric (like having a plain black background instead of a fancy photograph). But my hope for this post is that you'll at least take away one or two helpful ideas that might get you unstuck from a rut.

🙉 Creating a Distraction-free Environment

Almost all my preferences are all about limiting distractions and enabling focus. I've always been prone to distraction. So, creating an environment where I can stay focused on a single task for an extended period is critical.

Otherwise, I make tiny amounts of progress in many directions without finishing anything. The result is that all the time and energy and effort I put in is wasted.

🧹 Cleaning up the Dock

Out of the box, macOS comes with so many applications in the Dock. But it's more efficient to use the native Spotlight search (or Alfred) to open applications with the keyboard. For example, you can type Command + Space + Sys and then press Enter to open the System Preferences.

So, I opt for a minimalist Dock area with only the following:

  • Firefox Developer Edition
  • Visual Studio Code
  • Downloads Folder

Minimal Dock

I also like to hide the Dock when I'm not using it, and I disable the option to remember recent applications.

Dock Settings

⚡️ Speeding up the Trackpad, Mouse, and Keyboard

One of the first things I like to do for a new laptop is comb through the System Preferences. There are some default settings that slow you down. For example, the default Trackpad speed is slow, which can make it tough to navigate the cursor around, especially on large displays.

Command + Space ➡️ Trackpad ➡️ Tracking Speed ➡️ Fast

Trackpad Settings

This can take some getting used to if you're accustomed to the slower setting. But it's worth it to adjust, because it's way faster to navigate with the faster setting.

🖱 Next, you can do the same for the mouse:

Command + Space ➡️ Mouse ➡️ Tracking Speed ➡️ Fast

⌨️ Similarly, you can speed up your Keyboard settings with the following:

Command + Space ➡️ Keyboard ➡️ Key Repeat ➡️ Fast
Command + Space ➡️ Keyboard ➡️ Delay Until Repeat ➡️ Fast

This might seem like a silly place to start, but the idea is to find small changes we can make that add up to a lot over time.

🖤 Background and Menu Bar

This setting might be a little odd, but I use a plain black color for my background. The macOS background pictures are beautiful, but this is the least distracting option for me:

Command + Space ➡️ Desktop & Screen Saver ➡️ Apple ➡️ Colors ➡️ Black

Desktop Background

There is also an application called Bartender I love for cleaning up the menu bar area. After installing several applications, the menu bar area tends to look cluttered. Bartender allows you to show or hide menu bar applications, and I tend to prefer hiding everything except the date and time.

Uncluttered Menu Bar

🖥 Adding Virtual Desktops

I also like to set up virtual desktop spaces to create separation between applications. This way, I can have my IDE running in a separate space from my browser.

To set this up, you can do a three finger swipe upward on the Trackpad to enter Mission Control mode. From here, you can click the ➕ icon at the top right to create new virtual desktop spaces.

Virtual Desktop Spaces with Mission Control

This allows you to keep dedicated spaces for things like your IDE, browser, and task manager. And you have a couple options for switching between these spaces:

  • use Command + Tab to switch between open applications.
  • use a three finger swipe left or right to switch to the next virtual space. You can also use Control + ⬅️ or Control + ➡️.
  • use a three finger swipe upward to open Mission Control. You can also use Control + ⬆️.
  • use Control + N to switch to a particular space based on the number (N). This option requires enabling keyboard shortcuts with the following:
Command + Space ➡️ Keyboard ➡️ Shortcuts ➡️ Enable Switch to Desktop N

Mission Control Keyboard Shortcuts

If you plan to dedicate spaces for a particular use, you can also disable the option to "Automatically rearrange Spaces based on most recent use."

Mission Control Settings

🔕 Limiting Notifications

macOS comes with a Do Not Disturb mode that can help to reduce the number of interruptions. One way to turn this on is to hold down the Option key on your keyboard and click the Notification Center icon in the menu bar.

You can also set a time range for when to enable Do Not Disturb mode:

Command + Space ➡️ Notifications ➡️ Turn on Do Not Disturb

📱 It's not a bad idea to check your phone too for apps that are bombarding you with notifications. If you're using an iOS device, you can check the following:

Settings ➡️ Screen Time ➡️ See All Activity ➡️ Notifications

Disabling unneeded notifications from even a couple of apps can have a big impact and cut down on distractions throughout your day. 😌

Recommended Applications

Applications

General

Utilities

  • 🔒 1Password for password management.
  • ⌨️ Alfred for keyboard-based productivity and automation.
  • 🍻 Bartender for de-cluttering the macOS menu bar.
  • 📦 Dropbox for cloud file storage across devices.
  • 🦊 Gifox for a well-designed menu bar application to quickly record animated gifs.
  • 🔍 Moom for moving and arranging your windows with Option + Tab keyboard shortcuts.
  • The Clock for replacing the default date and time in the menu bar. This is particularly helpful if you're on a distributed team where your teammates are in different time zones (demo).

Web Applications

💻 Development Environment

  • 🐙 GitHub for code repositories.
    • Set up ssh access.
  • 🆚 VSCode for my coding environment.
    • Set up ability to launch from command line with code.
    • Disable "Scroll Beyond Last Line" option.
    • Install Firacode for a font with fancy ligatures.
    • Set up LiveShare for pair programming.
  • 🎛 asdf for installing and managing multiple versions of programming languages.
    • Erlang
    • Elixir
    • Ruby
    • Node
    • Elm
  • 👨‍💻 iTerm
  • 🐘 PostgreSQL
  • 🏃‍♂️ Dash for quick access to documentation.

🕹 Gamedev

  • PICO-8 for minimalist, retro game development.
  • Unity for a fancy, batteries-included game development environment.
  • Asesprite for pixel art.

🤖 Automation

Even if you only have to set up a new laptop every few years, it's worth investing some time in automation. If you're interested in automating your laptop setup process, consider the following:

  • Create a dotfiles repo on GitHub to save your favorite configuration files.
  • Use Brewfiles for installing applications and common system dependencies.

😌 Next?

You can probably tell I love to nerd out about all these little applications and preferences. If you have any tips and tricks or recommendations, reach out to me on Twitter (@bijanbwb) and I'd love to hear from you!

I love when people create a "/uses" page (like this one from Wes Bos) to list the applications and the physical gear they use to be productive. I'm considering writing a future post about how I organize my home office, so let me know if there is something you'd like to see!

Oldest comments (3)

Collapse
 
joeltayl profile image
Joel Taylor

I really like that combination of Do Not Disturb and virtual desktops. Seems like a great way to avoid distractions.

Collapse
 
aleksandrhovhannisyan profile image
Aleksandr Hovhannisyan

For the longest time, I've wanted to try PICO-8. I just don't want to pay for it 😕 Unity's fantastic, though, and free!

Collapse
 
devpaps profile image
Lars Jönsson

Awesome post! 🤙🏻🤓 Getting my new MacBook pro '16 soon. Ready for some web dev stuff. Also going to try out PICO-8.