60 lines
1.5 KiB
Markdown
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, .mattrc, .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
|
|
```
|