Dotfiles, managed with Chezmoi.
- zsh and bash configurations, aliases, and functions
- Configuration for common command-line tools
- Integrations for Python tooling such as Pyenv, Poetry, and Pipx
- Configurations and integrations for MacOS applications
- Secrets management with 1Password CLI
- ssh configuration and key management with 1Password
- OSX defaults management
- Custom vscode theme
- Configuration for my CLI scripts halp,vid-cleaner, jdfile, and brewup
- and more...
- Chezmoi
- 1Password CLI (Optional, for secrets management)
Ensure required software is installed before proceeding. There are many ways to install Chezmoi. Check the official documentation for the most up-to-date instructions. To install chezmoi and these dotfiles in a single command run the following:
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply natelandau
After Chezmoi is installed, use the following commands.
# Initialize chezmoi configuration and apply the dotfiles (first run)
chezmoi init natelandau
# Check for common problems.
chezmoi doctor
# Update dotfiles from the source directory.
chezmoi apply
# Pull the latest changes from your remote repo and runs chezmoi apply.
chezmoi update
Note that if chezmoi hangs waiting for user input, you will need to kill the process (killall chezmoi
) and run apply
manually, because chezmoi locks the database.
Secrets are managed in 1Password. 1Password is not needed if Chezmoi is set to use_secrets = false
in the ~/.config/chezmoi/chezmoi.toml
file.
Adding and removing ssh configurations can be managed with 1Password. To add a new ssh configuration, follow these steps:
- Add an SSH Key to 1Password and add the following fields:
ssh_key
: The private keyssh_key.pub
: The public keyuser
: The username for the ssh connectionhostname
: The hostname for the ssh connectionport
: The port for the ssh connection (optional)
- Copy the UUID of the new 1Password item.
- Add the server's configuration to
.../dotfiles/.chezmoidata/remote_servers.toml
To remove an ssh configuration, delete the server's configuration from .../dotfiles/.chezmoidata/remote_servers.toml
and delete the 1Password item.
Certain MacOS applications need manual configuration.
iTerm2 Configurations and profiles are synced to ~/.config/applications/iterm2
.
The configuration file should be synced automatically. If it is not, Preferences > General > Preferences
and select the Load preferences from a custom folder or URL
option. Then select the ~/.config/applications/iterm2
directory.
Profiles are not synced automatically. Import the profiles by going to Profiles > Other Actions > Import JSON Profiles
and import them from ~/.config/applications/iterm2/
.
Custom terminal configurations are stored in ~/.config/applications/terminal
. Import them with Terminal > Preferences > Profiles > Import
.
- Install Python and Poetry
- cd into the dotfiles directory with
chezmoi cd
- Run
poetry install
to install the development dependencies - Activate the Poetry virtual environment with
poetry shell
. - Install the pre-commit hooks with
pre-commit install --install-hooks
.
- Activate your Poetry environment with
poetry shell
- Add changed files to the staging area with
git add .
- Run
cz c
to commit changes - Push to remote repository
Run chezmoi update
to apply changes to the dotfiles on other machines.