my dotfiles
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Alpha Chen 4a1aa5851b
[meta] various changes for installation on Sierra
8 years ago
.bundle [bundler] Update settings for `bundle gem` 9 years ago
.config/powerline [powerline] Move Powerline config into .config 9 years ago
.git_templates/hooks [meta] Stop using stow 10 years ago
.hammerspoon [hammerspoon] Sigh, escaping in fullscreen Safari 9 years ago
.pentadactyl/plugin [meta] Stop using stow 10 years ago
.ssh [meta] various changes for installation on Sierra 8 years ago
.vim [meta] update submodules 8 years ago
.weechat [weechat] add go.py script 8 years ago
Alfred.alfredpreferences [alfred] update Dash workflow 8 years ago
Dash.dashsync [dash] sync Dash prefs 8 years ago
ansible [meta] various changes for installation on Sierra 8 years ago
bin [meta] make alfredworkflow.clean work w/OS X ruby 8 years ago
bitbar [bitbar] Default OBA color to black 9 years ago
dnsmasq [dnsmasq] Blacklist adzmath 9 years ago
osx [meta] Synchronize some app prefs and OS X colors 10 years ago
resolver Fix resolver/dev 11 years ago
scripts [scripts] Fix script for resolving conflicts 9 years ago
src [meta] update submodules 8 years ago
.bash_profile [meta] Stop using stow 10 years ago
.bashrc [meta] Stop using stow 10 years ago
.gemrc [meta] Stop using stow 10 years ago
.gitconfig [git] use indent instead of compaction heuristic for diffs 8 years ago
.gitignore [weechat] actually ignore sec.conf 8 years ago
.gitmodules [vim] Startify 8 years ago
.inputrc [meta] Stop using stow 10 years ago
.irbrc [meta] Stop using stow 10 years ago
.pentadactylrc [pentadactyl] Scroll a little less with j/k 9 years ago
.pryrc [meta] Stop using stow 10 years ago
.spacemacs [spacemacs] vinegar 8 years ago
.tmux.conf [tmux] Turns out UTF8 options are unneeded now? 8 years ago
.vimrc [vim] Rust, folding, other stuff 8 years ago
Alpha.terminal [terminal] Update font settings 9 years ago
Brewfile [meta] various changes for installation on Sierra 8 years ago
LICENSE Initial commit 11 years ago
README.md [meta] various changes for installation on Sierra 8 years ago
Rakefile [meta] various changes for installation on Sierra 8 years ago
gitignore [git] Ignore all .envrc files 9 years ago
safari.css [safari] add user stylesheet 8 years ago

README.md

Dotfiles

This repo contains both my dotfiles as well as Ansible playbooks to provision new machines.

Use at your own risk. Untested except on my own El Capitan installs.

Playbooks

  • bootstrap.yml: SSH and Homebrew setup
  • main.yml: Pretty much everything else
  • imac.yml: For quieting down the broken HDD fan on my iMac
  • macbook_pro.yml: Remap Caps Lock to Control on the laptop

Usage

First, some steps need to be performed on the remote machine that I couldn't figure out how to automate:

  • Enable Remote Login in System Preferences -> Sharing.
  • Install the command line developer tools: xcode-select --install. (It looks like the Homebrew installer should be able to handle this, but I haven't been able to get it to work headless.)
  • Install Xcode: open 'https://itunes.apple.com/us/app/xcode/id497799835?mt=12'
  • Accept the Xcode license: sudo xcodebuild -license

On the control machine:

brew install ansible
git clone --recursive git@github.com:kejadlen/dotfiles
cd dotfiles/ansible

echo HOST > hosts.private

ansible-playbook bootstrap.yml --ask-pass --ask-become-pass
ansible-playbook main.yml --ask-become-pass

A couple items that I haven't gotten around to automating yet that need to be manually run post-provisioning:

# Apply personal Terminal settings
open ~/.dotfiles/Alpha.terminal

# Symlink ~/.dotfiles to Dropbox
rm -rf ~/.dotfiles
ln -s ~/Dropbox/dotfiles ~/.dotfiles

# Add private SSH keys
ruby ~/.dotfiles/scripts/setup_ssh_keys.rb

# Install apps from the Mac App Store
open 'https://itunes.apple.com/us/app/reeder-3/id880001334?ls=1&mt=12'
open 'https://itunes.apple.com/us/app/paprika-recipe-manager/id451907568?mt=12'

Provisioning Locally

You can also use this to provision a machine by itself, although this won't be able to copy over OS X application settings, for obvious reasons.

# Install Homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

# Install ansible
brew install ansible

# Clone dotfiles
git clone --recursive https://github.com/kejadlen/dotfiles.git ~/.dotfiles

# Run Ansible
cd ~/.dotfiles/ansible
echo "localhost ansible_connection=local" > hosts.private
ansible-playbook main.yml --ask-pass --ask-become-pass

Development

Ansible tags are indispensible when tweaking the config:

- command: echo debug
  tags: debug
ansible-playbook main.yml --ask-become-pass --tags=debug

TODO

See issues.