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.
- xonsh (Python-powered shell)
- zsh configured with prezto.
- nice fonts for the terminal and coding.
- iterm2 profile (w/ hotkey, themes, etc.)
- python2, python3, pyenv (for managing Python versions), and pyenv-virtualenv (for managing virtualenvs)
- alternative Python configuration with pyenv, pip, virtualenv
- a tmux.conf that's pretty neat.
- tmuxp for tmux session management
- 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.
- Useful git aliases
- Optional git commit signing with GPG
- Preview the setup on Linux machines using Vagrant's virtual machines
- macOS: upgrade to the latest version possible
- HomeBrew: macOS requirements first (e.g.:
xcode-select --install
) - Install HomeBrew
- ansible >= 2.4:
- macOS:
brew install ansible
; - Linux: get the latest PPA.
- macOS:
- Other tools to start working on this repo:
brew install fzf
- If you're installing a new computer, copy or create these files/directories:
- GPG config:
~/.gnupg/
- Env variables:
~/.config/dotfiles/local.env
, setexport COMPANY_LAPTOP=
variable (set any value on the company laptop) - Ansible Vault password:
~/.config/dotfiles/vault_password.txt
- GPG config:
- 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)git_personal.user_name
: Your name, which will be attached to commit messages, e.g. "Steven Loria"github_username
: Your Github username.git_personal.user_email
: Your git email address.
- Optional, but recommended: Update
group_vars/local
with 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
playbook_local.yml
as you see fit. Remove any roles you don't use. Edit roles that you do use. - Run the installation script.
Comment out private roles (they will fail on first execution).
~/dotfiles/bin/dotfiles-setup --galaxy --bootstrap
Once you have the dotfiles installed you can run the following command to rerun the ansible playbook:
dotfiles-setup
You can optionally pass role names
dotfiles-setup git python
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
There is a script dotfiles-setup
in the bin
directory for setting up and updating development environments:
- bootstrap/updates the local environment
- install Galaxy roles
- run Ansible on Vagrant VMs
Type dotfiles-setup -h
to see all possibilities.
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
.zsh
get loaded into your environment. - for xonsh: role/*.xsh: Any files ending in
.xsh
get loaded into your environment. - bin/: Anything in
bin/
will get added to your$PATH
and be made available everywhere.
iterm2
To import the iterm2 profile, go to your iterm2 preferences, and enable "Load preferences from custom folder" and select the iterm2 folder in the misc/
directory.
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.
First make sure you have a sane vim compiled. On macOS, the following will do:
brew install macvim --HEAD --with-override-system-vim
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.
If you get an error about Xcode command-line tools, you may need to run
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
- Full Debian and Red Hat support