Okay, so I’ve been reading about dotfile management apps such as GNU Stow, and I love the idea. I have a good grasp on how it works. Seems like it should work flawlessly for corralling all my dotfiles into one folder so I can easily clone them across machines. Makes sense for apps whose config folders and files are named something static like ~/.config/appname/settings.conf.
That said, can somebody help me understand the cloning/syncing workflow for apps that generate folders and/or files with dynamic/random/inconsistent names? For example, I’m thinking of Firefox, which creates folders with seemingly random strings for each profile.
Do I just need to clone my Firefox profiles before I launch Firefox for the first time on a new machine? Can I configure GNU Stow w/ something like *.Profile for the top level folder name? Am I doomed to manually syncing my Firefox settings, or is there some other trick for handling these dynamically named configs that I haven’t come across in the tutorials yet? This little cliff hanger is pretty much the last thing stopping me from installing GNU Stow at this point. Thank you!


There are still things you can do with Firefox to fit the dotfiles pattern if you care enough. The files managing the profile and profile directory are mostly static and plain-text. For example I had a
profiles.inipointing to a fixed profile directorydefaultcontaining auser.jsfile with most of my settings. You also need to update and commit theinstalls.inifor every machine, because Firefox insists to have a unique default-profile entry for every system/install. (And the actual setup was even more complicated and contained a merge-script to clone/update/merge multiple user.js sources, but most people wouldn’t need that)These days I use librewolf which has saner, more secure defaults and a more powerful global (profile-independent) config file. All I now store in my dotfiles is
.librewolf/librewolf.overrides.cfg.