There are three Unicode keymap definition method available in QMK:
Supports Unicode input up to 0xFFFF. The keycode function is UC(n)
in
keymap file, where n is a 4 digit hexadecimal.
Supports Unicode up to 0xFFFFFFFF. You need to maintain a separate mapping
table const uint32_t PROGMEM unicode_map[] = {...}
in your keymap file.
The keycode function is X(n)
where n is the array index of the mapping
table.
TBD
Unicode input in QMK works by inputing a sequence of characters to the OS, sort of like macro. Unfortunately, each OS has different ideas on how Unicode is input.
This is the current list of Unicode input method in QMK:
HKEY_CURRENT_USER\Control Panel\Input Method\EnableHexNumpad
of type REG_SZ
called EnableHexNumpad
, set its value to 1, and reboot. This method is not recommended because of reliability and compatibility issue, use WinCompose method below instead.To type multiple characters for things like (ノಠ痊ಠ)ノ彡┻━┻, you can use send_unicode_hex_string()
much like SEND_STRING()
except you would use hex values seperated by spaces.
For example, the table flip seen above would be send_unicode_hex_string("0028 30CE 0CA0 75CA 0CA0 0029 30CE 5F61 253B 2501 253B")
There are many ways to get a hex code, but an easy one is this site. Just make sure to convert to hexadecimal, and that is your string.
In quantum/keymap_extras/
, you'll see various language files - these work the same way as the alternative layout ones do. Most are defined by their two letter country/language code followed by an underscore and a 4-letter abbreviation of its name. FR_UGRV
which will result in a ù
when using a software-implemented AZERTY layout. It's currently difficult to send such characters in just the firmware.
AutoHotkey allows Windows users to create custom hotkeys among others.
The method does not require Unicode support in the keyboard itself but depends instead of AutoHotkey running in the background.
First you need to select a modifier combination that is not in use by any of your programs.
CtrlAltWin is not used very widely and should therefore be perfect for this.
There is a macro defined for a mod-tab combo LCAG_T
.
Add this mod-tab combo to a key on your keyboard, e.g.: LCAG_T(KC_TAB)
.
This makes the key behave like a tab key if pressed and released immediately but changes it to the modifier if used with another key.
In the default script of AutoHotkey you can define custom hotkeys.
<^<!<#a::Send, ä
<^<!<#<+a::Send, Ä
The hotkeys above are for the combination CtrlAltGui and CtrlAltGuiShift plus the letter a.
AutoHotkey inserts the Text right of Send,
when this combination is pressed.