I’ve been dual-booting since the early-oughts, but I’m only just now preparing to delete my Windows partition for good.
What with all the repartitioning in my future, I figure it’s a good time to just make a clean start - reinstall from scratch. …but I have about a decade’s worth of tools and dotfile tweaks accumulated, including things like updates to xorg.conf to support my old (but awesome) mouse.
So… What’s your favored toolset to get your machine back to the way you like it?
I’ve done this all manually many a time, backing up my home dir, writing scripts to install software, copy important config files into place, etc.
How do you like to go about reinstalling your programs, restoring .dotfiles and config?
I’m a /home on separate drive/partition kind of guy. I like it just following my installs. Though seeing some using guix/nixos to create a config for my desktop has got me wanting to spend a weekend trying that out.
That’s been my approach too, but I’ve reached ten plus years of God knows what in my dotfiles. It’s time for a clean reinstall. 😁
I’ve been using
chezmoi
for dotfile management and have been really happy with it. You can directly import existing files to get started and template out any differences between systems.
The rest, ansible for any sufficiently complex enough setup at the moment. Good for integration work with LDAP, etc if your using that. Again may play around with guix on that front.
I was just thinking yesterday when looking at how NixOS works. The config file seems to be quite reminiscent of an Ansible Playbook. I mean maybe I’m way off the mark, I haven’t really dug into Nix much yet.
Guix/nix seem very powerful. The reproducibility is something ansible just isn’t built to same level robustness for, which makes them seem very promising to me.
I just tar up /home and /etc, install the new system, untar my backup to a directory inside my home directory, and then copy only the stuff I wanted to keep.
I see a fresh install as an opportunity for a new start.
My entire .dotfiles is in GitHub. Anything I want to keep common across machines is stored there and either inserted in PATH or symlinked as needed.
Second this, just be mindful not to sync anything sensitive in there.
I use
chezmoi
for tracking dotfiles and used to use a fancy Ansible setup. Now, I just occasionally backup a list of explicitly installed packages and track the major changes made to the system in a simple Markdown file.