* | * | ||||
* Other Keys(01xx) | * Other Keys(01xx) | ||||
* ---------------- | * ---------------- | ||||
* ACT_USAGE(0100): | |||||
* ACT_USAGE(0100): TODO: Not needed? | |||||
* 0100|00| usage(10) System control(0x80) - General Desktop page(0x01) | * 0100|00| usage(10) System control(0x80) - General Desktop page(0x01) | ||||
* 0100|01| usage(10) Consumer control(0x01) - Consumer page(0x0C) | * 0100|01| usage(10) Consumer control(0x01) - Consumer page(0x0C) | ||||
* 0100|10| usage(10) (reserved) | * 0100|10| usage(10) (reserved) | ||||
* ee: on event(00:default layer, 01:press, 10:release, 11:both) | * ee: on event(00:default layer, 01:press, 10:release, 11:both) | ||||
* | * | ||||
* 1001|xxxx|xxxx xxxx (reserved) | * 1001|xxxx|xxxx xxxx (reserved) | ||||
* 1001|oopp|BBBB BBBB 8-bit Bitwise Operation??? | |||||
* | * | ||||
* ACT_LAYER_TAP(101x): | * ACT_LAYER_TAP(101x): | ||||
* 101E|LLLL| keycode Invert with tap key | * 101E|LLLL| keycode Invert with tap key | ||||
}; | }; | ||||
#define ACTION_LAYER_BITOP(op, part, bits, on) (ACT_LAYER<<12 | (op)<<10 | (on)<<8 | (part)<<5 | ((bits)&0x1f)) | #define ACTION_LAYER_BITOP(op, part, bits, on) (ACT_LAYER<<12 | (op)<<10 | (on)<<8 | (part)<<5 | ((bits)&0x1f)) | ||||
#define ACTION_LAYER_TAP(layer, key) (ACT_LAYER_TAP<<12 | (layer)<<8 | (key)) | #define ACTION_LAYER_TAP(layer, key) (ACT_LAYER_TAP<<12 | (layer)<<8 | (key)) | ||||
/* Default Layer */ | |||||
#define ACTION_DEFAULT_LAYER_SET(layer) ACTION_DEFAULT_LAYER_BIT_SET((layer)/4, 1<<((layer)%4)) | |||||
/* Layer Operation */ | /* Layer Operation */ | ||||
#define ACTION_LAYER_CLEAR(on) ACTION_LAYER_AND(0x1f, (on)) | |||||
#define ACTION_LAYER_CLEAR(on) ACTION_LAYER_BIT_AND(0, 0, (on)) | |||||
#define ACTION_LAYER_MOMENTARY(layer) ACTION_LAYER_ON_OFF(layer) | #define ACTION_LAYER_MOMENTARY(layer) ACTION_LAYER_ON_OFF(layer) | ||||
#define ACTION_LAYER_TOGGLE(layer) ACTION_LAYER_INVERT(layer, ON_RELEASE) | #define ACTION_LAYER_TOGGLE(layer) ACTION_LAYER_INVERT(layer, ON_RELEASE) | ||||
#define ACTION_LAYER_INVERT(layer, on) ACTION_LAYER_BIT_XOR((layer)/4, 1<<((layer)%4), (on)) | #define ACTION_LAYER_INVERT(layer, on) ACTION_LAYER_BIT_XOR((layer)/4, 1<<((layer)%4), (on)) | ||||
#define ACTION_LAYER_ON_OFF(layer) ACTION_LAYER_TAP((layer), OP_ON_OFF) | #define ACTION_LAYER_ON_OFF(layer) ACTION_LAYER_TAP((layer), OP_ON_OFF) | ||||
#define ACTION_LAYER_OFF_ON(layer) ACTION_LAYER_TAP((layer), OP_OFF_ON) | #define ACTION_LAYER_OFF_ON(layer) ACTION_LAYER_TAP((layer), OP_OFF_ON) | ||||
#define ACTION_LAYER_SET_CLEAR(layer) ACTION_LAYER_TAP((layer), OP_SET_CLEAR) | #define ACTION_LAYER_SET_CLEAR(layer) ACTION_LAYER_TAP((layer), OP_SET_CLEAR) | ||||
/* With Tapping */ | |||||
#define ACTION_LAYER_TAP_KEY(layer, key) ACTION_LAYER_TAP((layer), (key)) | |||||
#define ACTION_LAYER_TAP_TOGGLE(layer) ACTION_LAYER_TAP((layer), OP_TAP_TOGGLE) | |||||
/* Bitwise Operation */ | /* Bitwise Operation */ | ||||
#define ACTION_LAYER_BIT_AND(part, bits, on) ACTION_LAYER_BITOP(OP_BIT_AND, (part), (bits), (on)) | #define ACTION_LAYER_BIT_AND(part, bits, on) ACTION_LAYER_BITOP(OP_BIT_AND, (part), (bits), (on)) | ||||
#define ACTION_LAYER_BIT_OR( part, bits, on) ACTION_LAYER_BITOP(OP_BIT_OR, (part), (bits), (on)) | #define ACTION_LAYER_BIT_OR( part, bits, on) ACTION_LAYER_BITOP(OP_BIT_OR, (part), (bits), (on)) | ||||
#define ACTION_LAYER_BIT_XOR(part, bits, on) ACTION_LAYER_BITOP(OP_BIT_XOR, (part), (bits), (on)) | #define ACTION_LAYER_BIT_XOR(part, bits, on) ACTION_LAYER_BITOP(OP_BIT_XOR, (part), (bits), (on)) | ||||
#define ACTION_LAYER_BIT_SET(part, bits, on) ACTION_LAYER_BITOP(OP_BIT_SET, (part), (bits), (on)) | #define ACTION_LAYER_BIT_SET(part, bits, on) ACTION_LAYER_BITOP(OP_BIT_SET, (part), (bits), (on)) | ||||
/* Default Layer */ | |||||
#define ACTION_DEFAULT_LAYER_SET(layer) ACTION_DEFAULT_LAYER_BIT_SET((layer)/4, 1<<((layer)%4)) | |||||
/* Default Layer Bitwise Operation */ | /* Default Layer Bitwise Operation */ | ||||
#define ACTION_DEFAULT_LAYER_BIT_AND(part, bits) ACTION_LAYER_BITOP(OP_BIT_AND, (part), (bits), 0) | #define ACTION_DEFAULT_LAYER_BIT_AND(part, bits) ACTION_LAYER_BITOP(OP_BIT_AND, (part), (bits), 0) | ||||
#define ACTION_DEFAULT_LAYER_BIT_OR( part, bits) ACTION_LAYER_BITOP(OP_BIT_OR, (part), (bits), 0) | #define ACTION_DEFAULT_LAYER_BIT_OR( part, bits) ACTION_LAYER_BITOP(OP_BIT_OR, (part), (bits), 0) | ||||
#define ACTION_DEFAULT_LAYER_BIT_XOR(part, bits) ACTION_LAYER_BITOP(OP_BIT_XOR, (part), (bits), 0) | #define ACTION_DEFAULT_LAYER_BIT_XOR(part, bits) ACTION_LAYER_BITOP(OP_BIT_XOR, (part), (bits), 0) | ||||
#define ACTION_DEFAULT_LAYER_BIT_SET(part, bits) ACTION_LAYER_BITOP(OP_BIT_SET, (part), (bits), 0) | #define ACTION_DEFAULT_LAYER_BIT_SET(part, bits) ACTION_LAYER_BITOP(OP_BIT_SET, (part), (bits), 0) | ||||
/* With Tapping */ | |||||
#define ACTION_LAYER_TAP_KEY(layer, key) ACTION_LAYER_TAP((layer), (key)) | |||||
#define ACTION_LAYER_TAP_TOGGLE(layer) ACTION_LAYER_TAP((layer), OP_TAP_TOGGLE) | |||||
/* | /* |
[6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout | [6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout | ||||
[7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout | [7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout | ||||
[8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout | [8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout | ||||
[9] = ACTION_RMOD_TAP_KEY(KC_RSFT, KC_GRV), | |||||
[9] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_GRV), | |||||
}; | }; | ||||
#endif | #endif | ||||
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
/* Keymap 0: qwerty */ | |||||
/* 0: qwerty */ | |||||
KEYMAP(ESC, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ | KEYMAP(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, \ | 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,NO, ENT, \ | CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,NO, ENT, \ | ||||
LSFT,NO, Z, X, C, V, B, N, M, COMM,DOT, SLSH,NO, RSFT, \ | LSFT,NO, Z, X, C, V, B, N, M, COMM,DOT, SLSH,NO, RSFT, \ | ||||
LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL), | LCTL,LGUI,LALT, SPC, RALT,RGUI,APP, RCTL), | ||||
}; | }; | ||||
static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = {}; | |||||
static const uint16_t PROGMEM fn_actions[] = {}; | static const uint16_t PROGMEM fn_actions[] = {}; |
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
/* Keymap 0: qwerty */ | |||||
/* 0: qwerty */ | |||||
KEYMAP_ANSI( | KEYMAP_ANSI( | ||||
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ | 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, \ | 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, \ | 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, \ | LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ | ||||
LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), | LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), | ||||
/* Keymap 1: colemak */ | |||||
/* 1: colemak */ | |||||
KEYMAP_ANSI( | KEYMAP_ANSI( | ||||
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ | 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, \ | 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, \ | 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, \ | LSFT,Z, X, C, V, B, K, M, COMM,DOT, SLSH, RSFT, \ | ||||
LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), | LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), | ||||
/* Keymap 2: dvorak */ | |||||
/* 2: dvorak */ | |||||
KEYMAP_ANSI( | KEYMAP_ANSI( | ||||
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, LBRC,RBRC,BSPC, \ | 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, \ | 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, \ | 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, \ | LSFT,SCLN,Q, J, K, X, B, M, W, V, Z, RSFT, \ | ||||
LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), | LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), | ||||
/* Keymap: workman */ | |||||
/* 3: workman */ | |||||
KEYMAP_ANSI( | KEYMAP_ANSI( | ||||
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ | 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, \ | 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, \ | 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, \ | LSFT,Z, X, M, C, V, K, L, COMM,DOT, SLSH, RSFT, \ | ||||
LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), | LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), | ||||
}; | |||||
static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { | |||||
/* Overlay 0: Poker with Arrow */ | |||||
/* 4: Poker with Arrow */ | |||||
KEYMAP_ANSI( | 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,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,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ | ||||
TRNS,TRNS,TRNS, TRNS, TRNS,LEFT,DOWN,RGHT), | TRNS,TRNS,TRNS, TRNS, TRNS,LEFT,DOWN,RGHT), | ||||
/* Overlay 1: Poker with Esc */ | |||||
/* 5: Poker with Esc */ | |||||
KEYMAP_ANSI( | KEYMAP_ANSI( | ||||
ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ | 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,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), | ||||
/* Overlay 2: Poker Fn | |||||
/* 6: Poker Fn | |||||
* ,-----------------------------------------------------------. | * ,-----------------------------------------------------------. | ||||
* |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | | * |Esc| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | | ||||
* |-----------------------------------------------------------| | * |-----------------------------------------------------------| | ||||
TRNS,LEFT,DOWN,RGHT,TRNS,TRNS,PSCR,SLCK,PAUS,TRNS,FN3, END, TRNS, \ | 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,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ | ||||
TRNS,TRNS,TRNS, FN1, TRNS,TRNS,TRNS,TRNS), | TRNS,TRNS,TRNS, FN1, TRNS,TRNS,TRNS,TRNS), | ||||
/* Overlay 3: Layout selector | |||||
/* 7: Layout selector | |||||
* ,-----------------------------------------------------------. | * ,-----------------------------------------------------------. | ||||
* | Lq| Lc| Ld| Lw| | | | | | | | | | | | * | Lq| Lc| Ld| Lw| | | | | | | | | | | | ||||
* |-----------------------------------------------------------| | * |-----------------------------------------------------------| | ||||
}; | }; | ||||
static const uint16_t PROGMEM fn_actions[] = { | static const uint16_t PROGMEM fn_actions[] = { | ||||
/* Poker Layout */ | /* Poker Layout */ | ||||
[0] = ACTION_OVERLAY_MOMENTARY(2), // to Fn overlay | |||||
[1] = ACTION_OVERLAY_TOGGLE(0), // toggle arrow overlay | |||||
[2] = ACTION_OVERLAY_TOGGLE(1), // toggle Esc overlay | |||||
[3] = ACTION_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // Task(RControl,RShift+Esc) | |||||
[4] = ACTION_OVERLAY_MOMENTARY(3), // to Layout selector | |||||
[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 | [5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout | ||||
[6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout | [6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout | ||||
[7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout | [7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout |
// Fn + Esc = ` | // Fn + Esc = ` | ||||
// Fn + {left, down, up, right} = {home, pgdown, pgup, end} | // Fn + {left, down, up, right} = {home, pgdown, pgup, end} | ||||
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
/* Keymap 0: qwerty */ | |||||
/* 0: qwerty */ | |||||
KEYMAP_ANSI( | KEYMAP_ANSI( | ||||
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ | 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, \ | 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, \ | 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, \ | LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ | ||||
LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), | LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), | ||||
}; | |||||
static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { | |||||
/* Overlay 0: Poker Default + Fn'd */ | |||||
KEYMAP_ANSI( | |||||
/* 4: Poker Default + Fn'd */ | |||||
[4] = KEYMAP_ANSI( | |||||
TRNS,F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ | 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, \ | 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,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,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ | ||||
TRNS,TRNS,TRNS, FN1, TRNS,TRNS,TRNS,TRNS), | TRNS,TRNS,TRNS, FN1, TRNS,TRNS,TRNS,TRNS), | ||||
/* Overlay 1: Poker with Arrow */ | |||||
/* 5: Poker with Arrow */ | |||||
KEYMAP_ANSI( | 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,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,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, PGUP, \ | ||||
TRNS,TRNS,TRNS, TRNS, FN3, HOME,PGDN,END), | TRNS,TRNS,TRNS, TRNS, FN3, HOME,PGDN,END), | ||||
/* Overlay 2: Poker with Esc */ | |||||
/* 6: Poker with Esc */ | |||||
KEYMAP_ANSI( | KEYMAP_ANSI( | ||||
ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ | 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,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), | ||||
/* Overlay 3: Poker with Arrow + Fn'd */ | |||||
/* 7: Poker with Arrow + Fn'd */ | |||||
KEYMAP_ANSI( | 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,TRNS,TRNS,TRNS,TRNS, \ | ||||
}; | }; | ||||
static const uint16_t PROGMEM fn_actions[] = { | static const uint16_t PROGMEM fn_actions[] = { | ||||
/* Poker Layout */ | /* Poker Layout */ | ||||
[0] = ACTION_OVERLAY_INV4(0b0101, 0), // Poker Fn(with fix for Esc) | |||||
[1] = ACTION_OVERLAY_TOGGLE(1), // Poker Arrow toggle | |||||
[2] = ACTION_OVERLAY_TOGGLE(2), // Poker Esc toggle | |||||
[3] = ACTION_OVERLAY_INV4(0b1101, 0), // Poker Fn(with fix for Arrow) | |||||
[4] = ACTION_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // FN3 Task(RControl,RShift+Esc) | |||||
[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) | |||||
}; | }; |
// Fn + Esc = ` | // Fn + Esc = ` | ||||
// Fn + {left, down, up, right} = {home, pgdown, pgup, end} | // Fn + {left, down, up, right} = {home, pgdown, pgup, end} | ||||
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
/* Keymap 0: qwerty */ | |||||
/* 0: qwerty */ | |||||
KEYMAP_ANSI( | KEYMAP_ANSI( | ||||
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ | 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, \ | 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, \ | 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, \ | LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, \ | ||||
LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), | LCTL,LGUI,LALT, SPC, FN0, RGUI,APP, RCTL), | ||||
}; | |||||
static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = { | |||||
/* Overlay 0: Poker with Arrow */ | |||||
/* 1: Poker with Arrow */ | |||||
KEYMAP_ANSI( | 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,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,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ | ||||
TRNS,TRNS,TRNS, TRNS, FN1, LEFT,DOWN,RGHT), | TRNS,TRNS,TRNS, TRNS, FN1, LEFT,DOWN,RGHT), | ||||
/* Overlay 1: Poker with Esc */ | |||||
/* 2: Poker with Esc */ | |||||
KEYMAP_ANSI( | KEYMAP_ANSI( | ||||
ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ | 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,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), | TRNS,TRNS,TRNS, TRNS, FN2, TRNS,TRNS,TRNS), | ||||
/* Overlay 2: Poker with Arrow and Esc */ | |||||
/* 3: Poker with Arrow and Esc */ | |||||
KEYMAP_ANSI( | KEYMAP_ANSI( | ||||
ESC, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, \ | 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,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, \ | ||||
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ | TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, UP, \ | ||||
TRNS,TRNS,TRNS, TRNS, FN3, LEFT,DOWN,RGHT), | TRNS,TRNS,TRNS, TRNS, FN3, LEFT,DOWN,RGHT), | ||||
/* Overlay 3: Poker Fn'd */ | |||||
/* 4: Poker Fn'd */ | |||||
KEYMAP_ANSI( | KEYMAP_ANSI( | ||||
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ | 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,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,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,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ | ||||
TRNS,TRNS,TRNS, FN5, FN4, TRNS,TRNS,TRNS), | TRNS,TRNS,TRNS, FN5, FN4, TRNS,TRNS,TRNS), | ||||
/* Overlay 4: Poker Fn'd arrow */ | |||||
/* 5: Poker Fn'd arrow */ | |||||
KEYMAP_ANSI( | KEYMAP_ANSI( | ||||
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ | 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,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,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,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, PGUP, \ | ||||
TRNS,TRNS,TRNS, FN4, FN5, HOME,PGDN,END), | TRNS,TRNS,TRNS, FN4, FN5, HOME,PGDN,END), | ||||
/* Overlay 5: Poker Fn'd Esc */ | |||||
/* 6: Poker Fn'd Esc */ | |||||
KEYMAP_ANSI( | KEYMAP_ANSI( | ||||
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ | 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,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,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,DEL, TRNS,WHOM,MUTE,VOLU,VOLD,TRNS,PGUP,PGDN,DEL, TRNS, \ | ||||
TRNS,TRNS,TRNS, FN7, FN6, TRNS,TRNS,TRNS), | TRNS,TRNS,TRNS, FN7, FN6, TRNS,TRNS,TRNS), | ||||
/* Overlay 6: Poker Fn'd Arrow + Esc */ | |||||
/* 7: Poker Fn'd Arrow + Esc */ | |||||
KEYMAP_ANSI( | KEYMAP_ANSI( | ||||
GRV, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TRNS, \ | 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,FN5, UP, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,CALC,TRNS,HOME,INS, TRNS, \ | ||||
*/ | */ | ||||
static const uint16_t PROGMEM fn_actions[] = { | static const uint16_t PROGMEM fn_actions[] = { | ||||
/* Poker Layout */ | /* Poker Layout */ | ||||
[0] = ACTION_OVERLAY_SET(3, ON_PRESS), // FN0 move to Fn'd when press | |||||
[1] = ACTION_OVERLAY_SET(4, ON_PRESS), // FN1 move to Fn'd arrow when press | |||||
[2] = ACTION_OVERLAY_SET(5, ON_PRESS), // FN2 move to Fn'd Esc when press | |||||
[3] = ACTION_OVERLAY_SET(6, ON_PRESS), // FN3 move to Fn'd arrow + Esc when press | |||||
[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_OVERLAY_CLEAR(ON_RELEASE), // FN4 clear overlay when release | |||||
[5] = ACTION_OVERLAY_SET(0, ON_RELEASE), // FN5 move to arrow when release | |||||
[6] = ACTION_OVERLAY_SET(1, ON_RELEASE), // FN6 move to Esc when release | |||||
[7] = ACTION_OVERLAY_SET(2, ON_RELEASE), // FN7 move to arrow + Esc when release | |||||
//[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_RMODS_KEY(MOD_BIT(KC_RCTL)|MOD_BIT(KC_RSFT), KC_ESC), // FN8 Task(RControl,RShift+Esc) | |||||
[8] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // FN8 Task(RControl,RShift+Esc) | |||||
}; | }; |