How, in Windows 10, do I have two keyboards each of which automatically uses a separate input language?

I have to write code on a daily basis, and I prefer to do so with the standard American keyboard layout which I have used my entire life. At the same time, I find myself needing to type in German increasingly often.

I recently bought a German keyboard, with the intent of plugging it in simultaneously with my main one, just punching the appropriate key on the foreign board whenever I needed a special character which doesn't appear on an American keyboard: ö, ä, ü, ß, €. Unfortunately, that doesn't work at all: regardless of the symbol printed on the key, both keyboards appear to share the same layout at all times. I can switch key layouts using Alt+Shift, but that doesn't really help: I can guarantee that at some point I will lose time and productivity because of accidental key layout switches.

The ideal solution is that each keyboard forces a switch to the appropriate key layout as I begin entry on that keyboard. That is, simply typing on the American keyboard forces the system keyboard layout to US English, and typing on the German keyboard forces the system keyboard layout to German. This supports my use case of using the American keyboard at all times except when I need a German-only character, at which point I reach over and use the other keyboard before resuming typing. Even better would be if the solution also eliminated the standard keyboard shortcut.

Does there exist a Windows configuration to accomplish this? If not, what about an external program? Taking time to write a utility of my own for this is not an ideal solution, but it's what I'll have to resort to if there exists nothing else.

I believe this question is not a duplicate, because the questions here, and here, want to type in the same language, whereas I want to type in two different ones; the question here has been superseded by windows 10 and at any rate I want automatic switching on a per-keyboard basis.


Solution 1:

A way to accomplish such an issue, is to add the US and German keyboard layouts to your configuration.

By using Win Key+Space, you can then easily switch between those layouts. (Windows does not recognize any country-specific difference for physical keyboards, unlike Sun Solaris...)

Although, I recommend that you also take a look at this post: UltimateKEYS layout.

This layout is based on standard US QWERTY, but allows you to type (almost) any Latin-based language using right Alt key combinations (perhaps you only need a single keyboard for both languages).