There have been many attempts and prototypes put forward in relation to a computer keyboard that uses dynamic labelling but a lot of these attempts yielded extremely-expensive implementaions.
Why bring about a keyboard with dynamically-labelled keys? One application would be to allow a user to implement a language-specific keyboard layout without having to rely on confusing labelling. Think of a German-speaking user who wants to implement the “QWERTZ” layout or a French-speaking user who wants the “AZERTY” layout, let alone keyboard layouts for the Hebrew, Japanese or other languages that don’t use Latin scripts.
Similarly, you could see implementations like “function key” grids that have keys labelled according to the program or situation. The obvious applications could include CAD/CAM/computer graphics with one touch access to often used commands and shapes; retail / hospitality POS with one-touch access to products and transaction types; let alone hardcore gamers wanting keyboards where they can “drop” actions to gain an upper-hand on their opponents.
For that matter, there could be one keyboard design for accessory keyboards that can be sold around the world, able to be connected to a Windows / Linux or Macintosh computer and showing the layout for the country that it is used in. Similarly a laptop manufacturer could show up with a keyboard that implements a keyboard layout that is particular to a user’s language.
Here, the proposed keyboards would use the E-ink technology that is used in the Amazon Kindle or other e-book readers. This technology would avoid extra layers and the need to keep refreshing the display area. Instead the E-ink’s weaknesses concerning animation may not be of concern for this application and allow for a cheaply-produced dynamically-labeled keyboard or keypad.
Of course, the USB and Bluetooth “human-interface-device” logical device classes would need to be updated to support dynamic labelling for keyboards and the operating systems would need to implement this as part of their class drivers for this device class. Initially we could see manufacturers implementing this function with device drivers and other manufacturer-specific software but there needs to be the action to implement this concept as a device class.