An always evolving repo of my settings. My ultimate goal is to minimize the code in this repo as much as possible by upstreaming my settings.
OS targets are MacOS
and Linux
. Ideally, I’d just be running Emacs as my OS
:-)
A majority of my workflow assumes one main laptop with everything else being
remote. For instance, this means that only one machine has my password manager,
ssh-keys, emacs (since we’re using TRAMP
), etc.
For this reason, there are some bootstrapping steps that are only needed for this main laptop setup: graphical desktop, UI settings, and cloud syncing.
- Log into App Store
- Syncing
- Remove Apple’s default contact card
- Uncheck syncing with contacts, calendars, and mail
- Re-enable our self-hosted syncing
- Select personal card to make user default
- Install any OS updates
Optionally, remove Terminal’s preference file so yadm can do a clean checkout
rm ~/Library/Preferences/com.apple.Terminal.plist
Ensure permissions are granted to terminal,
/usr/bin/security find-internet-password -w -a sean@farley.io -s bitwarden.farley.io
Due to a catch-22 with using bitwarden and two-factor authentication, we need to login first, which means installing the bitwarden cli (and homebrew),
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install bitwarden-cli bw config server "https://bitwarden.farley.io" bw login sean@farley.io "$(/usr/bin/security find-internet-password -w -a sean@farley.io -s bitwarden.farley.io)"
Sometimes, we’re not root or on a distro that has an old version of yadm. If that’s the case, then we’ll need to install yadm ourselves.
git clone https://github.com/TheLocehiliosan/yadm.git ~/.local/share/yadm-project mkdir -p ~/.local/bin ln -s ~/.local/share/yadm-project/yadm ~/.local/bin/yadm
yadm clone --bootstrap https://github.com/seanfarley/dotfiles
For our main laptop, we need to make sure Emacs has full-disk access so that it can access homebrew libraries, download folder, etc.
After rebooting / making sure environment is setup, we can install doom,
doom sync emacsclient --eval '(nerd-icons-install-fonts)'