I can recommend this book, too. Most helpful for me was the concept of the scanner personality.
Sometimes it just seems as you are not finishing things, for me, it's more like I'm letting some things rest for quite a long time but pick them up again later. I'm just craving variety to get fresh input for all the other things and I see this as a skill. Today I am glad that I haven't unlearned to play around.
It has its benefits, tons of it, I was only unhappy with it as long as I've let others stigmatize me as lazy or undisciplined for how I am.
I've looked at and read about other's experiences with stow in the past. I'm uncertain about this so please correct me where I am wrong, but the issues I see with stow are:
1. It's somewhat dated/may have a tail of legacy features
2. I'm unsure of it's value beyond of what can be provided via the Git Bare Repo solution linked in the intro of my post.
3. More importantly, it's not a programmable solution where you can override default files based on the current system.
The main value proposition I see in my system is that I can define a single default configuration for, say, my terminal Alacritty, and override the configuration where necessary based on either my user, machine or role. Nix is a programming language, so I essentially have my system configuration managed via a programming language and can control things with a great level of detail.
I use Stow, it is simple and only does a few things, but for a lot of users like me it is more than enough:
1. Probably it will not receive more features any time soon.
2. You can have several configurations and mix them, also it makes very easy to adopt changes from the current system and/or rollback changes.
3. No, it is not programmable, but you can have several folder for different systems and configurations. I for example have a folder called unix for all *nix systems, other called x11 for x11 programs, darwin for macOS, etc. You could do the same with roles.
If you want really fine grained control over machine/user/role, it is not enough, and it does not take into account package managing at all.
I use a mix of Stow/Ansible for Desktops and HashiCorp/Ansible for the `cattle`. Nix is more powerful than my setting, but I still need to evaluate if it is flexible enough for the orgs I work with.
I used stow for a long time but I changed to Ansible because I started outgrowing stow. Things can't at all / can't simply do with stow:
- assemble different .ssh/config for different machines
- different .zshenv, .zshrc
- encrypt secrets in the git repo?
- handle different operating systems condifitionally (can't source the same files on OS X than Linux)
- can't install system-wide packages, which would be needed for dotfiles to work properly
Sometimes it just seems as you are not finishing things, for me, it's more like I'm letting some things rest for quite a long time but pick them up again later. I'm just craving variety to get fresh input for all the other things and I see this as a skill. Today I am glad that I haven't unlearned to play around.
It has its benefits, tons of it, I was only unhappy with it as long as I've let others stigmatize me as lazy or undisciplined for how I am.