@leftpaddotpy What I actually do is I have the .git in src/dotfiles but its worktree is set to ~, solving the problem of the repo being exposed by default. For the root dotfiles, the worktree is / 🙂
And the gitignore thing… I have an alias for git status that only looks at subdirectories that have .gitignore in them. So by touch .vim/.gitignore
I mark .vim as wanted. Slightly better than having a global .gitignore, as that would confuse nvim’s detection of LSP root dir and perhaps have other unintended consequences.
So yeah there are hacks but having to symlink stuff is just a different hack.
(I’m not actually arguing, I was just curious why many people bother with symlinks or Nix, and the discussion helped understand)