When installing any kind of operating system, one has to
manually select the current keyboard layout. This may be
a
list, a recommendation according to the chosen language
(german OS install -> recommend german keyboard
layout), other operating systems ask the user to press a
few layout-specific
keys and so do take a guess of the
actual keyboard layout. In the end, keyboard layout
configuration is still a kind of "necessary" configuration
step.
However, this configuration may also be done
automatically, if the operating system would have an
idea
of the actual keyboard layout.
So I'm proposing that keyboards do offer a new attribute,
advertising the actual keyboard layout of the device e.g.
via a special USB or bluetooth attribute. The operating
system (or keyboard driver) uses this attribute to
automatically select the keyboard layout being used in
the
operating system. Of couse, an operating system might
still
offer an "advanced" configuration setting where the user
may manually override the automatic selection.
In reality, this attribute would also benefit a couple of
other usecases.
Since the introduction of Apple Desktop Bus and Universal
Serial Bus, users may even install multiple keyboards in
parallel.
Every keyboard layout does have its benefits, e.g. the US
keyboard layout is good for many software developers
(square and curly brackets are seperate keys), while
accents and umlauts in most european languages also
have
their respective own keys, and yet some country-specific
layouts are quite far away from "qwerty", but users are
very much accustomed to those layouts.
I've seen many software developers and translators who
are
using different keyboard layouts to assist in their job, so
they started typing "blind" using a different keyboard
layout. Even after years of training, they still do have to
take a look at the "actual" keyboard layout (or even
worse:
the non-actual keyboard layout).
The layout for some regions (e.g. France, Turkey or
Russia) is that different from qwerty and the switching is
that annoying that quite a few users are actually
installing
two keyboards at the same time (ADB, USB and Bluetooth
don't have a problem with this), switch the systemwide
operating system's idea of default keyboard layout via a
hotkey or menu option, then start typing on "the other"
keyboard.
Operating systems like recent Windows releases even do
"enhance" those ideas by switching the keyboard layout
with each application. However, this doesn't do the job
that well: a translator both translates his client's texts
e.g.
in Microsoft Word and he also writes his bills and does
part
of his bookkeeping in Microsoft Word. One job uses
keyboard layout A, the other job does use keyboard
layout
B.
The introduction of a "keyboard layout" attribute would
assist those users pretty much: if you're typing the "ä" key
on the "german" keyboard, you actually do receive an "ä".
If you're hitting the "]" key on your US keyboard, you do
receive an "]".
The only backdraw with this idea is: you need support
both in Hardware (keyboard) and software (operating
system). So it does take companies like Apple or
Microsoft to get this idea working :-)
A fairly low-level implementation of this idea might use
e.g. the USB device's serial number or position in the USB
hub device tree to specify the keyboard layout and make
the operating system automatically switch the layout
according to the actual device being used. However,
many keyboards do specify exactly the same serial
number via USB, and the exact position in the USB device
tree does also depend on pretty many factors.