]> git.donarmstrong.com Git - qmk_firmware.git/blob - quantum/keymap_extras/keymap_belgian.h
Add a belgian keymap, partially based on keymap_french.h (#3737)
[qmk_firmware.git] / quantum / keymap_extras / keymap_belgian.h
1 /* Copyright 2015-2016 Jack Humbert
2  *
3  * This program is free software: you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation, either version 2 of the License, or
6  * (at your option) any later version.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
15  */
16 #ifndef KEYMAP_BELGIAN_H
17 #define KEYMAP_BELGIAN_H
18
19 #include "keymap.h"
20
21 #define BE_LGUI KC_LALT
22 #define BE_LALT KC_LGUI
23
24 // Alt gr
25 #ifndef ALGR
26 #define ALGR(kc) RALT(kc)
27 #endif
28 #define NO_ALGR KC_RALT
29
30 // Normal characters
31 // Line 1
32 #define BE_SUP2 KC_GRV
33 #define BE_AMP  KC_1
34 #define BE_EACU KC_2
35 #define BE_QUOT KC_3
36 #define BE_APOS KC_4
37 #define BE_LPRN KC_5
38 #define BE_PARA KC_6
39 #define BE_EGRV KC_7
40 #define BE_EXLM KC_8
41 #define BE_CCED KC_9
42 #define BE_AGRV KC_0
43 #define BE_RPRN KC_MINS
44 #define BE_MINS KC_EQL
45
46 // Line 2
47 #define BE_A    KC_Q
48 #define BE_Z      KC_W
49 #define BE_CIRC KC_LBRC
50 #define BE_DLR  KC_RBRC
51
52 // Line 3
53 #define BE_Q      KC_A
54 #define BE_M      KC_SCLN
55 #define BE_UGRV KC_QUOT
56 #define BE_MU   KC_NUHS
57
58 // Line 4
59 #define BE_LESS KC_NUBS
60 #define BE_W      KC_Z
61 #define BE_COMM KC_M
62 #define BE_SCLN KC_COMM
63 #define BE_COLN KC_DOT
64 #define BE_EQL  KC_SLSH
65
66 // Shifted characters
67 // Line 1
68 #define BE_SUP3 KC_TILD
69 #define BE_1    LSFT(KC_1)
70 #define BE_2      LSFT(KC_2)
71 #define BE_3      LSFT(KC_3)
72 #define BE_4      LSFT(KC_4)
73 #define BE_5      LSFT(KC_5)
74 #define BE_6      LSFT(KC_6)
75 #define BE_7      LSFT(KC_7)
76 #define BE_8      LSFT(KC_8)
77 #define BE_9      LSFT(KC_9)
78 #define BE_0      LSFT(KC_0)
79 #define BE_OVRR KC_UNDS
80 #define BE_UNDS KC_PLUS
81
82 // Line 2
83 #define BE_UMLT LSFT(BE_CIRC)
84 #define BE_PND  LSFT(BE_DLR)
85
86 // Line 3
87 #define BE_PERC LSFT(BE_UGRV)
88
89 // Line 4
90 #define BE_GRTR LSFT(BE_LESS)
91 #define BE_QUES LSFT(BE_COMM)
92 #define BE_DOT  LSFT(BE_SCLN)
93 #define BE_SLSH LSFT(BE_COLN)
94 #define BE_PLUS LSFT(BE_EQL)
95
96 // Alt Gr-ed characters
97 // Line 1
98 #define BE_PIPE ALGR(KC_1)
99 #define BE_AT     ALGR(KC_2)
100 #define BE_HASH ALGR(KC_3)
101 #define BE_LCBR ALGR(KC_9)
102 #define BE_RCBR ALGR(KC_0)
103
104 // Line 2
105 #define BE_EURO ALGR(KC_E)
106 #define BE_LSBR ALGR(BE_CIRC)
107 #define BE_RSBR ALGR(BE_DLR)
108
109 // Line 3
110 #define BE_ACUT ALGR(BE_UGRV)
111 #define BE_GRV  ALGR(BE_MU)
112
113 // Line 4
114 #define BE_BSLS ALGR(BE_LESS)
115 #define BE_TILT ALGR(BE_EQL)
116
117 #endif