Skip to content

sjml/dotfiles

Repository files navigation

My dotfiles, to get a computer running the way I like it.

Installation

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'))

What it does

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 ~
  • 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.