Allow multiple keyboards with different layouts

Registered by mxn

From a user experience perspective, I just want it to work. If I plug in a German Keyboard, it should default to German, if I connect a French one, it should default to French. If I have both connected, both should work with their respective language. Unfortunately this isn't possible, because someone who wrote the USB keyboard protocol did not think of that it would be useful to have a way to know the language of the keyboard from the computer. A horrible oversight if you ask me.

Now the usability challenge is to find the closest behavior to "it just works" without the possibility to detect the layout automatically.

IMO, when you plug in a new keyboard, the computer should prompt you what layout it has (or run a wizard that lets you detect it by asking which key is next to the left shift and so forth). This information should be then stored and remembered for this keyboard make/model. Maybe similar to wifi access points and their passwords.

Currently there is no easy way to specify a secondary Keyboard with a different layout through the Mint Settings. When using a Laptop with attached external Keyboard in a different language, this can be most complicated. I often write in different Languages myself, have bought the Laptop in one country and an external Keyboard in another. It would be useful to be able to configure the Keyboard layouts per keyboard.

The command line solution (but there the setting is forgotten as soon as the Keyboard is unplugged or the user is logged out):
https://superuser.com/questions/75817/two-keyboards-on-one-computer-when-i-write-with-a-i-want-a-us-keyboard-layout
https://askubuntu.com/questions/337351/two-keyboards-two-language-layouts

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
mxn
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.