Here's my (very simplified) understanding of how file systems work:
So, here's my idea:
Expansion of the idea
So, normally when switching operating systems I just copy the home folder to an external SSD or a thumb drive. But this only works because I have a few external SSDs and a lot of thumb drives! The average user doesn't even have a thumb drive.
The idea
So the user (on Windows) would launch some software. It will go through all the risks of Linux, check hardware compatibility, etc. After the user accepts all of those, the software will make a list of all the installed software. It will then slightly shrink the Windows partition to fit a tiny OS made specifically to transition off of Windows:
The computer will reboot to this OS, and then it would start to shrink the Windows partition and make a Linux partition, where all the files could be copied from Windows to Linux.
Post-install experience
After the system is installed, the user will be greeted with a Windows-like OOBE.
Here's a very rough prototype:
Since we made a list of all the software the user had on Windows, we could also automatically install some of it.like
i.e. if the user had Spotify installed, we could automatically install the com.spotify.Client flatpak from Flathub.
Problems
No idea comes without problems. Here are a few I can think of, ordered from hardest to fix to easiest:
Users hate change
Effectively impossible to fix
Users use Adobe software or play games that don't run on Linux
Software could give advice on dual-booting
No user-friendly enough distros
Could make our own distro
Filesystem operations are dangerous
Advise user to make their own backups
Ending notes
There's a pretty good chance someone has already done this. If so, great! I'll quite possibly start working on something like this sooner or later, although it won't be done for a long while.