Yeah I want this.
I acquired a keyboard for a language I’m learning and was disappointed that I couldn’t physically switch my hands between keyboards to use the other’s layout. I thought the computer would be smarter, mais non.
autokbisw solved the per-physical keyboard layout problem for me, switching between the Macbook's layout, a US keyboard, and a UK keyboard.
Huh, an idea would be physical buttons that a program listens to, and when you hit the key, the program sends a message to the OS to switch the keyboard layout to a particular one. So an Elgato Stream Deck or Razer Stream Controller.
So you'd have a button for each keyboard layout, and you'd just have to form the habit of smashing the key for e.g. Russian before typing a message in Russian.
For a more complicated solution, I suppose it'd be possible to detect which USB device sent a signal, and use this to detect which keyboard you're using. Maybe there'd need to be a workaround, like hitting Caps Lock on and off so the app has time to react and change the OS keyboard layout, before you type.