Keyboard layout selection is broken
Basically, selecting English (UK) as the only keyboard layout in the Control Center doesn't work, and apparently loads US layout instead, so some of the punctuation keys are swapped. If I add US layout and put UK second, (so the panel shows "English US en1", "English UK en2") I can then get the UK layout to work correctly by selecting en2. The trouble with this is if I log out, it defaults to en1 (US) next time I log in. But if I put UK before US, I get the opposite of what I selected ie when the panel shows "English UK en1" is selected, pressing some keys on my British keyboard results in incorrect characters, but when it shows "English US en2" it works correctly as a British keyboard. Whichever of the two I delete, and whichever order they're in, I get US layout. But if I've deleted US, Control Center then incorrectly shows UK as the (only) layout.
What led up to this:
I use Arch Linux. I started using a US keyboard at Christmas, while still using GNOME 3. Recently I updated to GNOME 40.0, and since then I went back to a UK keyboard, then noticed the bug. I've just updated to GNOME 40.2 (but gnome-control-center is still 40.0) and it's still buggy. After the 40.2 upgrade I realized I had forgotten to change KEYMAP=us
back to KEYMAP=uk
, but correcting that hasn't fixed the problem either.