For what it's worth, making a custom layout actually is a huge pain in the arse. That's a pretty niche use case, but there is definitely no reason for it to be as much of a hassle as it is
You can't delete the default one it thinks you will use based on your locale, and it reverts to the default on boot. Also has the worst shortcut to silently change the layout (contol+shift)
You have to change...
1- your default OS language (download all the language files, ZzZZz)
2- change the locale
3- apply the new locale to "all", which is the login screen, current user, new created user.
Go in regional settings and adjust if needed, then reboot with a USB drive on a distro of your choice,
1- go through the installation
2- update if needed
I'd just like to interject for a moment. What you're referring to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.
They manage to make it so complicated it's a whole thing to even just delete the default keyboard layout it thinks should be the default for your language too, if it stops adding it back at all.
I want "French (Canada)", not " Canadian multilangual english CSA" or "Canadian multilangual french CSA".
It's not like any of them even matches the US keyboards we end up using anyway, everyone knows the labels on the keycaps never matches what key it actually prints. Just let me pick the god damn layout I want.
On Mac it's even worse because you have to install it from some random dude's GitHub, and because it's a third-party layout, it straight up won't let you delete the default one just in case, and I have to switch it back whenever it mysteriously decides to switch to the other one on its own for no reason.
Personally on Mac I never had to change my layout again, and if I had to it's just an icon to click and it stays that way.
On windows however, like you said, it's a nightmare
I face the same specific issue. I started with the French (Canada) layout years ago but now Windows sets the default to Multilingual/CSA because it has been made the official one by the government a number of years ago.
So now everyone that got used the "old" one has to fiddle with keyboard settings every time they use a new Windows session/computer.
And it's not exactly a breeze to switch, as Windows often keeps the multilingual one and switches back to it when you use a different application. Gotta make sure to delete the multilingual and leave only one layout. It's a real annoyance.
I'm with you on the french canadian keyboard, in a recent W11 laptop I got from work, it's damn complicated to go in the settings, languages, etc and finally find the option to change keyboard layout! And sometimes if you have more than one kb, the system switch from one to another with some secret combo keys or damn god whatnot. I removed the US keyboard and just keep the FR_CA one.
I don't know about these days, but I remember making a custom layout for Windows back in 2005 that was US Qwerty keyboard plus AltGR+auose for äüö߀ (German umlauts and euro symbol).
I forget how I did it, as I haven't used Windows for serious work in years.
Presumably you downloaded Microsoft Keyboard Layout Creator (MSKLC), which I still had to do to make a custom keyboard layout in 2022. Funnily enough I was also wanting to use AltGr to add diacritics to vowels, because I don't want to have to go to the backtick key for àèìòù
Win + spacebar doesn't work in some cases and if something is opened in fullscreen, closing it isn't very convenient. The actual key binding that works is alt + shift I think.
Technically alt + shift changes between languages and ctrl + shift changes between layouts within the current language. Win + spacebar circles through all of them. So if you want to change from qwerty to dvorak I don't think alt + shift will work, at least in windows 10.
I've not used windows regularly since XP but I recall being very confused that the keyboard layout setting defaults to being per-application rather than syatemwide. Don't know if that's how its still done and I have no reason to care.