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
jay
toJay
- 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
Temp
user
β‘οΈ 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