From 746d1ede17e2b63efb5a9311490fcd71a3b4f4c7 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 27 Aug 2024 08:05:45 +1000 Subject: [PATCH] Changelog update with actual `qmk_userspace_via` link. (#24332) --- .../extras/keycodes_eurkey_0.0.1.hjson | 596 ++++++++++++++++++ docs/ChangeLog/20240825.md | 4 +- docs/reference_keymap_extras.md | 1 + quantum/keymap_extras/keymap_eurkey.h | 166 +++++ 4 files changed, 765 insertions(+), 2 deletions(-) create mode 100644 data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson create mode 100644 quantum/keymap_extras/keymap_eurkey.h diff --git a/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson b/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson new file mode 100644 index 000000000000..bd120104985e --- /dev/null +++ b/data/constants/keycodes/extras/keycodes_eurkey_0.0.1.hjson @@ -0,0 +1,596 @@ +{ + "aliases": { +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + "KC_GRV": { + "key": "EU_GRV", + "label": "`", + } + "KC_1": { + "key": "EU_1", + "label": "1", + } + "KC_2": { + "key": "EU_2", + "label": "2", + } + "KC_3": { + "key": "EU_3", + "label": "3", + } + "KC_4": { + "key": "EU_4", + "label": "4", + } + "KC_5": { + "key": "EU_5", + "label": "5", + } + "KC_6": { + "key": "EU_6", + "label": "6", + } + "KC_7": { + "key": "EU_7", + "label": "7", + } + "KC_8": { + "key": "EU_8", + "label": "8", + } + "KC_9": { + "key": "EU_9", + "label": "9", + } + "KC_0": { + "key": "EU_0", + "label": "0", + } + "KC_MINS": { + "key": "EU_MINS", + "label": "-", + } + "KC_EQL": { + "key": "EU_EQL", + "label": "=", + } + "KC_Q": { + "key": "EU_Q", + "label": "Q", + } + "KC_W": { + "key": "EU_W", + "label": "W", + } + "KC_E": { + "key": "EU_E", + "label": "E", + } + "KC_R": { + "key": "EU_R", + "label": "R", + } + "KC_T": { + "key": "EU_T", + "label": "T", + } + "KC_Y": { + "key": "EU_Y", + "label": "Y", + } + "KC_U": { + "key": "EU_U", + "label": "U", + } + "KC_I": { + "key": "EU_I", + "label": "I", + } + "KC_O": { + "key": "EU_O", + "label": "O", + } + "KC_P": { + "key": "EU_P", + "label": "P", + } + "KC_LBRC": { + "key": "EU_LBRC", + "label": "[", + } + "KC_RBRC": { + "key": "EU_RBRC", + "label": "]", + } + "KC_BSLS": { + "key": "EU_BSLS", + "label": "\\", + } + "KC_A": { + "key": "EU_A", + "label": "A", + } + "KC_S": { + "key": "EU_S", + "label": "S", + } + "KC_D": { + "key": "EU_D", + "label": "D", + } + "KC_F": { + "key": "EU_F", + "label": "F", + } + "KC_G": { + "key": "EU_G", + "label": "G", + } + "KC_H": { + "key": "EU_H", + "label": "H", + } + "KC_J": { + "key": "EU_J", + "label": "J", + } + "KC_K": { + "key": "EU_K", + "label": "K", + } + "KC_L": { + "key": "EU_L", + "label": "L", + } + "KC_SCLN": { + "key": "EU_SCLN", + "label": ";", + } + "KC_QUOT": { + "key": "EU_QUOT", + "label": "'", + } + "KC_Z": { + "key": "EU_Z", + "label": "Z", + } + "KC_X": { + "key": "EU_X", + "label": "X", + } + "KC_C": { + "key": "EU_C", + "label": "C", + } + "KC_V": { + "key": "EU_V", + "label": "V", + } + "KC_B": { + "key": "EU_B", + "label": "B", + } + "KC_N": { + "key": "EU_N", + "label": "N", + } + "KC_M": { + "key": "EU_M", + "label": "M", + } + "KC_COMM": { + "key": "EU_COMM", + "label": ",", + } + "KC_DOT": { + "key": "EU_DOT", + "label": ".", + } + "KC_SLSH": { + "key": "EU_SLSH", + "label": "/", + } +/* Shifted symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ { │ } │ | │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ │ │ │ │ │ │ │ │ │ │ : │ " │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ │ │ │ │ │ │ │ │ < │ > │ ? │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + "S(EU_GRV)": { + "key": "EU_TILD", + "label": "~", + } + "S(EU_1)": { + "key": "EU_EXLM", + "label": "!", + } + "S(EU_2)": { + "key": "EU_AT", + "label": "@", + } + "S(EU_3)": { + "key": "EU_HASH", + "label": "#", + } + "S(EU_4)": { + "key": "EU_DLR", + "label": "$", + } + "S(EU_5)": { + "key": "EU_PERC", + "label": "%", + } + "S(EU_6)": { + "key": "EU_CIRC", + "label": "^", + } + "S(EU_7)": { + "key": "EU_AMPR", + "label": "&", + } + "S(EU_8)": { + "key": "EU_ASTR", + "label": "*", + } + "S(EU_9)": { + "key": "EU_LPRN", + "label": "(", + } + "S(EU_0)": { + "key": "EU_RPRN", + "label": ")", + } + "S(EU_MINS)": { + "key": "EU_UNDS", + "label": "_", + } + "S(EU_EQL)": { + "key": "EU_PLUS", + "label": "+", + } + "S(EU_LBRC)": { + "key": "EU_LCBR", + "label": "{", + } + "S(EU_RBRC)": { + "key": "EU_RCBR", + "label": "}", + } + "S(EU_BSLS)": { + "key": "EU_PIPE", + "label": "|", + } + "S(EU_SCLN)": { + "key": "EU_COLN", + "label": ":", + } + "S(EU_QUOT)": { + "key": "EU_DQUO", + "label": "\"", + } + "S(EU_COMM)": { + "key": "EU_LABK", + "label": "<", + } + "S(EU_DOT)": { + "key": "EU_RABK", + "label": ">", + } + "S(EU_SLSH)": { + "key": "EU_QUES", + "label": "?", + } +/* AltGr symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ` │ ¡ │ ª │ º │ £ │ € │ ^ │ ˚ │ „ │ “ │ ” │ – │ × │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ æ │ å │ ë │ ý │ þ │ ÿ │ ü │ ï │ ö │ œ │ « │ » │ ¬ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ │ ä │ ß │ ð │ è │ é │ ù │ ú │ ij │ ø │ ° │ ´ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ │ à │ á │ ç │ ì │ í │ ñ │ α │ ò │ ó │ ¿ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + "ALGR(EU_GRV)": { + "key": "EU_DGRV", + "label": "` (dead)", + } + "ALGR(EU_1)": { + "key": "EU_IEXL", + "label": "¡", + } + "ALGR(EU_2)": { + "key": "EU_SUPA", + "label": "ª", + } + "ALGR(EU_3)": { + "key": "EU_MORD", + "label": "º", + } + "ALGR(EU_4)": { + "key": "EU_PND", + "label": "£", + } + "ALGR(EU_5)": { + "key": "EU_EURO", + "label": "€", + } + "ALGR(EU_6)": { + "key": "EU_DCIR", + "label": "^ (dead)", + } + "ALGR(EU_7)": { + "key": "EU_RNGA", + "label": "º (dead)", + } + "ALGR(EU_8)": { + "key": "EU_DLQU", + "label": "„", + } + "ALGR(EU_9)": { + "key": "EU_LDQU", + "label": "“", + } + "ALGR(EU_0)": { + "key": "EU_RDQU", + "label": "”", + } + "ALGR(EU_MINS)": { + "key": "EU_NDSH", + "label": "–", + } + "ALGR(EU_EQL)": { + "key": "EU_MUL", + "label": "×", + } + "ALGR(EU_Q)": { + "key": "EU_AE", + "label": "æ", + } + "ALGR(EU_W)": { + "key": "EU_ARNG", + "label": "Å", + } + "ALGR(EU_E)": { + "key": "EU_EDIA", + "label": "Ë", + } + "ALGR(EU_R)": { + "key": "EU_YACU", + "label": "Ý", + } + "ALGR(EU_T)": { + "key": "EU_THRN", + "label": "Þ", + } + "ALGR(EU_Y)": { + "key": "EU_YDIA", + "label": "Ÿ", + } + "ALGR(EU_U)": { + "key": "EU_UDIA", + "label": "Ü", + } + "ALGR(EU_I)": { + "key": "EU_IDIA", + "label": "Ï", + } + "ALGR(EU_O)": { + "key": "EU_ODIA", + "label": "Ö", + } + "ALGR(EU_P)": { + "key": "EU_OE", + "label": "Œ", + } + "ALGR(EU_LBRC)": { + "key": "EU_LDAQ", + "label": "«", + } + "ALGR(EU_RBRC)": { + "key": "EU_RDAQ", + "label": "»", + } + "ALGR(EU_BSLS)": { + "key": "EU_NOT", + "label": "¬", + } + "ALGR(EU_A)": { + "key": "EU_ADIA", + "label": "Ä", + } + "ALGR(EU_S)": { + "key": "EU_SS", + "label": "ß", + } + "ALGR(EU_D)": { + "key": "EU_ETH", + "label": "Ð", + } + "ALGR(EU_F)": { + "key": "EU_EGRV", + "label": "È", + } + "ALGR(EU_G)": { + "key": "EU_EACU", + "label": "É", + } + "ALGR(EU_H)": { + "key": "EU_UGRV", + "label": "Ù", + } + "ALGR(EU_J)": { + "key": "EU_UACU", + "label": "Ú", + } + "ALGR(EU_K)": { + "key": "EU_IJ", + "label": "IJ", + } + "ALGR(EU_L)": { + "key": "EU_OSTR", + "label": "Ø", + } + "ALGR(EU_SCLN)": { + "key": "EU_DEG", + "label": "°", + } + "ALGR(EU_QUOT)": { + "key": "EU_ACUT", + "label": "´ (dead)", + } + "ALGR(EU_Z)": { + "key": "EU_AGRV", + "label": "À", + } + "ALGR(EU_X)": { + "key": "EU_AACU", + "label": "Á", + } + "ALGR(EU_C)": { + "key": "EU_CCED", + "label": "Ç", + } + "ALGR(EU_V)": { + "key": "EU_IGRV", + "label": "Ì", + } + "ALGR(EU_B)": { + "key": "EU_IACU", + "label": "Í", + } + "ALGR(EU_N)": { + "key": "EU_NTIL", + "label": "Ñ", + } + "ALGR(EU_M)": { + "key": "EU_GRK", + "label": "one shot greek letter (dead)", + } + "ALGR(EU_COMM)": { + "key": "EU_OGRV", + "label": "Ò", + } + "ALGR(EU_DOT)": { + "key": "EU_OACU", + "label": "Ó", + } + "ALGR(EU_SLSH)": { + "key": "EU_IQUE", + "label": "¿", + } +/* Shift+AltGr symbols + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ~ │ ¹ │ ² │ ³ │ ¥ │ ¢ │ ˇ │ ¯ │ ‚ │ ‘ │ ’ │ — │ ÷ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ ‹ │ › │ ¦ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ │ │ § │ │ │ │ │ │ │ │ · │ ¨ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ │ │ │ │ │ │ │ │ │ │ … │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + "ALGR(EU_TILD)": { + "key": "EU_DTIL", + "label": "~ (dead)", + } + "S(ALGR(EU_1))": { + "key": "EU_SUP1", + "label": "¹", + } + "S(ALGR(EU_2))": { + "key": "EU_SUP2", + "label": "²", + } + "S(ALGR(EU_3))": { + "key": "EU_SUP3", + "label": "³", + } + "ALGR(EU_DLR)": { + "key": "EU_YEN", + "label": "¥", + } + "S(EU_EURO)": { + "key": "EU_CENT", + "label": "¢", + } + "S(EU_DCIR)": { + "key": "EU_CARN", + "label": "ˇ (dead)", + } + "S(ALGR(EU_7))": { + "key": "EU_MACR", + "label": "¯ (dead)", + } + "S(EU_DLQU)": { + "key": "EU_SLQU", + "label": "‚", + } + "S(EU_LDQU)": { + "key": "EU_LSQU", + "label": "‘", + } + "S(EU_RDQU)": { + "key": "EU_RSQU", + "label": "’", + } + "S(EU_NDSH)": { + "key": "EU_MDSH", + "label": "—", + } + "S(EU_MUL)": { + "key": "EU_DIV", + "label": "÷", + } + "S(EU_LDAQ)": { + "key": "EU_LSAQ", + "label": "‹", + } + "S(EU_RDAQ)": { + "key": "EU_RSAQ", + "label": "›", + } + "S(ALGR(EU_BSLS))": { + "key": "EU_BRKP", + "label": "¦", + } + "S(ALGR(EU_S))": { + "key": "EU_SECT", + "label": "§", + } + "S(ALGR(EU_SCLN))": { + "key": "EU_MDDT", + "label": "·", + } + "ALGR(EU_DQUO)": { + "key": "EU_DIAE", + "label": "¨ (dead)", + } + "ALGR(EU_QUES)": { + "key": "EU_ELLP", + "label": "…", + } + } +} \ No newline at end of file diff --git a/docs/ChangeLog/20240825.md b/docs/ChangeLog/20240825.md index c8525b339623..943347cebcc8 100644 --- a/docs/ChangeLog/20240825.md +++ b/docs/ChangeLog/20240825.md @@ -4,7 +4,7 @@ August 2024 brings another maintenance release of QMK. Almost all PRs this cycle were to do with cleanup or re-organization of existing features and code. -One key item is that there are no longer any `via`-enabled keymaps in the QMK repository -- these have all transitioned to an [External Userspace](../newbs_external_userspace) repository under the VIA team's control. Going forward, all PRs to `qmk_firmware` must not contain `via` keymaps; these should instead be redirected to the the VIA team's repo: `https://github.com/the-via/qmk_userspace_via` (link placeholder until transfer is completed). +One key item is that there are no longer any `via`-enabled keymaps in the QMK repository -- these have all transitioned to an [External Userspace](../newbs_external_userspace) repository under the VIA team's control. Going forward, all PRs to `qmk_firmware` must not contain `via` keymaps; these should instead be redirected to the [VIA QMK Userspace](https://github.com/the-via/qmk_userspace_via) repository. ## Changes Requiring User Action @@ -76,7 +76,7 @@ In line with the [notice period](../support_deprecation_policy#how-much-advance- ### Migration of VIA keymaps to VIA team control -Last breaking changes cycle, the QMK team informed that [`via` keymaps are moving](./20240526#migration-of-via-keymaps-to-via-team-control) to the control of the VIA team. As of this merge, any `via`-enabled keymaps should now be PR'ed to `https://github.com/the-via/qmk_userspace_via` (link placeholder until transfer is completed). +Last breaking changes cycle, the QMK team informed that [`via` keymaps are moving](./20240526#migration-of-via-keymaps-to-via-team-control) to the control of the VIA team. As of this merge, any `via`-enabled keymaps should now be PR'ed to the [VIA QMK Userspace](https://github.com/the-via/qmk_userspace_via) repository. Any existing or newly-opened PRs against `qmk_firmware` will now be asked to remove any `via`-enabled keymaps from their submissions. diff --git a/docs/reference_keymap_extras.md b/docs/reference_keymap_extras.md index d45183b6c6a1..0371021148f1 100644 --- a/docs/reference_keymap_extras.md +++ b/docs/reference_keymap_extras.md @@ -34,6 +34,7 @@ These headers are located in [`quantum/keymap_extras/`](https://github.com/qmk/q |English (US International, Linux)|`keymap_us_international_linux.h`| | |Estonian |`keymap_estonian.h` |`sendstring_estonian.h` | |Farsi |`keymap_farsi.h` | | +|EurKEY |`keymap_eurkey.h` | | |Finnish |`keymap_finnish.h` |`sendstring_finnish.h` | |French |`keymap_french.h` |`sendstring_french.h` | |French (AFNOR) |`keymap_french_afnor.h` |`sendstring_french_afnor.h` | diff --git a/quantum/keymap_extras/keymap_eurkey.h b/quantum/keymap_extras/keymap_eurkey.h new file mode 100644 index 000000000000..edb90e88f6e1 --- /dev/null +++ b/quantum/keymap_extras/keymap_eurkey.h @@ -0,0 +1,166 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +/******************************************************************************* + 88888888888 888 d8b .d888 d8b 888 d8b + 888 888 Y8P d88P" Y8P 888 Y8P + 888 888 888 888 + 888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b + 888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K + 888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b. + 888 888 888 888 X88 888 888 888 Y8b. 888 X88 + 888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P' + 888 888 + 888 888 + 888 888 + .d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888 + d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888 + 888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888 + Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888 + "Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888 + 888 + Y8b d88P + "Y88P" +*******************************************************************************/ + +#pragma once +#include "keycodes.h" +// clang-format off + +// Aliases +#define EU_GRV KC_GRV // ` +#define EU_1 KC_1 // 1 +#define EU_2 KC_2 // 2 +#define EU_3 KC_3 // 3 +#define EU_4 KC_4 // 4 +#define EU_5 KC_5 // 5 +#define EU_6 KC_6 // 6 +#define EU_7 KC_7 // 7 +#define EU_8 KC_8 // 8 +#define EU_9 KC_9 // 9 +#define EU_0 KC_0 // 0 +#define EU_MINS KC_MINS // - +#define EU_EQL KC_EQL // = +#define EU_Q KC_Q // Q +#define EU_W KC_W // W +#define EU_E KC_E // E +#define EU_R KC_R // R +#define EU_T KC_T // T +#define EU_Y KC_Y // Y +#define EU_U KC_U // U +#define EU_I KC_I // I +#define EU_O KC_O // O +#define EU_P KC_P // P +#define EU_LBRC KC_LBRC // [ +#define EU_RBRC KC_RBRC // ] +#define EU_BSLS KC_BSLS // (backslash) +#define EU_A KC_A // A +#define EU_S KC_S // S +#define EU_D KC_D // D +#define EU_F KC_F // F +#define EU_G KC_G // G +#define EU_H KC_H // H +#define EU_J KC_J // J +#define EU_K KC_K // K +#define EU_L KC_L // L +#define EU_SCLN KC_SCLN // ; +#define EU_QUOT KC_QUOT // ' +#define EU_Z KC_Z // Z +#define EU_X KC_X // X +#define EU_C KC_C // C +#define EU_V KC_V // V +#define EU_B KC_B // B +#define EU_N KC_N // N +#define EU_M KC_M // M +#define EU_COMM KC_COMM // , +#define EU_DOT KC_DOT // . +#define EU_SLSH KC_SLSH // / +#define EU_TILD S(EU_GRV) // ~ +#define EU_EXLM S(EU_1) // ! +#define EU_AT S(EU_2) // @ +#define EU_HASH S(EU_3) // # +#define EU_DLR S(EU_4) // $ +#define EU_PERC S(EU_5) // % +#define EU_CIRC S(EU_6) // ^ +#define EU_AMPR S(EU_7) // & +#define EU_ASTR S(EU_8) // * +#define EU_LPRN S(EU_9) // ( +#define EU_RPRN S(EU_0) // ) +#define EU_UNDS S(EU_MINS) // _ +#define EU_PLUS S(EU_EQL) // + +#define EU_LCBR S(EU_LBRC) // { +#define EU_RCBR S(EU_RBRC) // } +#define EU_PIPE S(EU_BSLS) // | +#define EU_COLN S(EU_SCLN) // : +#define EU_DQUO S(EU_QUOT) // " +#define EU_LABK S(EU_COMM) // < +#define EU_RABK S(EU_DOT) // > +#define EU_QUES S(EU_SLSH) // ? +#define EU_DGRV ALGR(EU_GRV) // ` (dead) +#define EU_IEXL ALGR(EU_1) // ¡ +#define EU_SUPA ALGR(EU_2) // ª +#define EU_MORD ALGR(EU_3) // º +#define EU_PND ALGR(EU_4) // £ +#define EU_EURO ALGR(EU_5) // € +#define EU_DCIR ALGR(EU_6) // ^ (dead) +#define EU_RNGA ALGR(EU_7) // º (dead) +#define EU_DLQU ALGR(EU_8) // „ +#define EU_LDQU ALGR(EU_9) // “ +#define EU_RDQU ALGR(EU_0) // ” +#define EU_NDSH ALGR(EU_MINS) // – +#define EU_MUL ALGR(EU_EQL) // × +#define EU_AE ALGR(EU_Q) // æ +#define EU_ARNG ALGR(EU_W) // Å +#define EU_EDIA ALGR(EU_E) // Ë +#define EU_YACU ALGR(EU_R) // Ý +#define EU_THRN ALGR(EU_T) // Þ +#define EU_YDIA ALGR(EU_Y) // Ÿ +#define EU_UDIA ALGR(EU_U) // Ü +#define EU_IDIA ALGR(EU_I) // Ï +#define EU_ODIA ALGR(EU_O) // Ö +#define EU_OE ALGR(EU_P) // Œ +#define EU_LDAQ ALGR(EU_LBRC) // « +#define EU_RDAQ ALGR(EU_RBRC) // » +#define EU_NOT ALGR(EU_BSLS) // ¬ +#define EU_ADIA ALGR(EU_A) // Ä +#define EU_SS ALGR(EU_S) // ß +#define EU_ETH ALGR(EU_D) // Ð +#define EU_EGRV ALGR(EU_F) // È +#define EU_EACU ALGR(EU_G) // É +#define EU_UGRV ALGR(EU_H) // Ù +#define EU_UACU ALGR(EU_J) // Ú +#define EU_IJ ALGR(EU_K) // IJ +#define EU_OSTR ALGR(EU_L) // Ø +#define EU_DEG ALGR(EU_SCLN) // ° +#define EU_ACUT ALGR(EU_QUOT) // ´ (dead) +#define EU_AGRV ALGR(EU_Z) // À +#define EU_AACU ALGR(EU_X) // Á +#define EU_CCED ALGR(EU_C) // Ç +#define EU_IGRV ALGR(EU_V) // Ì +#define EU_IACU ALGR(EU_B) // Í +#define EU_NTIL ALGR(EU_N) // Ñ +#define EU_GRK ALGR(EU_M) // one shot greek letter (dead) +#define EU_OGRV ALGR(EU_COMM) // Ò +#define EU_OACU ALGR(EU_DOT) // Ó +#define EU_IQUE ALGR(EU_SLSH) // ¿ +#define EU_DTIL ALGR(EU_TILD) // ~ (dead) +#define EU_SUP1 S(ALGR(EU_1)) // ¹ +#define EU_SUP2 S(ALGR(EU_2)) // ² +#define EU_SUP3 S(ALGR(EU_3)) // ³ +#define EU_YEN ALGR(EU_DLR) // ¥ +#define EU_CENT S(EU_EURO) // ¢ +#define EU_CARN S(EU_DCIR) // ˇ (dead) +#define EU_MACR S(ALGR(EU_7)) // ¯ (dead) +#define EU_SLQU S(EU_DLQU) // ‚ +#define EU_LSQU S(EU_LDQU) // ‘ +#define EU_RSQU S(EU_RDQU) // ’ +#define EU_MDSH S(EU_NDSH) // — +#define EU_DIV S(EU_MUL) // ÷ +#define EU_LSAQ S(EU_LDAQ) // ‹ +#define EU_RSAQ S(EU_RDAQ) // › +#define EU_BRKP S(ALGR(EU_BSLS)) // ¦ +#define EU_SECT S(ALGR(EU_S)) // § +#define EU_MDDT S(ALGR(EU_SCLN)) // · +#define EU_DIAE ALGR(EU_DQUO) // ¨ (dead) +#define EU_ELLP ALGR(EU_QUES) // … +