Hi all!
Recently, I’ve been thinking about how to handle my dotfiles again.
I’ve used chezmoi for a while, and while it’s good, I’ve been wanting something a little lighter.
The simplicity of having my $HOME
be a git
repository was
attractive, but I ran into issues. Specifically, many command line tools
I use such as fzf
and ripgrep
have a feature to automatically ignore
in their search results any files which are ignored by a gitignore
.
This meant I had to either turn this feature off (not ideal) or they
wouldn’t work any more. Also, the terminal prompt I use also showed I
was within a git repository all the time, which was annoying.
Does anyone have an wisdom they’d like to share? If I can’t get the
$HOME
as a git repository working the way I’d like, I may check out
GNU Stow, which seems to be the next most lightweight option.
Thanks!
In my dotfile repo, all dotfiles have a comment at the top like:
-- DOTFILE_DEST=.config/nvim/init.lua
The path is relative to home.
Then I have a shell script that goes through all the dotfiles and creates symlinks to the appropriate location.
Honestly it’s kinda shit but I spent hours into getting this to work so I stick with it. Sunk cost fallacy. I have been interested in switching to yadm or chezmoi but having to depend on external tools is something I am reluctant to do for something so simple.
I am yet to find a dotfile which doesn’t allow comments so this hasn’t failed me so far.
This also allows me to rename the file to something more sensible in the context of a dotfile repo. Like I can rename init.lua to nvim.lua.
nice idea; you could’ve done this as Ansible module and put the dotfiles in a template repository instead. That way you can separate the “what goes where” from the contents and have different target locations for different systems/distributions.