Fix keymap to adjust new keyboard.c.
[tmk_keyboard.git] / converter / usb_usb / keymap.c
CommitLineData
e7c03037 1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#include <avr/pgmspace.h>
ce2e06c3 19#include "keycode.h"
e7c03037 20#include "util.h"
21#include "keymap.h"
22
23
24#define KEYMAP( \
25 K29,K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45, K46,K47,K48, \
26 K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K2A, K49,K4A,K4B, K53,K54,K55,K56, \
27 K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,K31, K4C,K4D,K4E, K5F,K60,K61, \
28 K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34, K28, K5C,K5D,K5E,K57, \
29 KE1,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38, KE5, K52, K59,K5A,K5B, \
30 KE0,KE3,KE2, K2C, KE6,KE7,K65,KE4, K50,K51,K4F, K62, K63,K58 \
31) { \
ce2e06c3 32 { KC_NO, KC_NO, KC_NO, KC_NO, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, /* 00-07 */ \
33 { KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_##K0F }, /* 08-0F */ \
34 { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, /* 10-17 */ \
35 { KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_##K1F }, /* 18-1F */ \
36 { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, /* 20-27 */ \
37 { KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, /* 28-2F */ \
38 { KC_##K30, KC_##K31, KC_NO, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37 }, /* 30-37 */ \
39 { KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_##K3F }, /* 38-3F */ \
40 { KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47 }, /* 40-47 */ \
41 { KC_##K48, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_##K4E, KC_##K4F }, /* 48-4F */ \
42 { KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, /* 50-57 */ \
43 { KC_##K58, KC_##K59, KC_##K5A, KC_##K5B, KC_##K5C, KC_##K5D, KC_##K5E, KC_##K5F }, /* 58-5F */ \
44 { KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_NO, KC_##K65, KC_NO, KC_NO }, /* 60-67 */ \
45 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 68-6F */ \
46 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 70-77 */ \
47 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 78-7F */ \
48 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 80-87 */ \
49 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 88-8F */ \
50 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 90-97 */ \
51 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 98-9F */ \
52 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* A0-A7 */ \
53 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* A8-AF */ \
54 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* B0-B7 */ \
55 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* B8-BF */ \
56 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* C0-C7 */ \
57 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* C8-CF */ \
58 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* D0-D7 */ \
59 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* D8-DF */ \
60 { KC_##KE0, KC_##KE1, KC_##KE2, KC_##KE3, KC_##KE4, KC_##KE5, KC_##KE6, KC_##KE7 }, /* E0-E7 */ \
61 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* E8-EF */ \
62 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* F0-F7 */ \
63 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* F8-FF */ \
e7c03037 64}
65
66
67// Layers to switch by holding Fn key(0-7)
232ab308 68static const uint8_t PROGMEM fn_layer[] = { 5, 6, 5, 0, 0, 0, 0, 0 };
e7c03037 69
70// Codes to register by clicking Fn key(0-7)
ce2e06c3 71static const uint8_t PROGMEM fn_keycode[] = { KC_SCLN, KC_SLSH, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO };
e7c03037 72
73static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
74 /* 0: default
75 * ,---. ,---------------. ,---------------. ,---------------. ,-----------. ,-----------.
76 * |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |Pwr|Slp|Wak|
77 * `---' `---------------' `---------------' `---------------' `-----------' `-----------'
78 * ,-----------------------------------------------------------. ,-----------. ,---------------.
79 * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa| |Ins|Hom|PgU| |NmL| /| *| -|
80 * |-----------------------------------------------------------| |-----------| |---------------|
81 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|End|PgD| | 7| 8| 9| |
82 * |-----------------------------------------------------------| `-----------' |-----------| +|
83 * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Return | | 4| 5| 6| |
84 * |-----------------------------------------------------------| ,---. |---------------|
85 * |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift | |Up | | 1| 2| 3| |
86 * |-----------------------------------------------------------| ,-----------. |-----------|Ent|
87 * |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl| |Lef|Dow|Rig| | 0| .| |
88 * `-----------------------------------------------------------' `-----------' `---------------'
89 * ; = Fn0(to Layer 5)
90 * / = Fn1(to Layer 6)
91 */
92 KEYMAP(
232ab308 93 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS,
94 ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
e7c03037 95 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9,
f1a64fc9 96 FN2, A, S, D, F, G, H, J, K, L, FN0, QUOT, ENT, P4, P5, P6, PPLS,
e7c03037 97 LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN1, RSFT, UP, P1, P2, P3,
f1a64fc9 98 LCTL,LGUI,LALT, SPC, RALT,FN2, FN2, GRV, LEFT,DOWN,RGHT, P0, PDOT,PENT
e7c03037 99 ),
100
101 /* 1: plain Qwerty without layer switching
102 * ,-----------------------------------------------------------.
103 * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa|
104 * |-----------------------------------------------------------|
105 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
106 * |-----------------------------------------------------------|
107 * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Return |
108 * |-----------------------------------------------------------|
109 * |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift |
110 * |-----------------------------------------------------------|
111 * |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl|
112 * `-----------------------------------------------------------'
113 */
114 KEYMAP(
232ab308 115 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS,
e7c03037 116 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
117 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9,
118 CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, P4, P5, P6, PPLS,
119 LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3,
120 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
121 ),
122
123 /* 2: Colemak http://colemak.com
124 * ,-----------------------------------------------------------.
125 * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa|
126 * |-----------------------------------------------------------|
127 * |Tab | Q| W| F| P| G| J| L| U| Y| ;| [| ]| \|
128 * |-----------------------------------------------------------|
129 * |BackSp| A| R| S| T| D| H| N| E| I| O| '|Return |
130 * |-----------------------------------------------------------|
131 * |Shift | Z| X| C| V| B| K| M| ,| ,| /|Shift |
132 * |-----------------------------------------------------------|
133 * |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl|
134 * `----------------------------------------------------------'
135 */
136 KEYMAP(
232ab308 137 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS,
e7c03037 138 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
139 TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9,
140 BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, P4, P5, P6, PPLS,
141 LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3,
142 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
143 ),
144
145 /* 3: Dvorak http://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard
146 * ,-----------------------------------------------------------.
147 * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| [| ]|Backspa|
148 * |-----------------------------------------------------------|
149 * |Tab | '| ,| .| P| Y| F| G| C| R| L| /| =| \|
150 * |-----------------------------------------------------------|
151 * |BackSp| A| O| E| U| I| D| H| T| N| S| -|Return |
152 * |-----------------------------------------------------------|
153 * |Shift | ;| Q| J| K| X| B| M| Wl V| Z|Shift |
154 * |-----------------------------------------------------------|
155 * |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl|
156 * `-----------------------------------------------------------'
157 */
158 KEYMAP(
232ab308 159 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS,
e7c03037 160 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
161 TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, DEL, END, PGDN, P7, P8, P9,
162 CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, P4, P5, P6, PPLS,
163 LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, UP, P1, P2, P3,
164 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
165 ),
166
167 /* 4: Workman http://viralintrospection.wordpress.com/2010/09/06/a-different-philosophy-in-designing-keyboard-layouts/
168 * ,-----------------------------------------------------------.
169 * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa|
170 * |-----------------------------------------------------------|
171 * |Tab | Q| D| R| W| B| J| F| U| P| ;| [| ]| \|
172 * |-----------------------------------------------------------|
173 * |CapsLo| A| S| H| T| G| Y| N| E| O| I| '|Return |
174 * |-----------------------------------------------------------|
175 * |Shift | Z| X| M| C| V| K| L| ,| ,| /|Shift |
176 * |-----------------------------------------------------------|
177 * |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl|
178 * `-----------------------------------------------------------'
179 */
180 KEYMAP(
232ab308 181 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS,
e7c03037 182 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
183 TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9,
184 BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, P4, P5, P6, PPLS,
185 LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3,
186 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
187 ),
188
189 /* 5: Mouse keys
190 * ,-----------------------------------------------------------.
191 * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backspa|
192 * |-----------------------------------------------------------|
193 * |Tab |MwL|MwU|McU|WwU|WwR|MwL|MwD|MwU|MwR| | | | \|
194 * |-----------------------------------------------------------|
195 * |CapsLo| |McL|McD|McR| |McL|McD|McU|McR|Fn0| |Return |
196 * |-----------------------------------------------------------|
197 * |Shift |VoD|VoU|Mut|Mb2|Mb3|Mb2|Mb1|VoD|VoU|Mut|Shift |
198 * |-----------------------------------------------------------|
199 * |Ctrl |Gui |Alt | Mb1 |Alt |Gui |Menu|Ctrl|
200 * `-----------------------------------------------------------'
201 * Mc = mouse cursor, Mw = mouse wheel, Mb = mouse button
202 * Vo = Volume, Mut = Mute
203 */
204 KEYMAP(
232ab308 205 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS,
206 GRV, F1, F2, F3, F4, F5, F6, F7, F8, F8, F10, F11, F12, DEL, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
207 CAPS,NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,PSCR,SLCK,PAUS,INS, DEL, END, PGDN, P7, P8, P9,
f1a64fc9 208 FN2, VOLD,VOLU,MUTE,NO, NO, MS_L,MS_D,MS_U,MS_R,FN0, NO, ENT, P4, P5, P6, PPLS,
232ab308 209 LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,NO, NO, NO, RSFT, UP, P1, P2, P3,
f1a64fc9 210 LCTL,LGUI,LALT, BTN1, RALT,FN2, FN2, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
e7c03037 211 ),
212
213 /* 6: Cursor keys
214 * ,-----------------------------------------------------------.
215 * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backspa|
216 * |-----------------------------------------------------------|
217 * |Tab |Hom|PgU| Up|PgU|End|Hom|PgD|PgU|End| | | | \|
218 * |-----------------------------------------------------------|
219 * |CapsLo| |Lef|Dow|Rig| |Lef|Dow| Up|Rig| | |Return |
220 * |-----------------------------------------------------------|
221 * |Shift | | | | | |Hom|PgD|PgU|End|Fn1|Shift |
222 * |-----------------------------------------------------------|
223 * |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl|
224 * `-----------------------------------------------------------'
225 */
226 KEYMAP(
232ab308 227 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS,
228 GRV, F1, F2, F3, F4, F5, F6, F7, F8, F8, F10, F11, F12, DEL, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
229 CAPS,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, NO, NO, NO, INS, DEL, END, PGDN, P7, P8, P9,
230 LCTL,NO, NO, NO, NO, NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, P4, P5, P6, PPLS,
231 LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN1, RSFT, UP, P1, P2, P3,
e7c03037 232 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
233 ),
234};
235
236
237
238uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col)
239{
240 return pgm_read_byte(&keymaps[(layer)][(row)][(col)]);
241}
242
8a819861 243uint8_t keymap_fn_layer(uint8_t index)
e7c03037 244{
8a819861 245 return pgm_read_byte(&fn_layer[index]);
e7c03037 246}
247
8a819861 248uint8_t keymap_fn_keycode(uint8_t index)
e7c03037 249{
8a819861 250 return pgm_read_byte(&fn_keycode[index]);
e7c03037 251}
Imprint / Impressum