Install brew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply bcvanmeurs
After installation set remote to be through SSH
git remote set-url origin [email protected]:bcvanmeurs/dotfiles.git
import GPG key
gpg --import ~/.gnupg/gpg-github-0x7DFB3B93C5B98C91-2022-11-23.asc
gpg --edit-key 0x7DFB3B93C5B98C91
trust
quit
Add the fish shell to /etc/shells with:
echo $(which fish) | sudo tee -a /etc/shells
Change your default shell with:
chsh -s $(which fish)
In tmux run prefix + I
to install tpm packages.
yabai --start-service
skhd --start-service
- Using Age and YubiKeys for encryption (age-plugin-yubikey)
- SSH keys on YubiKeys with secret part in 1Password
- Headless install on linux
- Encryption dependencies
- Install dependencies
- Inspiration:
Brew runs automated when the brewfile has changed. To manually run use:
-
brew bundle install --no-upgrade
-
chezmoi apply ~/Brewfile && brew bundle install --file ~/Brewfile --no-upgrade
-
brew bundle cleanup --file ~/Brewfile
-
chezmoi apply ~/Brewfile && brew bundle cleanup --file ~/Brewfile
-
brew cu
-
brew cu -a -i
for interactive mode on auto updatable programs
- Follow this to create a key pair: https://www.chezmoi.io/user-guide/frequently-asked-questions/encryption/
- Encrypt a yaml file in some place (in my example it is in data).
- Use Go templating syntax to read and decrypt the file, for example:
{{- $work := include "data/work.yaml.age" | decrypt | fromYaml -}} export PIP_EXTRA_INDEX_URL={{ $work.pip_extra_index_url }}
{{ onepasswordRead "op://development/id_sk_nano/id_sk_nano.pub" }}
chezmoi init
recreate configchezmoi --refresh-externals
update externals
chezmoi init $GITHUB_USERNAME
clones your dotfiles from GitHub into the source directory.chezmoi init --apply $GITHUB_USERNAME
clones your dotfiles from GitHub into the source directory and runschezmoi apply
.chezmoi update
pulls the latest changes from your remote repo and runschezmoi apply
.
chezmoi data
prints the available template data.chezmoi add --template $FILE
adds$FILE
as a template.chezmoi chattr +template $FILE
makes an existing file a template.chezmoi cat $FILE
prints the target contents of$FILE
, without changing$FILE
.chezmoi execute-template
is useful for testing and debugging templates.
chezmoi state delete-bucket --bucket=scriptState
to clear the state of run once scripts.
chezmoi add $FILE
adds$FILE
from your home directory to the source directory.chezmoi edit $FILE
opens your editor with the file in the source directory that corresponds to$FILE
.chezmoi status
gives a quick summary of what files would change if you ranchezmoi apply
.chezmoi diff
shows the changes thatchezmoi apply
would make to your home directory.chezmoi apply
updates your dotfiles from the source directory.chezmoi edit --apply $FILE
is likechezmoi edit $FILE
but also runschezmoi apply $FILE
afterwards.chezmoi cd
opens a subshell in the source directory.