Skip to content

Repository files navigation

conf

Personal dotfiles — lives at ~/conf (doubles as XDG_CONFIG_HOME).

Design

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

Quick start

git clone https://github.com/youbin/conf ~/conf
cd~/conf
make install # wire everything upexec zsh # reload shell

Make targets

TargetWhat it does
make installFull bootstrap: zsh + nvim + tmux + git + bin
make zshAppend ZDOTDIR and profile source to ~/.zshenv
make nvimSymlink ~/.config/nvim if XDG_CONFIG_HOME isn't already ~/conf
make tmuxSymlink ~/.tmux.conf → ~/conf/tmux/.tmux.conf
make gitSymlink ~/.gitconfig → ~/conf/git/config
make binMark all scripts in bin/ executable
make toolsInstall CLI tools (auto-detect macOS/Linux)
make tools-macInstall tools via Homebrew
make tools-linuxInstall tools via apt + direct downloads
make updategit pull + Lazy! sync + zinit update --all
make checkShow which links/tools are present or missing

Components

ZSH (zsh/)

  • 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

Neovim (nvim/)

Built on AstroNvim v4 with custom plugins:

PluginPurpose
minuet.luaInline AI ghost-text completion (Claude Haiku via oneapi)
avante.luaAI chat panel (Claude Sonnet)
blink-cmp.luaFast completion engine with cmdline support
grug-far.luaProject-wide search & replace (<leader>fr/fR)
todo-comments.luaHighlight + jump TODO/FIXME/NOTE (]t/[t, <leader>ft)
trouble.luaStructured diagnostics & LSP lists (<leader>xx)
snacks.luaWord highlight + ]]/[[ navigation
telescope-luasnip.luaBrowse snippets (<leader>fs)
vim-mark.luaMulti-colour marks (<leader>mm/mr/mc)
wtf.luaAI explain diagnostic (<leader>Dw)

Tmux (tmux/)

Static config at tmux/.tmux.conf.

Git (git/)

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.

Bin (bin/)

Personal scripts on PATH. All made executable by make bin.

Cross-platform notes

ToolmacOSLinux
Package managerHomebrewapt / direct download
ls replacementezaeza
cat replacementbatbat
find replacementfdfd (or fdfind)
grep replacementripgrepripgrep
Nerd FontInstall manually or via brew install --cask font-*Copy .ttf to ~/.local/share/fonts/

Termux (Android)

See rc.d/termux.setup.sh for the mobile bootstrap.

About

my zsh tmux vim conf

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages