diff options
Diffstat (limited to 'docs/feature_unicode.md')
-rw-r--r-- | docs/feature_unicode.md | 55 |
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 | |||
3 | There are three Unicode keymap definition method available in QMK: | ||
4 | |||
5 | ## UNICODE_ENABLE | ||
6 | |||
7 | Supports Unicode input up to 0xFFFF. The keycode function is `UC(n)` in | ||
8 | keymap file, where *n* is a 4 digit hexadecimal. | ||
9 | |||
10 | ## UNICODEMAP_ENABLE | ||
11 | |||
12 | Supports Unicode up to 0xFFFFFFFF. You need to maintain a separate mapping | ||
13 | table `const uint32_t PROGMEM unicode_map[] = {...}` in your keymap file. | ||
14 | The keycode function is `X(n)` where *n* is the array index of the mapping | ||
15 | table. | ||
16 | |||
17 | ## UCIS_ENABLE | ||
18 | |||
19 | TBD | ||
20 | |||
21 | Unicode input in QMK works by inputing a sequence of characters to the OS, | ||
22 | sort of like macro. Unfortunately, each OS has different ideas on how Unicode is inputted. | ||
23 | |||
24 | This 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 | |||
34 | 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. | ||
35 | |||
36 | # International Characters on Windows | ||
37 | |||
38 | [AutoHotkey](https://autohotkey.com) allows Windows users to create custom hotkeys among others. | ||
39 | |||
40 | The method does not require Unicode support in the keyboard itself but depends instead of AutoHotkey running in the background. | ||
41 | |||
42 | First you need to select a modifier combination that is not in use by any of your programs. | ||
43 | CtrlAltWin is not used very widely and should therefore be perfect for this. | ||
44 | There is a macro defined for a mod-tab combo `LCAG_T`. | ||
45 | Add this mod-tab combo to a key on your keyboard, e.g.: `LCAG_T(KC_TAB)`. | ||
46 | 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. | ||
47 | |||
48 | In the default script of AutoHotkey you can define custom hotkeys. | ||
49 | |||
50 | <^<!<#a::Send, ä | ||
51 | <^<!<#<+a::Send, Ä | ||
52 | |||
53 | The hotkeys above are for the combination CtrlAltGui and CtrlAltGuiShift plus the letter a. | ||
54 | AutoHotkey inserts the Text right of `Send, ` when this combination is pressed. | ||
55 | |||