This repository keeps nvim and tmux at the repo root (not inside .config) so users can choose how to install them.
nvim/-> Neovim config directorytmux/-> tmux config directory
These need to be on PATH before Neovim starts (or on first plugin sync).
Required — Neovim will not fully bootstrap without these:
git— lazy.nvim clones itself and every plugin on first runmakeand a C compiler (gccorclang) — pluginbuildsteps (telescope-fzf-native,LuaSnip) and:TSUpdatefor tree-sitter parsers
Required for core workflows:
ripgrep— backs Telescope'slive_grep,grep_string, andfind_files(--hidden --no-ignore-vcsflags)node≥ 18 —copilot.vimruntime; also required by Mason to installpyrightandbashlscurl(orwget),unzip,tar,gzip— used by Mason to fetch LSP servers
Required for the active efm formatters/linters (C/C++):
clang-formatcpplint(pip install cpplint)
Recommended:
fd— faster backend for Telescopefind_files- A Nerd Font + a true-color terminal —
nvim-web-devicons,lualine, andbufferlinerender glyph icons
tmux bindings that shell out:
lazygit—Prefix + gopens a popup runninglazygit(tmux/utility.conf)
These steps move the directories into ~/.config.
-
Clone the repo (any path works — the examples below use
$DOTFILES)git clone <your-repo-url> ~/dotfiles cd ~/dotfiles export DOTFILES="$PWD"
-
Create
~/.configif neededmkdir -p ~/.config -
Back up existing configs (if present)
mv ~/.config/nvim ~/.config/nvim.backup.$(date +%Y%m%d-%H%M%S) 2>/dev/null || true mv ~/.config/tmux ~/.config/tmux.backup.$(date +%Y%m%d-%H%M%S) 2>/dev/null || true
-
Move configs from repo into
~/.configmv "$DOTFILES/nvim" ~/.config/nvim mv "$DOTFILES/tmux" ~/.config/tmux
-
Ensure tmux loads this config via
~/.tmux.confln -sf ~/.config/tmux/tmux.conf ~/.tmux.conf
-
Reload tools
# Neovim: reopen nvim # tmux: reload config in a session tmux source-file ~/.tmux.conf
~/.config/nvimexists~/.config/tmuxexists~/.tmux.confpoints to~/.config/tmux/tmux.conf
Quick checks:
ls -ld ~/.config/nvim ~/.config/tmux
ls -l ~/.tmux.confIf you want to keep the repo directories in place and avoid moving them, use symlinks instead. Set DOTFILES to your clone path first — ln -sfn does not validate the target, so a wrong path produces a dangling link that silently fails.
export DOTFILES="$PWD" # run from inside your clone, or set it explicitly
mkdir -p ~/.config
ln -sfn "$DOTFILES/nvim" ~/.config/nvim
ln -sfn "$DOTFILES/tmux" ~/.config/tmux
ln -sfn ~/.config/tmux/tmux.conf ~/.tmux.confVerify the links resolve (no cannot access errors):
ls ~/.config/nvim/init.lua ~/.config/tmux/tmux.conf ~/.tmux.confThis approach makes future git pull updates immediately reflect in your active config.