aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--converter/usb_usb/Makefile10
-rw-r--r--converter/usb_usb/config.h2
-rw-r--r--converter/usb_usb/keymap.c128
-rw-r--r--converter/usb_usb/keymap_common.c31
-rw-r--r--converter/usb_usb/keymap_common.h77
-rw-r--r--converter/usb_usb/keymap_hasu.c158
-rw-r--r--converter/usb_usb/keymap_spacefn.c61
7 files changed, 342 insertions, 125 deletions
diff --git a/converter/usb_usb/Makefile b/converter/usb_usb/Makefile
index 4f983e7f6..d6867bb00 100644
--- a/converter/usb_usb/Makefile
+++ b/converter/usb_usb/Makefile
@@ -99,16 +99,22 @@ CONSOLE_ENABLE = yes # Console for debug
99# Teensy halfKay 512 99# Teensy halfKay 512
100# Atmel DFU loader 4096 100# Atmel DFU loader 4096
101# LUFA bootloader 4096 101# LUFA bootloader 4096
102#OPT_DEFS += -DBOOTLOADER_SIZE=4096 102OPT_DEFS += -DBOOTLOADER_SIZE=4096
103 103
104 104
105 105
106SRC = \ 106SRC = \
107 keymap.c \ 107 keymap_common.c \
108 matrix.c \ 108 matrix.c \
109 led.c \ 109 led.c \
110 main.cpp 110 main.cpp
111 111
112ifdef KEYMAP
113 SRC := keymap_$(KEYMAP).c $(SRC)
114else
115 SRC := keymap.c $(SRC)
116endif
117
112CONFIG_H = config.h 118CONFIG_H = config.h
113 119
114 120
diff --git a/converter/usb_usb/config.h b/converter/usb_usb/config.h
index bdc02868c..c99245676 100644
--- a/converter/usb_usb/config.h
+++ b/converter/usb_usb/config.h
@@ -33,8 +33,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
33#define MATRIX_ROWS 32 33#define MATRIX_ROWS 32
34#define MATRIX_COLS 8 34#define MATRIX_COLS 8
35 35
36#define USE_LEGACY_KEYMAP
37
38/* key combination for command */ 36/* key combination for command */
39#define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) 37#define IS_COMMAND() (keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))
40 38
diff --git a/converter/usb_usb/keymap.c b/converter/usb_usb/keymap.c
index ff166fcf1..c14a8aa55 100644
--- a/converter/usb_usb/keymap.c
+++ b/converter/usb_usb/keymap.c
@@ -15,62 +15,10 @@ You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17 17
18#include <avr/pgmspace.h> 18#include "keymap_common.h"
19#include "keycode.h"
20#include "util.h"
21#include "keymap.h"
22 19
23 20
24#define KEYMAP( \ 21const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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) { \
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 */ \
64}
65
66
67// Layers to switch by holding Fn key(0-7)
68static const uint8_t PROGMEM fn_layer[] = { 5, 6, 5, 0, 0, 0, 0, 0 };
69
70// Codes to register by clicking Fn key(0-7)
71static const uint8_t PROGMEM fn_keycode[] = { KC_SCLN, KC_SLSH, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO };
72
73static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
74 /* 0: default 22 /* 0: default
75 * ,---. ,---------------. ,---------------. ,---------------. ,-----------. ,-----------. 23 * ,---. ,---------------. ,---------------. ,---------------. ,-----------. ,-----------.
76 * |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |Pwr|Slp|Wak| 24 * |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |Pwr|Slp|Wak|
@@ -86,16 +34,14 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
86 * |-----------------------------------------------------------| ,-----------. |-----------|Ent| 34 * |-----------------------------------------------------------| ,-----------. |-----------|Ent|
87 * |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl| |Lef|Dow|Rig| | 0| .| | 35 * |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl| |Lef|Dow|Rig| | 0| .| |
88 * `-----------------------------------------------------------' `-----------' `---------------' 36 * `-----------------------------------------------------------' `-----------' `---------------'
89 * ; = Fn0(to Layer 5)
90 * / = Fn1(to Layer 6)
91 */ 37 */
92 KEYMAP( 38 KEYMAP(
93 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,PAUS, 39 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, 40 ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
95 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9, 41 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9,
96 FN2, A, S, D, F, G, H, J, K, L, FN0, QUOT, ENT, P4, P5, P6, PPLS, 42 CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, P4, P5, P6, PPLS,
97 LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN1, RSFT, UP, P1, P2, P3, 43 LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3,
98 LCTL,LGUI,LALT, SPC, RALT,FN2, FN2, GRV, LEFT,DOWN,RGHT, P0, PDOT,PENT 44 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, GRV, LEFT,DOWN,RGHT, P0, PDOT,PENT
99 ), 45 ),
100 46
101 /* 1: plain Qwerty without layer switching 47 /* 1: plain Qwerty without layer switching
@@ -185,67 +131,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
185 LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3, 131 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 132 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
187 ), 133 ),
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(
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,
208 FN2, VOLD,VOLU,MUTE,NO, NO, MS_L,MS_D,MS_U,MS_R,FN0, NO, ENT, P4, P5, P6, PPLS,
209 LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,NO, NO, NO, RSFT, UP, P1, P2, P3,
210 LCTL,LGUI,LALT, BTN1, RALT,FN2, FN2, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
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(
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,
232 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
233 ),
234}; 134};
235 135
236 136const uint16_t PROGMEM fn_actions[] = {
237 137};
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
243uint8_t keymap_fn_layer(uint8_t index)
244{
245 return pgm_read_byte(&fn_layer[index]);
246}
247
248uint8_t keymap_fn_keycode(uint8_t index)
249{
250 return pgm_read_byte(&fn_keycode[index]);
251}
diff --git a/converter/usb_usb/keymap_common.c b/converter/usb_usb/keymap_common.c
new file mode 100644
index 000000000..8ab5ba923
--- /dev/null
+++ b/converter/usb_usb/keymap_common.c
@@ -0,0 +1,31 @@
1/*
2Copyright 2014 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#include "keymap_common.h"
18#include "progmem.h"
19
20
21/* translates key to keycode */
22uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
23{
24 return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
25}
26
27/* translates Fn keycode to action */
28action_t keymap_fn_to_action(uint8_t keycode)
29{
30 return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) };
31}
diff --git a/converter/usb_usb/keymap_common.h b/converter/usb_usb/keymap_common.h
new file mode 100644
index 000000000..435d83fdc
--- /dev/null
+++ b/converter/usb_usb/keymap_common.h
@@ -0,0 +1,77 @@
1/*
2Copyright 2014 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#ifndef KEYMAP_COMMON_H
18#define KEYMAP_COMMON_H
19
20#include <stdint.h>
21#include <stdbool.h>
22#include "keycode.h"
23#include "action.h"
24#include "action_macro.h"
25#include "report.h"
26#include "print.h"
27#include "debug.h"
28#include "keymap.h"
29
30
31extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
32extern const uint16_t fn_actions[];
33
34
35#define KEYMAP( \
36 K29,K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45, K46,K47,K48, \
37 K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K2A, K49,K4A,K4B, K53,K54,K55,K56, \
38 K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30,K31, K4C,K4D,K4E, K5F,K60,K61, \
39 K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34, K28, K5C,K5D,K5E,K57, \
40 KE1,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38, KE5, K52, K59,K5A,K5B, \
41 KE0,KE3,KE2, K2C, KE6,KE7,K65,KE4, K50,K51,K4F, K62, K63,K58 \
42) { \
43 { KC_NO, KC_NO, KC_NO, KC_NO, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, /* 00-07 */ \
44 { KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D, KC_##K0E, KC_##K0F }, /* 08-0F */ \
45 { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, /* 10-17 */ \
46 { KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E, KC_##K1F }, /* 18-1F */ \
47 { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, /* 20-27 */ \
48 { KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, /* 28-2F */ \
49 { KC_##K30, KC_##K31, KC_NO, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37 }, /* 30-37 */ \
50 { KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_##K3F }, /* 38-3F */ \
51 { KC_##K40, KC_##K41, KC_##K42, KC_##K43, KC_##K44, KC_##K45, KC_##K46, KC_##K47 }, /* 40-47 */ \
52 { KC_##K48, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_##K4E, KC_##K4F }, /* 48-4F */ \
53 { KC_##K50, KC_##K51, KC_##K52, KC_##K53, KC_##K54, KC_##K55, KC_##K56, KC_##K57 }, /* 50-57 */ \
54 { KC_##K58, KC_##K59, KC_##K5A, KC_##K5B, KC_##K5C, KC_##K5D, KC_##K5E, KC_##K5F }, /* 58-5F */ \
55 { KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_NO, KC_##K65, KC_NO, KC_NO }, /* 60-67 */ \
56 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 68-6F */ \
57 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 70-77 */ \
58 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 78-7F */ \
59 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 80-87 */ \
60 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 88-8F */ \
61 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 90-97 */ \
62 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 98-9F */ \
63 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* A0-A7 */ \
64 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* A8-AF */ \
65 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* B0-B7 */ \
66 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* B8-BF */ \
67 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* C0-C7 */ \
68 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* C8-CF */ \
69 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* D0-D7 */ \
70 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* D8-DF */ \
71 { KC_##KE0, KC_##KE1, KC_##KE2, KC_##KE3, KC_##KE4, KC_##KE5, KC_##KE6, KC_##KE7 }, /* E0-E7 */ \
72 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* E8-EF */ \
73 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* F0-F7 */ \
74 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* F8-FF */ \
75}
76
77#endif
diff --git a/converter/usb_usb/keymap_hasu.c b/converter/usb_usb/keymap_hasu.c
new file mode 100644
index 000000000..de19e2307
--- /dev/null
+++ b/converter/usb_usb/keymap_hasu.c
@@ -0,0 +1,158 @@
1#include "keymap_common.h"
2
3const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
4 /* Layer 0: Default Layer
5 * ,-----------------------------------------------------------.
6 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|
7 * |-----------------------------------------------------------|
8 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backs|
9 * |-----------------------------------------------------------|
10 * |Contro| A| S| D| F| G| H| J| K| L|Fn3| '|Fn6 |
11 * |-----------------------------------------------------------|
12 * |Fn7 | Z| X| C| V| B| N| M| ,| .|Fn2|Shift |Fn1|
13 * `-----------------------------------------------------------'
14 * |Gui|Alt | Fn4 |Fn5 |Gui|
15 * `-------------------------------------------'
16 */
17 [0] = \
18 KEYMAP(
19 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
20 ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
21 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9,
22 LCTL,A, S, D, F, G, H, J, K, L, FN3, QUOT, FN6, P4, P5, P6, PPLS,
23 FN7, Z, X, C, V, B, N, M, COMM,DOT, FN2, RSFT, UP, P1, P2, P3,
24 LCTL,LGUI,LALT, FN4, RALT,FN5, FN5, FN1, LEFT,DOWN,RGHT, P0, PDOT,PENT
25 ),
26
27 /* Layer 1: HHKB mode[HHKB Fn]
28 * ,-----------------------------------------------------------.
29 * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
30 * |-----------------------------------------------------------|
31 * |Caps | | | | | | | |Psc|Slk|Pus|Up | |Backs|
32 * |-----------------------------------------------------------|
33 * |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter |
34 * |-----------------------------------------------------------|
35 * |Shift | | | | | | +| -|End|PgD|Dow|Shift | |
36 * `-----------------------------------------------------------'
37 * |Gui|Alt | Space |Alt |Gui|
38 * `-------------------------------------------'
39 */
40 [1] = \
41 KEYMAP(
42 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
43 GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
44 CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS, UP, NO, BSLS, DEL, END, PGDN, P7, P8, P9,
45 LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT, ENT, P4, P5, P6, PPLS,
46 LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN, RSFT, UP, P1, P2, P3,
47 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, TRNS, LEFT,DOWN,RGHT, P0, PDOT,PENT
48 ),
49
50 /* Layer 2: Vi mode[Slash]
51 * ,-----------------------------------------------------------.
52 * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
53 * |-----------------------------------------------------------|
54 * |Tab |Hom|PgD|Up |PgU|End|Hom|PgD|PgUlEnd| | | |Backs|
55 * |-----------------------------------------------------------|
56 * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return |
57 * |-----------------------------------------------------------|
58 * |Shift | | | | | |Hom|PgD|PgUlEnd|Fn0|Shift | |
59 * `-----------------------------------------------------------'
60 * |Gui|Alt | Space |Alt |Gui|
61 * `-------------------------------------------'
62 */
63 [2] = \
64 KEYMAP(
65 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
66 GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
67 TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, BSLS, DEL, END, PGDN, P7, P8, P9,
68 LCTL,NO, LEFT,DOWN,RGHT,NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, P4, P5, P6, PPLS,
69 LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, TRNS, RSFT, UP, P1, P2, P3,
70 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
71 ),
72
73 /* Layer 3: Mouse mode(IJKL)[Semicolon]
74 * ,-----------------------------------------------------------.
75 * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
76 * |-----------------------------------------------------------|
77 * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T|
78 * |-----------------------------------------------------------|
79 * |Contro| | | | | |Mb2|McL|McD|McR|Fn | |Return |
80 * |-----------------------------------------------------------|
81 * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | |
82 * `-----------------------------------------------------------'
83 * |Gui |Alt | Mb1 |Fn |Fn |
84 * `--------------------------------------------'
85 * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel8
86 */
87 [3] = \
88 KEYMAP(
89 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
90 GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, FN8, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
91 FN8, NO, NO, NO, NO, NO, WH_L,WH_D,MS_U,WH_U,WH_R,WBAK,WFWD,FN8, DEL, END, PGDN, P7, P8, P9,
92 LCTL,ACL0,ACL1,ACL2,ACL2,NO, NO, MS_L,MS_D,MS_R,TRNS,NO, ENT, P4, P5, P6, PPLS,
93 LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,NO, RSFT, UP, P1, P2, P3,
94 LCTL,LGUI,LALT, BTN1, RALT,TRNS,TRNS,RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
95 ),
96
97 /* Layer 5: Mouse mode(IJKL)[Space]
98 * ,-----------------------------------------------------------.
99 * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
100 * |-----------------------------------------------------------|
101 * |Tab | | | | | |MwL|MwD|McU|MwU|MwR|Wbk|Wfr|Alt-T|
102 * |-----------------------------------------------------------|
103 * |Contro| | | | | |Mb2|McL|McD|McR|Mb1| |Return |
104 * |-----------------------------------------------------------|
105 * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | |
106 * `-----------------------------------------------------------'
107 * |Gui |Alt | Mb1 |Fn |Fn |
108 * `--------------------------------------------'
109 * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel8
110 */
111 [4] = \
112 KEYMAP(
113 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
114 GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, FN8, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
115 FN8, NO, NO, NO, NO, NO, WH_L,WH_D,MS_U,WH_U,WH_R,WBAK,WFWD,FN8, DEL, END, PGDN, P7, P8, P9,
116 LCTL,ACL0,ACL1,ACL2,ACL2,NO, NO, MS_L,MS_D,MS_R,BTN1,NO, ENT, P4, P5, P6, PPLS,
117 LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,NO, RSFT, UP, P1, P2, P3,
118 LCTL,LGUI,LALT, TRNS, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
119 ),
120};
121
122
123/*
124 * Macro definition
125 */
126enum macro_id {
127 ALT_TAB,
128};
129const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
130{
131 switch (id) {
132 case ALT_TAB:
133 return (record->event.pressed ?
134 MACRO( D(LALT), D(TAB), END ) :
135 MACRO( U(TAB), END ));
136 }
137 return MACRO_NONE;
138}
139
140
141/*
142 * Fn action definition
143 */
144#ifdef KEYMAP_SECTION_ENABLE
145const uint16_t fn_actions[] __attribute__ ((section (".keymap.fn_actions"))) = {
146#else
147const uint16_t fn_actions[] PROGMEM = {
148#endif
149 [0] = ACTION_DEFAULT_LAYER_SET(0), // Default layer(not used)
150 [1] = ACTION_LAYER_TAP_TOGGLE(1), // HHKB layer(toggle with 5 taps)
151 [2] = ACTION_LAYER_TAP_KEY(2, KC_SLASH), // Cursor layer with Slash*
152 [3] = ACTION_LAYER_TAP_KEY(3, KC_SCLN), // Mousekey layer with Semicolon*
153 [4] = ACTION_LAYER_TAP_KEY(4, KC_SPC), // Mousekey layer with Space
154 [5] = ACTION_LAYER_MOMENTARY(3), // Mousekey layer
155 [6] = ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT), // RControl with tap Enter
156 [7] = ACTION_MODS_ONESHOT(MOD_LSFT), // Oneshot Shift
157 [8] = ACTION_MACRO(ALT_TAB), // Application switching
158};
diff --git a/converter/usb_usb/keymap_spacefn.c b/converter/usb_usb/keymap_spacefn.c
new file mode 100644
index 000000000..bffd2bc60
--- /dev/null
+++ b/converter/usb_usb/keymap_spacefn.c
@@ -0,0 +1,61 @@
1/*
2 * SpaceFN layout
3 * http://geekhack.org/index.php?topic=51069.0
4 */
5#include "keymap_common.h"
6
7
8const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
9 /* 0: default
10 * ,---. ,---------------. ,---------------. ,---------------. ,-----------. ,-----------.
11 * |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |Pwr|Slp|Wak|
12 * `---' `---------------' `---------------' `---------------' `-----------' `-----------'
13 * ,-----------------------------------------------------------. ,-----------. ,---------------.
14 * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backspa| |Ins|Hom|PgU| |NmL| /| *| -|
15 * |-----------------------------------------------------------| |-----------| |---------------|
16 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| |Del|End|PgD| | 7| 8| 9| |
17 * |-----------------------------------------------------------| `-----------' |-----------| +|
18 * |CapsLo| A| S| D| F| G| H| J| K| L| ;| '|Return | | 4| 5| 6| |
19 * |-----------------------------------------------------------| ,---. |---------------|
20 * |Shift | Z| X| C| V| B| N| M| ,| ,| /|Shift | |Up | | 1| 2| 3| |
21 * |-----------------------------------------------------------| ,-----------. |-----------|Ent|
22 * |Ctrl |Gui |Alt | Space |Alt |Gui |Menu|Ctrl| |Lef|Dow|Rig| | 0| .| |
23 * `-----------------------------------------------------------' `-----------' `---------------'
24 */
25 KEYMAP(
26 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
27 ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
28 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, P7, P8, P9,
29 CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, P4, P5, P6, PPLS,
30 LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, UP, P1, P2, P3,
31 LCTL,LGUI,LALT, FN0, RALT,RGUI,APP, RCTL, LEFT,DOWN,RGHT, P0, PDOT,PENT
32 ),
33
34 /* 1: SpaceFN
35 * ,-----------------------------------------------------------.
36 * |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete |
37 * |-----------------------------------------------------------|
38 * | | | |Esc| | | |Hom|Up |End|Psc|Slk|Pau|Ins |
39 * |-----------------------------------------------------------|
40 * | | | | | | |PgU|Lef|Dow|Rig| | | |
41 * |-----------------------------------------------------------|
42 * | | | | | |Spc|PgD|` |~ | |Men| |
43 * |-----------------------------------------------------------|
44 * | | | | | | | | |
45 * `-----------------------------------------------------------'
46 */
47 KEYMAP(
48 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, PSCR,SLCK,BRK,
49 GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, INS, HOME,PGUP, NLCK,PSLS,PAST,PMNS,
50 TRNS,TRNS,TRNS,ESC, TRNS,TRNS,TRNS,HOME,UP, END, PSCR,SLCK,PAUS,INS, DEL, END, PGDN, P7, P8, P9,
51 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PGUP,LEFT,DOWN,RGHT,TRNS,TRNS, TRNS, P4, P5, P6, PPLS,
52 TRNS,TRNS,TRNS,TRNS,TRNS,SPC, PGDN,GRV, FN1, TRNS,APP, TRNS, UP, P1, P2, P3,
53 TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS, LEFT,DOWN,RGHT, P0, PDOT,PENT
54 ),
55};
56
57const uint16_t PROGMEM fn_actions[] = {
58 [0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE),
59 [1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde
60};
61