Personal dotfiles — lives at ~/conf (doubles as XDG_CONFIG_HOME).
The repo is the config directory. Setting XDG_CONFIG_HOME=~/conf means tools
that respect XDG (neovim, zsh, etc.) find their configs automatically with no
symlinks needed. Only a handful of tools that hard-code ~/.foo paths require
a one-time symlink.
~/conf/
├── nvim/ → picked up by neovim via XDG_CONFIG_HOME
├── zsh/ → ZDOTDIR set in ~/.zshenv
├── tmux/.tmux.conf → symlinked to ~/.tmux.conf
├── git/config → symlinked to ~/.gitconfig
├── bin/ → added to PATH via profile
├── profile → sets XDG vars, PATH, ZDOTDIR
└── Makefile → bootstrap targets
git clone https://github.com/youbin/conf ~/conf
cd ~/conf
make install # wire everything up
exec zsh # reload shell| Target | What it does |
|---|---|
make install |
Full bootstrap: zsh + nvim + tmux + git + bin |
make zsh |
Append ZDOTDIR and profile source to ~/.zshenv |
make nvim |
Symlink ~/.config/nvim if XDG_CONFIG_HOME isn't already ~/conf |
make tmux |
Symlink ~/.tmux.conf → ~/conf/tmux/.tmux.conf |
make git |
Symlink ~/.gitconfig → ~/conf/git/config |
make bin |
Mark all scripts in bin/ executable |
make tools |
Install CLI tools (auto-detect macOS/Linux) |
make tools-mac |
Install tools via Homebrew |
make tools-linux |
Install tools via apt + direct downloads |
make update |
git pull + Lazy! sync + zinit update --all |
make check |
Show which links/tools are present or missing |
- Plugin manager: zinit
- Prompt: powerlevel10k
- Vi mode: zsh-vi-mode
- Completions: fzf-tab, fast-syntax-highlighting, zsh-autosuggestions
- Key files:
zsh/zshrc.d/zinit.zsh,zsh/zshrc.d/aliases.zsh
Built on AstroNvim v4 with custom plugins:
| Plugin | Purpose |
|---|---|
minuet.lua |
Inline AI ghost-text completion (Claude Haiku via oneapi) |
avante.lua |
AI chat panel (Claude Sonnet) |
blink-cmp.lua |
Fast completion engine with cmdline support |
grug-far.lua |
Project-wide search & replace (<leader>fr/fR) |
todo-comments.lua |
Highlight + jump TODO/FIXME/NOTE (]t/[t, <leader>ft) |
trouble.lua |
Structured diagnostics & LSP lists (<leader>xx) |
snacks.lua |
Word highlight + ]]/[[ navigation |
telescope-luasnip.lua |
Browse snippets (<leader>fs) |
vim-mark.lua |
Multi-colour marks (<leader>mm/mr/mc) |
wtf.lua |
AI explain diagnostic (<leader>Dw) |
Static config at tmux/.tmux.conf.
Shared aliases and colour config at git/config. Machine-local identity
(user.name, user.email) goes in ~/.gitconfig.local which is included at
the bottom of git/config.
Personal scripts on PATH. All made executable by make bin.
| Tool | macOS | Linux |
|---|---|---|
| Package manager | Homebrew | apt / direct download |
ls replacement |
eza | eza |
cat replacement |
bat | bat |
find replacement |
fd | fd (or fdfind) |
grep replacement |
ripgrep | ripgrep |
| Nerd Font | Install manually or via brew install --cask font-* |
Copy .ttf to ~/.local/share/fonts/ |
See rc.d/termux.setup.sh for the mobile bootstrap.