DEV Community ๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿ‘จโ€๐Ÿ’ป

DEV Community ๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿ‘จโ€๐Ÿ’ป is a community of 963,274 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

Create account Log in
Cover image for macbook.init(): a dev machine set-up guide
Tarun Batra
Tarun Batra

Posted on • Originally published at tarunbatra.com

macbook.init(): a dev machine set-up guide

I started a new job, and I am excited. I get a new MacBook delivered and after keeping the delicate wrapping paper intact during the intricate unboxing, it dawns upon me that it is not my MacBook. It is a brand-new system devoid of all the custom tools that make my (work) life easier. On top of it, I do not even remember what those tools were, to begin with. Was it oh-my-zsh, or was I using fish? What did I do last time to get the top bar show Bluetooth? I end up setting small things like these, slowly every day, until it becomes all familiar, and I forget about them.

Not this time, I said to myself. As I start working at Okta, I decided to log the steps to set up my system, mostly for future me, but also for anyone else stumbling on the same StackOverflow articles over and over again.

Update OS

Yeah, just update the OS now that you have patience. It is probably outdated and the next step may require it.

Install Xcode

Do not wait on some CLI tool to fail on you later and install Xcode now. Might get lucky running xcode-select --install.

Install Firefox/Brave

Use Safari to install Firefox and Brave and log into them. Also set up extensions like -

  • Password managers
  • Ad blockers
  • Web3 wallets

Set up terminal environment

Install iTerm2

Download the latest build here

Install homebrew

Refer https://brew.sh/#install, or

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Enter fullscreen mode Exit fullscreen mode

Install oh my zsh

Refer https://ohmyz.sh/#install, or

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Enter fullscreen mode Exit fullscreen mode

Disable history sharing across zsh sessions

echo "unsetopt share_history\nsetopt no_share_history" >> ~/.zshrc

Setup keys ๐Ÿ”‘

SSH and GPG keys need to be generated/imported and updated everywhere, especially GitHub.

SSH

ssh-keygen -t ecdsa -b 521

PGP

gpg --import <private-key-file>

Install nvm

Refer https://github.com/nvm-sh/nvm#installing-and-updating

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
Enter fullscreen mode Exit fullscreen mode

Install tmuxinator

brew insatll tmuxinator
Enter fullscreen mode Exit fullscreen mode

Customize vim

Restore dotfiles and customize vim and other things.

Next steps

At some point, I should figure out that something is wrong with the trackpad and check that box that says Tap to click in settings. This is a living document and I will keep adding things to it, as I find. Now I should get back to that new system I just configured and get some work done!

Top comments (1)

Collapse
 
theaccordance profile image
Joe Mainwaring

It's always good to document your environment setup, excellent job!

If I may suggest for next time, you can download & install GUI apps using homebrew, I eventually moved it further up my instruction set and you may find it convenient like I have

Update Your DEV Experience Level:

Settings

Go to your customization settings to nudge your home feed to show content more relevant to your developer experience level. ๐Ÿ›