I'm having some trouble getting my .gitignore in just the way I want it. I've looked at previous questions on StackOverflow and I've also asked ChatGPT but I just can't get the result I want.
This is for my dotfiles config that I want to be able to easily git clone from any new machine. I have a the git repo with nvim, tmux and alacritty configs + other stuff that I don't want to include, so I'm trying to ignore everything apart from these directories and children within these directories.
Here is a screenshot that includes my current .gitignore the structure of my git repo (files with a grey colour are being ignored) and a git status to prove that they are definitely being ignored:

I want my .gitignore in a state that:
- Any new file added to the
nvimdirectory is added (I will keep ignoring thelazy-lock.json), so that I can add new plugins easily - ONLY the
tmux/tmux.confandtmux/plugins/tpmare NOT ignored, but the remaining directories intmux/pluginsARE ignored (tpm is added in my.gitmodulesand I want that to sync across my machines. I will install the remaining plugins using tpm)
As I said, I know there are already other questions related to this but I just can't get the exact ignore configuration I want so I need some help.