Article Image
Article Image
read

In this post, I’ll share the key tools and configurations I use when setting up a new macOS environment for software engineering.

Applications

I’m a fan of Firefox and a bunch of other tools, but I’ll keep this to developer-related tools.

iTerm2

I believe it is better than the built-in Terminal. Probably.

Configure the following shortcuts from this tutorial.

  • ⌥ ⌫ for deleting a word
  • ⌥ ← for going back a word
  • ⌥ → for going forward a word

Set the Login command in profile to open tmux or reuse an existing session. When I accidentally close the window, this keeps me from terminating a long-running program.

tmux attach -t base || tmux new -s base

1Password

Managing passwords and keys is 100x easier with 1Password and they’re more secure than a lot of the other options out there. Their SSH key management and git signing support is a must-use.

Folders

~/Developer

I used to call the folder ~/dev or ~/Development, but if you call it “Developer”, then Apple will reward you with a special folder icon.

Pretty cute Developer folder

~/Screenshots

If you also take a lot of screenshots, you’ll want to see this post about setting up a screenshot folder.

Developer Tools

macOS changed the default from bash to zsh in 2019 so if your previous computer was an Intel-based MacBook you’re in for a very-similar experience.

Oh My Zsh

It is a framework for managing shell plugins.

# .zshrc, line ~73
plugins=(
  asdf
  brew
  git
  z
)

asdf

The one-stop-shop for managing Java/Python/Ruby/whatever versions. If you use Ruby, I recommend enabling the legacy versions so you can use the other version manager .ruby-version files.

# $HOME/.asdfrc
legacy_version_file = yes

Homebrew

It is the most popular way to install command line tools.

Starship

It makes my command prompt look nice.

sal.dev on  main [!?] via 💎 v2.7.8
❯

z

Command line tool for jumping back in to a project you were working on. For example, if I type z ad, it drops me back into the Advent of Coding project.

~
❯ z ad

advent-of-code-2023
❯

Other

I also like to keep this command handy for clearing out git branches that have been merged to main.

git branch --merged main | grep -v "\* main" | xargs -n 1 git branch -d

Addendum

This post was more for me to remember what I use than for others, but I hope some folks found it useful anyway!

Blog Logo

Salvatore Testa


Published

Image

Salvatore's Blog

It works on my computer.

Back to Overview