2 Copyright 2012 Jun Wako <wakojun@gmail.com>
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 2 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <http://www.gnu.org/licenses/>.
22 #include "action_macro.h"
29 /* PC-9801-98-S02 Raku Raku keyboard(Luckyboard) Normal Mode
30 ,---------------------------------------------------------------.
31 | 60| 61| 62| 63| 64| 65| 66| 67| 68| 69| 6A| 6B| 36| 37| 3F| 3E|
32 `---------------------------------------------------------------'
33 ,---------------------------------------------------------------.
34 | 00| 01| 02| 03| 04| 05| 58| 71| 06| 07| 08| 09| 0A| 0E|
35 |---------------------------------------------------------------|
36 | 0F| 10| 11| 12| 13| 14| 3A | 15| 16| 17| 18| 19| 1C|
37 |---------------------------------------------------------'. |
38 | 74| 20| 21| 22| 23| 24| 3B | 3C | 25| 26| 27| 28| 29| |
39 |---------------------------------------------------------------|
40 | 70| 2A| 2B| 2C| 2D| 2E| 38| 3D | 39| 2F| 30| 31| 32| 33| 70|
41 `---------------------------------------------------------------'
42 | 73| 51| 5B| 59| 34| 5A| 35| xx|
43 `-----------------------------------------------'
47 K60, K61, K62, K63, K64, K65, K66, K67, K68, K69, K6A, K6B, K36, K37, K3F, K3E, \
48 K00, K01, K02, K03, K04, K05, K58, K71, K06, K07, K08, K09, K0A, K0E, \
49 K0F, K10, K11, K12, K13, K14, K3A, K15, K16, K17, K18, K19, K1C, \
50 K74, K20, K21, K22, K23, K24, K3B, K3C, K25, K26, K27, K28, K29, \
51 K70,K2A, K2B, K2C, K2D, K2E, K38, K3D, K39, K2F, K30, K31, K32, K33, \
52 K73, K51, K5B, K59, K34, K5A, K35 \
54 { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07 }, \
55 { KC_##K08, KC_##K09, KC_##K0A, KC_NO, KC_NO, KC_NO, KC_##K0E, KC_##K0F }, \
56 { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17 }, \
57 { KC_##K18, KC_##K19, KC_NO, KC_NO, KC_##K1C, KC_NO, KC_NO, KC_NO }, \
58 { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27 }, \
59 { KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D, KC_##K2E, KC_##K2F }, \
60 { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37 }, \
61 { KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D, KC_##K3E, KC_##K3F }, \
62 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
63 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
64 { KC_NO, KC_##K51, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
65 { KC_##K58, KC_##K59, KC_##K5A, KC_##K5B, KC_NO, KC_NO, KC_NO, KC_NO }, \
66 { KC_##K60, KC_##K61, KC_##K62, KC_##K63, KC_##K64, KC_##K65, KC_##K66, KC_##K67 }, \
67 { KC_##K68, KC_##K69, KC_##K6A, KC_##K6B, KC_NO, KC_NO, KC_NO, KC_NO }, \
68 { KC_##K70, KC_##K71, KC_NO, KC_##K73, KC_##K74, KC_NO, KC_NO, KC_NO }, \
69 { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \
74 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
76 ,---------------------------------------------------------------.
77 | 60| 61| 62| 63| 64| 65| 66| 67| 68| 69| 6A| 6B| 36| 37| 3F| 3E|
78 `---------------------------------------------------------------'
79 ,---------------------------------------------------------------.
80 | 00| 01| 02| 03| 04| 05| 58| 71| 06| 07| 08| 09| 0A| 0E|
81 |---------------------------------------------------------------|
82 | 0F| 10| 11| 12| 13| 14| 3A | 15| 16| 17| 18| 19| 1C|
83 |---------------------------------------------------------------|
84 | 74| 20| 21| 22| 23| 24| MINS| EQL| 25| 26| 27| 28| 29| |
85 |---------------------------------------------------------------|
86 | 70| 2A| 2B| 2C| 2D| 2E| 38| 3D | 39| 2F| 30| 31| 32| 33| 70|
87 `---------------------------------------------------------------'
88 | 73| 51| 5B| 59| 34| 5A| 35| xx|
89 `-----------------------------------------------'
92 CANCEL,COPY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, FN6,
93 ESC, 1, 2, 3, 4, 5, FN4, FN5, 6, 7, 8, 9, 0, BSPC,
94 TAB, Q, W, E, R, T, UP, Y, U, I, O, P, ENT,
95 LCTL, A, S, D, F, G, MINS, EQL, H, J, K, L, FN2,
96 LSFT, Z, X, C, V, B, GRV, BSLS, QUOT, N, M,COMM, DOT, FN1,
97 LGUI, LALT, LCTL, LSFT, SPC, SPC, RALT
100 PAUS,COPY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14,
101 GRV, F1, F2, F3, F4, F5, NO, NO, F6, F7, F8, F9, F10, DEL,
102 TAB, Q, W, E, R, T, UP, HOME,PGDN,PGUP, END, P, ENT,
103 LCTL, A, S, D, F, G, MINS, EQL, LEFT,DOWN, UP,RGHT,SCLN,
104 LSFT, Z, X, C, V, B, INS, DOWN, DEL,HOME,PGDN,PGUP, END,TRNS,
105 LGUI, LALT, LCTL, LSFT, SPC, SPC, RALT
108 PAUS,COPY, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14,
109 GRV, F1, F2, F3, F4, F5, NO, NO, F6, F7, F8, F9, F10, DEL,
110 TAB, Q, W, E, R, T, UP, WH_L,WH_D,WH_U,WH_R, P, ENT,
111 LCTL, A, S, D, F, G, MINS, EQL, MS_L,MS_D,MS_U,MS_R,TRNS,
112 LSFT, Z, X, C, V, B, INS, DOWN, BTN3,BTN2,BTN1,BTN4,BTN5,TRNS,
113 LGUI, LALT, LCTL, LSFT, SPC, SPC, RALT
126 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
128 keyevent_t event = record->event;
129 //uint8_t tap_count = record->tap_count;
133 return (event.pressed ?
134 MACRO( T(LBRC), END ) :
135 MACRO( T(LBRC), END ) );
137 return (event.pressed ?
138 MACRO( T(RBRC), END ) :
139 MACRO( T(RBRC), END ) );
147 void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
150 keyevent_t event = record->event;
151 uint8_t tap_count = record->tap_count;
154 action_macro_play(get_macro(opt, event.pressed));
164 const action_t PROGMEM fn_actions[] = {
165 ACTION_LAYER_TAP_TOGGLE(0), // FN0
166 ACTION_LAYER_TAP_KEY(1, KC_SLASH), // FN1
167 ACTION_LAYER_TAP_KEY(2, KC_SCLN), // FN2
168 ACTION_LAYER_MOMENTARY(2), // FN3
169 ACTION_MACRO(LBRACKET), // FN4
170 ACTION_MACRO(RBRACKET), // FN5
171 ACTION_MACRO(DUMMY), // FN6