dotfiles
dotfiles copied to clipboard
sloria's dotfiles as Ansible roles
dotfiles
sloria's dotfiles, rewritten as Ansible roles. Sets up a full local development environment with a single command.
Fully supports macOS. Red Hat and Debian support is good but not as complete.
a few neat features
- zsh configured with prezto.
- nice fonts for the terminal and coding.
- python2, python3, pipx (for managing python CLIs), pyenv (for managing Python versions), and pyenv-virtualenv (for managing virtualenvs)
- a tmux.conf that's pretty neat.
- vim with vim-plug for plugin management. All configuration in a single file .vimrc.
- pluggable. Everything is optional. Fork this. Remove what you don't use. Configure what you do use.
- Mac packages installed with homebrew. Mac apps installed with homebrew-cask and mas.
- Useful git aliases
- Optional git commit signing with GPG
prerequisites
- homebrew (If on macOS) - Install this first
- git:
brew install git - ansible >= 1.6:
brew install ansible
install
- Fork this repo.
- Clone your fork.
# Replace git url with your fork
# NOTE: It is important that you clone to ~/dotfiles
git clone https://github.com/YOU/dotfiles.git ~/dotfiles
cd ~/dotfiles
- Update the following variables in
group_vars/local(at a minimum)full_name: Your name, which will be attached to commit messages, e.g. "Steven Loria"git_user: Your Github username.git_email: Your git email address.
- Optional, but recommended: Update
group_vars/localwith the programs you want installed by homebrew, homebrew-cask, and npm.mac_homebrew_packages: Utilities that don't get installed by the roles.mac_cask_packages: Mac Apps you want installed with homebrew-cask.
- Edit
local_env.ymlas you see fit. Remove any roles you don't use. Edit roles that you do use. - Optional: If you want to sign Git commits with a GPG key, follow the
instructions here
to generate a GPG key from Keybase. Then set the
GIT_SIGNING_KEY_IDenvironment variable before running thedot-bootstrapscript.
export GIT_SIGNING_KEY_ID=631262B829DDB506
Note: After running the dot-bootstrap script, you should put the above
line in ~/.localrc.
- Run the installation script.
./bin/dot-bootstrap
updating your local environment
Once you have the dotfiles installed you can run the following command to rerun the ansible playbook:
dot-update
You can optionally pass role names
dot-update git python
updating your dotfiles repo
To keep your fork up to date with the sloria fork:
git remote add sloria https://github.com/sloria/dotfiles.git
git pull sloria master
commands
There are three main commands in the bin directory for setting up and updating development environments:
dot-bootstrap: sets up local environment by executing all roles inlocal_env.yml.dot-update: updates local environment by executing all roles inlocal_env.ymlexcept for the ones tagged with "bootstrap".
special files
All configuration is done in ~/dotfiles. Each role may contain (in addition to the typical ansible directories and files) a number of special files
- role/*.zsh: Any files ending in
.zshget loaded into your environment. - bin/: Anything in
bin/will get added to your$PATHand be made available everywhere.
notes
vscode
Use built-in Settings Sync to sync VSCode settings.
macOS keyboard settings
There are a few keyboard customizations that must be done manually:
- Turning repeat speed up to 11.

- Mapping Caps Lock to Ctrl.

login message
You can add a message to the login screen using the following command:
sudo defaults write /Library/Preferences/com.apple.loginwindow LoginwindowText "This laptop is connected to an iCloud account and is valueless if lost. Contact (123) 456-7890 if found. Reward included."
what if I only want your vim?
First make sure you have a sane vim compiled. On macOS, the following will do:
brew install macvim
The following commands will install vim-plug and download my .vimrc.
After backing up your ~/.vim directory and ~/.vimrc:
mkdir -p ~/.vim/autoload
curl -fLo ~/.vim/autoload/plug.vim https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
curl -fLo ~/.vimrc https://raw.githubusercontent.com/sloria/dotfiles/master/roles/vim/files/vimrc
You will now be able to open vim and run :PlugInstall to install all plugins.
troubleshooting
If you get an error about Xcode command-line tools, you may need to run
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
If pyenv versions fail to install, try the steps here:
https://github.com/pyenv/pyenv/issues/1219#issuecomment-459333831
If python environments break after upgrading brew-installed python, rehash pyenv and re-install pipx environments
pyenv rehash
mv ~/.local/bin ~/.local/bin.bak
mv ~/.local/pipx ~/.local/pipx.bak
dot-update pipx
todo
- Full Debian and Red Hat support