International Keyboard Setup¶
If you are a user typing in a language other than US English, this section is for you.
A background on Keyboard, HID and Locale¶
Imagine a standard keyboard. On that keyboard, there are keys with letters, numbers, and symbols. These keys don't have actual letters printed on them; they are more like buttons with no words. To your computer, this is actually how all keyboards appear: all that the computer ‘sees’ when you type is the positions of the keys you press.
When you press one of these keys, like the key marked with the letter 'A', you'd expect the letter 'A' to appear on your screen. But here's the catch: keyboards in different countries have different letters and symbols on the same keys.
So, to make sure your computer understands what you're trying to type, there's a unique code for each key position on the keyboard1. When you press a key, the keyboard sends this unique code to the computer. This unique code is known as the HID keycode.
Info
HID keyboards are devices that follow the USB standard and protocol to connect as keyboards. HID stands for Human Interface Device, and keyboards are part of this family (along with other devices like mice, hard drives, and memory sticks).
Now, your computer knows these unique codes for all the key positions on all sorts of keyboards. But it also needs to know which language or country you're using, because different countries have different letters and symbols on the same keyboard keys. (Some international keyboards also add extra keys with additional unique codes that are not present on all keyboards. For example, the German keyboard has a key marked “<>
” whose code is not used on US English keyboards.)
So, your computer has something like a translation book that tells it what each code means in different languages or countries. Let's say you're using a French keyboard, and you press the key in the top left that’s marked 'A.' Your keyboard sends the unique code for that position to the computer. The translation book says, "When you get this code from a French keyboard, show the letter 'A'. But on a US English keyboard, the translation book would instead say to show the letter ‘Q’. The translation book is the locale.
That's how your computer knows which letter or symbol to show on the screen, even if you have a keyboard from another country. The locale set on your computer must match the locale of your keyboard. If the locales of the two ends are not matched, the computer will interpret a HID keycode differently from how you intended.
What locale to set to?¶
You should set the locale of your layout to match the locale set on your devices.
Currently Glove80 Layout Editor supports these locales:
- en-US: US English keyboard. This is the default locale
- da-DK: Danish keyboard (Windows/Linux)
- da-DK-mac: Danish keyboard (macOS)
- de-DE: German keyboard
- en-GB: UK English keyboard (Windows/Linux)
- en-GB-mac: UK English keyboard (macOS)
- fr-FR-AZERTY: France AZERTY keyboard (Windows/Linux)
- fr-FR-AZERTY-mac: France AZERTY keyboard (macOS)
- fr-FR-BÉPO: France BÉPO keyboard
- fr-FR-OPTIMOT: France Optimot keyboard
- jp-JP: Japanese 日本語 keyboard
- ko-KR: Korean 한글 keyboard
- nb-NO: Norwegian Bokmål keyboard (Windows/Linux)
- nb-NO-mac: Norwegian Bokmål keyboard (macOS)
- ru-RU: Russian keyboard
- sv-SE: Sweden keyboard
- uk-UA: Ukrainian keyboard
Keycodes¶
When you select a locale that is not en-US, you will notice the keycodes available for selection would be changed to match the locale.
Some of the en-US keycodes are hidden to avoid confusion. A new set of locale specific keycodes are available for selection These locale specific keycodes are prefixed with the language code:
- da-DK: DA_
- da-DK-mac: DA_
- de-DE: DE_
- en-GB: GB_
- en-GB-mac: GB_
- fr-FR-AZERTY: FR_
- fr-FR-AZERTY-mac: FR_
- fr-FR-BÉPO: BÉPO_
- fr-FR-OPTIMOT: OPTOMOT_
- jp-JP: JP_
- ko-KR: KO_
- nb-NO: NB_
- nb-NO-mac: NB_
- ru-RU: RU_
- sv-SE: SV_
- uk-UA: UK_
For example, for da-DK locale, some of the locale specific keycodes (which are prefixed with DA_) are as follows:
For example, for ja-JP locale, some of the locale specific keycodes (which are prefixed with JP_) are as follows:
Taking Off the "Glove"¶
With a fully programmable keyboard like the Glove80, things get more complex—but don't worry, we've handled the hard part for you! On any layer of your programmable keyboard, you can assign any keypress or key combination. In the layout editor, when you configure a key, you are assigning its HID keycode. It's the layout editor that performs the translation to the correct HID keycode based on the selected locale, not the Glove80 itself. The Glove80 firmware simply sends this pre-translated HID keycode to your computer. Your computer’s operating system then interprets this HID keycode according to its own configured locale.
In short: The Glove80, when configured via the layout editor, can "pretend" to be an AZERTY, QWERTY, QWERTZ, or any other keyboard layout.
Example: Suppose your computer is set to the French AZERTY locale. To ensure correct output, you should also set your Glove80 layout editor to AZERTY. This way, when you configure a key on a layer to output an 'A' in the layout editor, the layout editor knows to translate this to the HID keycode for 'Q' (because that’s where 'A' is located on AZERTY) and programs the keyboard to send that code. The computer then receives this HID keycode and correctly interprets it as 'A'.
It sounds a bit complicated, but as long as your Glove80 layout editor locale matches your computer’s locale, everything will work smoothly, and you only need to think about key effects in terms of what you want to type. For example, if both your Glove80 layout editor and computer are set to QWERTZ, everything will behave as expected.
Info
It’s practical to set your Glove80 layout editor and computer locale to match the layout of your spare (basic) keyboards—whether AZERTY, QWERTY, or QWERTZ. That way, if you ever need to plug in a backup keyboard, everything will work as expected without extra configuration.
-
Historically, this is because the same internal electronics that sent fixed keycodes were used for keyboards in different countries, and only the printed labels on the keycaps differed. With a programmable keyboard like Glove80, any key position can be configured to send any keycode, but the meaning of each keycode it sends is still interpreted by the computer’s locale settings. ↩