Languages & Unicode Input
PolyKybd does two related things with languages: it can switch its on-screen keyboard layout between ~156 languages, and it can type Unicode characters (emoji, accented letters) on any OS.
The language layer
Section titled “The language layer”PolyKybd ships with around 156 keyboard-language layouts. Press the Language/Globe key
[ 🌐 ] to open the language picker. On this layer each key shows a country flag and its
xx-YY language code (for example de-DE, fr-FR, es-MX), with a frame drawn around the
currently selected language.
Switching the layout re-renders every keycap, accents and AltGr symbols included — these are real keycaps, not a diagram:

The same keys after switching to a Greek layout — a different script entirely, no hardware change:

Pick a language and PolyKybd does two things at once:
- Switches the keycap legends so every key shows the characters for that layout.
- Tells the host OS to switch input language, so what you type matches what the keys show.
Your selection persists across reboots. Because the language list is shared by both hardware variants, split72 and split42 support the same set of languages.
What a keycap shows
Section titled “What a keycap shows”A single keycap carries up to three things at once, in fixed places:

- The main legend, drawn largest and to the left — what the key types on its own. Just how large is adjustable; these examples use the default.
- The Shift preview, small in the upper right — what you get holding Shift.
- The AltGr hint, small in the lower right — what you get holding AltGr.
The two small ones are previews, so you can find a symbol without hunting for it. They appear only when the key actually has something to show: on most layouts a plain letter has no Shift preview, because its capital is no surprise.
The Intl layer: accented letters on demand
Section titled “The Intl layer: accented letters on demand”Switching your whole layout is the right move when you write in another language. When you only
need the occasional accented letter — a name, a loanword, a single ñ in an English sentence —
there is the Intl layer. Hold the Intl key [ İñțł ] and the letters that have accented
forms show one:
| Hold Intl, press… | You get |
|---|---|
a |
à (or whichever variation you picked for a) |
s |
ș |
e |
é |
Press the letter and PolyKybd types that character — no dead keys, no compose sequence, no layout
switch. Every letter of the alphabet carries variations — 549 in all, covering every accented
form Unicode has a single character for. o has the most at 36, then a and u at 30 and e
at 25; even q and x have a couple.
Choosing which accent a letter types
Section titled “Choosing which accent a letter types”Each letter remembers one variation at a time — the one on its keycap. To change it, use the picker on the number row.
- Hold Intl.
- Press the letter you want to change, so the keyboard knows which one you mean.
- Tap Ctrl [ Á»Æ ]. The Ctrl keycap turns inverted — dark legend on a lit key — to show the picker is armed, and the number row fills with that letter’s variations.
- If the letter has more than a row’s worth, step through them with the page arrows at either end of the picker row.
- Press the key under the accent you want.
That becomes the letter’s variation from then on, and it survives a reboot. The picker closes as soon as you pick, and reopens on the first page.

Giving one letter several keys
Section titled “Giving one letter several keys”The picker chooses another form of the letter a key already hosts, so it can only ever give you
one accent per key. French wants è é and ê at the same time — three forms of one letter, and
only one e key to put them on.
So a key can be reassigned to host a different letter:
- Hold Intl.
- Tap the remap key [ à»ñ ], next to the picker’s Ctrl. It inverts, and the board blanks down to just the keys you are allowed to choose from.
- Press the key you want to change. It inverts too.
- Press the letter it should host.
That key now carries the chosen letter’s variations, and its own picker works exactly as before —
so you can give each of them a different accent. q and j are good candidates: they have one and
two variations of their own, which makes them close to dead keys on this layer otherwise.

Punctuation keys can host a letter too — ` ' , . / ; [ ] = on split72, and
; , . / on split42. Which ones you get is decided by the layout: a key that isn’t on the
Intl layer simply never offers itself. An unmapped punctuation key keeps typing its own symbol, so
nothing changes until you deliberately remap it.
When a letter needs more than one row
Section titled “When a letter needs more than one row”The picker row holds 12 variations at a time on split72 and 10 on split42, so the richest letters span several pages. The two page arrows sit at the outer ends of the row — back on the far left of the left half, forward on the far right of the right half — the same places the emoji and language layers put theirs, so paging is one gesture everywhere. They wrap in both directions — past the last page returns to the first, before the first returns to the last — so you can never get stranded partway through a letter.
| Letters that page | Most pages | |
|---|---|---|
| split72 (12 per row) | a e i o u |
3 (o) |
| split42 (10 per row) | a e i n o s t u y |
4 (o) |
Every other letter fits on a single row, and there the arrows stay blank — if you see no arrows, you are already looking at all of them.
The inverted Ctrl keycap is the thing to look for: if it’s lit, the number row is a picker and the digits won’t type numbers.
Romanian and the comma-below letters
Section titled “Romanian and the comma-below letters”Romanian’s ș and ț use a comma below the letter, not a cedilla — ș is a genuinely
different character from ş, and using the wrong one is a spelling error in Romanian. Both cases of
both letters are available as variations of s and t.
What the full set adds
Section titled “What the full set adds”The picker now carries every accented letter that Unicode encodes as a single character. These are the writing systems that gained the most from that — the middle column is what was missing before, not the whole of what each one uses:
| Language or system | Letters it gained |
|---|---|
| Welsh | ẁ ẃ ẅ ỳ — the grave, acute and diaeresis forms of w and y (the circumflex ŵ ŷ were already there) |
| Irish | the séimhiú dotted consonants ḃ ċ ḋ ḟ ġ ṁ ṗ ṡ ṫ |
| Guaraní | Ẽ and Ỹ, the capitals that had no partner for the existing lower-case forms |
| Vietnamese | the horned vowels ơ ư, including their tone combinations |
| Pinyin | 3rd-tone carons and the full ü set |
| African reference alphabet | the hook letters ɓ ɗ ƙ ƴ and relatives |
Emoji layer
Section titled “Emoji layer”PolyKybd also has a dedicated emoji layer that turns the keycaps into a visual emoji picker — each key previews an emoji, grouped into categories along the top row, so you choose one by sight instead of memorising a codepoint. Your most-recently-used emoji are kept close at hand.

Close up, a single 72×40 px keycap rendering one emoji:

Unicode input
Section titled “Unicode input”PolyKybd also supports Unicode input for emoji, accented characters (Æ, Ç, È, …), and any other Unicode codepoint. Because each OS handles Unicode input differently, you must first tell the keyboard which mode to use.
Selecting your OS input mode
Section titled “Selecting your OS input mode”Press the Language/Globe key [ 🌐 ] to reach the OS selection. Choose the entry matching your operating system and preferred input method:
| Key label | Use on |
|---|---|
| Mac | macOS — requires setup below |
| Lnx | Linux with IBus and compatible apps/window managers |
| BSD | BSD (currently unimplemented in QMK) |
| Emcs | Emacs (untested) |
| Win | Windows, unicode up to U+FFFF (no emoji) — requires registry edit below |
| WinC | Windows with WinCompose installed — full unicode including emoji |
Your selection is saved to the keyboard and persists across reboots.
Per-OS setup
Section titled “Per-OS setup”Follow the QMK macOS unicode setup guide:
- Open System Settings → Keyboard → Text Input → Input Sources
- Add the Unicode Hex Input input source
- Select it when you want to type unicode characters
Then press Mac on the PolyKybd language selector.
IBus must be installed and running as your input method framework. Most major desktop environments (GNOME, KDE) support this.
Press Lnx on the PolyKybd language selector.
Windows supports unicode input up to code point U+FFFF (this excludes emoji). First enable hex numpad input:
reg add "HKCU\Control Panel\Input Method" -v EnableHexNumpad -t REG_SZ -d 1Log out and back in (or reboot) after running this.
Then press Win on the PolyKybd language selector.
WinCompose adds a compose key mechanism to Windows with full unicode support including emoji.
- Download and install WinCompose — we maintain a fork of Sam Hocevar’s original, since it is no longer actively developed
- Launch it — it runs in the system tray
- Press WinC on the PolyKybd language selector
Typing unicode characters
Section titled “Typing unicode characters”Once your OS mode is set, press any key that has a unicode character assigned in the keymap (such as an emoji or accented character). The keyboard sends the appropriate input sequence for your OS automatically.
Unicode character assignments are configured in the QMK keymap source. See Keymaps & Layers for how to modify them.