sloria's dotfiles, rewritten as Ansible roles. Fully supports macOS. Red Hat and Debian support is good but not as complete.
- zsh configured with prezto.
- nice fonts for the terminal and coding.
- iterm2 profile (w/ hotkey, themes, etc.)
- python2, python3, pew (for managing virtualenvs), and pipenv
- 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
- ansible >= 1.6
- homebrew (If on macOS)
- git (homebrew installable on macOS)
- Latest version of Xcode (If on macOS)
- 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/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.npm_global_packages
: Node utilities.
- Edit
local_env.yml
as you see fit. Remove any roles you don't use. Edit roles that you do use. - Run the installation script.
$ ./bin/dot-bootstrap
Once you have the dotfiles installed you can run the following command to rerun the ansible playbook:
$ dot-update
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 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.yml
except for the ones tagged with "bootstrap".
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. - 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
- Add more options to
dot
script, e.g. for skipping tasks