Managed with chezmoi. Secrets via 1Password CLI.
xcode-select --install/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Follow the Next steps the installer prints to add Homebrew's PATH lines to ~/.zprofile, then reload it:
source ~/.zprofilebrew install chezmoibrew install --cask 1password 1password-cliOpen 1Password 8, then: Settings → Developer → Connect with 1Password CLI
chezmoi init --apply https://github.com/silkm/dotfiles.gitThis clones the repo and automatically:
- Deploys all config files
- Runs
brew bundle install --global - Installs Doom Emacs
- Installs GHCup
- Starts SketchyBar
- Writes
~/.doom.d/secrets.elfrom 1Password
-
Add
~/.ssh/id_ed25519.pubto GitHub -
Clone the private notebook repo (needs the SSH key above on GitHub first):
git clone git@github.com:silkm/notebook.git ~/notebook -
Install Zoom manually from zoom.us/download
-
Enable the Zotero Connector in Safari: Safari → Settings → Extensions and tick Zotero Connector (installed with the Zotero cask)
-
Install the Better BibTeX plugin in Zotero (docs):
- Download the latest
.xpifrom the GitHub releases page — right-click and save the file rather than opening it. - In Zotero: Tools → Plugins, click the gear icon, choose Install Plugin From File…, and select the downloaded
.xpi.
Auto-updates after install, so this is a one-time step.
- Download the latest
-
System Settings → Keyboard → Keyboard Shortcuts → App Shortcuts →
+→ choose Safari, menu titleMove Tab to New Window, press meh+F.
Installed automatically via brew bundle. After first install, authenticate:
gcloud auth login
gcloud config set project <your-project>Installed automatically via brew bundle. Authenticate via OAuth device flow (token stored in macOS keychain):
gh auth loginPick GitHub.com → SSH → Login with a web browser to match the SSH-based git setup.
After gh auth login, create ~/.authinfo so Magit Forge can authenticate:
TOKEN=$(gh auth token)
printf 'machine api.github.com login silkm^forge password %s\n' "$TOKEN" > ~/.authinfo
chmod 600 ~/.authinfoThe ^forge suffix scopes the token to Forge. github.user = silkm is already set in the managed ~/.gitconfig — required for ghub to find the token.
Installed automatically via brew bundle. Uses the Karabiner-DriverKit-VirtualHIDDevice driver that ships with Karabiner Elements, so no separate driver install is needed.
- Grant Input Monitoring permission to the terminal (or to
kanataonce it's run once and prompts) in System Settings → Privacy & Security → Input Monitoring. - Start it:
sudo kanata -c ~/.config/kanata/kanata.kbd
Karabiner Elements stays installed but should only have rules that disable the built-in keyboard when an external one is connected — leave actual remapping to kanata.
SketchyBar shows upcoming meetings via the macOS Calendar app.
- Open System Settings → Internet Accounts → Add Account → Google
- Sign in and enable Calendars
Meetings appear 15 minutes before start. Font turns red at 2 minutes. Meetings linger for 5 minutes after start then clear.
Create an Automator app (~/Applications/Emacs.app) with a Shell Script action:
EMACSDIR="$(dirname $(dirname $(readlink -f /opt/homebrew/bin/emacs)))"
zsh --login -c "open -na $EMACSDIR/bin/emacs $@"| Repo | Target |
|---|---|
| silkm/doom-config | ~/.doom.d |
| Item | Vault | Used for |
|---|---|---|
chezmoi_doom_emacs_secrets.el |
Private | ~/.doom.d/secrets.el |
chezmoi_ssh_config |
Private | ~/.ssh/config |
- Add GHC to PATH in zshrc
- Add Karabiner Elements config from new laptop (separate repo via chezmoi external)
- Add Aerospace config
- Add Ghostty config (~/.config/ghostty/config)
- Add clean ~/.ssh/config for new machine (via 1Password)
- Test kanata home row mods, then wire up auto-start (LaunchDaemon)
- Add symbol layer(s) to kanata config