Mac setup for web & mobile development in 2022
Tags: mac, web, mobile, dev
Published: 2022-09-16 15:26:43

I make a big switch from my beloved iMac (Retina 5K, 27'', Late 2015) to the latest MacBook Pro (14'', 2021) with M1 Max chip. Not only because the iMac was getting old and fragile, I want to be more flexibel in my remote work. The iMac still runs a macOS Mojave (10.14.6) due to the fear to updating it because of all the small things that could possibly go wrong. Everything is precisely aligned, works fine and I don't wanted to spend hours or days with fixing stuff in a tons of projects that maybe fail afterwards. For private use I own a Lenovo ThinkPad X1 Extreme (15'', 3. Gen) with Windows 10, which I have used from time to time to make remote work, but always with limitations. The Windows Subsystem or Linux (WSL) is great and one can do nearly everything, but the biggest limitation for me as a mobile developer has always been the impossibility for Apple stuff.

My last setup was nearly 100% covered by Thoughtbot's laptop script: https://github.com/thoughtbot/laptop. Now I am highly inspired by @rwieruch and his personal setup documented in a post from February: https://www.robinwieruch.de/mac-setup-web-development. I will combine "copying" system preferences from my iMac, updating my old script based on Thoughtbot's and picking additional highlights from Robin.

**_The following part is not fully finished and will grow by time..._**

## Adopt and adjust system preferences

- Dock
- Menu bar
- turn off siri, notifications, ...
- setup calendar
- setup mail
  - merge mail rules per SyncedRules.plist
- disable most in spotlight
- finder with additional commands
- auto hide dock and decrease delay
  - defaults write com.apple.dock autohide-delay -float 0.03; killall Dock
- install xcode
  - start xcode
  - agree license
  - setup command line tools in preferences > locations
- install transporter
- remove garageband
- create Development folder in ~
- rosetta 2
- ssh key (manual copy of .ssh/config and .ssh/keys)

## Homebrew

- install in terminal
- used for everything else upcoming
- install iterm2
- install vscode
- update macbook script
  - asdf instead of nvm yvm rbenv
- git config

...

## iterm2

- ohmyzsh
- no plugins
- settings
  - dim inactive panes and background windows
  - working directory -> reuse previous for new tabs and panes
  - cursor -> vertical
  - scrollback lines 1.000 -> 100.000
  - focus follows mouse
  - railscasts color scheme
  - key bindings for jumping across words
  - ![iterm2 settings](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/inj5zy6l7mn028m2q2zu.png) 
  - ![iterm2 key bindings](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fdfddiisikn4bcqrva9y.png)

...

## VSCode

- extensions
  - less then before, maybe adding them later if needed
- settings
  - railscasts color scheme https://dev.to/donni106/railscasts-color-scheme-for-vscode-integrated-terminal-1nhm
  - secret gist (show example screenshot or maybe settings paste)
  - sublime keybindings
    - and also shift+cmd+d for "Duplicate Selection", instead of "View: Show Run and Debug"

...

- other applications
  - photoscape
  - bear
  - choosy
  - fork
    - fork cli
  - shottr
  - maccy
  - cron
- auto start applications
- sync browser bookmarks

**_To be continued..._**