Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1089 commits
Select commit Hold shift + click to select a range
1d5cc18
chezmoi: change Hammerspoon/Karabiner synlinks to templated symlinks.
jimlawton Nov 5, 2025
04012cb
chezmoi: update iTerm2 profiles.
jimlawton Nov 5, 2025
eb9fa05
chezmoi: add iTerm2 fish shell integration.
jimlawton Nov 5, 2025
8e24d07
chezmoi: rename iTerm2 file.
jimlawton Nov 5, 2025
6537a89
chezmoi: fish: use in-place iTerm2 integration.
jimlawton Nov 5, 2025
a2f4d22
chezmoi: fix crontab paths.
jimlawton Nov 5, 2025
8b81f00
starship: fix git_status ahead/behind.
jimlawton Nov 5, 2025
dc2517e
Update hyper-hacks module.
jimlawton Nov 5, 2025
50f6a8e
starship: fix git status issues.
jimlawton Nov 5, 2025
90d9362
chezmoi: remove obsolete file.
jimlawton Nov 5, 2025
2ee90fd
update readme.
jimlawton Nov 5, 2025
8382075
Update readme.
jimlawton Nov 5, 2025
6c23008
Initialise zoxide.
jimlawton Nov 6, 2025
5ff5d3f
Update hyper-hacks module.
jimlawton Nov 6, 2025
c62ef79
Update hyper-hacks module.
jimlawton Nov 6, 2025
88bc169
Update hyper-hacks module.
jimlawton Nov 6, 2025
f34f2db
Update hyper-hacks module.
jimlawton Nov 6, 2025
7996072
Update hyper-hacks module.
jimlawton Nov 6, 2025
771602e
Update hyper-hacks module.
jimlawton Nov 6, 2025
be716e1
Remove time from right prompt.
jimlawton Nov 7, 2025
75f943c
Fix starship transient prompt.
jimlawton Nov 7, 2025
0229e78
Update hyper-hacks module.
jimlawton Nov 7, 2025
014832c
Update hyper-hacks module.
jimlawton Nov 7, 2025
0221f06
Remove mise setup.
jimlawton Nov 10, 2025
a99bad1
Update readme.
jimlawton Nov 10, 2025
0cfdddd
Remove mise and OneNote.
jimlawton Nov 10, 2025
1708f64
Disable Microsoft apps from MAS install.
jimlawton Nov 10, 2025
5430bb3
fish: set up pyenv.
jimlawton Nov 10, 2025
3cdb677
Add script to ensure pyenv and Python are installed.
jimlawton Nov 10, 2025
557ddd5
chezmoi: change to template.
jimlawton Nov 10, 2025
ed6824c
pyenv: skip if already installed.
jimlawton Nov 10, 2025
adeb835
Add template script to set up Rust env.
jimlawton Nov 10, 2025
7fccd24
Add cargo-semver version constraint.
jimlawton Nov 10, 2025
ffff033
Rename script template and install pipx tools also.
jimlawton Nov 10, 2025
61e2eea
Rust: fix typo in crate name.
jimlawton Nov 10, 2025
3634a86
cargo: remove sccache.
jimlawton Nov 10, 2025
4b31a19
Disable unused daily note section.
jimlawton Nov 13, 2025
76c3909
Fix lint issue.
jimlawton Nov 14, 2025
6e7222a
atuin: disable automatic update check, let brew do it.
jimlawton Nov 14, 2025
0bba434
Add rcmd.
jimlawton Nov 17, 2025
c814f09
Restore Brewfile.
jimlawton Nov 17, 2025
7448327
Update Brewfile.
jimlawton Nov 17, 2025
735bbde
Install packages from Brewfile.
jimlawton Nov 17, 2025
a4eb138
When installing from Brewfile, avoid upgrading existing packages, whi…
jimlawton Nov 17, 2025
c8db731
Add a simple bootstrap script.
jimlawton Nov 17, 2025
a2bc487
Add .local/bin to path (for pipx stuff).
jimlawton Nov 24, 2025
fb8c7cc
Update Brewfile.
jimlawton Dec 8, 2025
687c66c
Update cargo installs.
jimlawton Dec 8, 2025
9125954
Update Brewfile.
jimlawton Dec 12, 2025
01887c9
Add more abbrevs.
jimlawton Dec 12, 2025
cd6f582
Disable make alias.
jimlawton Dec 12, 2025
cd33118
Remove the fish abbrev for make, it does not honour tab completions.
jimlawton Dec 12, 2025
b628e2e
Clean paths, add gmake path so it replaces system make.
jimlawton Dec 12, 2025
acf1258
Update Brewfile.
jimlawton Dec 16, 2025
4add690
Update Brewfile.
jimlawton Jan 5, 2026
e249e18
Update Brewfile.
jimlawton Jan 5, 2026
13e1b86
Update shell vars.
jimlawton Jan 5, 2026
e315387
Update Brewfile.
jimlawton Jan 6, 2026
04a5b4d
Update Brewfile.
jimlawton Jan 6, 2026
49d6c40
Update Brewfile.
jimlawton Jan 6, 2026
8ea83d1
Don't copy Brewfile to home dir.
jimlawton Jan 6, 2026
68f3b4d
Ensure script runs whenever Brewfile changes.
jimlawton Jan 6, 2026
efa9fc5
Use Brewfile from chezmoi directory.
jimlawton Jan 6, 2026
2a9e161
Update Brewfile.
jimlawton Jan 13, 2026
3b188e8
Update Brewfile.
jimlawton Jan 23, 2026
fe17740
Update Brewfile.
jimlawton Jan 23, 2026
cc6ab5d
Update Brewfile.
jimlawton Jan 23, 2026
01587b5
Update Brewfile.
jimlawton Jan 29, 2026
b758d78
Disable invalid tmux options.
jimlawton Jan 29, 2026
afd84cc
Update tmux config.
jimlawton Jan 30, 2026
04ec194
tmux: display pane info.
jimlawton Jan 30, 2026
3776b58
Stop fish from modifying tmux pane titles.
jimlawton Jan 30, 2026
1e5e6ff
Prune daily note heading.
jimlawton Feb 6, 2026
ecdec86
Update shell vars.
jimlawton Feb 6, 2026
97bd8ba
Add ghostty config.
jimlawton Feb 10, 2026
2736f69
Add ghostty shell integration for SSH.
jimlawton Feb 10, 2026
454757d
Update Brewfile.
jimlawton Feb 11, 2026
0595d6c
Add opencode config.
jimlawton Mar 10, 2026
2c78068
Add zed config.
jimlawton Mar 10, 2026
66fc808
Set path for Obsidian CLI.
jimlawton Mar 10, 2026
9d9e362
Add opencode config.
jimlawton Feb 25, 2026
000aa97
Add Claude config files.
jimlawton Mar 11, 2026
e6499df
Update Claude configs.
jimlawton Mar 12, 2026
b94d63a
Update Claude configs.
jimlawton Mar 13, 2026
3339f1b
Update Claude settings.
jimlawton Mar 18, 2026
0623977
Rename zed settings file.
jimlawton Mar 18, 2026
8d034c1
Update Claude settings.
jimlawton Mar 18, 2026
64644f5
Update Claude settings.
jimlawton Mar 18, 2026
5342770
Update atuin settings.
jimlawton Mar 18, 2026
a09b7ed
Update Claude settings.
jimlawton Mar 18, 2026
32fe4ee
Update Brewfile.
jimlawton Mar 19, 2026
6964284
Update Claude settings.
jimlawton Mar 19, 2026
d36e804
Remove ~/.claude.json, it's ephemeral.
jimlawton Mar 19, 2026
a5da5f6
Add Claude status line script.
jimlawton Mar 19, 2026
28dc6ea
Re-add Claude settings as plain file.
jimlawton Mar 19, 2026
e9501a7
Ghostty: enable copy on select.
jimlawton Mar 19, 2026
7b6dc63
Update Claude app settings.
jimlawton Mar 19, 2026
8bd6b1e
Ghostty: enable ctrl/option left/right nav.
jimlawton Mar 19, 2026
508f260
Add key bindings for Ghostty.
jimlawton Mar 20, 2026
4ac03cb
Update Claude app settings.
jimlawton Mar 20, 2026
c6d0448
Update Claude app settings.
jimlawton Mar 20, 2026
475a93a
Update Claude app settings.
jimlawton Mar 23, 2026
39242a5
Enable Claude auto-prompt.
jimlawton Mar 23, 2026
214ad47
Update Claude app settings.
jimlawton Mar 24, 2026
b1f82f1
Add bootstrap sequence to readme.
jimlawton Mar 24, 2026
2420d65
brew: update git-spice from formula to cask.
jimlawton Mar 24, 2026
bebf030
fish: add gs abbreviation for git-spice
jimlawton Mar 24, 2026
f7547af
fish: add env var to quieten homebrew
jimlawton Mar 24, 2026
ddc75d1
Update Claude app settings.
jimlawton Mar 24, 2026
19a4a58
brew: add brave-browser
jimlawton Mar 24, 2026
c321dd7
Remove SublimeText and SublimeMerge.
jimlawton Mar 24, 2026
7f8d3b7
Remove vscode and extensions.
jimlawton Mar 24, 2026
eaa249c
Update Claude app settings.
jimlawton Mar 24, 2026
89b4d3f
brew: add beyond-compare.
jimlawton Mar 24, 2026
07b25e3
brew: add claudebar.
jimlawton Mar 24, 2026
01eae8c
brew: add docker-desktop.
jimlawton Mar 24, 2026
f0fde88
brew: add ddpm.
jimlawton Mar 24, 2026
013b36b
brew: add fork.
jimlawton Mar 24, 2026
065a5d6
brew: add pocket-casts.
jimlawton Mar 24, 2026
86fef9a
brew: add slack.
jimlawton Mar 24, 2026
d9be00d
brew: add UTM.
jimlawton Mar 24, 2026
1dae8df
brew: add Wireshark.
jimlawton Mar 24, 2026
07328e8
brew: add Wispr Flow.
jimlawton Mar 24, 2026
a51f598
brew: add Zoom.
jimlawton Mar 24, 2026
006ea9d
brew: remove powerpoint.
jimlawton Mar 24, 2026
2cc4de3
bootstrap: install Rosetta.
jimlawton Mar 24, 2026
167d6b4
brew: remove temurin.
jimlawton Mar 24, 2026
43acc5c
brew: remove Proxy.
jimlawton Mar 24, 2026
ee74335
Update Brewfile.
jimlawton Mar 24, 2026
86f7276
claude: add superpowers skills.
jimlawton Mar 26, 2026
375319d
claude: enable auto-dream.
jimlawton Mar 26, 2026
89ad49e
brew: remove packer-completion.
jimlawton Mar 26, 2026
bed8ab9
Add instructions about avoiding App Store logins for free apps.
jimlawton Mar 27, 2026
06a7af6
brew: add whatsapp cask.
jimlawton Mar 27, 2026
732e5df
brew: pin cargo-semver.
jimlawton Mar 27, 2026
56b7da2
brew: add google-drive.
jimlawton Mar 27, 2026
d8ae1d7
brew: remove insync.
jimlawton Mar 27, 2026
0da0071
Update hyper-hacks submodule.
jimlawton Mar 27, 2026
75f85d6
Update Brewfile.
jimlawton Mar 29, 2026
879f27e
Update from local.
jimlawton Mar 31, 2026
1c98f31
chezmoi: ensure umask is correct
jimlawton Mar 31, 2026
3d4a99c
Update Brewfile.
jimlawton Apr 8, 2026
95b0c88
Add roborev config.
jimlawton Apr 13, 2026
7d1f31e
Add temp brewfile.
jimlawton Apr 13, 2026
2e7126e
brew: differentiate brew files
jimlawton Apr 14, 2026
f86d9c8
chezmoi: ignore 2nd brew file
jimlawton Apr 14, 2026
d46e83b
Revert "brew: differentiate brew files"
jimlawton Apr 14, 2026
1669195
chezmoi: brute force method
jimlawton Apr 14, 2026
266988a
atuin: simple fish-specific history extractor
jimlawton Apr 14, 2026
9f1402d
atuin-export: rewrite to export to CSV instead of fish history
jimlawton Apr 14, 2026
bf247e9
chezmoi: update Claude settings.
jimlawton Apr 14, 2026
36f3789
atuin: rename tools dir
jimlawton Apr 14, 2026
0b703d7
atuin-tools: add import command with --dry-run support
jimlawton Apr 14, 2026
dd28bc5
chezmoi: update Claude settings.
jimlawton Apr 15, 2026
d419958
chezmoi: change .claude perms
jimlawton Apr 15, 2026
da3ba83
chezmoi: update claude settings
jimlawton Apr 16, 2026
1d56f59
chezmoi: add more claude plugins
jimlawton Apr 16, 2026
1f377a1
claude: add plugins.
jimlawton Apr 17, 2026
ad0a8d5
chezmoi: update Claude settings.
jimlawton Apr 17, 2026
b9d4de8
chezmoi: update Zed settings.
jimlawton Apr 17, 2026
4542a3d
claude: update settings
jimlawton Apr 17, 2026
8b0b15e
brew: remove Brew rust installation (use rustup)
jimlawton Apr 17, 2026
98e367e
brew: remove Brew (work) rust installation (use rustup)
jimlawton Apr 17, 2026
0c0e3d9
claude: update settings
jimlawton Apr 22, 2026
47e73d3
chezmoi: update Zed settings
jimlawton Apr 30, 2026
e8bc244
Update Brewfile.
jimlawton Apr 30, 2026
a904b6a
brew: add claude-code
jimlawton Apr 30, 2026
5b1b07f
chore: update shellvars
jimlawton May 1, 2026
f844b91
chore: update work git identity
jimlawton May 1, 2026
2900ca4
brew: default to work brewfile
jimlawton May 4, 2026
6671d05
chezmoi: update zed settings
jimlawton May 4, 2026
4e38202
brew: remove old MAS apps
jimlawton May 5, 2026
7d95a74
chezmoi: update git config
jimlawton May 5, 2026
354330a
brew: update packages
jimlawton May 5, 2026
31dc1ae
chezmoi: update zed settings
jimlawton May 5, 2026
6367416
chezmoi: update claude settings
jimlawton May 5, 2026
57b9044
chezmoi: update shell vars
jimlawton May 5, 2026
ad78609
chezmoi: update git settings
jimlawton May 5, 2026
6f93559
brew: use buf from core
jimlawton May 6, 2026
3cba8b7
brew: add bun
jimlawton May 6, 2026
476f798
brew: add go packages
jimlawton May 6, 2026
13883b4
brew: add worktrunk
jimlawton May 6, 2026
7518806
chezmoi: update claude settings
jimlawton May 6, 2026
d81866e
chezmoi: update shell vars
jimlawton May 6, 2026
4c1ffad
chezmoi: update zed settings
jimlawton May 6, 2026
43d9f78
chezmoi: update claude settings
jimlawton May 6, 2026
c4dbc07
brew: add claude-code
jimlawton May 6, 2026
f5af6b5
chezmoi: update claude settings
jimlawton May 6, 2026
fdafbdb
chezmoi: update claude settings
jimlawton May 7, 2026
e3af5fb
chezmoi: update claude settings
jimlawton May 7, 2026
ace3d0b
chezmoi: update git settings
jimlawton May 7, 2026
a3a195c
chezmoi: update ghostty settings
jimlawton May 7, 2026
3a531f8
chezmoi: update zed settings for 1.1
jimlawton May 7, 2026
dced6fc
chezmoi: update claude settings
jimlawton May 8, 2026
3f3fe7b
chezmoi: update ghostty settings
jimlawton May 8, 2026
73b325b
chezmoi: update brew
jimlawton May 11, 2026
449d4e8
chezmoi: flip brewfile test, print message
jimlawton May 11, 2026
32b40af
chezmoi: remove Claude app settings
jimlawton May 11, 2026
e86ef79
chezmoi: fix hostname, simplify
jimlawton May 11, 2026
119f8f7
chezmoi: update brew
jimlawton May 11, 2026
29e2fd5
chezmoi: update brew
jimlawton May 11, 2026
8db0e94
chezmoi: update brew
jimlawton May 11, 2026
6b675a2
chezmoi: update zed settings
jimlawton May 13, 2026
f64e45b
chezmoi: update shell vars
jimlawton May 13, 2026
e0e6ca4
starship: add aws env to prompt
jimlawton May 13, 2026
707c951
starship: aws prompt colour
jimlawton May 13, 2026
ddeb158
starship: aws prompt logo
jimlawton May 13, 2026
109229f
chezmoi: update brew
jimlawton May 13, 2026
2589b0a
starship: add comment
jimlawton May 13, 2026
6c48e9e
chezmoi: update brew (add swag, remove tflint)
jimlawton May 14, 2026
6d4b239
chezmoi: update claude settings
jimlawton May 14, 2026
89f5130
git: remove some old aliases
jimlawton May 14, 2026
885452b
brew: add vips, remove xpdf
jimlawton May 15, 2026
869878f
brew: add google-chrome
jimlawton May 15, 2026
596b082
chezmoi: update claude settings
jimlawton May 16, 2026
3d1d5f7
chezmoi: update zed settings
jimlawton May 16, 2026
7066a0a
chezmoi: add copilot cli settings
jimlawton May 16, 2026
0016283
chezmoi: update copilot cli settings
jimlawton May 16, 2026
d9d1293
chezmoi: reorder paths
jimlawton May 16, 2026
1606085
chezmoi: reorder paths
jimlawton May 16, 2026
f499d23
chezmoi: fix Go path
jimlawton May 16, 2026
864b5bc
brew: remove protoc and swag packages
jimlawton May 16, 2026
5b53ec8
brew: add whatcable
jimlawton May 18, 2026
b547734
chezmoi: update copilot cli settings
jimlawton May 18, 2026
cc7bdc1
brew: add grafana and alloy
jimlawton May 18, 2026
1f18234
brew: add just
jimlawton May 19, 2026
9bd1f30
brew: add just
jimlawton May 19, 2026
975944f
zed: golang settings
jimlawton May 19, 2026
ca7e8cb
zed: more golang settings
jimlawton May 19, 2026
9c17cb7
golang: switch gopls from brew to golang.org install
jimlawton May 19, 2026
892ea5f
brew: add hugo
jimlawton May 20, 2026
c0ea5f0
brew: add warp, vnc-viewer
jimlawton May 20, 2026
5a8f5ba
chezmoi: update claude cli settings
jimlawton May 20, 2026
395aa86
brew: add prometheus
jimlawton May 20, 2026
6b35aef
brew: add kustomize
jimlawton May 20, 2026
5b3257f
brew: add antigravity & cli
jimlawton May 21, 2026
3549cbf
brew: add meslo-lg nerd-font
jimlawton May 21, 2026
750eea9
zed: update terminal font
jimlawton May 21, 2026
6301d21
brew: add sops
jimlawton May 21, 2026
b770062
zed: update terminal font name
jimlawton May 22, 2026
709cdab
zed: git tree view
jimlawton May 25, 2026
3516158
brew: add prettier (npm)
jimlawton May 27, 2026
5ee9210
starship: truncate long Git branch names
jimlawton May 27, 2026
af6a30d
brew: add nordvpn
jimlawton May 27, 2026
f05a014
brew: add codex cli
jimlawton May 29, 2026
bb3152d
zed: swap L-R views
jimlawton May 29, 2026
4cf457d
fish: prioritize ~/.local/bin over Homebrew in PATH
jimlawton Jun 3, 2026
ca46db5
zed: update tab settings
jimlawton Jun 3, 2026
2b6317a
fish: ensure ~/.local/bin precedes Homebrew in PATH
jimlawton Jun 3, 2026
589b210
brew: add gcx
jimlawton Jun 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .chezmoiroot
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
chezmoi
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
netrc
boom
cloudapp
karabiner/automatic_backups
shellvars-work
shellfunctions-work
identity.txt
63 changes: 3 additions & 60 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,60 +1,3 @@
[submodule "vim-fugitive"]
path = vim/bundle/vim-fugitive
url = git://github.com/tpope/vim-fugitive.git
[submodule "vim-markdown"]
path = vim/bundle/vim-markdown
url = git://github.com/tpope/vim-markdown.git
[submodule "vim-sensible"]
path = vim/bundle/vim-sensible
url = git://github.com/tpope/vim-sensible.git
[submodule "vim-liquid"]
path = vim/bundle/vim-liquid
url = git://github.com/tpope/vim-liquid.git
[submodule "vim-scriptease"]
path = vim/bundle/vim-scriptease
url = git://github.com/tpope/vim-scriptease.git
[submodule "vim-surround"]
path = vim/bundle/vim-surround
url = git://github.com/tpope/vim-surround.git
[submodule "scripts"]
path = scripts
url = https://github.com/jimlawton/scripts
[submodule "unison-sync"]
path = unison-sync
url = https://github.com/jimlawton/unison-sync
[submodule "vim/bundle/vundle"]
path = vim/bundle/vundle
url = https://github.com/gmarik/vundle.git
[submodule "vim/bundle/vim-easymotion"]
path = vim/bundle/vim-easymotion
url = https://github.com/Lokaltog/vim-easymotion
[submodule "vim/bundle/sparkup"]
path = vim/bundle/sparkup
url = https://github.com/rstacruz/sparkup
[submodule "vim/bundle/L9"]
path = vim/bundle/L9
url = https://github.com/vim-scripts/L9
[submodule "vim/bundle/FuzzyFinder"]
path = vim/bundle/FuzzyFinder
url = https://github.com/vim-scripts/FuzzyFinder
[submodule "vim/bundle/command-t"]
path = vim/bundle/command-t
url = git://github.com/wincent/Command-T.git
[submodule "icdiff"]
path = icdiff
url = https://github.com/jeffkaufman/icdiff.git
[submodule "autoenv"]
path = autoenv
url = http://github.com/kennethreitz/autoenv.git
[submodule "git/mingit"]
path = git/mingit
url = https://github.com/jimlawton/mingit.git
[submodule "go-bash-completion"]
path = go-bash-completion
url = https://github.com/jimlawton/go-bash-completion.git
[submodule "git/git-identify"]
path = git/git-identify
url = https://github.com/ConnorAtherton/git-identify.git
[submodule "tmux/plugins/tpm"]
path = tmux/plugins/tpm
url = https://github.com/tmux-plugins/tpm
[submodule "hyper-hacks"]
path = hyper-hacks
url = https://github.com/jimlawton/hyper-hacks.git
23 changes: 0 additions & 23 deletions README.markdown

This file was deleted.

109 changes: 109 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
# dotfiles

This repository is meant to manage and configure a personalised dev env setup for MacOS/Linux.

This primarily uses [chezmoi](https://www.chezmoi.io/) to manage dotfiles and Homebrew to manage package installations.

## Structure

Packages are contained within .chezmoidata/packages.yaml

These are installed whenever the packages.yaml has changed and a `chezmoi apply` is run

## Usage

### App Store password setting

macOS asks for an App Store username/password by default, which makes unattended installs impossible.
If you are installing only (or mostly) free apps:

- Go to `System Settings` > [Your Name] > `Media & Purchases`.
- Under `Free Downloads`, change the setting to `Never Require`.

### The easiest way

```
$ curl https://raw.githubusercontent.com/jimlawton/dotfiles/refs/heads/master/bootstrap.sh -o bootstrap.sh
$ chmod +x bootstrap.sh
$ ./bootstrap.sh
```

### Install XCode Command Line Tools if necessary
```
xcode-select --install
```

### Install homebrew
```
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```

### Install chezmoi
```
brew install chezmoi
```

### Clone the repo and apply the dotfiles
```
chezmoi init https://github.com/jimlawton/dotfiles

chezmoi apply
```

## Encrypted Files

Some files in this repo are encrypted. This is a good [page](https://www.chezmoi.io/user-guide/frequently-asked-questions/encryption/) that describes managing encrypted files in `chezmoi`.

The general sequence is:

- Use `chezmoi age-keygen` to generate a public/private key pair.
- The public key is a long string sth like `"age193wd0hfuhtjfsunlq3c83s8m93pde442dkcn7lmj3lspeekm9g7stwutrl"`. This is NOT a secret.
- The private key is a long string sth like `"AGE-SECRET-KEY-<REDACTED>"`. This IS a secret.
- Use `chezmoi age encrypt` to produce an encrypted private key file, using a passphrase. The encrypted key file is NOT a secret. However, the passphrase IS a secret.
- The FAQ says do this: `chezmoi age-keygen | chezmoi age encrypt --passphrase --output=key.txt.age`, however that never prints the public key, which you need, so do it in 2 steps:
- `chezmoi age-keygen -o identity.txt`
- `cat identity.txt | chezmoi age encrypt --passphrase --output=key.txt.age`
- Add `key.txt.age` to `.chezmoiignore` so chezmoi doesn't try to manage it.
- Don't leave `identity.txt` lying around, don't check it into Git and don't let chezmoi get its hands on it. Add it to `.gitignore` and `.chezmoiignore` for safety.
- Next, in your `.chezmoi.toml.tmpl` you'll need:

```
{{ $passphrase := promptStringOnce . "passphrase" "Chezmoi passphrase" -}}

encryption = "age"
[age]
identity = "~/.config/chezmoi/key.txt"
recipient = "<YOUR-AGE-PUBLIC-KEY-GOES-HERE"
```

- In chezmoi, add `run_onchange_before_decrypt-private-key.sh.tmpl`, with:

```
#!/bin/sh

if [ ! -f "${HOME}/.config/chezmoi/key.txt" ]; then
mkdir -p "${HOME}/.config/chezmoi"
chezmoi age decrypt --output "${HOME}/.config/chezmoi/key.txt" --passphrase "{{ .chezmoi.sourceDir }}/key.txt.age"
chmod 600 "${HOME}/.config/chezmoi/key.txt"
fi
```

- Add/commit `.chezmoi.toml.tmpl`, `.chezmoiignore`, `key.txt.age`, `run_onchange_before_decrypt-private-key.sh.tmpl` to Git.
- Finally: `chezmoi init --apply`
- Now, when you want to add files that should be stored encrypted in Git, you do: `chezmoi add --encrypt ~/.some-sensitive-file`.
- When you run `chezmoi init` on a new machine you will be prompted to enter your passphrase once to decrypt `key.txt.age`.
- Your decrypted private key will be stored on the target machine in `~/.config/chezmoi/key.txt`

## Git Identity Files

There are 2 encrypted Git identity files managed and used by this repo:
- `~/.gitidentity-personal` - for personal Git activity
- `~/.gitidentity-work` - for work Git activity

Each of these files is of the following form:

```
[user]
name = John Doe
email = john.doe@example.com
```
61 changes: 0 additions & 61 deletions _setupdotfiles.sh

This file was deleted.

3 changes: 0 additions & 3 deletions activities

This file was deleted.

Loading