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 a0a650cea3
[meta] try using a GitHub issue template for checklists
6 years ago
.bundle [ruby] switch to direnv's 6 years ago
.config [ruby] move direnvrc to .config 7 years ago
.git_templates/hooks [meta] Stop using stow 10 years ago
.github/ISSUE_TEMPLATE [meta] try using a GitHub issue template for checklists 6 years ago
.hammerspoon [hammerspoon] disable attempt at fixing esc in fullscreen safari 7 years ago
.pentadactyl/plugin [meta] Stop using stow 10 years ago
.ssh [ssh] remove unused configs 7 years ago
.vim [vim] experiment with less syntax highlighting 6 years ago
.weechat [weechat] ignore plugins.xml file 7 years ago
Alfred.alfredpreferences [alfred] more prefs 6 years ago
Dash.dashsync [dash] update prefs 7 years ago
ansible [vim] re-set textwidth, modify macvim settings 6 years ago
bin [meta] add script for updating Rust 7 years ago
bitbar [bitbar] Default OBA color to black 9 years ago
dnsmasq [dnsmasq] Blacklist adzmath 9 years ago
osx [osx] add more emacs keybindings 7 years ago
resolver Fix resolver/dev 11 years ago
scripts [scripts] Fix script for resolving conflicts 9 years ago
src [alfred] update workflows 6 years ago
.bash_profile [meta] Stop using stow 10 years ago
.bashrc [meta] Stop using stow 10 years ago
.chunkwmrc [chunkwm] 6 years ago
.gemrc [meta] Stop using stow 10 years ago
.gitconfig [git] make global gitignore user-agnostic 7 years ago
.gitignore [weechat] ignore plugins.xml file 7 years ago
.gitmodules [meta] Mojave 6 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] remove powerline 7 years ago
.vimrc [vim] re-set textwidth, modify macvim settings 6 years ago
Alpha.terminal [terminal.app] update prefs 8 years ago
LICENSE Initial commit 11 years ago
README.md [meta] Mojave 6 years ago
Rakefile [meta] fix rake config sync task 7 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.

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 Xcode: open 'https://itunes.apple.com/us/app/xcode/id497799835?mt=12'
  • Accept the Xcode license: sudo xcodebuild -license
  • Open Xcode
  • 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.)

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:

# 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.