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!

  • ksynwa
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    3 years ago

    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.

    • Helix
      link
      fedilink
      arrow-up
      1
      ·
      3 years ago

      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.