This is how I do computers. If you want to do computers like me this is the repository for you. It assumes an macOS environment. If you run Linux or Windows then this repo may not be for you.
There's two main branches: main and work. work is for my work computer.
If you're not me I'd recommend using main.
There's a Makefile that sets everything up. Run make help to see available
commands. Running make with no arguments kicks off the default target. It
should just work ✨. The biggest manual step is installing Homebrew first.
You'll need to do that before you run this.
It's important to note that I use Fish Shell. If this scares you that's okay. But you shouldn't be scared. Fish Shell is amazing.
I use Stow to manage my dotfiles.
I use mise to manage language versions (node, python, ruby, rust).
It replaces rbenv, nvm, asdf, and similar tools with a single unified version manager.
Questions? Comments? Open an issue.
In theory you should only need to run this once on a fresh macOS install. It is possible I may have missed an exact step here, but if so you should get a sensible error message telling you want you need to install or fix. In a perfect world you would be able to copy & paste the following commands into a terminal on a fresh macOS install and be done in a short while.
# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Clone this repo
git clone git@github.com:jsatk/dotfiles.git ~/.dotfiles
# Install all the things
cd ~/.dotfiles
makeRunning make will set up all your dotfiles and install a ton of useful stuff
like...
- Installs all the formulas, casks, and apps (from the macOS App Store) I want.
- To see what's installed via homebrew view
homebrew/.Brewfile.
- To see what's installed via homebrew view
- Installs some global npm packages.
- To see what npm packages are installed checkout the
Makefile.
- To see what npm packages are installed checkout the
- Installs some global gems.
- To see what gems are installed checkout the
Makefile.
- To see what gems are installed checkout the
- Creates symlinks for all the dotfiles via stow.
- Updates everything! This was designed so that it can be run repeatedly and be non-harmful. It only installs stuff as needed.
If you plan on using this yourself you'll need to make sure to change all the stuff that's specific to me (like my email address & name) in the dotfiles. Search for "Jesse" or "jsatk" and replace any mention of that with your own name, etc.
Here's a list of links to instructions I often find myself needing to reference whenever I set up a new computer.
- How to safely move your GPG key from one machine to another. https://gist.github.com/angela-d/8b27670bac26e4bf7c431715fef5cc51
- This fixes the "gpg: WARNING: unsafe permissions on homedir '/home/path/to/user/.gnupg' " error while using Gnupg . https://gist.github.com/oseme-techguy/bae2e309c084d93b75a9b25f49718f85
Big thanks to these people for publishing their own dotfiles and allowing me to steal from them.