aboutsummaryrefslogtreecommitdiff
path: root/quantum/keymap_extras/keymap_canadian_multilingual.h
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/keymap_extras/keymap_canadian_multilingual.h')
-rw-r--r--quantum/keymap_extras/keymap_canadian_multilingual.h105
1 files changed, 105 insertions, 0 deletions
diff --git a/quantum/keymap_extras/keymap_canadian_multilingual.h b/quantum/keymap_extras/keymap_canadian_multilingual.h
new file mode 100644
index 000000000..ae60ffe37
--- /dev/null
+++ b/quantum/keymap_extras/keymap_canadian_multilingual.h
@@ -0,0 +1,105 @@
1#ifndef KEYMAP_CANADIAN_MULTILINGUAG_H
2#define KEYMAP_CANADIAN_MULTILINGUAG_H
3
4#include "keymap_common.h"
5
6// Alt gr
7#ifndef ALTGR
8#define ALTGR(kc) RALT(kc)
9#endif
10#ifndef ALGR
11#define ALGR(kc) ALTGR(kc)
12#endif
13
14#define CM_ALTGR KC_RALT
15#define CM_ALGR CM_ALTGR
16
17#ifndef GR2A
18#define GR2A(kc) RCTL(kc)
19#endif
20
21// Normal characters
22// First row
23#define CM_SLASH KC_GRV // /
24#define CM_SLSH CM_SLASH
25
26// Second row
27#define CM_DEAD_CIRCUMFLEX KC_LBRACKET // dead ^
28#define CM_DCRC CM_DEAD_CIRCUMFLEX
29#define CM_C_CEDILLA KC_RBRACKET // Ç
30#define CM_CCED CM_C_CEDILLA
31
32// Third row
33#define CM_E_GRAVE KC_QUOT // è
34#define CM_EGRV CM_E_GRAVE
35#define CM_A_GRAVE KC_BSLASH // à
36#define CM_AGRV CM_A_GRAVE
37
38// Fourth row
39#define CM_U_GRAVE KC_NONUS_BSLASH // ù
40#define CM_UGRV CM_U_GRAVE
41#define CM_E_ACUTE KC_SLSH // é
42#define CM_ECUT CM_E_ACUTE
43
44// Shifted characters
45// First row
46#define CM_BACKSLASH LSFT(CM_SLASH) /* \ */
47#define CM_BSLS CM_BACKSLASH
48#define CM_QUESTION LSFT(KC_6) // ?
49#define CM_QEST CM_QUESTION
50
51// Second row
52#define CM_DEAD_TREMA LSFT(CM_DEAD_CIRCUMFLEX) // dead trema/umlaut/diaresis for ä ë ï ö ü
53#define CM_DTRM CM_DEAD_TREMA
54
55// Third row
56// all same as US-QWERTY, or capitalised character of the non-shifted key
57
58// Fourth row
59#define CM_APOSTROPHE LSFT(KC_COMMA) // '
60#define CM_APOS CM_APOSTROPHE
61#define CM_DOUBLE_QUOTE LSFT(KC_DOT) // "
62#define CM_DQOT CM_DOUBLE_QUOTE
63
64// Alt Gr-ed characters
65// First row
66#define CM_PIPE ALTGR(CM_SLASH) // |
67#define CM_CURRENCY ALTGR(KC_4) // ¤
68#define CM_CURR CM_CURRENCY
69#define CM_LEFT_CURLY_BRACE ALTGR(KC_7) // {
70#define CM_LCBR CM_LEFT_CURLY_BRACE
71#define CM_RIGHT_CURLY_BRACE ALTGR(KC_8) // }
72#define CM_RCBR CM_RIGHT_CURLY_BRACE
73#define CM_LBRACKET ALTGR(KC_9) // [
74#define CM_LBRC CM_LBRACKET
75#define CM_RBRACKET ALTGR(KC_0) // ]
76#define CM_RBRC CM_RBRACKET
77#define CM_NEGATION ALTGR(KC_EQUAL) // ¬
78#define CM_NEGT CM_NEGATION
79
80// Second row
81// euro symbol not available on Linux? (X.org)
82#define CM_EURO ALTGR(KC_E) // €
83#define CM_DEAD_GRAVE ALTGR(CM_DEAD_CIRCUMFLEX)
84#define CM_DGRV CM_DEAD_GRAVE // dead `
85#define CM_TILDE ALTGR(CM_C_CEDILLA) // ~
86#define CM_TILD CM_TILDE
87
88// Third row
89#define CM_DEGREE ALTGR(KC_SCOLON) // °
90#define CM_DEGR CM_DEGREE
91
92// Fourth row
93#define CM_LEFT_GUILLEMET ALTGR(KC_Z) // «
94#define CM_LGIL CM_LEFT_GUILLEMET
95#define CM_RIGHT_GUILLEMET ALTGR(KC_X) // »
96#define CM_RGIL CM_RIGHT_GUILLEMET
97#define CM_LESS ALTGR(KC_COMMA) // <
98#define CM_GREATER ALTGR(KC_DOT) // >
99#define CM_GRTR CM_GREATER
100
101// Space bar
102#define CM_NON_BREAKING_SPACE ALTGR(KC_SPACE)
103#define CM_NBSP CM_NON_BREAKING_SPACE
104
105#endif