+# Bare Git directory for this dotfiles repository.
.cfg
+
+# Machine-local Zsh state; never synchronize learned paths or private aliases.
+.zsh/cd-smart.tsv
+.zsh/cd-smart.aliases
+.local/state/cd-smart.tsv
+
+# Optional machine- or work-specific shell settings.
+.zsh/local.zsh
+
+# Zsh-generated caches and command history.
+.zcompdump*
+.zsh/cache/
+.zsh_history
# dotfiles
+This is my rolling dotfiles setup. There are many like it. This one's mine.
+
+- Bare Git repository workflow for tracking selected files in `$HOME`
+- zsh config split into shared, macOS, and linux settings
+- git status in the prompt
+- zsh completion with fuzzy matching and optional fzf integration
+- [`cd-smart`](.zsh/cd-smart.README.md): a custom "plugin", that extends `cd`. It learns frequently visited directories and supports fuzzy `cd` lookups -- inspired by `zoxide`.
+- tmux tab navigation, tab highlighting, hostname display, and one-based window numbering
+- vim configuration with persistent backups, swap files, undo history, and netrw defaults
+
+
+### Install
Note that the only two differences between using a bare and non-bare repository are:
1. git init $HOME/.cfg
2. alias cfg='/usr/bin/git --git-dir=$HOME/.cfg/.git/ --work-tree=$HOME'
-3. echo "alias cfg='/usr/bin/git --git-dir=$HOME/.cfg/.git/ --work-tree=$HOME'" >> $HOME/.zsh/aliases
+3. echo "alias cfg='/usr/bin/git --git-dir=$HOME/.cfg/.git/ --work-tree=$HOME'" >> $HOME/.zshrc
4. cfg config --local status.showUntrackedFiles no
5. cfg add .vimrc + cfg commit -m "add .vimrc" + Set up a remote repository on GitHub or your Git server of choice + cfg push
1. git init --bare $HOME/.cfg
2. alias cfg='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
-3. echo "alias cfg='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'" >> $HOME/.zsh/aliases
+3. echo "alias cfg='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'" >> $HOME/.zshrc
4. cfg config --local status.showUntrackedFiles no
5. cfg add .vimrc + cfg commit -m "add .vimrc" + set up a remote repository on GitHub or your Git server of choice + cfg push
5. cfg checkout
+
### References, Links
- https://www.ackama.com/blog/posts/the-best-way-to-store-your-dotfiles-a-bare-git-repository-explained
- https://bitbucket.org/durdn/cfg/src/master/
- https://news.ycombinator.com/item?id=11070797
- https://shapeshed.com/vim-netrw/#netrw---the-unloved-directory-browser
-