What's in my macOS?
After completely reinstalling macOS, here’s how I like to set up a clean, powerful, and personalized development environment.
1. Initial macOS Configuration
๐งโ๐ป User Account Setup
- Create a temporary Admin user
- Name it
Temp
- Name it
- Login with Temp, then:
- Rename your home folder from
jaytoJay - Open System Settings > Users & Groups
- Change Account Name:
jayโJay - Change Home Directory:
/Users/jayโ/Users/Jay
- Change Account Name:
- Rename your home folder from
- Log out and log in as
Jay - Delete
Tempuser
โก๏ธ System & Workflow Enhancements
- Install Magnet from the App Store (window manager)
- Increase keyboard repeat speed:(You may need to log out and log back in for these changes to take full effect.)
defaults write NSGlobalDomain KeyRepeat -int 1 defaults write NSGlobalDomain InitialKeyRepeat -int 20 - (Optional) Set a password shorter than 4 characters
2. Essential Command-Line Tools
๐บ Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
(Follow the on-screen instructions, which may include adding Homebrew to your PATH.)
Install essential packages:
brew install --cask iterm2
brew install --cask visual-studio-code
brew install --cask cursor
brew install --cask anaconda
brew install --cask raycast
brew install gh
Zsh and Zim Framework
Configure Zsh Environment for Zim: Add the following lines to ~/.zshenv. This tells Zim where to store its configuration files, adhering to the XDG Base Directory specification.
echo 'export ZDOTDIR=$HOME/.config/zsh' >> ~/.zshenv
echo 'export ZIM_HOME=$ZDOTDIR/.zim' >> ~/.zshenv
(If ~/.zshenv doesn’t exist, these commands will create it.)
Install Zim:
curl -fsSL https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh
3. Dotfiles & Terminal Customization
Personalize your shell environment with custom configurations.
โ๏ธ Install Dotfiles
Clone and set up your preferred dotfiles. This example uses walkccc’s dotfiles.
cd ~
curl https://codeload.github.com/walkccc/dotfiles/tar.gz/main | tar -xz --strip=1 dotfiles-main
rm README.md LICENSE .gitignore
โจ Apply Changes & Theme
Restart your terminal (iTerm2) to apply the new Zsh and Zim configurations. This will also likely trigger the installation of themes like Powerlevel10k if it’s part of your dotfiles or Zim setup. Follow any on-screen prompts from Powerlevel10k to configure your prompt.
4. Development Environment Setup
๐ Python (via Anaconda)
Initialize Conda for Zsh:
/opt/homebrew/anaconda3/bin/conda init zsh
(The path might vary slightly depending on your Homebrew prefix if not default. /opt/homebrew/anaconda3/bin/conda init zsh for Apple Silicon usually)
Restart Terminal: After restarting, Conda’s configuration should be active in $ZDOTDIR/.zshrc.
๐ฉ Node (via Node Version Switcher - NVS)
Install NVS This method installs NVS following the XDG Base Directory specification for NVS_HOME.
export NVS_HOME="$HOME/.local/share/nvs"
git clone https://github.com/jasongin/nvs "$NVS_HOME"
. "$NVS_HOME/nvs.sh" install
Add NVS to your PATH: To make nvs available in every new shell session, add the following to your Zsh configuration file.
# The following line should already be present in your Zsh configuration file:
# $ bat $ZDOTDIR/init/nvs.sh
# export NVS_HOME="$HOME/.local/share/nvs"
# [ -s "$NVS_HOME/nvs.sh" ] && . "$NVS_HOME/nvs.sh"
Install Node.js versions as needed using nvs add <version> and nvs use <version>.
5. Productivity & Developer Tools
๐ Text Editor: LunarVim
Install the pre-requisites:
brew install neovim
Install LunarVim by running the command in LunarVim’s website.
๐ Launcher & Productivity: Raycast
Configure Raycast to enhance your productivity.
- Set up Quicklinks.
- Enable Clipboard History.
- Link any custom Scripts (e.g., those downloaded with your dotfiles) to Raycast’s script command directory. A common location for user scripts is
~/.config/raycast/commands. You might need to create this directory and symlink or copy your scripts there.
6. System Customizations
๐ Finder Customization
# Show full path in Finder
defaults write com.apple.finder _FXShowPosixPathInTitle -bool true; killall Finder
# Hide full path in Finder
defaults write com.apple.finder _FXShowPosixPathInTitle -bool false; killall Finder