Dependencies and config for my MacOS development environment.
The repository's structure is overlaid on my ${HOME}
directory; thus,
.config maps to the ${HOME}/.config
on my dev machine.
Highlights:
- dependencies installed with Brew -- see .config/Brewfile
- kitty for terminal emulator -- see .config/kitty
- bash (latest available version) for shell (not zsh) -- see .bashrc
- nvim for CLI editor -- see .config/nvim
- GPG keys stored on yubikey as described by https://github.com/drduh/YubiKey-Guide
I generally use Solarized for theming, which probably dates me to the wrong side of 30, but such is life.
Installed from a bare git module inspired by this.
curl -fsSL https://raw.githubusercontent.com/jwilner/macos-dotfiles/main/bin/config | bash -s -- sync
This will (idempotently):
- git clone the repo
- checkout the worktree, positioning the files as appropriate (backing up any conflicts),
- set up git config
- install Brew
- Brew install all dependencies
- register the upgraded version of bash and set the default shell to it
At this point you should probably switch to kitty
from whatever terminal you
were using before.
Optionally, set up a specific work email for git.
$ cat <<EOF > .gitconfig.overrides
[user]
email = me@workemail.com
EOF
Insert yubikey and then:
$ gpg --edit-card
gpg/card> fetch
...
gpg/card> quit
$ gpg --edit-key
gpg> trust
Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y
gpg> quit
Rather than explicitly installing languages with Brew, I use brew to install common language environment management tools and leave configuring the language itself for later.
Language environment managers:
- Python -> pyenv
- Rust -> rustup-init
Golang I just download and use the built in management approach.
config
is mainly used as an alias to git for tracking any changes to dotfiles
-- e.g. config add .bashrc
.
However, it has a few more useful commands in it
Run: