aboutsummaryrefslogtreecommitdiff
path: root/docs/feature_unicode.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/feature_unicode.md')
-rw-r--r--docs/feature_unicode.md55
1 files changed, 55 insertions, 0 deletions
diff --git a/docs/feature_unicode.md b/docs/feature_unicode.md
new file mode 100644
index 000000000..2dfb38d96
--- /dev/null
+++ b/docs/feature_unicode.md
@@ -0,0 +1,55 @@
1# Unicode support
2
3There are three Unicode keymap definition method available in QMK:
4
5## UNICODE_ENABLE
6
7Supports Unicode input up to 0xFFFF. The keycode function is `UC(n)` in
8keymap file, where *n* is a 4 digit hexadecimal.
9
10## UNICODEMAP_ENABLE
11
12Supports Unicode up to 0xFFFFFFFF. You need to maintain a separate mapping
13table `const uint32_t PROGMEM unicode_map[] = {...}` in your keymap file.
14The keycode function is `X(n)` where *n* is the array index of the mapping
15table.
16
17## UCIS_ENABLE
18
19TBD
20
21Unicode input in QMK works by inputing a sequence of characters to the OS,
22sort of like macro. Unfortunately, each OS has different ideas on how Unicode is inputted.
23
24This is the current list of Unicode input method in QMK:
25
26* UC_OSX: MacOS Unicode Hex Input support. Works only up to 0xFFFF. Disabled by default. To enable: go to System Preferences -> Keyboard -> Input Sources, and enable Unicode Hex.
27* UC_OSX_RALT: Same as UC_OSX, but sends the Rigt Alt key for unicode input
28* UC_LNX: Unicode input method under Linux. Works up to 0xFFFFF. Should work almost anywhere on ibus enabled distros. Without ibus, this works under GTK apps, but rarely anywhere else.
29* UC_WIN: (not recommended) Windows built-in Unicode input. To enable: create registry key under `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.
30* UC_WINC: Windows Unicode input using WinCompose. Requires [WinCompose](https://github.com/samhocevar/wincompose). Works reliably under many (all?) variations of Windows.
31
32# Additional language support
33
34In `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.
35
36# International Characters on Windows
37
38[AutoHotkey](https://autohotkey.com) allows Windows users to create custom hotkeys among others.
39
40The method does not require Unicode support in the keyboard itself but depends instead of AutoHotkey running in the background.
41
42First you need to select a modifier combination that is not in use by any of your programs.
43CtrlAltWin is not used very widely and should therefore be perfect for this.
44There is a macro defined for a mod-tab combo `LCAG_T`.
45Add this mod-tab combo to a key on your keyboard, e.g.: `LCAG_T(KC_TAB)`.
46This makes the key behave like a tab key if pressed and released immediately but changes it to the modifier if used with another key.
47
48In the default script of AutoHotkey you can define custom hotkeys.
49
50 <^<!<#a::Send, ä
51 <^<!<#<+a::Send, Ä
52
53The hotkeys above are for the combination CtrlAltGui and CtrlAltGuiShift plus the letter a.
54AutoHotkey inserts the Text right of `Send, ` when this combination is pressed.
55