Personal config, laid out as GNU Stow
packages. Each top-level directory mirrors the structure it should have
relative to $HOME, so nvim/.config/nvim/init.lua gets symlinked to
~/.config/nvim/init.lua.
sudo dnf install stow # or: apt install stow / brew install stow
git clone git@github.com:ctyler9/dotfiles.git ~/dotfiles
cd ~/dotfiles
stow bash bin nvim tmux # pick the packages you wantPreview first with stow -nv <packages>; remove with stow -D <package>.
On this machine bash bin nvim tmux are already stowed, so those paths in
$HOME are symlinks back here. Editing either side edits the same file.
Stow refuses to overwrite a real file — that is the safety net, not a bug. If the existing file is already the one you want to track:
stow --adopt <package> # moves the real file into the repo, links it back
git status # MUST be clean; any diff means they had drifted--adopt overwrites the repo's copy with whatever is on disk, so always
check git status afterward and git checkout if the diff is unwanted.
Do not pipe stow -v through head. Stow prints its whole plan before
executing, so a closed pipe SIGPIPEs it mid-run and silently aborts.
| Package | Lands at | Notes |
|---|---|---|
bash |
~/.bashrc, ~/.bash_profile |
Fedora skeleton + starship, fzf, C-f sessionizer |
bin |
~/.local/bin/ |
tmux-sessionizer |
emacs |
~/.emacs.d/init.el |
Based on emacs-kick |
nvim |
~/.config/nvim/ |
LazyVim, needs Neovim >= 0.10 |
tmux |
~/.config/tmux/tmux.conf |
Prefix C-a, Tokyo Night, C-f sessionizer popup |
zsh |
~/.zshrc, ~/.zsh_profile |
Needs oh-my-zsh |
bash, bin, nvim, and tmux are synced from this machine and are the
ground truth. emacs and zsh are not currently deployed here — see
Caveats.
C-f opens tmux-sessionizer from two directions: bash binds it via
readline, and tmux binds it in the root table as a popup. Inside tmux the
tmux binding wins.
zshis not installed on this machine and nothing stows it. It is kept for other hosts, so treat it as unverified.emacsstows to~/.emacs.d/, but this machine has an unrelated config at~/.config/emacs/and no~/.emacs.d. Reconcile before stowing it.bash/.bashrccontains absolute/home/claytylerpaths written by tool installers (juliaup, ghcup, grok, kimi-code, solana). Fix those up before using this package on another host.
./install_fonts.shInstalls JetBrainsMono Nerd Font to ~/.local/share/fonts.
fzf>= 0.48 — for the--bash/--zshshell integration, and required bytmux-sessionizerstarship— prompt, used unconditionally bybash/.bashrctmux>= 3.2 — fordisplay-popup, used by theC-fbindingdirenv,nvm— optional,zshguards on them