I think there’s a tool for every OS except for Linux. With Linux, you do a backup of the /home folder (docs and settings), make a list of all your apps. Restore /home backup to new PC, install apps which is quick and doesn’t require restarts. Done. Everything will be like it was, even open browser tabs, history etc. All programs will still have Open >> Recent files.
I think there’s a tool for every OS except for Linux.
Speaking of Linux, it is far easier to back up user data, including user settings (regardless of how many users your PC might have), than it is to do the same in MS-Windows. As mentioned in your post, the key is /home. (I also backup /etc as I make changes there that I want to capture)
There are a number of programs that are really efficient at backing up to external media, such as an external hard drive. I use 'BackInTime', though there are several programs that use the same basic mechanism, and function in a similar way. BackInTime uses the 'rsync' program to make a copy of your data. Rather than actually copy each file every time it does a backup, the program will instead only back up the files that change from one backup to the next. For the files that do not change, a 'hardlink' is created, which is really just a pointer to the file.
This is extraordinarily cool, because you can have the program run every night, and get what is effectively a full backup of all of your data, but since it doesn't have to make a separate copy of every single file, it is really efficient from a space perspective.
As an example, as shown below my /home partition has 755Gb of it's spaced used by my data. The /backup partition has 2Tb used.
$ df -h /home /backup Filesystem Size Used Avail Use% Mounted on /dev/sdb1 3.6T 755G 2.7T 22% /home /dev/sdc1 4.6T 2.0T 2.4T 45% /backup
However, when you look at how many full backups of /home the /backup partition contains, you'll see that it really lets me keep a lot of stuff available, just in case...
20161231-030001-690 20171231-030002-454 20181231-030001-279 20190131-030002-922 20190331-030002-880 20190430-030001-364 20190531-030001-277 20190630-030001-817 20190731-030001-101 20190825-030001-286 20190930-030001-762 20191031-030001-404 20191130-030001-886 20191231-030001-946 20200131-030001-245 20200229-030001-883 20200331-030001-201 20200430-030001-580 20200531-030002-222 20200630-030001-621 20200731-030001-513 20200831-030001-589 20200930-030001-931 20201031-030001-830 20201108-030001-586 20201115-030001-665 20201122-030001-803 20201123-030001-411 20201124-030001-755 20201125-030001-243 20201126-030001-912 20201127-030001-716 20201128-030001-950 20201129-030001-542
For those interested, I keep 1 copy of the last 7 days, then one weekly for a month, then one monthly for 2 years, and one annual copy for each year. All of this is automatically maintained by BackInTime for me.
I also will occasionally plug another drive in, and mount it to /backup in place of the more permanent drive, and let the nightly run occur. That drive goes to my safe deposit box at my bank.
Yeah, I'm paranoid. OTOH, I never lose data.