Once again I try to get a handle of my various dotfiles and configs. This time I take another stab at gnu stow
as it is often recommended. I do not understand it.
Here’s how I understand it: I’m supposed to manually move all my files into a new directory where the original are. So for ~
I make like this:
~
- dotfiles
- bash
dot-bashrc
dot-bash_profile
- xdg
- dot-config
user-dirs.dirs
- tealdeer
- dot-config
- tealdeer
config.toml
then cd ~/dotfiles && stow --dotfiles .
Then (if I very carefully created each directory tree) it will symlink those files back to where they came from like this:
~
.bashrc
.bash_profile
- .config
user-dirs.dirs
- tealdeer
config.toml
I don’t really understand what this application is doing because setting up the dotfiles
directory is a lot more work than making symlinks afterwards. Every instructions tells me to make up this directory structure by hand but that seems to tedious with so many configs; isn’t there some kind of automation to it?
Once the symlinks are created then what?
-
Tutorials don’t really mention it but the actual manual gives me the impression this is a packager manager in some way and that’s confusing. Lots of stuff about compiling
-
I see about how to combine it with
git
. Triedgit
-oriented dotfile systems before and they just aren’t practical for me. And again I don’t see whatstow
contributing;git
would be doing all the work there. -
Is there anything here about sharing configs between non-identical devices? Not everything can be copy/pasted exactly. Are you supposed to be making
git
branches or something?
The manual is not gentle enough to learn from scratch. OTOH there are very very short tutorials which offer little information.
I feel that I’m really missing the magic that’s obvious to everyone else.
Sounds like your use case is significantly more complicated than mine, I usually just commit, push, and pull.
Yadm does have the “enter” command which lets other tools work. I have an alias I use all the time:
alias lazyadm="yadm enter lazygit --work-tree ~/"