Files
dotfiles/README.md
2026-05-11 11:06:07 -07:00

60 lines
1.5 KiB
Markdown

# 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 <pkg> -t <target>`.
## 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
```