- Homebrew - Package manager for Mac OS
- Stow - Symlink farm manager
- nvim - superpowered vim (NeoVim)
- Tmux - Terminal multiplexer
- TPM - Tmux plugin manager
- Oh my zsh - Framework for zshell
- powerlevel10k - Theme for oh my zsh
- fzf - Command line fuzzy finder
- ripgrep - Requires for functioning grep tool in nvim
- Install Apple's Command Line Tools, which are prerequisites for Git and Homebrew.
xcode-select --install
- Clone repo into new hidden directory.
# Use SSH (if set up)...
git clone [email protected]:bitcode001/dotfiles.git ~/.dotfiles
# ...or use HTTPS and switch remotes later.
git clone https://github.com/bitcode001/dotfiles.git ~/.dotfiles
- Create symlinks in the Home directory to the real files in the repo.
# Manual: Link each files from the folder to its corresponding preferred directory
ln -s ~/.dotfiles/.zshrc ~/.zshrc
ln -s ~/.dotfiles/.gitconfig ~/.gitconfig
...
# Auto: Use stow, a symlink farm manager, to automatically symlink these files using single line command
# As this repo is compatible to stow we can auto symlink files like below:
stow -vt ~ bash
stow -vt ~ nvim
...
- Install Homebrew, followed by the software listed in the Brewfile.
# These could also be in an install script.
# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Then pass in the Brewfile location...
brew bundle --file ~/.dotfiles/Brewfile
# ...or move to the directory first.
cd ~/.dotfiles && brew bundle
Another way is to first complete the platform dependent steps (installing xcode, commandline tools and setting up homebrew with given brew profile) and then execute the setup script from the repository.
./setup.sh
If you get a permission error then you must first make the script executable using:
chmod +x setup.sh
Important
The setup is dependent on the stow
, a symlink farm manager, so we must make sure that it is installed on the system first.
Also if we cover up the dependencies of platform specific tools manually then we can use the same script in different platforms as well.