Download and run the install script:
curl -fsSL https://raw.githubusercontent.com/gwardwell/dotfiles/main/install.sh -o install.sh && bash install.sh
During installation, you'll be asked how to set up SSH:
🔑 Setting up SSH for GitHub...
How would you like to manage SSH keys?
1) 1Password SSH Agent (recommended)
2) Traditional SSH key (generate new key)
3) Skip (SSH already configured)
Uses 1Password to manage your SSH keys with Touch ID authentication.
During install:
- Select option
1for 1Password - Choose whether to create a new key or use an existing one:
Do you have an SSH key in 1Password already?
1) No - Create a new SSH key
2) Yes - I have an existing key in 1Password
If creating a new key, the script guides you through:
- Enabling the SSH agent in 1Password settings
- Creating a new Ed25519 SSH key in 1Password
- Adding the public key to GitHub
If using an existing key, the script confirms:
- SSH agent is enabled
- Key is in a supported vault (Personal, Private, or Employee)
- Public key is already on GitHub
Benefits:
- Keys secured by 1Password
- Touch ID to authorize SSH requests
- Easy key management across devices
- Works with multiple GitHub accounts
- Keys never leave 1Password
Generates a new SSH key and stores it locally.
During install:
- Select option
2 - Enter your GitHub email
- Key is generated and copied to clipboard
- Paste at https://github.com/settings/ssh/new
If managing separate personal and employer GitHub accounts:
Store multiple SSH keys in 1Password in the private vault.
The public keys for each key you plan to use should be saved to the ~/.ssh directory.
Add the following to the ~/.ssh/config file:
# Personal GitHub
Host personal
HostName github.com
User git
IdentityFile ~/.ssh/personal_ssh_key
IdentitiesOnly yes
# Work GitHub
Host employer
HostName github.com
User git
IdentityFile ~/.ssh/work_ssh_key
IdentitiesOnly yes
There are zsh aliases in aliases-employer.zsh to handle flipping between these hosts.
If you chose 1Password SSH, you'll be asked about commit signing:
✍️ Set up commit signing?
This adds a 'Verified' badge to your commits on GitHub.
1) Yes - Enable commit signing
2) No - Skip for now
- Adds a ✅ Verified badge to your commits on GitHub
- Cryptographically proves commits came from you
- Uses Touch ID via 1Password (no separate GPG key needed)
- During install: Paste your SSH public key when prompted
- Add to GitHub: Add the same key as a Signing Key (not just Authentication)
- Go to https://github.com/settings/keys
- Click "New SSH Key"
- Select "Signing Key" as the key type
After installation, update these files for commit signing:
| File | Purpose | Action Needed |
|---|---|---|
~/.ssh/allowed_signers |
Verifies signatures locally | Add your email + public key |
~/.gitconfig |
Already configured | Key added during install |
For multiple accounts, add each email to ~/.ssh/allowed_signers:
# Personal
gwardwell@users.noreply.github.com ssh-ed25519 AAAA...your-key
# Employer (same key or different key)
your.name@employer.com ssh-ed25519 AAAA...your-key
If you skipped signing during install, enable it later:
1. Get your public key from 1Password
2. Edit chezmoi config:
# Open the chezmoi config file
${EDITOR:-vim} ~/.config/chezmoi/chezmoi.tomlUpdate the [data] section:
[data]
signingkey = "ssh-ed25519 AAAA...your-key"
gpgsign = true3. Apply the changes:
chezmoi apply4. Add to allowed_signers:
echo "your@email.com ssh-ed25519 AAAA...your-key" >> ~/.ssh/allowed_signersNote: Since
~/.gitconfigis managed by chezmoi, edit the chezmoi config rather than usinggit config --global.
Some applications require manual configuration after installation:
The following apps need to be signed into after installation:
- 1Password - Sign in to sync passwords
- GitHub Desktop - Sign in with GitHub account
- Docker Desktop - Sign in (optional, for Docker Hub)
- Zoom - Sign in with account
- Claude - Sign in with Anthropic account
- Postman - Sign in to sync collections (optional)
- Raycast - Sign in to sync settings, snippets, and extensions
If you can't use JetBrains Settings Sync, manually import settings:
- Open IntelliJ IDEA or RustRover
- Go to File → Manage IDE Settings → Import Settings...
- Navigate to
~/dotfiles/jetbrains/ - Select the appropriate settings file:
IntelliJ-settings.zipfor IntelliJ IDEARustRover-settings.zipfor RustRover
- Click OK and restart the IDE
Import bookmarks:
- Open Google Chrome
- Go to ⋮ → Bookmarks → Bookmark Manager (or press
⌘⇧O) - Click ⋮ (top right of Bookmark Manager)
- Select Import bookmarks
- Navigate to
~/dotfiles/chrome/bookmarks.html
To use Raycast as your primary launcher with Ctrl+Space (or the default Cmd+Space):
- Disable Spotlight shortcut:
- Open System Settings → Keyboard → Keyboard Shortcuts → Spotlight
- Uncheck "Show Spotlight search"
- Open Raycast → Settings → General
- Set Ctrl+Space as the Raycast Hotkey (or use the default Cmd+Space)
- Sign in to enable Cloud Sync
Apply custom theme:
- Open Slack → Settings... → Appearance
- Scroll down to Theme colors
- Press Import
- Paste the comma-separated hex codes from
~/dotfiles/slack/themes.json - Press Apply
Note: Slack syncs your theme across devices when signed in, so you only need to apply once per workspace.
Authenticate the GitHub CLI to use features like gh pr create, gh issue list, etc.:
gh auth loginFollow the prompts to authenticate via browser.
Install the following fonts directly from Apple by downloading the font .dmg files and running the installers:
Clone this Repo and copy the font files to ~/Library/Fonts
% git clone git@github.com:shaunsingh/SFMono-Nerd-Font-Ligaturized.git
- Open System Settings → Apple ID
- Sign in to enable iCloud services (Keychain, Find My, etc.)
- Open System Settings → Touch ID & Password
- Add fingerprints for authentication
- Open System Settings → Privacy & Security → FileVault
- Turn on FileVault for disk encryption
- Open Finder
- Drag frequently used folders to the sidebar (e.g.,
~/Developer,~/Sites)
To configure apps to start at login:
- Open System Settings → General → Login Items
- Add desired apps (e.g., 1Password, Raycast, Clocker)
- Open System Settings → Displays → Night Shift
- Set Schedule to "Sunset to Sunrise"
Pair your Bluetooth devices (keyboard, mouse, headphones) via:
- Open System Settings → Bluetooth
- Put device in pairing mode and connect
- Open System Settings → Printers & Scanners
- Add your printers
Two files need to be copied and customized for employer-specific settings:
cp ~/dotfiles/dot_gitconfig-employer ~/.gitconfig-employerEdit ~/.gitconfig-employer:
- Set your work email address
- Optionally set a different signing key
Repos in ~/Developer/employer/ will automatically use these settings.
cp ~/dotfiles/dot_oh-my-zsh/custom/aliases-employer.zsh ~/.oh-my-zsh/custom/Edit ~/.oh-my-zsh/custom/aliases-employer.zsh:
- Set employer GitHub org
- Configure CI/CD shortcuts
- Add employer-specific aliases