Perform a recursive clone of this repo into ~/.dotfiles:
git clone --recursive --recurse-submodules git@github.com:bezhermoso/dotfiles.git ~/.dotfilesNote
If it was cloned bare, run this afterwards: git submodule update --init --recursive
Go to https://brew.sh and follow the installation instructions.
As of 2024-02-17, this is how:
# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Dependencies installable via Homebrew are captured in ./homebrew/Brewfile:
cd ~/.dotfiles/homebrew/_core
/opt/homebrew/bin/brew bundle installThe version of zsh that comes with macOS is usually outdated. The previous step should have installed a more recent version of zsh via Homebrew. To use it, add it to /etc/shells:
sudo -e /etc/shells
# Add this line at the end of the file:
/opt/homebrew/bin/zsh...or whatever the path to the new version of zsh is (i.e. the output of which zsh)
Then, change the default shell to the new version of zsh:
chsh -s /opt/homebrew/bin/zshI use Stow to put configuration directories/files where they need to be for tools to work:
cd ~/.dotfiles
/opt/homebrew/bin/stow .It is recommended to close & re-open your terminal to pick up the just-installed Zsh configurations.
I use zinit to manage Zsh plugins. It should auto-install the plugins when you start a new Zsh session.
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpmStart a new tmux session and invoke C-s I to install the plugins.
Start Neovim. It should auto-install lazy.nvim and all the plugins
Important
Do not do this on your work machine! Only do this on computers whose command-line history you want synced.
atuin loginCreate a ~/.gitconfig file & include relevant files from ~/.dotfiles/git e.g.
[include]
path = ~/.dotfiles/git/base.gitconfig
path = ~/.dotfiles/git/1password.gitconfig
# REQUIRED. None of the config files in dotfiles contain author information. Configure this on a per-machine basis.
[user]
name = Bez Hermoso
email = ...Install gh extensions:
make gh-extensions- Done for now