I’m wondering if there is a new tool out there that I’m missing out on.

0 points
*

I’ve done symlinks into a separate directory before, but by far my favorite method is to just let ~ be a git repo. It’s maximally simple, no other tooling needed besides git.

There are a few key steps to making this work well:

  • echo '*' > ~/.gitignore: This way git status isn’t full of untracked files. I can still git add -f what I actually want to track.
  • git branch -m dots: For clarity in my shell prompt.
  • [ -d "$HOME/.local/$(hostname)/bin" ] && PATH=$PATH:$HOME/.local/$(hostname)/bin and similar if there’s config I want to apply only to certain hosts.
permalink
report
reply
1 point

Pretty happy with nixos these days, after the initial (crazy) learning curve. But I really like the creative simplicity of this idea

permalink
report
parent
reply
1 point

Stole Forked this idea from Drew Devault.

I’m looking at NixOS now for my server, and while I understand the host config, I’m curious whether I could integrate this into my config in some way.

permalink
report
parent
reply
1 point

I’m all in on nix with home-manager these days. Really seems like an ideal framework for my dotfiles and of all the systems I’ve tried over the years this is the one I’m happiest with.

Hell of a learning curve, though.

permalink
report
reply
2 points

Yep it’s like maintaining a codebase that’s getting increasingly better. It’s a rabbit-hole and a timesink (kind of because you’re trying to get the best out of it, and thus configure likely more) but I think it’s worth it. It gets better overtime as well

permalink
report
parent
reply
2 points

https://www.chezmoi.io/ if you’ve got some complexity with your setup. otherwise, could be overkill.

permalink
report
reply
2 points

Had a homebrew Git setup for ages and recently started using Chezmoi. It’s only been a few weeks, but so far it’s been pretty great!

permalink
report
parent
reply
1 point

I adore chezmoi

permalink
report
parent
reply
2 points

I use Chezmoi but I have to point out some of its downfalls vs. other dotfile managers, particularly if someone is looking to migrate to it.

  • Go’s templating lib is incredibly unergonomic.
  • Identifying file perms and visibility in by special naming convention is pretty gross. Also makes it more difficult to migrate to another solution.
  • If you’re deleting files, you need to remember to do it through chezmoi remove .... You can’t just rm them from your dotfiles directory, because chezmoi does not sync state; it simply applies what’s currently in your repo.
  • Handling multiple systems through .chezmoiignore ends up being overly verbose and unintuitive vs. the approach used by other dotfile managers

Despite these gripes I still use it because deployment via a single binary is convenient, and there’s enough control through the generated config file + system info to handle multiple kinds of deployments sort-of-sensibly (see point 4 above).

permalink
report
parent
reply
6 points

Git and symbolic links still.

Ive heard good things about GNU Stow.

permalink
report
reply
1 point

If you’re using symlinks, you should definitely check out Stow.

permalink
report
parent
reply
1 point

I still put them in gists, with no real tooling. I pull them in selectively when I get a new machine.

permalink
report
reply

Experienced Devs

!experienced_devs@programming.dev

Create post

A community for discussion amongst professional software developers.

Posts should be relevant to those well into their careers.

For those looking to break into the industry, are hustling for their first job, or have just started their career and are looking for advice, check out:

Community stats

  • 6

    Monthly active users

  • 76

    Posts

  • 543

    Comments