|  |  |  |  | /* Copyright 2016 Didier Loiseau
 | 
					
						
							|  |  |  |  |  * | 
					
						
							|  |  |  |  |  * This program is free software: you can redistribute it and/or modify | 
					
						
							|  |  |  |  |  * it under the terms of the GNU General Public License as published by | 
					
						
							|  |  |  |  |  * the Free Software Foundation, either version 2 of the License, or | 
					
						
							|  |  |  |  |  * (at your option) any later version. | 
					
						
							|  |  |  |  |  * | 
					
						
							|  |  |  |  |  * This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  |  |  * GNU General Public License for more details. | 
					
						
							|  |  |  |  |  * | 
					
						
							|  |  |  |  |  * You should have received a copy of the GNU General Public License | 
					
						
							|  |  |  |  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
					
						
							|  |  |  |  |  */ | 
					
						
							|  |  |  |  | #ifndef KEYMAP_CANADIAN_MULTILINGUAL_H
 | 
					
						
							|  |  |  |  | #define KEYMAP_CANADIAN_MULTILINGUAL_H
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | #include "keymap.h"
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | #ifndef GR2A
 | 
					
						
							|  |  |  |  | #define GR2A(kc)    RCTL(kc)
 | 
					
						
							|  |  |  |  | #endif
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Normal characters
 | 
					
						
							|  |  |  |  | // First row
 | 
					
						
							|  |  |  |  | #define CSA_SLASH   KC_GRV      // /
 | 
					
						
							|  |  |  |  | #define CSA_SLSH    CSA_SLASH
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Second row
 | 
					
						
							|  |  |  |  | #define CSA_DEAD_CIRCUMFLEX     KC_LBRACKET         // dead ^
 | 
					
						
							|  |  |  |  | #define CSA_DCRC                CSA_DEAD_CIRCUMFLEX
 | 
					
						
							|  |  |  |  | #define CSA_C_CEDILLA           KC_RBRACKET         // Ç
 | 
					
						
							|  |  |  |  | #define CSA_CCED                CSA_C_CEDILLA
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Third row
 | 
					
						
							|  |  |  |  | #define CSA_E_GRAVE     KC_QUOT     // è
 | 
					
						
							|  |  |  |  | #define CSA_EGRV        CSA_E_GRAVE
 | 
					
						
							|  |  |  |  | #define CSA_A_GRAVE     KC_BSLASH   // à
 | 
					
						
							|  |  |  |  | #define CSA_AGRV        CSA_A_GRAVE
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Fourth row
 | 
					
						
							|  |  |  |  | #define CSA_U_GRAVE     KC_NONUS_BSLASH     // ù
 | 
					
						
							|  |  |  |  | #define CSA_UGRV        CSA_U_GRAVE
 | 
					
						
							|  |  |  |  | #define CSA_E_ACUTE     KC_SLSH             // é
 | 
					
						
							|  |  |  |  | #define CSA_ECUT        CSA_E_ACUTE
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Shifted characters
 | 
					
						
							|  |  |  |  | // First row
 | 
					
						
							|  |  |  |  | #define CSA_BACKSLASH   LSFT(CSA_SLASH) /* \ */
 | 
					
						
							|  |  |  |  | #define CSA_BSLS        CSA_BACKSLASH
 | 
					
						
							|  |  |  |  | #define CSA_QUESTION    LSFT(KC_6)      // ?
 | 
					
						
							|  |  |  |  | #define CSA_QEST        CSA_QUESTION
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Second row
 | 
					
						
							|  |  |  |  | #define CSA_DEAD_TREMA  LSFT(CSA_DEAD_CIRCUMFLEX)    // dead trema/umlaut/diaresis for ä ë ï ö ü
 | 
					
						
							|  |  |  |  | #define CSA_DTRM        CSA_DEAD_TREMA
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Third row
 | 
					
						
							|  |  |  |  | // all same as US-QWERTY, or capitalised character of the non-shifted key
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Fourth row
 | 
					
						
							|  |  |  |  | #define CSA_APOSTROPHE      LSFT(KC_COMMA)  // '
 | 
					
						
							|  |  |  |  | #define CSA_APOS            CSA_APOSTROPHE
 | 
					
						
							|  |  |  |  | #define CSA_DOUBLE_QUOTE    LSFT(KC_DOT)    // "
 | 
					
						
							|  |  |  |  | #define CSA_DQOT            CSA_DOUBLE_QUOTE
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Alt Gr-ed characters
 | 
					
						
							|  |  |  |  | // First row
 | 
					
						
							|  |  |  |  | #define CSA_PIPE                ALGR(CSA_SLASH)         // |
 | 
					
						
							|  |  |  |  | #define CSA_CURRENCY            ALGR(KC_4)              // ¤
 | 
					
						
							|  |  |  |  | #define CSA_CURR                CSA_CURRENCY
 | 
					
						
							|  |  |  |  | #define CSA_LEFT_CURLY_BRACE    ALGR(KC_7)              // {
 | 
					
						
							|  |  |  |  | #define CSA_LCBR                CSA_LEFT_CURLY_BRACE
 | 
					
						
							|  |  |  |  | #define CSA_RIGHT_CURLY_BRACE   ALGR(KC_8)              // }
 | 
					
						
							|  |  |  |  | #define CSA_RCBR                CSA_RIGHT_CURLY_BRACE
 | 
					
						
							|  |  |  |  | #define CSA_LBRACKET            ALGR(KC_9)              // [
 | 
					
						
							|  |  |  |  | #define CSA_LBRC                CSA_LBRACKET
 | 
					
						
							|  |  |  |  | #define CSA_RBRACKET            ALGR(KC_0)              // ]
 | 
					
						
							|  |  |  |  | #define CSA_RBRC                CSA_RBRACKET
 | 
					
						
							|  |  |  |  | #define CSA_NEGATION            ALGR(KC_EQUAL)          // ¬
 | 
					
						
							|  |  |  |  | #define CSA_NEGT                CSA_NEGATION
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Second row
 | 
					
						
							|  |  |  |  | // euro symbol not available on Linux? (X.org)
 | 
					
						
							|  |  |  |  | #define CSA_EURO        ALGR(KC_E)                  // €
 | 
					
						
							|  |  |  |  | #define CSA_DEAD_GRAVE  ALGR(CSA_DEAD_CIRCUMFLEX)
 | 
					
						
							|  |  |  |  | #define CSA_DGRV        CSA_DEAD_GRAVE              // dead `
 | 
					
						
							|  |  |  |  | #define CSA_DEAD_TILDE  ALGR(CSA_C_CEDILLA)         // ~
 | 
					
						
							|  |  |  |  | #define CSA_DTLD        CSA_DEAD_TILDE
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Third row
 | 
					
						
							|  |  |  |  | #define CSA_DEGREE  ALGR(KC_SCOLON)     // °
 | 
					
						
							|  |  |  |  | #define CSA_DEGR    CSA_DEGREE
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Fourth row
 | 
					
						
							|  |  |  |  | #define CSA_LEFT_GUILLEMET      ALGR(KC_Z)          // «
 | 
					
						
							|  |  |  |  | #define CSA_LGIL                CSA_LEFT_GUILLEMET
 | 
					
						
							|  |  |  |  | #define CSA_RIGHT_GUILLEMET     ALGR(KC_X)          // »
 | 
					
						
							|  |  |  |  | #define CSA_RGIL                CSA_RIGHT_GUILLEMET
 | 
					
						
							|  |  |  |  | #define CSA_LESS                ALGR(KC_COMMA)      // <
 | 
					
						
							|  |  |  |  | #define CSA_GREATER             ALGR(KC_DOT)        // >
 | 
					
						
							|  |  |  |  | #define CSA_GRTR                CSA_GREATER
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Space bar
 | 
					
						
							|  |  |  |  | #define CSA_NON_BREAKING_SPACE  ALGR(KC_SPACE)
 | 
					
						
							|  |  |  |  | #define CSA_NBSP                CSA_NON_BREAKING_SPACE
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // GR2A-ed characters
 | 
					
						
							|  |  |  |  | // First row
 | 
					
						
							|  |  |  |  | #define CSA_SUPERSCRIPT_ONE     GR2A(KC_1)  // ¹
 | 
					
						
							|  |  |  |  | #define CSA_SUP1                CSA_SUPERSCRIPT_ONE
 | 
					
						
							|  |  |  |  | #define CSA_SUPERSCRIPT_TWO     GR2A(KC_2)  // ²
 | 
					
						
							|  |  |  |  | #define CSA_SUP2                CSA_SUPERSCRIPT_TWO
 | 
					
						
							|  |  |  |  | #define CSA_SUPERSCRIPT_THREE   GR2A(KC_3)  // ³
 | 
					
						
							|  |  |  |  | #define CSA_SUP3                CSA_SUPERSCRIPT_THREE
 | 
					
						
							|  |  |  |  | #define CSA_ONE_QUARTER         GR2A(KC_4)  // ¼
 | 
					
						
							|  |  |  |  | #define CSA_1QRT                CSA_ONE_QUARTER
 | 
					
						
							|  |  |  |  | #define CSA_ONE_HALF            GR2A(KC_5)  // ½
 | 
					
						
							|  |  |  |  | #define CSA_1HLF                CSA_ONE_HALF
 | 
					
						
							|  |  |  |  | #define CSA_THREE_QUARTERS      GR2A(KC_6)  // ¾
 | 
					
						
							|  |  |  |  | #define CSA_3QRT                CSA_THREE_QUARTERS
 | 
					
						
							|  |  |  |  | // nothing on 7-0 and -
 | 
					
						
							|  |  |  |  | #define CSA_DEAD_CEDILLA        GR2A(KC_EQUAL)  // dead ¸
 | 
					
						
							|  |  |  |  | #define CSA_DCED                CSA_DEAD_CEDILLA
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Second row
 | 
					
						
							|  |  |  |  | #define CSA_OMEGA           GR2A(KC_Q)  // ω
 | 
					
						
							|  |  |  |  | #define CSA_OMEG            CSA_OMEGA
 | 
					
						
							|  |  |  |  | #define CSA_L_STROKE        GR2A(KC_W)  // ł
 | 
					
						
							|  |  |  |  | #define CSA_LSTK            CSA_L_STROKE
 | 
					
						
							|  |  |  |  | #define CSA_OE_LIGATURE     GR2A(KC_E)  // œ
 | 
					
						
							|  |  |  |  | #define CSA_OE              CSA_OE_LIGATURE
 | 
					
						
							|  |  |  |  | #define CSA_PARAGRAPH       GR2A(KC_R)  // ¶
 | 
					
						
							|  |  |  |  | #define CSA_PARG            CSA_PARAGRAPH
 | 
					
						
							|  |  |  |  | #define CSA_T_STROKE        GR2A(KC_T)  // ŧ
 | 
					
						
							|  |  |  |  | #define CSA_LEFT_ARROW      GR2A(KC_Y)  // ←
 | 
					
						
							|  |  |  |  | #define CSA_LARW            CSA_LEFT_ARROW
 | 
					
						
							|  |  |  |  | #define CSA_DOWN_ARROW      GR2A(KC_U)  // ↓
 | 
					
						
							|  |  |  |  | #define CSA_DARW            CSA_DOWN_ARROW
 | 
					
						
							|  |  |  |  | #define CSA_RIGHT_ARROW     GR2A(KC_I)  // →
 | 
					
						
							|  |  |  |  | #define CSA_RARW            CSA_RIGHT_ARROW
 | 
					
						
							|  |  |  |  | #define CSA_O_STROKE        GR2A(KC_O)  // ø
 | 
					
						
							|  |  |  |  | #define CSA_OSTK            CSA_O_STROKE
 | 
					
						
							|  |  |  |  | #define CSA_THORN           GR2A(KC_P)  // þ
 | 
					
						
							|  |  |  |  | #define CSA_THRN            CSA_THORN
 | 
					
						
							|  |  |  |  | // nothing on ^
 | 
					
						
							|  |  |  |  | #define CSA_TILDE           GR2A(CSA_C_CEDILLA)  // dead ~
 | 
					
						
							|  |  |  |  | #define CSA_TILD            CSA_TILDE
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Third row
 | 
					
						
							|  |  |  |  | #define CSA_AE_LIGATURE     GR2A(KC_A)      // æ
 | 
					
						
							|  |  |  |  | #define CSA_AE              CSA_AE_LIGATURE
 | 
					
						
							|  |  |  |  | #define CSA_SHARP_S         GR2A(KC_S)      // ß
 | 
					
						
							|  |  |  |  | #define CSA_SRPS            CSA_SHARP_S
 | 
					
						
							|  |  |  |  | #define CSA_ETH             GR2A(KC_D)      // ð
 | 
					
						
							|  |  |  |  | // nothing on F
 | 
					
						
							|  |  |  |  | #define CSA_ENG             GR2A(KC_G)      // ŋ
 | 
					
						
							|  |  |  |  | #define CSA_H_SRTOKE        GR2A(KC_H)      // ħ
 | 
					
						
							|  |  |  |  | #define CSA_HSTK            CSA_H_SRTOKE
 | 
					
						
							|  |  |  |  | #define CSA_IJ_LIGATURE     GR2A(KC_J)      // ij
 | 
					
						
							|  |  |  |  | #define CSA_IJ              CSA_IJ_LIGATURE
 | 
					
						
							|  |  |  |  | #define CSA_KRA             GR2A(KC_K)      // ĸ
 | 
					
						
							|  |  |  |  | #define CSA_L_FLOWN_DOT     GR2A(KC_L)      // ŀ
 | 
					
						
							|  |  |  |  | #define CSA_LFLD            CSA_L_FLOWN_DOT
 | 
					
						
							|  |  |  |  | #define CSA_DEAD_ACUTE      GR2A(KC_SCLN)   // dead acute accent
 | 
					
						
							|  |  |  |  | #define CSA_DACT            CSA_DEAD_ACUTE
 | 
					
						
							|  |  |  |  | // nothing on È & À
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Fourth row
 | 
					
						
							|  |  |  |  | #define CSA_CENT                GR2A(KC_C)  // ¢
 | 
					
						
							|  |  |  |  | #define CSA_LEFT_DOUBLE_QUOTE   GR2A(KC_V)  // “
 | 
					
						
							|  |  |  |  | #define CSA_LDQT                CSA_LEFT_DOUBLE_QUOTE
 | 
					
						
							|  |  |  |  | #define CSA_RIGHT_DOUBLE_QUOTE  GR2A(KC_B)  // ”
 | 
					
						
							|  |  |  |  | #define CSA_RDQT                CSA_RIGHT_DOUBLE_QUOTE
 | 
					
						
							|  |  |  |  | #define CSA_N_APOSTROPHE        GR2A(KC_N)  // ʼn (deprecated unicode codepoint)
 | 
					
						
							|  |  |  |  | #define CSA_NAPO                CSA_N_APOSTROPHE
 | 
					
						
							|  |  |  |  | #define CSA_MU                  GR2A(KC_M)  // μ
 | 
					
						
							|  |  |  |  | #define CSA_HORIZONTAL_BAR      GR2A(KC_COMMA)  // ―
 | 
					
						
							|  |  |  |  | #define CSA_HZBR                CSA_HORIZONTAL_BAR
 | 
					
						
							|  |  |  |  | #define CSA_DEAD_DOT_ABOVE      GR2A(KC_DOT)    // dead ˙
 | 
					
						
							|  |  |  |  | #define CSA_DDTA                CSA_DEAD_DOT_ABOVE
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // GR2A-shifted characters (different from capitalised GR2A-ed characters)
 | 
					
						
							|  |  |  |  | // First row
 | 
					
						
							|  |  |  |  | #define CSA_SOFT_HYPHEN         GR2A(LSFT(CSA_SLASH))   // soft-hyphen, appears as a hyphen in wrapped word
 | 
					
						
							|  |  |  |  | #define CSA_SHYP                CSA_SOFT_HYPHEN
 | 
					
						
							|  |  |  |  | #define CSA_INVERTED_EXCLAIM    GR2A(KC_EXCLAIM)    // ¡
 | 
					
						
							|  |  |  |  | #define CSA_IXLM                CSA_INVERTED_EXCLAIM
 | 
					
						
							|  |  |  |  | // nothing on 2
 | 
					
						
							|  |  |  |  | #define CSA_POUND               GR2A(LSFT(KC_3))    // £
 | 
					
						
							|  |  |  |  | #define CSA_GBP                 CSA_POUND_SIGN
 | 
					
						
							|  |  |  |  | // already on ALGR(KC_E)
 | 
					
						
							|  |  |  |  | #define CSA_EURO_BIS            GR2A(LSFT(KC_4))    // €
 | 
					
						
							|  |  |  |  | #define CSA_EURB                CSA_EURO_BIS
 | 
					
						
							|  |  |  |  | #define CSA_THREE_EIGHTHS       GR2A(LSFT(KC_5))    // ⅜
 | 
					
						
							|  |  |  |  | #define CSA_3ON8                CSA_THREE_EIGHTHS
 | 
					
						
							|  |  |  |  | #define CSA_FIVE_EIGHTHS        GR2A(LSFT(KC_6))    // ⅝
 | 
					
						
							|  |  |  |  | #define CSA_5ON8                CSA_FIVE_EIGHTHS
 | 
					
						
							|  |  |  |  | #define CSA_SEVEN_EIGHTHS       GR2A(LSFT(KC_7))    // ⅞
 | 
					
						
							|  |  |  |  | #define CSA_7ON8                CSA_SEVEN_EIGHTHS
 | 
					
						
							|  |  |  |  | #define CSA_TRADEMARK           GR2A(LSFT(KC_8))    // ™
 | 
					
						
							|  |  |  |  | #define CSA_TM                  CSA_TRADEMARK
 | 
					
						
							|  |  |  |  | #define CSA_PLUS_MINUS          GR2A(LSFT(KC_9))    // ±
 | 
					
						
							|  |  |  |  | #define CSA_PSMS                CSA_PLUS_MINUS
 | 
					
						
							|  |  |  |  | // nothing on 0
 | 
					
						
							|  |  |  |  | #define CSA_INVERTED_QUESTION   GR2A(LSFT(KC_MINUS))    // ¿
 | 
					
						
							|  |  |  |  | #define CSA_IQST                CSA_INVERTED_QUESTION
 | 
					
						
							|  |  |  |  | #define CSA_DEAD_OGONEK         GR2A(LSFT(KC_EQUAL))    // dead ˛
 | 
					
						
							|  |  |  |  | #define CSA_DOGO                CSA_DEAD_OGONEK
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Second row
 | 
					
						
							|  |  |  |  | #define CSA_REGISTERED_TRADEMARK    GR2A(LSFT(KC_R))        // ®
 | 
					
						
							|  |  |  |  | #define CSA_RTM                     CSA_REGISTERED_TRADEMARK
 | 
					
						
							|  |  |  |  | #define CSA_YEN                     GR2A(LSFT(KC_Y))        // ¥
 | 
					
						
							|  |  |  |  | #define CSA_YUAN                    CSA_YEN
 | 
					
						
							|  |  |  |  | #define CSA_UP_ARROW                LSFT(CSA_DOWN_ARROW)    // ↑
 | 
					
						
							|  |  |  |  | #define CSA_DOTLESS_I               GR2A(LSFT(KC_I))        // ı
 | 
					
						
							|  |  |  |  | #define CSA_DLSI                    CSA_DOTLESS_I
 | 
					
						
							|  |  |  |  | #define CSA_DEAD_RING               GR2A(LSFT(CSA_DCRC))    // dead °
 | 
					
						
							|  |  |  |  | #define CSA_DRNG                    CSA_DEAD_RING
 | 
					
						
							|  |  |  |  | #define CSA_DEAD_MACRON             GR2A(LSFT(CSA_C_CEDILLA))   // dead ¯
 | 
					
						
							|  |  |  |  | #define CSA_DMCR                    CSA_DEAD_MACRON
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Third row
 | 
					
						
							|  |  |  |  | #define CSA_SECTION                 GR2A(LSFT(KC_S))        // §
 | 
					
						
							|  |  |  |  | #define CSA_SECT                    CSA_SECTION
 | 
					
						
							|  |  |  |  | #define CSA_ORDINAL_INDICATOR_A     GR2A(LSFT(KC_F))        // ª
 | 
					
						
							|  |  |  |  | #define CSA_ORDA                    CSA_ORDINAL_INDICATOR_A
 | 
					
						
							|  |  |  |  | #define CSA_DEAD_DOUBLE_ACUTE       LSFT(CSA_DEAD_ACUTE)    // ˝
 | 
					
						
							|  |  |  |  | #define CSA_DDCT                    CSA_DEAD_DOUBLE_ACUTE
 | 
					
						
							|  |  |  |  | #define CSA_DEAD_CARON              GR2A(LSFT(CSA_E_GRAVE)) // dead ˇ
 | 
					
						
							|  |  |  |  | #define CSA_DCAR                    CSA_DEAD_CARON
 | 
					
						
							|  |  |  |  | #define CSA_DEAD_BREVE              GR2A(LSFT(CSA_A_GRAVE)) // dead ˘
 | 
					
						
							|  |  |  |  | #define CSA_DBRV                    CSA_DEAD_BREVE
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // Fourth row
 | 
					
						
							|  |  |  |  | #define CSA_BROKEN_PIPE         GR2A(LSFT(CSA_U_GRAVE)) // ¦
 | 
					
						
							|  |  |  |  | #define CSA_BPIP                CSA_BROKEN_PIPE
 | 
					
						
							|  |  |  |  | #define CSA_COPYRIGHT           GR2A(LSFT(KC_C))        // ©
 | 
					
						
							|  |  |  |  | #define CSA_CPRT                CSA_COPYRIGHT
 | 
					
						
							|  |  |  |  | #define CSA_LEFT_QUOTE          GR2A(LSFT(KC_V))        // ‘
 | 
					
						
							|  |  |  |  | #define CSA_LQOT                CSA_LEFT_QUOTE
 | 
					
						
							|  |  |  |  | #define CSA_RIGHT_QUOTE         GR2A(LSFT(KC_B))        // ’
 | 
					
						
							|  |  |  |  | #define CSA_RQOT                CSA_RIGHT_QUOTE
 | 
					
						
							|  |  |  |  | #define CSA_EIGHTH_NOTE         GR2A(LSFT(KC_N))        // ♪
 | 
					
						
							|  |  |  |  | #define CSA_8NOT                CSA_EIGHTH_NOTE
 | 
					
						
							|  |  |  |  | #define CSA_ORDINAL_INDICATOR_O GR2A(LSFT(KC_M))        // º
 | 
					
						
							|  |  |  |  | #define CSA_ORDO                CSA_ORDINAL_INDICATOR_O
 | 
					
						
							|  |  |  |  | #define CSA_TIMES               GR2A(LSFT(KC_COMMA))    // ×
 | 
					
						
							|  |  |  |  | #define CSA_TIMS                CSA_TIMES
 | 
					
						
							|  |  |  |  | #define CSA_OBELUS              GR2A(LSFT(KC_DOT))      // ÷
 | 
					
						
							|  |  |  |  | #define CSA_OBEL                CSA_OBELUS
 | 
					
						
							|  |  |  |  | // more conventional name of the symbol
 | 
					
						
							|  |  |  |  | #define CSA_DIVISION_SIGN       CSA_OBELUS
 | 
					
						
							|  |  |  |  | #define CSA_DVSN                CSA_DIVISION_SIGN
 | 
					
						
							|  |  |  |  | // TODO GR2A(LSFT(CSA_E_ACUTE))
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | #endif
 |