Jack Humbert 10 years ago
commit 24218b58b4

@ -33,8 +33,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
extern const uint16_t fn_actions[];
#define KEYMAP( \
// JCK: Semi-Standard layout
#define KEYMAP_JCK( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
@ -48,4 +48,26 @@ extern const uint16_t fn_actions[];
{ KC_##K40, KC_##K41, KC_NO, KC_##K43, KC_NO, KC_NO, KC_##K46, KC_NO, KC_NO, KC_NO, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_##K4E } \
}
// ASK: Short Space layout
#define KEYMAP_ASK( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, K3D, K3E, \
K40, K41, K43, K44, K46, K48, K49, K4A, K4B, K4C, K4D, K4E \
) { \
{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_NO, KC_##K0E }, \
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D, KC_##K1E }, \
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_NO, KC_##K2D, KC_##K2E }, \
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_NO, KC_##K3C, KC_##K3D, KC_##K3E }, \
{ KC_##K40, KC_##K41, KC_NO, KC_##K43, KC_##K44, KC_NO, KC_##K46, KC_NO, KC_##K48, KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D, KC_##K4E } \
}
// MLO: Semi-Grid layout
// KLN: Grid layout
// PKR: Standard layout
#endif

@ -1,145 +0,0 @@
#include "keymap_common.h"
/*
* Hasu
*/
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Default Layer
* ,-----------------------------------------------------------.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
* |-----------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
* |-----------------------------------------------------------|
* |Caps | A| S| D| F| G| H| J| K| L|Fn3| '|Return |
* |-----------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .|Fn2|Shift |
* |-----------------------------------------------------------|
* |Ctrl|Gui |Alt | Space |Alt |Fn4 |Fn4 |Fn1 |
* `-----------------------------------------------------------'
*/
KEYMAP_ANSI(
ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \
LCTL,A, S, D, F, G, H, J, K, L, FN2, QUOT, ENT, \
LSFT,Z, X, C, V, B, N, M, COMM,DOT, FN1, FN9, \
LCTL,LGUI,LALT, SPC, RALT,FN3, FN3, FN0),
/* Keymap 1: colemak */
KEYMAP_ANSI(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \
BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \
LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0),
/* Keymap 2: dvorak */
KEYMAP_ANSI(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \
TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \
CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \
LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0),
/* Keymap 3: workman */
KEYMAP_ANSI(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \
BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \
LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, FN0),
/* Overlay 4: HHKB mode
* ,-----------------------------------------------------------.
* |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete |
* |-----------------------------------------------------------|
* |Caps | | | | | | | |Psc|Slk|Pus|Up | |Inser|
* |-----------------------------------------------------------|
* |Contro|VoD|VoU|Mut| | | *| /|Hom|PgU|Lef|Rig|Enter |
* |-----------------------------------------------------------|
* |Shift | | | | | | +| -|End|PgD|Dow|Shift |
* |-----------------------------------------------------------|
* |Ctrl|Gui |Alt | Space |Alt |Gui |App | |
* `-----------------------------------------------------------'
*/
KEYMAP_ANSI(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \
CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP, TRNS,INS, \
LCTL,VOLD,VOLU,MUTE,TRNS,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT, ENT, \
LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN, RSFT, \
LCTL,LGUI,LALT, SPC, RALT,RGUI,FN4, TRNS),
/* Overlay 5: Vi mode (Slash)
* ,-----------------------------------------------------------.
* | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp |
* |-----------------------------------------------------------|
* |Tab |Hom|PgD|Up |PgU|End|Hom|PgD|PgU|End| | | | |
* |-----------------------------------------------------------|
* |Contro| |Lef|Dow|Rig| |Lef|Dow|Up |Rig| | |Return |
* |-----------------------------------------------------------|
* |Shift | | | | | |Hom|PgD|PgU|End| |Shift |
* |-----------------------------------------------------------|
* |Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl|
* `-----------------------------------------------------------'
*/
KEYMAP_ANSI(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \
TAB, HOME,PGDN,UP, PGUP,END, HOME,PGDN,PGUP,END, TRNS,TRNS,TRNS,TRNS, \
LCTL,TRNS,LEFT,DOWN,RGHT,TRNS,LEFT,DOWN,UP, RGHT,TRNS,TRNS, ENT, \
LSFT,TRNS,TRNS,TRNS,TRNS,TRNS,HOME,PGDN,PGUP,END, TRNS, RSFT, \
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL),
/* Overlay 6: Mouse mode (Semicolon/App)
* ,-----------------------------------------------------------.
* | `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Backsp |
* |-----------------------------------------------------------|
* |Tab | | | | | |MwL|MwD|MwU|MwR| | | | |
* |-----------------------------------------------------------|
* |Contro| |Ac0|Ac1|Ac1| |McL|McD|McU|McR| | |Return |
* |-----------------------------------------------------------|
* |Shift | | | | |Mb3|Mb2|Mb1|Mb4|Mb5| |Shift |
* |-----------------------------------------------------------|
* |Ctrl|Gui |Alt | Space | | | | |
* `-----------------------------------------------------------'
* Mc: Mouse Cursor / Mb: Mouse Button / Mw: Mouse Wheel
*/
KEYMAP_ANSI(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \
TAB, TRNS,TRNS,TRNS,TRNS,TRNS,WH_L,WH_D,WH_U,WH_R,TRNS,TRNS,TRNS,TRNS, \
LCTL,TRNS,ACL0,ACL1,ACL2,TRNS,MS_L,MS_D,MS_U,MS_R,TRNS,TRNS, ENT, \
LSFT,TRNS,TRNS,TRNS,TRNS,BTN3,BTN2,BTN1,BTN4,BTN5,TRNS, RSFT, \
LCTL,LGUI,LALT, BTN1, TRNS,TRNS,TRNS,RCTL),
/* Overlay 7: Layout selector
* ,-----------------------------------------------------------.
* | Lq| Lc| Ld| Lw| | | | | | | | | | |
* |-----------------------------------------------------------|
* | |Lq |Lw | | | | | | | | | | | |
* |-----------------------------------------------------------|
* | | | |Ld | | | | | | | | | |
* |-----------------------------------------------------------|
* | | | |Lc | | | | | | | | |
* |-----------------------------------------------------------|
* | | | | | | | | |
* `-----------------------------------------------------------'
* Lq: set Qwerty layout
* Lc: set Colemak layout
* Ld: set Dvorak layout
* Lw: set Workman layout
*/
KEYMAP_ANSI(
FN5, FN6, FN7, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,FN5, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,FN6, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS),
};
/*
* Fn action definition
*/
const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_LAYER_MOMENTARY(4),
[1] = ACTION_LAYER_TAP_KEY(5, KC_SLASH),
[2] = ACTION_LAYER_TAP_KEY(6, KC_SCLN),
[3] = ACTION_LAYER_MOMENTARY(6),
[4] = ACTION_LAYER_MOMENTARY(7), // to Layout selector
[5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout
[6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout
[7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout
[8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout
[9] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_GRV),
};

@ -1,52 +0,0 @@
#include "keymap_common.h"
/*
* HHKB Layout
*/
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: Default layer
* ,-----------------------------------------------------------.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|
* |-----------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Bspc |
* |-----------------------------------------------------------|
* |Ctrl | A| S| D| F| G| H| J| K| L|Fn3| '|Return |
* |-----------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn |
* |-----------------------------------------------------------|
* | |Gui |Alt | Space | |Alt |Gui | |
* `-----------------------------------------------------------'
*/
KEYMAP_HHKB(
ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSLS, GRV, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSPC, \
LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT,FN0, \
NO, LGUI,LALT, SPC, NO, RALT,RGUI,NO),
/* 1: HHKB Fn layer
* ,-----------------------------------------------------------.
* |Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
* |-----------------------------------------------------------|
* |Caps | | | | | | | |Psc|Slk|Pus|Up | | |
* |-----------------------------------------------------------|
* | |VoD|VoU|Mut|Ejc| | *| /|Hom|PgU|Lef|Rig|Enter |
* |-----------------------------------------------------------|
* | | | | | | | +| -|End|PgD|Dow| | |
* |-----------------------------------------------------------|
* | | | | | | | | |
* `-----------------------------------------------------------'
*/
KEYMAP_HHKB(
PWR, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, INS, DEL, \
CAPS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PSCR,SLCK,PAUS,UP, TRNS,TRNS, \
TRNS,VOLD,VOLU,MUTE,EJCT,TRNS,PAST,PSLS,HOME,PGUP,LEFT,RGHT, PENT, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PPLS,PMNS,END, PGDN,DOWN, TRNS,TRNS, \
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS),
};
/*
* Fn action definition
*/
const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_LAYER_MOMENTARY(1),
};

@ -1,22 +1,24 @@
#include "keymap_common.h"
// JCK: Semi-Standard layout
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: qwerty */
[0] = KEYMAP(GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSPC, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, DEL, \
ESC, A, S, D, F, G, H, J, K, L, SCLN, QUOT, ENT, MPLY, \
LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, VOLD, VOLU, \
LCTL, LALT, LGUI, SPC, FN1, LEFT, DOWN, UP, RGHT),
[1] = KEYMAP(GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSPC, \
TAB, Q, W, F, P, G, J, L, U, Y, SCLN, LBRC, RBRC, BSLS, DEL, \
ESC, A, R, S, T, D, H, N, E, I, O, QUOT, ENT, MPLY, \
LSFT, Z, X, C, V, B, K, M, COMM, DOT, SLSH, RSFT, VOLD, VOLU, \
LCTL, LALT, LGUI, SPC, FN1, LEFT, DOWN, UP, RGHT),
[2] = KEYMAP(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \
TAB, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC, RBRC, BSLS, DEL, \
ESC, FN3, FN4, TRNS, TRNS, TRNS, TRNS, MINS, EQL, LBRC, RBRC, BSLS, ENT, MPLY, \
LSFT, FN9, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, VOLD, VOLU, \
LCTL, LALT, LGUI, SPC, TRNS, MNXT, VOLD, VOLU, MPLY),
[0] = KEYMAP_JCK(GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSPC, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC, RBRC, BSLS, DEL, \
ESC, A, S, D, F, G, H, J, K, L, SCLN, QUOT, ENT, MPLY, \
LSFT, Z, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, VOLD, VOLU, \
LCTL, LALT, LGUI, SPC, FN1, LEFT, DOWN, UP, RGHT),
[1] = KEYMAP_JCK(GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, EQL, BSPC, \
TAB, Q, W, F, P, G, J, L, U, Y, SCLN, LBRC, RBRC, BSLS, DEL, \
ESC, A, R, S, T, D, H, N, E, I, O, QUOT, ENT, MPLY, \
LSFT, Z, X, C, V, B, K, M, COMM, DOT, SLSH, RSFT, VOLD, VOLU, \
LCTL, LALT, LGUI, SPC, FN1, LEFT, DOWN, UP, RGHT),
[2] = KEYMAP_JCK(GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, BSPC, \
TAB, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC, RBRC, BSLS, DEL, \
ESC, FN3, FN4, TRNS, TRNS, TRNS, TRNS, MINS, EQL, LBRC, RBRC, BSLS, ENT, MPLY, \
LSFT, FN9, X, C, V, B, N, M, COMM, DOT, SLSH, RSFT, VOLD, VOLU, \
LCTL, LALT, LGUI, SPC, TRNS, MNXT, VOLD, VOLU, MPLY),
};
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_MOMENTARY(2), // to Fn overlay

@ -1,51 +0,0 @@
#include "keymap_common.h"
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = KEYMAP( /* Native */
ESC, Q, W, E, R, T, Y, U, I, O, P, FN2,
BSPC, A, S, D, F, G, H, J, K, L, SCLN, QUOT,
TAB, Z, X, C, V, B, N, M, COMM, DOT, SLSH, ENT,
DEL, LCTL, NO, LSFT, LALT, SPC, NO, LEFT, DOWN, UP, RGHT),
[1] = KEYMAP( /* QWERTY->PHOTOSHOP */
DELETE, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, FN1,
O, G, S, U, T, FN27, F21, F10, F11, F7, F8, F9,
TAB, FN4, FN5, FN6, F1, FN7, F18, F19, F23, F20, F22, FN9,
COMM, DOT, FN10, FN11, FN3, SPC, FN12, F2, FN8, F3, F14),
[2] = KEYMAP( /* 2: FN3 PHOTOSHOP */
ESC, FN25, FN26, NO, NO, NO, NO, NO, NO, NO, NO, NO,
NO, NO, NO, NO, NO, NO, NO, NO, NO, FN19, FN20, FN21,
C, NO, FN22, FN5, NO, FN23, NO, NO, NO, NO, FN13, NO,
FN14, FN15, FN16, FN17, FN3, SPC, FN18, NO, NO, F24, NO),
};
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_DEFAULT_LAYER_SET(0), // set Qwerty layout
[2] = ACTION_DEFAULT_LAYER_SET(1), // set Photoshop presets
[3] = ACTION_LAYER_ON_OFF(2), // Photoshop function layer
[4] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F9), // photo folder AHK
[5] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_I), // select inverse
[6] = ACTION_MODS_KEY(MOD_LSFT, KC_M), // marquee select
[7] = ACTION_MODS_KEY(MOD_LALT, KC_BSPC), // fill
[8] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_X), // warp
[9] = ACTION_MODS_KEY(MOD_LCTL | MOD_LALT | MOD_LSFT, KC_F12), // merge all new layer
[10] = ACTION_MODS_KEY(MOD_LCTL, KC_MINS), // zoom out
[11] = ACTION_MODS_KEY(MOD_LCTL, KC_H), // RBG sliders
[12] = ACTION_MODS_KEY(MOD_LCTL, KC_S), // save
[13] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_F5), // layer mask from transparancy
[14] = ACTION_MODS_KEY(MOD_LALT, KC_LBRC), // prev layer
[15] = ACTION_MODS_KEY(MOD_LALT, KC_RBRC), // next layer
[16] = ACTION_MODS_KEY(MOD_LCTL, KC_EQL), // zoom in
[17] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_H), // HSV sliders
[18] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F11), // save as PNG
[19] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F7), // gaussian blur
[20] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL | MOD_LALT, KC_F8), // motion blur
[21] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_X), // liquify filter
[22] = ACTION_MODS_KEY(MOD_LSFT, KC_MINS), // prev layer blending
[23] = ACTION_MODS_KEY(MOD_LSFT | MOD_LALT, KC_N), // normal layer blending
[24] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // next layer blending
[25] = ACTION_MODS_KEY(MOD_LCTL, KC_Z), // step back
[26] = ACTION_MODS_KEY(MOD_LCTL, KC_Y), // step forward
[27] = ACTION_MODS_KEY(MOD_LCTL, KC_R), // rasterize
};

@ -1,104 +0,0 @@
#include "keymap_common.h"
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: qwerty */
KEYMAP_ANSI(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \
CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \
LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL),
/* 1: colemak */
KEYMAP_ANSI(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, W, F, P, G, J, L, U, Y, SCLN,LBRC,RBRC,BSLS, \
BSPC,A, R, S, T, D, H, N, E, I, O, QUOT, ENT, \
LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \
LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL),
/* 2: dvorak */
KEYMAP_ANSI(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \
TAB, QUOT,COMM,DOT, P, Y, F, G, C, R, L, SLSH,EQL, BSLS, \
CAPS,A, O, E, U, I, D, H, T, N, S, MINS, ENT, \
LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \
LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL),
/* 3: workman */
KEYMAP_ANSI(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, D, R, W, B, J, F, U, P, SCLN,LBRC,RBRC,BSLS, \
BSPC,A, S, H, T, G, Y, N, E, O, I, QUOT, ENT, \
LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \
LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL),
/* 4: Poker with Arrow */
KEYMAP_ANSI(
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \
TRNS,TRNS,TRNS, TRNS, TRNS,LEFT,DOWN,RGHT),
/* 5: Poker with Esc */
KEYMAP_ANSI(
ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS),
/* 6: Poker Fn
* ,-----------------------------------------------------------.
* |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |
* |-----------------------------------------------------------|
* | |FnQ| Up| | | | | | |Cal| |Hom|Ins|FnL |
* |-----------------------------------------------------------|
* | |Lef|Dow|Rig| | |Psc|Slk|Pau| |Tsk|End| |
* |-----------------------------------------------------------|
* | |Del| |Web|Mut|VoU|VoD| |PgU|PgD|Del| |
* |-----------------------------------------------------------|
* | | | | FnS | | | | |
* `-----------------------------------------------------------'
* Fn: to Fn overlay
* FnL: to Layout selector overaly
* FnQ: toggle Esc overlay
* FnS: toggle Arrow overlay
*/
KEYMAP_ANSI(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \
TRNS,FN2, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, FN4, \
TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \
TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \
TRNS,TRNS,TRNS, FN1, TRNS,TRNS,TRNS,TRNS),
/* 7: Layout selector
* ,-----------------------------------------------------------.
* | Lq| Lc| Ld| Lw| | | | | | | | | | |
* |-----------------------------------------------------------|
* | |Lq |Lw | | | | | | | | | | | |
* |-----------------------------------------------------------|
* | | | |Ld | | | | | | | | | |
* |-----------------------------------------------------------|
* | | | |Lc | | | | | | | | |
* |-----------------------------------------------------------|
* | | | | | | | | |
* `-----------------------------------------------------------'
* Lq: set Qwerty layout
* Lc: set Colemak layout
* Ld: set Dvorak layout
* Lw: set Workman layout
*/
KEYMAP_ANSI(
FN5, FN6, FN7, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,FN5, FN8, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,FN7, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,FN6, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS),
};
const uint16_t PROGMEM fn_actions[] = {
/* Poker Layout */
[0] = ACTION_LAYER_MOMENTARY(6), // to Fn overlay
[1] = ACTION_LAYER_TOGGLE(4), // toggle arrow overlay
[2] = ACTION_LAYER_TOGGLE(5), // toggle Esc overlay
[3] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // Task(RControl,RShift+Esc)
[4] = ACTION_LAYER_MOMENTARY(7), // to Layout selector
[5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout
[6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout
[7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout
[8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout
};

@ -1,50 +0,0 @@
#include "keymap_common.h"
// Poker fix with toggle and bit operation
// Fn + Esc = `
// Fn + {left, down, up, right} = {home, pgdown, pgup, end}
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: qwerty */
KEYMAP_ANSI(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \
LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \
LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL),
/* 4: Poker Default + Fn'd */
[4] = KEYMAP_ANSI(
TRNS,F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \
CAPS,FN2, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \
TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN4, END, TRNS, \
TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \
TRNS,TRNS,TRNS, FN1, TRNS,TRNS,TRNS,TRNS),
/* 5: Poker with Arrow */
KEYMAP_ANSI(
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, PGUP, \
TRNS,TRNS,TRNS, TRNS, FN3, HOME,PGDN,END),
/* 6: Poker with Esc */
KEYMAP_ANSI(
ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS),
/* 7: Poker with Arrow + Fn'd */
KEYMAP_ANSI(
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \
TRNS,TRNS,TRNS, TRNS, TRNS,LEFT,DOWN,RGHT),
};
const uint16_t PROGMEM fn_actions[] = {
/* Poker Layout */
[0] = ACTION_LAYER_BIT_XOR(1, 0b0101, ON_BOTH), // Poker Fn(with fix for Esc)
[1] = ACTION_LAYER_TOGGLE(5), // Poker Arrow toggle
[2] = ACTION_LAYER_TOGGLE(6), // Poker Esc toggle
[3] = ACTION_LAYER_BIT_XOR(1, 0b1101, ON_BOTH), // Poker Fn(with fix for Arrow)
[4] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // FN3 Task(RControl,RShift+Esc)
};

@ -1,82 +0,0 @@
#include "keymap_common.h"
// Poker fix with set(state transition)
// Fn + Esc = `
// Fn + {left, down, up, right} = {home, pgdown, pgup, end}
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: qwerty */
KEYMAP_ANSI(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \
LCTL,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \
LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL),
/* 1: Poker with Arrow */
KEYMAP_ANSI(
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \
TRNS,TRNS,TRNS, TRNS, FN1, LEFT,DOWN,RGHT),
/* 2: Poker with Esc */
KEYMAP_ANSI(
ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS, TRNS, FN2, TRNS,TRNS,TRNS),
/* 3: Poker with Arrow and Esc */
KEYMAP_ANSI(
ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \
TRNS,TRNS,TRNS, TRNS, FN3, LEFT,DOWN,RGHT),
/* 4: Poker Fn'd */
KEYMAP_ANSI(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \
TRNS,FN6, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \
TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \
TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \
TRNS,TRNS,TRNS, FN5, FN4, TRNS,TRNS,TRNS),
/* 5: Poker Fn'd arrow */
KEYMAP_ANSI(
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \
TRNS,FN7, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \
TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \
TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \
TRNS,TRNS,TRNS, FN4, FN5, HOME,PGDN,END),
/* 6: Poker Fn'd Esc */
KEYMAP_ANSI(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \
TRNS,FN4, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \
TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \
TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \
TRNS,TRNS,TRNS, FN7, FN6, TRNS,TRNS,TRNS),
/* 7: Poker Fn'd Arrow + Esc */
KEYMAP_ANSI(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \
TRNS,FN5, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \
TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN8, END, TRNS, \
TRNS,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \
TRNS,TRNS,TRNS, FN6, FN7, HOME,PGDN,END),
};
/*
* Fn action definition
*/
const uint16_t PROGMEM fn_actions[] = {
/* Poker Layout */
[0] = ACTION_LAYER_SET(4, ON_PRESS), // FN0 move to Fn'd when press
[1] = ACTION_LAYER_SET(5, ON_PRESS), // FN1 move to Fn'd arrow when press
[2] = ACTION_LAYER_SET(6, ON_PRESS), // FN2 move to Fn'd Esc when press
[3] = ACTION_LAYER_SET(7, ON_PRESS), // FN3 move to Fn'd arrow + Esc when press
//[4] = ACTION_LAYER_CLEAR(ON_RELEASE), // FN4 clear overlay when release
[4] = ACTION_LAYER_SET(0, ON_RELEASE), // FN4 clear overlay when release
[5] = ACTION_LAYER_SET(1, ON_RELEASE), // FN5 move to arrow when release
[6] = ACTION_LAYER_SET(2, ON_RELEASE), // FN6 move to Esc when release
[7] = ACTION_LAYER_SET(3, ON_RELEASE), // FN7 move to arrow + Esc when release
[8] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // FN8 Task(RControl,RShift+Esc)
};

@ -1,55 +0,0 @@
#include "keymap_common.h"
/*
* SpaceFN
* http://geekhack.org/index.php?topic=51069.0
*/
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Default Layer
* ,-----------------------------------------------------------.
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
* |-----------------------------------------------------------|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
* |-----------------------------------------------------------|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |
* |-----------------------------------------------------------|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
* |-----------------------------------------------------------|
* |Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl|
* `-----------------------------------------------------------'
*/
KEYMAP_ANSI(
ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \
CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \
LCTL,LGUI,LALT, FN0, RALT,RGUI,APP, RCTL),
/* Overlay 1: SpaceFN
* ,-----------------------------------------------------------.
* |` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete |
* |-----------------------------------------------------------|
* | | | | | | | |Hom|Up |End|Psc|Slk|Pau|Ins |
* |-----------------------------------------------------------|
* | | | | | | |PgU|Lef|Dow|Rig| | | |
* |-----------------------------------------------------------|
* | | | | | |Spc|PgD|` |~ | | | |
* |-----------------------------------------------------------|
* | | | | | | | | |
* `-----------------------------------------------------------'
*/
KEYMAP_ANSI(
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, DEL, \
TRNS,TRNS,TRNS,ESC, TRNS,TRNS,TRNS,HOME,UP, END, PSCR,SLCK,PAUS,INS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,PGUP,LEFT,DOWN,RGHT,TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,SPC, PGDN,GRV, FN1, TRNS,TRNS, TRNS, \
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS,TRNS),
};
/*
* Fn action definition
*/
const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE),
[1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde
};

@ -1,16 +1,12 @@
GH60 keyboard firmware
Planck keyboard firmware
======================
DIY compact keyboard designed and run by komar007 and Geekhack community.
- Both Rev.A and Rev.B PCB are supported by one firmware binary(issue #64)
## GH60 Resources
- [KOMAR's project page](http://blog.komar.be/projects/gh60-programmable-keyboard/)
- [Prototyping](http://geekhack.org/index.php?topic=34959.0)
- [Rev.A PCB test](http://geekhack.org/index.php?topic=37570.0)
- [Rev.B PCB test](http://geekhack.org/index.php?topic=50685.0)
- [Group buy](http://geekhack.org/index.php?topic=41464.0)
DIY/Assembled compact ortholinear keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com).
## Notable TMK forks (which some of the keymap files are from)
- [Shane's Fork](https://github.com/shanecelis/tmk_keyboard/tree/master/keyboard/planck)
- [Pierre's Fork](https://github.com/pcarrier/tmk_keyboard/blob/pcarrier/planck/keyboard/gh60/keymap_planck.c)
- [Nathan's Fork](https://github.com/nathanrosspowell/tmk_keyboard/tree/planck-jack/keyboard/planck)
- [Matthew's Fork](https://github.com/pepers/tmk_keyboard/tree/master/keyboard/planck_grid)
## Build
Move to this directory then just run `make` like:
@ -25,117 +21,4 @@ Several version of keymap are available in advance but you are recommended to de
To build firmware binary hex file with a certain keymap just do `make` with `KEYMAP` option like:
$ make KEYMAP=[poker|poker_set|poker_bit|plain|hasu|spacefn|hhkb|<name>]
### 1 Poker
[keymap_poker.c](keymap_poker.c) emulates original Poker layers
while both [keymap_poker_bit.c](keymap_poker_bit.c) and [keymap_poker_set.c](keymap_poker_set.c) implements same layout in different way and they fix a minor issue of original Poker and enhance arrow keys.
Fn + Esc = `
Fn + {left, down, up, right} = {home, pgdown, pgup, end}
#### 1.0 Default layer
,-----------------------------------------------------------.
| `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
|-----------------------------------------------------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
|-----------------------------------------------------------|
|Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |
|-----------------------------------------------------------|
|Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
|-----------------------------------------------------------|
|Ctrl|Gui |Alt | Space |Fn |Gui |App |Ctrl|
`-----------------------------------------------------------'
#### 1.1 Poker Fn layer
,-----------------------------------------------------------.
|Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| |
|-----------------------------------------------------------|
| |FnQ| Up| | | | | | |Cal| |Hom|Ins| |
|-----------------------------------------------------------|
| |Lef|Dow|Rig| | |Psc|Slk|Pau| |Tsk|End| |
|-----------------------------------------------------------|
| |Del| |Web|Mut|VoU|VoD| |PgU|PgD|Del| Up |
|-----------------------------------------------------------|
| | | | FnS |Fn |Left|Down|Righ|
`-----------------------------------------------------------'
### 2. Plain
Without any Fn layer this will be useful if you want to use key remapping tool like AHK on host.
See [keymap_plain.c](keymap_plain.c) for detail.
#### 1.0 Plain Default layer
,-----------------------------------------------------------.
|Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
|-----------------------------------------------------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
|-----------------------------------------------------------|
|Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |
|-----------------------------------------------------------|
|Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
|-----------------------------------------------------------|
|Ctrl|Gui |Alt | Space |Alt |Gui |App |Ctrl|
`-----------------------------------------------------------'
### 3. Hasu
This is my favorite keymap with HHKB Fn, Vi cursor and Mousekey layer. See [keymap_hasu.c](keymap_hasu.c) for detail.
### 4. SpaceFN
This layout proposed by spiceBar uses space bar to change layer with using Dual role key technique. See [keymap_spacefn.c](keymap_spacefn.c) and [SpaceFN discussion](http://geekhack.org/index.php?topic=51069.0).
#### 4.0 Default layer
,-----------------------------------------------------------.
|Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
|-----------------------------------------------------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
|-----------------------------------------------------------|
|Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |
|-----------------------------------------------------------|
|Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
|-----------------------------------------------------------|
|Ctrl|Gui |Alt | Space/Fn |Alt |Gui |App |Ctrl|
`-----------------------------------------------------------'
#### 4.1 SpaceFN layer
,-----------------------------------------------------------.
|` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Delete |
|-----------------------------------------------------------|
| | | | | | | |Hom|Up |End|Psc|Slk|Pau|Ins |
|-----------------------------------------------------------|
| | | | | | |PgU|Lef|Dow|Rig| | | |
|-----------------------------------------------------------|
| | | | | |Spc|PgD|` |~ | | | |
|-----------------------------------------------------------|
| | | | Fn | | | | |
`-----------------------------------------------------------'
### 5. HHKB
[keymap_hhkb.c](keymap_hhkb.c) emulates original HHKB layers.
#### 5.0: Default layer
,-----------------------------------------------------------.
|Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \| `|
|-----------------------------------------------------------|
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Bspc |
|-----------------------------------------------------------|
|Ctrl | A| S| D| F| G| H| J| K| L|Fn3| '|Return |
|-----------------------------------------------------------|
|Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn |
|-----------------------------------------------------------|
| |Gui |Alt | Space | |Alt |Gui | |
`-----------------------------------------------------------'
#### 5.1: HHKB Fn layer
,-----------------------------------------------------------.
|Pwr| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|Ins|Del|
|-----------------------------------------------------------|
|Caps | | | | | | | |Psc|Slk|Pus|Up | | |
|-----------------------------------------------------------|
| |VoD|VoU|Mut|Ejc| | *| /|Hom|PgU|Lef|Rig|Enter |
|-----------------------------------------------------------|
| | | | | | | +| -|End|PgD|Dow| | |
|-----------------------------------------------------------|
| | | | | | | | |
`-----------------------------------------------------------'
$ make KEYMAP=[<name>]

@ -34,9 +34,7 @@ extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
extern const uint16_t fn_actions[];
/* GH60 keymap definition macro
* K2C, K31 and K3C are extra keys for ISO
*/
// MIT Layout
#define KEYMAP( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
@ -49,4 +47,18 @@ extern const uint16_t fn_actions[];
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_NO, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B } \
}
// Grid Layout
#define KEYMAP_GRID( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B \
) { \
{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B }, \
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B }, \
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B }, \
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B } \
}
#endif

@ -0,0 +1,70 @@
// by Matthew Pepers - https://github.com/pepers
/* grid planck layout - modified programmer dvorak
,-----------------------------------------------------------------------------------------------.
| pause | @ | | | ^ | | | | | * | # | $ | del |
| esc | ; : | , < | . > | P | Y | F | G | G | C | R | bkspc |
| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|
| & | / | { | ( | [ | = | ! | ] | ) | } | \ | + |
| ` ~ | A | O | E | U | I | D | H | T | N | S | - _ |
| % | 7 | 5 | 3 | 1 | 9 | 0 | 2 | 4 | 6 | 8 | ? |
|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|
| | | | | | | | | | | | prtsc |
| tab | ' " | Q | J | K | X | B | M | W | V | Z | retrn |
| | | | | | | | | | | | insrt |
|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|
| | | | | | | | | | | | |
| lctrl | lgui | lalt | ralt | lower | shift | space | raise | left | down | up | right |
| | | | | | | | | home | pgdn | pgup | end |
`-----------------------------------------------------------------------------------------------'
*/
#include "keymap_common.h"
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: dvorak */
[0] = KEYMAP_GRID( ESC, SCLN, COMM, DOT, P, Y, F, G, C, R, L, BSPC, \
GRV, A, O, E, U, I, D, H, T, N, S, MINS, \
TAB, QUOT, Q, J, K, X, B, M, W, V, Z, ENT, \
LCTL, LGUI, LALT, RALT, FN1, LSFT, SPC, FN2, LEFT, DOWN, UP, RGHT),
/* 1: lower (FN1) */
[1] = KEYMAP_GRID( F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, \
FN17, 7, 5, 3, 1, 9, 0, 2, 4, 6, 8, FN18, \
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, INS, \
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGDN, PGUP, END),
/* 2: raise (FN2) */
[2] = KEYMAP_GRID(PAUS, FN19, FN20, FN21, TRNS, TRNS, TRNS, TRNS, FN22, FN23, FN24, DEL, \
FN10, SLSH, FN11, FN12, LBRC, EQL, FN13, RBRC, FN14, FN15, BSLS, FN16, \
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, PSCR, \
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
};
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_MOMENTARY(1), // lower Fn layer
[2] = ACTION_LAYER_MOMENTARY(2), // raise Fn layer
// lower row1
[17] = ACTION_MODS_KEY(MOD_LSFT, KC_5), // %
[18] = ACTION_MODS_KEY(MOD_LSFT, KC_SLASH), // ?
// raise row0
[19] = ACTION_MODS_KEY(MOD_LSFT, KC_2), // @
[20] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLASH), // |
[21] = ACTION_MODS_KEY(MOD_LSFT, KC_6), // ^
[22] = ACTION_MODS_KEY(MOD_LSFT, KC_8), // *
[23] = ACTION_MODS_KEY(MOD_LSFT, KC_3), // #
[24] = ACTION_MODS_KEY(MOD_LSFT, KC_4), // $
// raise row1
[10] = ACTION_MODS_KEY(MOD_LSFT, KC_7), // &
[11] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRACKET), // {
[12] = ACTION_MODS_KEY(MOD_LSFT, KC_9), // (
[13] = ACTION_MODS_KEY(MOD_LSFT, KC_1), // !
[14] = ACTION_MODS_KEY(MOD_LSFT, KC_0), // )
[15] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRACKET), // }
[16] = ACTION_MODS_KEY(MOD_LSFT, KC_EQUAL), // +
};

@ -0,0 +1,180 @@
// Author: Nathan Ross Powell <nathanrospowell@gmail.com>
// https://github.com/nathanrosspowell/tmk_keyboard/blob/planck-jack/keyboard/planck/keymap_nathan.c
#include "keymap_common.h"
#ifndef KEYMAP_GRID
/* Planck keymap definition macro for the 'grid' layout
* ,-----------------------------------------------------------------------.
* | | | | | | | | | | | | |
* |-----------------------------------------------------------------------|
* | | | | | | | | | | | | |
* |-----------------------------------------------------------------------|
* | | | | | | | | | | | | |
* |-----------------------------------------------------------------------|
* | | | | | | | | | | | | |
* `-----------------------------------------------------------------------'
*/
#define KEYMAP_GRID( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B \
) { \
{ KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B }, \
{ KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B }, \
{ KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B }, \
{ KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B } \
}
#endif
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: main layer
* ,-----------------------------------------------------------------------.
* |Tab | q | w | e | r | t | y | u | i | o | p | BS |
* |-----------------------------------------------------------------------|
* |Ctrl | a | s | d | f | g | h | j | k | l | ; | Ret |
* |-----------------------------------------------------------------------|
* |Shift| z | x | c | v | b | n | m | [ | ( | { | < |
* |-----------------------------------------------------------------------|
* |Meta | \ | / | Alt |Lower|Space|Space|Upper|Left |Down | Up |Right|
* `-----------------------------------------------------------------------'
*/
[0] = KEYMAP_GRID(
TAB, Q, W, E, R, T, Y, U, I, O, P, BSPC,
LCTL, A, S, D, F, G, H, J, K, L, SCLN, ENT,
RSFT, Z, X, C, V, B, N, M, LBRC, FN10, FN11, FN12,
LGUI, BSLS, SLSH, LALT, FN0, SPC, SPC, FN1, LEFT, DOWN, UP, RGHT),
/* 1: fn left/lower layer
* The top row are Visual Studio combos:
* 'Run', 'Breakpoint', 'Step over', 'Step into', 'Set cursor to line'
* 2nd row are key combos:
* 'ctrl-alt-delete', 'ctrl-shift-escape'
* 3rd row are macros keys:
* 'P0' - 'P5' execute a script on Windows machines
* ,-----------------------------------------------------------------------.
* | ESC | F5 | F9 | F10 | F11 |S+F11|CSF10|NLock|Num7 |Num8 |Num9 | Del |
* |-----------------------------------------------------------------------|
* | |C/A/D|C/S/E| Ins |Print|Pause|SLock|Num0 |Num4 |Num5 |Num6 |Num= |
* |-----------------------------------------------------------------------|
* | | P0 | P1 | P2 | P3 | P4 | P5 |Num. |Num1 |Num2 |Num3 |Num/ |
* |-----------------------------------------------------------------------|
* | |User | | | | | | |Home |PgDn |PgUp | End |
* `-----------------------------------------------------------------------'
*/
[1] = KEYMAP_GRID(
ESC, F5, F9, F10, F11, FN30, FN31, NLCK, P7, P8, P9, DEL,
TRNS, FN16, FN17, INS, PSCR, PAUS, SLCK, P0, P4, P5, P6, PEQL,
TRNS, FN2, FN3, FN4, FN5, FN6, FN7, PDOT, P1, P2, P3, PSLS,
TRNS, FN8, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, HOME, PGDN, PGUP, END ),
/* 2: fn right/raise layer
* ,-----------------------------------------------------------------------.
* | F1 | F2 | F3 | F4 |F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
* |-----------------------------------------------------------------------|
* | | ! | @ | # | $ | % | ^ | & | * | - | + | = |
* |-----------------------------------------------------------------------|
* | | _ | ' | " | ` | ~ | , | . | ] | ) | } | > |
* |-----------------------------------------------------------------------|
* | |NextT|PrevT| | | | Esc | |Mute |Vol- |Vol+ | P/P |
* `-----------------------------------------------------------------------'
*/
[2] = KEYMAP_GRID(
F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12,
TRNS, FN18, FN19, FN20, FN21, FN22, FN23, FN24, FN25, MINS, FN26, PAST,
TRNS, FN27, QUOT, FN28, GRV, FN29, COMM, DOT, RBRC, FN13, FN14, FN15,
TRNS, MNXT, MPRV, TRNS, TRNS, TRNS, ESC, TRNS, MUTE, VOLD, VOLU, MPLY ),
};
enum macro_id {
M_P0,
M_P1,
M_P2,
M_P3,
M_P4,
M_P5,
M_USERNAME
};
const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_LAYER_MOMENTARY(1), // left/lower layer
[1] = ACTION_LAYER_MOMENTARY(2), // right/raise layer
// Program macros
[2] = ACTION_MACRO(M_P0),
[3] = ACTION_MACRO(M_P1),
[4] = ACTION_MACRO(M_P2),
[5] = ACTION_MACRO(M_P3),
[6] = ACTION_MACRO(M_P4),
[7] = ACTION_MACRO(M_P5),
[8] = ACTION_MACRO(M_USERNAME),
// Braces
[10] = ACTION_MODS_KEY(MOD_LSFT, KC_9), // (
[11] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC), // {
[12] = ACTION_MODS_KEY(MOD_LSFT, KC_COMMA), // <
[13] = ACTION_MODS_KEY(MOD_LSFT, KC_0), // )
[14] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), // {
[15] = ACTION_MODS_KEY(MOD_LSFT, KC_DOT), // >
// Combo
[16] = ACTION_MODS_KEY(MOD_LALT | MOD_LCTL, KC_DEL), // Ctrl+Alt+Delete
[17] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_ESC), // Ctrl+Shft+Escape
// Symbols
[18] = ACTION_MODS_KEY(MOD_LSFT, KC_1), // !
[19] = ACTION_MODS_KEY(MOD_LSFT, KC_2), // @
[20] = ACTION_MODS_KEY(MOD_LSFT, KC_3), // #
[21] = ACTION_MODS_KEY(MOD_LSFT, KC_4), // $
[22] = ACTION_MODS_KEY(MOD_LSFT, KC_5), // %
[23] = ACTION_MODS_KEY(MOD_LSFT, KC_6), // ^
[24] = ACTION_MODS_KEY(MOD_LSFT, KC_7), // &
[25] = ACTION_MODS_KEY(MOD_LSFT, KC_8), // *
[26] = ACTION_MODS_KEY(MOD_LSFT, KC_EQL), // +
[27] = ACTION_MODS_KEY(MOD_LSFT, KC_MINUS), // _
[28] = ACTION_MODS_KEY(MOD_LSFT, KC_QUOTE), // "
[29] = ACTION_MODS_KEY(MOD_LSFT, KC_GRAVE), // ~
// Debugging
[30] = ACTION_MODS_KEY(MOD_LSFT, KC_F11), // Step into
[31] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_F10), // Set cursor to line
};
// Run a script and pass a key number to it. This is Windows specific and the script needs to be on your path.
// *open run dialog* keypress.py [PRG_NUM]
#define ADD_PYTHON_PROGRAM_ON_WIN( PRG_NUM ) MACRO( D(LGUI), T(R), U(LGUI), W(100), T(K), T(E), T(Y), T(P), T(R), T(E), T(S), T(S), T(DOT), T(P), T(Y), T(SPC), T(PRG_NUM), END )
// *return*
#define RUN_PYTHON_PROGRAM_ON_WIN MACRO( T(ENT), END )
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
keyevent_t event = record->event;
switch (id) {
case M_P0:
return event.pressed ?
ADD_PYTHON_PROGRAM_ON_WIN( 0 ) :
RUN_PYTHON_PROGRAM_ON_WIN;
case M_P1:
return event.pressed ?
ADD_PYTHON_PROGRAM_ON_WIN( 1 ) :
RUN_PYTHON_PROGRAM_ON_WIN;
case M_P2:
return event.pressed ?
ADD_PYTHON_PROGRAM_ON_WIN( 2 ) :
RUN_PYTHON_PROGRAM_ON_WIN;
case M_P3:
return event.pressed ?
ADD_PYTHON_PROGRAM_ON_WIN( 3 ) :
RUN_PYTHON_PROGRAM_ON_WIN;
case M_P4:
return event.pressed ?
ADD_PYTHON_PROGRAM_ON_WIN( 4 ) :
RUN_PYTHON_PROGRAM_ON_WIN;
case M_P5:
return event.pressed ?
ADD_PYTHON_PROGRAM_ON_WIN( 5 ) :
RUN_PYTHON_PROGRAM_ON_WIN;
case M_USERNAME:
return event.pressed ?
MACRO( T(N), T(A), T(T), T(H), T(A), T(N), T(R), T(O), T(S), T(S), T(P), T(O), T(W), T(E), T(L), T(L), END ) :
MACRO_NONE;
}
return MACRO_NONE;
}
Loading…
Cancel
Save