Skip to main content
  1. Posts/

What's in my macOS?

·591 words·3 mins·
MacOS
Peng-Yu Chen
Author
Peng-Yu Chen
A little bit about you
Table of Contents

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
#

  1. Create a temporary Admin user
    • Name it Temp
  2. Login with Temp, then:
    • Rename your home folder from jay to Jay
    • Open System Settings > Users & Groups
      • Change Account Name: jay β†’ Jay
      • Change Home Directory: /Users/jay β†’ /Users/Jay
  3. Log out and log in as Jay
  4. Delete Temp user

⚑️ System & Workflow Enhancements
#

  • Install Magnet from the App Store (window manager)
  • Increase keyboard repeat speed:
    defaults write NSGlobalDomain KeyRepeat -int 1
    defaults write NSGlobalDomain InitialKeyRepeat -int 20
    
    (You may need to log out and log back in for these changes to take full effect.)
  • (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.

  1. Set up Quicklinks.
  2. Enable Clipboard History.
  3. 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