# dotfiles Personal config, deployed with [GNU Stow](https://www.gnu.org/software/stow/). ## Layout ``` . ├── git/ -> $HOME (.gitconfig) ├── nvim/ -> $HOME/.config/ (nvim/) ├── shell/ -> $HOME (.zshrc, .userrc, .musicrc) └── tmux/ -> $HOME (.config/tmux/{tmux.conf,tmux.conf.local,oh-my-tmux/}) ``` Each subdirectory mirrors the target tree; `stow` symlinks its contents into the right destination. ## Install ```bash # prerequisite brew install stow git clone --recurse-submodules https://github.com/publicmatt/dotfiles ~/dotfiles cd ~/dotfiles make # init submodules + deploy everything make tmux # or a single package ``` To remove links: `stow -D -t `. ## tmux Uses [gpakosz/.tmux](https://github.com/gpakosz/.tmux) (oh-my-tmux), vendored as a git submodule at `tmux/.config/tmux/oh-my-tmux/`. Customizations live in `tmux/.config/tmux/tmux.conf.local`. Notable features from the local overrides: - default `C-b` prefix (stock bindings preserved) - splits inherit current path; new windows start at `$HOME` - vi copy-mode, selections piped to `pbcopy` - `prefix m` toggles mouse - `F12` toggles prefix off (pass-through for nested tmux / ssh) - powerline status bar with uptime, battery, hostname Update upstream: ```bash git submodule update --remote tmux/.config/tmux/oh-my-tmux ``` Before first `make tmux`, remove the existing `~/.config/tmux/` so stow can take over: ```bash mv ~/.config/tmux ~/.config/tmux.bak make tmux ```