aboutsummaryrefslogtreecommitdiff
path: root/keyboard/gh60
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2013-02-12 17:08:51 +0900
committertmk <nobody@nowhere>2013-02-12 17:08:51 +0900
commit0c52ee59f08cead9b4906dbbd3aff86b103171fe (patch)
tree96787bdfbcdb34f60a47b5b9539bf1bf29dd7616 /keyboard/gh60
parent821563417565776d2dc3a02b0265e6fcd5218739 (diff)
downloadqmk_firmware-0c52ee59f08cead9b4906dbbd3aff86b103171fe.tar.gz
qmk_firmware-0c52ee59f08cead9b4906dbbd3aff86b103171fe.zip
Add transparent layer feature in gh60
Diffstat (limited to 'keyboard/gh60')
-rw-r--r--keyboard/gh60/Makefile.lufa5
-rw-r--r--keyboard/gh60/README.md85
-rw-r--r--keyboard/gh60/keymap.c142
-rw-r--r--keyboard/gh60/keymap_plain.h24
-rw-r--r--keyboard/gh60/keymap_poker.h88
5 files changed, 264 insertions, 80 deletions
diff --git a/keyboard/gh60/Makefile.lufa b/keyboard/gh60/Makefile.lufa
index 45402bb38..c8d3fa494 100644
--- a/keyboard/gh60/Makefile.lufa
+++ b/keyboard/gh60/Makefile.lufa
@@ -119,5 +119,8 @@ include $(TOP_DIR)/protocol/lufa.mk
119include $(TOP_DIR)/common.mk 119include $(TOP_DIR)/common.mk
120include $(TOP_DIR)/rules.mk 120include $(TOP_DIR)/rules.mk
121 121
122plain: OPT_DEFS += -DPLAIN_MAP 122plain: OPT_DEFS += -DKEYMAP_PLAIN
123plain: all 123plain: all
124
125poker: OPT_DEFS += -DKEYMAP_POKER
126poker: all
diff --git a/keyboard/gh60/README.md b/keyboard/gh60/README.md
index 289467aba..405ab3dff 100644
--- a/keyboard/gh60/README.md
+++ b/keyboard/gh60/README.md
@@ -12,23 +12,28 @@ Move to this directory then just run `make` like:
12 12
13 $ make -f Makfile.[pjrc|lufa] 13 $ make -f Makfile.[pjrc|lufa]
14 14
15Use `Makefile.pjrc` if you want to use PJRC stack or use `Makefile.lufa` for LUFA stack.
16
15 17
16## Boot Magic 18## Boot Magic
19Plugin pressing these `Boot Magic` key.
20
17- `Fn` key for bootloader kick up. 21- `Fn` key for bootloader kick up.
18- `D` key for Debug enable. 22- `D` key for Debug enable.
19 23
20 24
21## Keymap 25## Keymap
22Two version of keymap are available. `Plan` and `Funky`. 26Two version of keymap are available. `Plan`, `Poker` and `Funky`(default).
23See keymap.c to define your own favourite keymap. 27See keymap.c to define your own favourite keymap.
24 28
29 $ make -f Makefile.[pjrc|lufa] [plain|poker]
30
25### 1. Plain keymap 31### 1. Plain keymap
26This will be useful if you want to use key mapping tool like AHK. 32This will be useful if you want to use key mapping tool like AHK.
27To get this plain keymap do `make`:
28 33
29 $ make -f Makefile.[pjrc|lufa] plain 34See [keymap_plain.h](keymap_plain.h) for detail.
30 35
31### Layer 0 36#### 1.0 Plain Default Layer
32 ,-----------------------------------------------------------. 37 ,-----------------------------------------------------------.
33 |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | 38 |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
34 |-----------------------------------------------------------| 39 |-----------------------------------------------------------|
@@ -41,12 +46,71 @@ To get this plain keymap do `make`:
41 |Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl| 46 |Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl|
42 `-----------------------------------------------------------' 47 `-----------------------------------------------------------'
43 48
49### 2 Poker keymap
50Poker layer emulation without Esc/grave bug :)
51
52See [keymap_poker.h](keymap_poker.h) for detail.
53
54#### 2.0 Poker Default Layer
55 ,-----------------------------------------------------------.
56 | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
57 |-----------------------------------------------------------|
58 |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
59 |-----------------------------------------------------------|
60 |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |
61 |-----------------------------------------------------------|
62 |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
63 |-----------------------------------------------------------|
64 |Ctrl|Gui |Alt | Space |Fn |Gui |App |Ctrl|
65 `-----------------------------------------------------------'
66
67#### 2.1 Poker Arrow Layer
68 ,-----------------------------------------------------------.
69 | | | | | | | | | | | | | | |
70 |-----------------------------------------------------------|
71 | | | | | | | | | | | | | | |
72 |-----------------------------------------------------------|
73 | | | | | | | | | | | | | |
74 |-----------------------------------------------------------|
75 | | | | | | | | | | | | Up |
76 |-----------------------------------------------------------|
77 | | | | |Fn |Left|Down|Righ|
78 `-----------------------------------------------------------'
79
80#### 2.2 Poker Esc Layer
81 ,-----------------------------------------------------------.
82 |Esc| | | | | | | | | | | | | |
83 |-----------------------------------------------------------|
84 | | | | | | | | | | | | | | |
85 |-----------------------------------------------------------|
86 | | | | | | | | | | | | | |
87 |-----------------------------------------------------------|
88 | | | | | | | | | | | | |
89 |-----------------------------------------------------------|
90 | | | | |Fn | | | |
91 `-----------------------------------------------------------'
44 92
45### 2. Funky layers. 93#### 2.1 Poker Fn Layer
94 ,-----------------------------------------------------------.
95 |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |
96 |-----------------------------------------------------------|
97 | |FnQ| Up| | | | | | |Cal| |Hom|Ins| |
98 |-----------------------------------------------------------|
99 | |Lef|Dow|Rig| | |Psc|Slk|Pau| |Tsk|End| |
100 |-----------------------------------------------------------|
101 | |Del| |Web|Mut|VoU|VoD| |PgU|PgD|Del| |
102 |-----------------------------------------------------------|
103 | | | | FnS |Fn | | | |
104 `-----------------------------------------------------------'
46 105
47 $ make -f Makefile.[pjrc|lufa]
48 106
49#### Layer 0: Default Layer 107
108### 3. Funky keymap
109This is my keymap(default) with HHKB, Vi cursor and Mousekey layer.
110
111See [keymap.h](keymap.h) for detail.
112
113#### 3.0 Funky Default Layer
50 ,-----------------------------------------------------------. 114 ,-----------------------------------------------------------.
51 |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | 115 |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
52 |-----------------------------------------------------------| 116 |-----------------------------------------------------------|
@@ -59,7 +123,7 @@ To get this plain keymap do `make`:
59 |Ctrl|Gui |Alt | Space |Alt |*L3 |*L3 |*L1 | 123 |Ctrl|Gui |Alt | Space |Alt |*L3 |*L3 |*L1 |
60 `-----------------------------------------------------------' 124 `-----------------------------------------------------------'
61 125
62#### Layer 1: HHKB mode 126#### 3.1 Funky HHKB mode
63 ,-----------------------------------------------------------. 127 ,-----------------------------------------------------------.
64 |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete | 128 |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete |
65 |-----------------------------------------------------------| 129 |-----------------------------------------------------------|
@@ -72,7 +136,7 @@ To get this plain keymap do `make`:
72 |Ctrl|Gui |Alt | Space |Alt |Gui |App |*L0 | 136 |Ctrl|Gui |Alt | Space |Alt |Gui |App |*L0 |
73 `-----------------------------------------------------------' 137 `-----------------------------------------------------------'
74 138
75#### Layer 2: Vi mode 139#### 3.2 Funky Vi mode
76 ,-----------------------------------------------------------. 140 ,-----------------------------------------------------------.
77 | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp | 141 | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp |
78 |-----------------------------------------------------------| 142 |-----------------------------------------------------------|
@@ -85,7 +149,7 @@ To get this plain keymap do `make`:
85 |Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl| 149 |Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl|
86 `-----------------------------------------------------------' 150 `-----------------------------------------------------------'
87 151
88#### Layer 3: Mouse mode 152#### 3.3 Funky Mouse mode
89 ,-----------------------------------------------------------. 153 ,-----------------------------------------------------------.
90 | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp | 154 | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp |
91 |-----------------------------------------------------------| 155 |-----------------------------------------------------------|
@@ -98,4 +162,3 @@ To get this plain keymap do `make`:
98 |Ctrl|Gui |Alt | Space |Alt |*L0 |*L0 |Ctrl| 162 |Ctrl|Gui |Alt | Space |Alt |*L0 |*L0 |Ctrl|
99 `-----------------------------------------------------------' 163 `-----------------------------------------------------------'
100 Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel 164 Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
101
diff --git a/keyboard/gh60/keymap.c b/keyboard/gh60/keymap.c
index 07045d7a7..7e4f945f6 100644
--- a/keyboard/gh60/keymap.c
+++ b/keyboard/gh60/keymap.c
@@ -1,5 +1,5 @@
1/* 1/*
2Copyright 2012 Jun Wako <wakojun@gmail.com> 2Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
3 3
4This program is free software: you can redistribute it and/or modify 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 5it under the terms of the GNU General Public License as published by
@@ -18,9 +18,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18#include <stdbool.h> 18#include <stdbool.h>
19#include <avr/pgmspace.h> 19#include <avr/pgmspace.h>
20#include "keycode.h" 20#include "keycode.h"
21#include "action.h"
22#include "action_macro.h"
23#include "report.h"
24#include "host.h"
21#include "print.h" 25#include "print.h"
22#include "debug.h" 26#include "debug.h"
23#include "util.h"
24#include "keymap.h" 27#include "keymap.h"
25 28
26 29
@@ -56,55 +59,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
56 K40, K41, K42, K45, K4A, K4B, K4C, K4D \ 59 K40, K41, K42, K45, K4A, K4B, K4C, K4D \
57) 60)
58 61
59#define KEYCODE(layer, row, col) (pgm_read_byte(&keymaps[(layer)][(row)][(col)]))
60
61
62// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
63static const uint8_t PROGMEM fn_layer[] = {
64 0, // Fn0
65 1, // Fn1
66 2, // Fn2
67 3, // Fn3
68 3, // Fn4
69 0, // Fn5
70 0, // Fn6
71 0 // Fn7
72};
73
74// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
75// See layer.c for details.
76static const uint8_t PROGMEM fn_keycode[] = {
77 KC_NO, // Fn0
78 KC_NO, // Fn1
79 KC_SLSH, // Fn2
80 KC_SCLN, // Fn3
81 KC_NO, // Fn4
82 KC_NO, // Fn5
83 KC_NO, // Fn6
84 KC_NO // Fn7
85};
86 62
63#if defined(KEYMAP_PLAIN)
64 #include "keymap_plain.h"
65#elif defined(KEYMAP_POKER)
66 #include "keymap_poker.h"
67#else
87static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 68static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
88#ifdef PLAIN_MAP 69 /*
89 /* Layer 0: Default Layer 70 * Funky
90 * ,-----------------------------------------------------------.
91 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
92 * |-----------------------------------------------------------|
93 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
94 * |-----------------------------------------------------------|
95 * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |
96 * |-----------------------------------------------------------|
97 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
98 * |-----------------------------------------------------------|
99 * |Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl|
100 * `-----------------------------------------------------------'
101 */ 71 */
102 KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
103 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \
104 CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,NO, ENT, \
105 LSFT,NO, Z, X, C, V, B, N, M, COMM,DOT, SLSH,NO, RSFT, \
106 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL),
107#else
108 /* Layer 0: Default Layer 72 /* Layer 0: Default Layer
109 * ,-----------------------------------------------------------. 73 * ,-----------------------------------------------------------.
110 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | 74 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
@@ -134,7 +98,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
134 * |-----------------------------------------------------------| 98 * |-----------------------------------------------------------|
135 * |Shift | | | | | | +| -|End|PgD|Dow|Shift | 99 * |Shift | | | | | | +| -|End|PgD|Dow|Shift |
136 * |-----------------------------------------------------------| 100 * |-----------------------------------------------------------|
137 * |Ctrl|Gui |Alt | Space |Alt |Gui |App |xxx | 101 * |Ctrl|Gui |Alt | Space |Alt |Gui |App |Fn0 |
138 * `-----------------------------------------------------------' 102 * `-----------------------------------------------------------'
139 */ 103 */
140 KEYMAP_ANSI( 104 KEYMAP_ANSI(
@@ -142,7 +106,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
142 CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS,UP, NO, INS, \ 106 CAPS,NO, NO, NO, NO, NO, NO, NO, PSCR,SLCK,PAUS,UP, NO, INS, \
143 LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT, ENT, \ 107 LCTL,VOLD,VOLU,MUTE,NO, NO, PAST,PSLS,HOME,PGUP,LEFT,RGHT, ENT, \
144 LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN, RSFT, \ 108 LSFT,NO, NO, NO, NO, NO, PPLS,PMNS,END, PGDN,DOWN, RSFT, \
145 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN1), 109 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0),
146 /* Layer 2: Vi mode (Slash) 110 /* Layer 2: Vi mode (Slash)
147 * ,-----------------------------------------------------------. 111 * ,-----------------------------------------------------------.
148 * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp | 112 * | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp |
@@ -151,7 +115,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
151 * |-----------------------------------------------------------| 115 * |-----------------------------------------------------------|
152 * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return | 116 * |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return |
153 * |-----------------------------------------------------------| 117 * |-----------------------------------------------------------|
154 * |Shift | | | | | |Hom|PgD|PgU|End|xxx|Shift | 118 * |Shift | | | | | |Hom|PgD|PgU|End|Fn0|Shift |
155 * |-----------------------------------------------------------| 119 * |-----------------------------------------------------------|
156 * |Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl| 120 * |Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl|
157 * `-----------------------------------------------------------' 121 * `-----------------------------------------------------------'
@@ -160,7 +124,7 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
160 GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \ 124 GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \
161 TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, NO, \ 125 TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, NO, NO, NO, NO, \
162 LCTL,NO, LEFT,DOWN,RGHT,NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, \ 126 LCTL,NO, LEFT,DOWN,RGHT,NO, LEFT,DOWN,UP, RGHT,NO, NO, ENT, \
163 LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN2, RSFT, \ 127 LSFT,NO, NO, NO, NO, NO, HOME,PGDN,PGUP,END, FN0, RSFT, \
164 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL), 128 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL),
165 /* Layer 3: Mouse mode (Semicolon/App) 129 /* Layer 3: Mouse mode (Semicolon/App)
166 * ,-----------------------------------------------------------. 130 * ,-----------------------------------------------------------.
@@ -168,35 +132,77 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
168 * |-----------------------------------------------------------| 132 * |-----------------------------------------------------------|
169 * |Tab | | | | | |MwL|MwD|MwU|MwR| | | | | 133 * |Tab | | | | | |MwL|MwD|MwU|MwR| | | | |
170 * |-----------------------------------------------------------| 134 * |-----------------------------------------------------------|
171 * |Contro| |Ac0|Ac1|Ac1| |McL|McD|McU|McR|xxx| |Return | 135 * |Contro| |Ac0|Ac1|Ac1| |McL|McD|McU|McR|Fn0| |Return |
172 * |-----------------------------------------------------------| 136 * |-----------------------------------------------------------|
173 * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift | 137 * |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift |
174 * |-----------------------------------------------------------| 138 * |-----------------------------------------------------------|
175 * |Ctrl|Gui |Alt | Space | |xxx |xxx | | 139 * |Ctrl|Gui |Alt | Space | |Fn0 |Fn0 | |
176 * `-----------------------------------------------------------' 140 * `-----------------------------------------------------------'
177 * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel 141 * Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
178 */ 142 */
179 KEYMAP_ANSI( 143 KEYMAP_ANSI(
180 GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \ 144 GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \
181 TAB, NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,NO, NO, NO, NO, \ 145 TAB, NO, NO, NO, NO, NO, WH_L,WH_D,WH_U,WH_R,NO, NO, NO, NO, \
182 LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,FN3, NO, ENT, \ 146 LCTL,NO, ACL0,ACL1,ACL2,NO, MS_L,MS_D,MS_U,MS_R,FN0, NO, ENT, \
183 LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,NO, RSFT, \ 147 LSFT,NO, NO, NO, NO, BTN3,BTN2,BTN1,BTN4,BTN5,NO, RSFT, \
184 LCTL,LGUI,LALT, BTN1, NO, FN4, FN4, NO ), 148 LCTL,LGUI,LALT, BTN1, NO, FN0, FN0, NO ),
185#endif
186}; 149};
187 150
151/*
152 * Fn action definition
153 */
154static const uint16_t PROGMEM fn_actions[] = {
155 ACTION_LAYER_DEFAULT, // FN0
156 ACTION_LAYER_SET(1), // FN1
157 ACTION_LAYER_SET_TAP_KEY(2, KC_SLASH), // FN2 Layer with Slash
158 ACTION_LAYER_SET_TAP_KEY(3, KC_SCLN), // FN3 Layer with Semicolon
159 ACTION_LAYER_SET(3), // FN4
160};
161#endif
188 162
189uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col)
190{
191 return KEYCODE(layer, row, col);
192}
193 163
194uint8_t keymap_fn_layer(uint8_t index)
195{
196 return pgm_read_byte(&fn_layer[index]);
197}
198 164
199uint8_t keymap_fn_keycode(uint8_t index) 165/* convert keycode to action */
200{ 166action_t keymap_get_action(uint8_t layer, uint8_t row, uint8_t col) {
201 return pgm_read_byte(&fn_keycode[index]); 167 uint8_t key = (pgm_read_byte(&keymaps[(layer)][(row)][(col)]));
168
169 // TODO: move to action.c ?
170 /* Transparently use default layer */
171 if (key == KC_TRANSPARENT) {
172 key = (pgm_read_byte(&keymaps[(default_layer)][(row)][(col)]));
173 }
174
175 action_t action;
176 switch (key) {
177 case KC_A ... KC_EXSEL:
178 action.code = ACTION_KEY(key);
179 break;
180 case KC_LCTRL ... KC_LGUI:
181 action.code = ACTION_LMOD(key);
182 break;
183 case KC_RCTRL ... KC_RGUI:
184 action.code = ACTION_RMOD(key);
185 break;
186 case KC_SYSTEM_POWER ... KC_SYSTEM_WAKE:
187 action.code = ACTION_USAGE_SYSTEM(KEYCODE2SYSTEM(key));
188 break;
189 case KC_AUDIO_MUTE ... KC_WWW_FAVORITES:
190 action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(key));
191 break;
192 case KC_MS_UP ... KC_MS_ACCEL2:
193 action.code = ACTION_MOUSEKEY(key);
194 break;
195 case KC_FN0 ... KC_FN31:
196 if (FN_INDEX(key) < sizeof(fn_actions) / sizeof(fn_actions[0])) {
197 action.code = pgm_read_word(&fn_actions[FN_INDEX(key)]);
198 } else {
199 action.code = ACTION_NO;
200 }
201 break;
202 case KC_NO ... KC_UNDEFINED:
203 default:
204 action.code = ACTION_NO;
205 break;
206 }
207 return action;
202} 208}
diff --git a/keyboard/gh60/keymap_plain.h b/keyboard/gh60/keymap_plain.h
new file mode 100644
index 000000000..ad0bc2f26
--- /dev/null
+++ b/keyboard/gh60/keymap_plain.h
@@ -0,0 +1,24 @@
1static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
2 /*
3 * Plain
4 */
5 /* Layer 0: Default Layer
6 * ,-----------------------------------------------------------.
7 * |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
8 * |-----------------------------------------------------------|
9 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
10 * |-----------------------------------------------------------|
11 * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |
12 * |-----------------------------------------------------------|
13 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
14 * |-----------------------------------------------------------|
15 * |Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl|
16 * `-----------------------------------------------------------'
17 */
18 KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
19 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \
20 CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,NO, ENT, \
21 LSFT,NO, Z, X, C, V, B, N, M, COMM,DOT, SLSH,NO, RSFT, \
22 LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL),
23};
24
diff --git a/keyboard/gh60/keymap_poker.h b/keyboard/gh60/keymap_poker.h
new file mode 100644
index 000000000..186020b3b
--- /dev/null
+++ b/keyboard/gh60/keymap_poker.h
@@ -0,0 +1,88 @@
1static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
2 /*
3 * Poker Layer
4 */
5 /* Layer x000: Poker Default Layer
6 * ,-----------------------------------------------------------.
7 * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
8 * |-----------------------------------------------------------|
9 * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
10 * |-----------------------------------------------------------|
11 * |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |
12 * |-----------------------------------------------------------|
13 * |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
14 * |-----------------------------------------------------------|
15 * |Ctrl|Gui |Alt | Space |Fn |Gui |App |Ctrl|
16 * `-----------------------------------------------------------'
17 */
18 KEYMAP_ANSI(
19 GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
20 TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \
21 LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \
22 LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \
23 LCTL,LGUI,LALT, SPC, FN2, RGUI,APP, RCTL),
24 /* Layer x001: Poker with Arrow */
25 KEYMAP_ANSI(
26 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
27 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
28 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
29 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \
30 TRNS,TRNS,TRNS, TRNS, FN2, LEFT,DOWN,RGHT),
31 /* Layer x010: Poker with Esc */
32 KEYMAP_ANSI(
33 ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
34 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
35 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
36 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
37 TRNS,TRNS,TRNS, TRNS, FN2, TRNS,TRNS,TRNS),
38 /* Layer x011: Poker with Arrow and Esc */
39 KEYMAP_ANSI(
40 ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
41 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
42 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
43 TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \
44 TRNS,TRNS,TRNS, TRNS, FN2, LEFT,DOWN,RGHT),
45 /*
46 * Poker Momentary Fn Layer
47 */
48 /* Layer x100: Poker Default + Fn'd */
49 KEYMAP_ANSI(
50 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \
51 TRNS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \
52 TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \
53 TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \
54 TRNS,TRNS,TRNS, FN0, FN2, TRNS,TRNS,TRNS),
55 /* Layer x101: Poker with Arrow + Fn'd */
56 KEYMAP_ANSI(
57 ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \
58 TRNS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \
59 TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \
60 TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, UP, \
61 TRNS,TRNS,TRNS, FN0, FN2, LEFT,DOWN,RGHT),
62 /* Layer x110: Poker with Esc + Fn'd */
63 KEYMAP_ANSI(
64 GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \
65 TRNS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \
66 TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \
67 TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \
68 TRNS,TRNS,TRNS, FN0, FN2, TRNS,TRNS,TRNS),
69 /* Layer x111: Poker with Arrow and Esc + Fn'd */
70 KEYMAP_ANSI(
71 GRV, F9, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \
72 TRNS,FN1, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \
73 TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \
74 TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, UP, \
75 TRNS,TRNS,TRNS, FN0, FN2, LEFT,DOWN,RGHT),
76};
77
78/*
79 * Fn action definition
80 */
81static const uint16_t PROGMEM fn_actions[] = {
82 /* Poker Layout */
83 [0] = ACTION_LAYER_BIT_TOGGLE(1), // FN0 Poker Arrow toggle(Space)
84 [1] = ACTION_LAYER_BIT_TOGGLE(2), // FN1 Poker Esc toggle(Q)
85 [2] = ACTION_LAYER_BIT(4), // FN2 Poker Fn
86 [3] = ACTION_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // FN3 Task(RControl,RShift+Esc)
87};
88