Skip to content

v5: clean, flat dotfiles — install.sh + neovim + local overrides#1

Open
davidstosik wants to merge 1 commit intov4from
v5
Open

v5: clean, flat dotfiles — install.sh + neovim + local overrides#1
davidstosik wants to merge 1 commit intov4from
v5

Conversation

@davidstosik
Copy link
Copy Markdown
Owner

What's this?

A clean consolidation of the dotfiles across all previous branches (v1–v4, wip-20241205), landing on a simple, maintainable setup. Built on top of v4 — the minimalist flat-file approach David landed on.

Why no framework?

History: v1 had bootstrap.sh + symlink scripts. v2 added a module system with .rc/.install files. v3 had numbered modules with install.zsh hooks. main/wip had a full multi-module system with Antigen/oh-my-zsh and git submodules. v4 stripped it all back to 6 flat files.

v4 was right. v5 keeps that approach and adds what was genuinely missing.

Chosen approach: git + symlinks, no framework. No chezmoi, no stow, no bare repo magic — just ln -s in install.sh. Simple, universal, zero deps beyond git.

What's new vs v4

File What changed
README.md Added — setup instructions, prereqs, local override docs
install.sh Added — symlinks configs, installs TPM, safe to re-run
nvim/ Added — LazyVim config (Tokyo Night, Ruby extras, vim-rails)
zshrc Better comments, ~/.zshrc.local override support
gitconfig ~/.gitconfig.local override support, better comments
gitignore Added *.local pattern

What's kept from v4 (unchanged in spirit)

  • vpn-fix() function — WireGuard/home LAN subnet conflict fix
  • Tokyo Night theme across tmux + ghostty + neovim
  • mise integration for runtime versions (Ruby, Node, etc.)
  • All modern git defaults (histogram, rerere, zdiff3, autoSetupRemote, etc.)
  • tmux: C-a prefix, vi copy mode, sessionx, resurrect, Tokyo Night

Neovim config

LazyVim-based with:

  • Extras: ruby lang, JSON, markdown, mini-surround, yanky, treesitter-context
  • Plugins added: vim-rails, vim-bundler (tpope), headlines.nvim
  • Theme: Tokyo Night Night (transparent, matches terminal + tmux)
  • autoformat off by default — manual <leader>cf
  • Copilot not included — add locally in nvim/lua/plugins/copilot.lua if wanted

Install

git clone https://github.com/davidstosik/dotfiles ~/.dotfiles
cd ~/.dotfiles
./install.sh

Local machine overrides (not committed)

  • ~/.gitconfig.local — included by gitconfig (work email, etc.)
  • ~/.zshrc.local — sourced at end of zshrc (machine paths, etc.)

## What's new vs v4
- README.md: clear setup instructions, tool list, local override docs
- install.sh: symlink-based installer, backs up existing files, installs TPM
- nvim/: LazyVim config (Tokyo Night, Ruby extras, vim-rails, vim-bundler)
- zshrc: better comments, local override support (~/.zshrc.local)
- gitconfig: local override support (~/.gitconfig.local), better comments
- gitignore: added *.local pattern

## Approach
No dotfiles framework — just git + symlinks. Flat file layout (no modules/).
v4 proved this works. v5 adds what was missing: neovim and an install script.

## Key features kept from v4
- vpn-fix() function (WireGuard route fix for home LAN subnet conflicts)
- Tokyo Night theme (tmux + ghostty + now neovim)
- mise integration (runtime version manager)
- Modern git defaults (histogram diff, rerere, zdiff3 mergeStyle, etc.)
- tmux: C-a prefix, vi copy mode, sessionx, resurrect
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant