Skip to content

bezhermoso/dotfiles

Repository files navigation

my dotfiles


Step 1: Clone

Perform a recursive clone of this repo into ~/.dotfiles:

git clone --recursive --recurse-submodules [email protected]:bezhermoso/dotfiles.git ~/.dotfiles

Note

If it was cloned bare, run this afterwards: git submodule update --init --recursive

Step 2: Install Homebrew dependencies

Install Homebrew

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)"

Install core dependencies

Dependencies installable via Homebrew are captured in ./homebrew/Brewfile:

cd ~/.dotfiles/homebrew/_core
/opt/homebrew/bin/brew bundle install

Step 3: Install a more recent version of Zsh

The 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/zsh

Step 4: Configure tools

I 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.

Install Zsh plugins

I use zinit to manage Zsh plugins. It should auto-install the plugins when you start a new Zsh session.

Install tmux plugins

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

Start a new tmux session and invoke C-s I to install the plugins.

Setup Neovim

Start Neovim. It should auto-install lazy.nvim and all the plugins

Setup atuin

Important

Do not do this on your work machine! Only do this on computers whose command-line history you want synced.

atuin login

Configure git

Create 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

TODOs

  • Done for now

About

My dot configurations

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published