Skip to content
Switch branches/tags
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Ken Powers' Dotfiles

These are my configuration files. Take a look at how I configure my shell and feel free to use ideas or suggest improvements.


  1. Clone this repository to $HOME/.dotfiles.
  2. Follow the instructions in the etc directory to set up system settings.
  3. Run ./
  4. Optionally follow the instructions in ./vendor/packages to install packages I use on a regular basis.


Everything in home is linked to $HOME/.$file. Old links are overridden / updated and dead links are deleted. lib contains any files which should not necessarily be linked to in $HOME. etc contains configuration miscellaneous tools. vendor contains subtrees for external repositories.

Other Tips

tmux and neovim sessions

  • In neovim run :Obsess to start recording your neovim session
    • Restore session with vim -S Session.vim
    • :Obsess can also be passed a filename to record to
    • I am not using set -g @resurrect-strategy-nvim 'session' in tmux because it cannot restore multiple vim sessions in the same working directory
  • In tmux press C-a C-s to save your tmux session
  • In tmux press C-a C-r to restore your tmux session


If you need to accept the xcode license at any point for some reason:

sudo xcodebuild -license

Not Ken?

If your name is not Ken Powers you will probably want to edit ./home/gitconfig to have your information. You can do this on your own branch to make pulling upstream changes easier.

Private Environment Variables

You can create a file at home/env.local.zsh which will be sourced by home/zshenv. *.local.zsh is in this repository's .gitignore file so you don't have to worry about sensitive data being committed to the repository.