Skip to content

About

Various configuration files, system settings, and default software packages that I install on all new MacBooks.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

New machine checklist

  • Create a workspace:
mkdir ~/Workspace
cd ~/Workspace
  • Install brew, pull down this repo (obviously), and load default set of software:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install git
git clone https://github.com/amcnamara/new-machine.git ~/Workspace/new-machine
cd ~/Workspace/new-machine
xargs brew install < brew-all.txt
  • Start Emacs daemon, this also registers a system-startup initializer:
brew services start emacs
  • Install codex-cli and override config:
curl -fsSL https://chatgpt.com/codex/install.sh | sh
cp ./codex.toml ~/.codex/config.toml
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  • Copy dotfiles to home:
cd ~/Workspace/new-machine
cp .emacs ~
cp .zshrc ~
cp .gitconfig ~
touch ~/.hushlogin
  • Configure root shell and symlink to my user's .zshrc:
sudo ln -s ~/.zshrc /var/root/.zshrc
sudo chsh -s /bin/zsh root
  • Install ConsolasNF font:
open ~/Workspace/new-machine/ConsolasNF.ttf
  • Set tracking speed, key repeat (fastest), and key delay (shortest)
  • Install Docker Desktop
  • Copy OSX App Shortcuts (requires restart):
cd ~/Workspace/new-machine

defaults import -g ./global_defaults.plist
defaults import com.apple.symbolichotkeys ./symbolic_hotkeys.plist

killall cfprefsd
sudo shutdown -r now
  • Install Kitty and copy in global configs:
    • Swap out the terrible icon with Terminal.app, and flush Dock cache
    • Click kitty > Reload Preferences to pull in the updated config
curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin
mkdir -p ~/.config/kitty
cp ./kitty.conf ~/.config/kitty
brew install --cask karabiner-elements
mkdir -p ~/.config/karabiner
cp ./karabiner.json ~/.config/karabiner
  • Install and use the most recent LTS version of Node:
nvm install --lts
nvm use --lts
  • Install a recent stable version of Python via pyenv:
pyenv install 3.10.12
pyenv global 3.10.12
  • Setup a GitHub SSH key, and GPG signing key:
    • Configure pinentry to store the signing key on the login keychain: add use-agent to ~/.gnupg/gpg.conf (~/.gnupg/gpg-agent.conf should have a pointer to brew's installation of pinentry-program)
gpg --full-generate-key
gpg --list-secret-keys --keyid-format=long
gpg --armor --export <key-id>
git config --global user.signingkey <key-id>
ssh-keygen -t ed25519 -C "alex.mcnamara@gmail.com"
eval "$(ssh-agent -s)"
touch ~/.ssh/config
cat >> ~/.ssh/config<< EOF
Host github.com
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519
EOF
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
cat .ssh/id_ed25519.pub
  • Clean up this repo and check for system software updates:
rm -rf ~/Workspace/new-machine
cd ~
softwareupdate -l

About

Various configuration files, system settings, and default software packages that I install on all new MacBooks.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors

Languages