Install Homebrew ``` /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` Install apps ``` brew install autojump fish fzf git git-lfs brew install --cask calibre chatgpt chrome cursor clipy discord figma font-jetbrains-mono iterm2 itsycal notunes rectangle selfcontrol spotify visual-studio-code ``` Set Fish as the default shell ``` echo "/opt/homebrew/bin/fish" | sudo tee -a /etc/shells chsh -s /opt/homebrew/bin/fish ``` Fish config `~/.config/fish/config.fish` ``` if status is-interactive # Commands to run in interactive sessions can go here end set fish_prompt_pwd_dir_length 0 function fish_prompt # Set options for the fish_git_prompt set -g __fish_git_prompt_showdirtystate yes set -g __fish_git_prompt_char_cleanstate ' ✔' set -g __fish_git_prompt_char_dirtystate '✗' set -g __fish_git_prompt_color_branch green set -g __fish_git_prompt_color_cleanstate green set -g __fish_git_prompt_color_dirtystate red set -g __fish_git_prompt_showupstream none set -g __fish_git_prompt_show_informative_status no set -g __fish_git_prompt_showstashstate no set -g __fish_git_prompt_showuntrackedfiles no # Show current directory set_color green echo -n (prompt_pwd) # Show Git branch and status if in a Git repository set_color normal fish_git_prompt # Show the prompt symbol echo -n ' > ' end set -U Z_CMD "j" # add homebrew to path set -U fish_user_paths /opt/homebrew/bin $fish_user_paths # add npm to path set -U fish_user_paths ~/.npm-global/bin $fish_user_paths # autojump [ -f /opt/homebrew/share/autojump/autojump.fish ]; and source /opt/homebrew/share/autojump/autojump.fish ``` Install fisher and plugins ``` curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher fisher install jethrokuan/fzf fisher install jhillyerd/plugin-git fisher install jethrokuan/z ``` Load Rectangle config: https://gist.github.com/josephan/957c65f5580c69d9725f1b1fa4aa52d7#file-rectangleconfig-json Enable key repeat for all keys ``` defaults write -g ApplePressAndHoldEnabled -bool false ``` Clear default apps in dock ``` defaults write com.apple.dock persistent-apps -array killall Dock ```