My dotfiles, to get a computer running the way I like it.
To bootstrap onto a fresh *nix computer (that may not have git, like Macs out of the box):
curl -fsSL https://raw.githubusercontent.com/sjml/dotfiles/main/bootstrap.sh | bash
Or on Windows, from an Administrator PowerShell:
Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/sjml/dotfiles/main/bootstrap.ps1'))
Running provision-mac.sh
on a fresh Mac will:
- Take everything in this directory that ends with
.symlink
and make a symbolic link to it in the current user's home directory, minus the.symlink
and prepended with a.
- Similarly, anything with
.configlink
gets linked into.config
without a prepended.
.homelink
gets the same treatment, but into~
- Similarly, anything with
- Symlink files in
osx-launchagents
to~/Library/LaunchAgents
- Install homebrew with analytics turned off
- Install all the packages and GUI apps listed in the
install_lists/Brewfile
- Change the default shell to fish
- Set Homebrew's version of OpenJDK to be used instead of system's
- Sets up the directory to be a proper git repository if it was pulled during a bootstrap
- Make a
~/Projects
directory and symlink the dotfiles there - Install a set of vim bundles, managed by Vundle
- Install latest versions of Python 2 and 3 (3 as default), Ruby, and Node.js via asdf
- Install Python packages listed in
install_lists/python{2|3}-dev-packages.txt
- Install Node-based programs listed in
install_lists/node-packages.txt
- Install the latest version of Rust via rustup
- Set up appearance of Terminal.app
- Set default browser to Firefox
- Various and sundry macOS GUI settings (Finder behaviors, Trackpad settings, etc.)
- Set up the Dock
The provision-linux.sh
is much simpler because I don't have root on most Linux
machines I use, and tend to not have them quite as customized. All it does:
- Symlink the designated dotfiles
- Symlink this to ~/Projects/dotfiles
- Install the vim bundles
- Install pyenv, but nothing else
The Windows version (provision-windows.ps1
) is pretty sparse. Used to use
Chocolatey, but want to shift it to use WinGet before I set up another Windows machine.