diff options
Diffstat (limited to 'keyboard/ergodox/keymaps/keymap_simon.c')
-rw-r--r-- | keyboard/ergodox/keymaps/keymap_simon.c | 624 |
1 files changed, 0 insertions, 624 deletions
diff --git a/keyboard/ergodox/keymaps/keymap_simon.c b/keyboard/ergodox/keymaps/keymap_simon.c deleted file mode 100644 index 525c2d601..000000000 --- a/keyboard/ergodox/keymaps/keymap_simon.c +++ /dev/null @@ -1,624 +0,0 @@ -#include "action_util.h" -#include "action_layer.h" -#define KC_SW0 KC_FN0 -#define DEBUG_ACTION - -static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap 0: Default Layer - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | ~ | 1 | 2 | 3 | 4 | 5 | \ | | ' | 6 | 7 | 8 | 9 | 0 | = | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | Tab | Q | W | E | R | T | ~Fn1 | | ~Fn3 | Y | U | I | O | P | [ | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | RShift | - * |--------+------+------+------+------+------| Fn0 | | ~Fn4 |------+------+------+------+------+--------| - * | LCtrl | Z | X | C | V | B | | | | N | M | , | . | / | RCtrl | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | ~Fn1 | ~Fn2 | Caps | LAlt | LGui | | Lft | Up | Dn | Rght | ~Fn4 | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | +Fn2 | Home | | PgUp | Del | - * ,------|------|------| |------+------+------. - * | | | End | | PgDn | | | - * | BkSp | ESC |------| |------| Enter| Space| - * | | | Spc | | Ins | | | - * `--------------------' `--------------------' - */ - - // BASE LAYERS - - KEYMAP( // layout: layer 0: customized dvorak with symbol row switched - // left hand - ESC, FN12,FN12,FN12,FN12,FN12,BSLS, - TAB, QUOT,COMM,DOT, P, Y, FN2, - LSFT,A, O, E, U, I, - LCTL,SCLN,Q, J, K, X, DEL, - FN3, FN1, LCTL,LALT,LGUI, - FN5, HOME, - END, - BSPC,LSFT,LGUI, - // right hand - MINS,FN12,FN12,FN12,FN12,FN12,MPLY, - FN3, F, G, C, R, L, MNXT, - D, H, T, N, S, RSFT, - DEL, B, M, W, V, Z, RCTL, - MPRV,MNXT,APP, FN8,FN2, - PGUP,MPLY, - PGDN, - ENT, FN1, SPC - ), - - KEYMAP( // layout: layer 1: customized dvorak - // left hand - ESC, 1, 2, 3, 4, 5, BSLS, - TAB, QUOT,COMM,DOT, P, Y, FN2, - LSFT,A, O, E, U, I, - LCTL,SCLN,Q, J, K, X, DEL, - FN3, FN1, LCTL,LALT,LGUI, - FN5, HOME, - END, - BSPC,LSFT,LGUI, - // right hand - MINS,6, 7, 8, 9, 0, EQL, - FN3, F, G, C, R, L, SLSH, - D, H, T, N, S, RSFT, - DEL, B, M, W, V, Z, RCTL, - LEFT,DOWN,UP, RGHT,FN2, - PGUP,MPLY, - PGDN, - ENT, FN1, SPC - ), - - KEYMAP( // layer 2 : qwerty - // left hand - TRNS,1, 2, 3, 4, 5, TRNS, - TRNS,Q, W, E, R, T, TRNS, - TRNS,A, S, D, F, G, - TRNS,Z, X, C, V, B, TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS, - // right hand - TRNS,6, 7, 8, 9, 0, MINS, - TRNS,Y, U, I, O, P, RBRC, - H, J, K, L, SCLN,RSFT, - TRNS,N, M, COMM,DOT, SLSH,RSFT, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS - ), - - KEYMAP( // layer 3 : reserved - // left hand - TRNS,1, 2, 3, 4, 5, TRNS, - TRNS,Q, W, E, R, T, TRNS, - TRNS,A, S, D, F, G, - TRNS,Z, X, C, V, B, TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS, - // right hand - TRNS,6, 7, 8, 9, 0, MINS, - TRNS,Y, U, I, O, P, RBRC, - H, J, K, L, SCLN,QUOT, - TRNS,N, M, COMM,DOT, SLSH,RSFT, - TRNS,TRNS,TRNS,TRNS,TRNS, - RALT,RCTL, - PGUP, - PGDN,ENT, SPC - ), - - // PLOVER (SPECIAL CASE) - - KEYMAP( // layout: layer 4: Steno for Plover - // left hand - FN5, NO, NO, NO, NO, NO, NO, - NO, 1, 2, 3, 4, 5, NO, - NO, Q, W, E, R, T, - NO, A, S, D, F, G, NO, - NO, NO, NO, NO, NO, - FN5, NO, - NO, - C, V, NO, - // right hand - NO, NO, NO, NO, NO, NO, TRNS, - NO, 6, 7, 8, 9, 0, TRNS, - Y, U, I, O, P, LBRC, - NO, H, J, K, L, SCLN,QUOT, - TRNS,TRNS,NO, NO, NO, - TRNS,TRNS, - TRNS, - NO, N, M - ), - - KEYMAP( // layout: layer 5: reserved - // left hand - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS, - // right hand - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS - ), - - // MODIFIERS THAT MIGHT BE STICKY - - KEYMAP( // layout: layer 6: mouse + numpad - // left hand - FN0, NO, NO, NO, NO, PAUS,PSCR, - TRNS,NO, WH_U,MS_U,WH_D,BTN2,TRNS, - TRNS,NO, MS_L,MS_D,MS_R,BTN1, - TRNS,NO, NO, NO, NO, BTN3,TRNS, - TRNS,FN13,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS, - // right hand - SLCK,NLCK,EQL, PSLS,PAST,PMNS,TRNS, - TRNS,NO, P7, P8, P9, PMNS,BSPC, - NO, P4, P5, P6, PPLS,PENT, - TRNS,NO, P1, P2, P3, PPLS,PENT, - P0, PDOT,PDOT,PENT,PENT, - TRNS,TRNS, - TRNS, - ENT, TRNS,BSPC - ), - - KEYMAP( // layout: layer 7: F-keys + cursor - // left hand - FN0, F1, F2, F3, F4, F5, F6, - FN4, NO, PGUP,UP, PGDN,NO, TRNS, - TRNS,HOME,LEFT,DOWN,RGHT,END, - TRNS,NO, NO, END, HOME,NO, TRNS, - TRNS,TRNS,TRNS,FN10,FN11, - TRNS,TRNS, - TRNS, - LCTL,LSFT,TRNS, - // right hand - F7, F8, F9, F10, F11, F12, MINS, - TRNS,NO, PGUP,UP, PGDN, NO, FN4, - HOME,LEFT,DOWN,RGHT,END, TRNS, - TRNS,NO, NO, NO, NO, NO, TRNS, - RGUI,RALT,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, TRNS,RSFT,RCTL - ), - - KEYMAP( // layout: layer 8: "BlueShift" - // left hand - FN0, F1, F2, F3, F4, F5, F6, - TRNS,GRV, FN12,FN12,PSCR,BSLS,TRNS, // the FN12 entries are for inverted brace/bracket keys - TRNS,APP, TAB, EQL, TRNS,INS, - TRNS,TRNS,FN8, TRNS,CAPS,TRNS,TRNS, // quit (alt+f4) - FN13,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - ESC, TRNS,TRNS, - // right hand - F7, F8, F9, F10, F11, F12, MINS, - TRNS,PGUP,HOME,UP, END, SLSH,RBRC, - PGDN,LEFT,DOWN,RGHT,MINS,TRNS, - TRNS,TRNS,NO, UP, NO, TRNS,TRNS, - LEFT,DOWN,RGHT,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS - ), - - KEYMAP( // layout: layer 9: reserved - // left hand - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS, - // right hand - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS - ), - - KEYMAP( // layout: layer 10: reserved - // left hand - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS, - // right hand - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS - ), - - // MODIFIERS THAT WON'T BE STICKY - - KEYMAP( // layout: layer 11: Special function-driven commands (any-key) - // left hand - FN8, FN8, FN8, FN8, FN8, FN8, FN8, - FN8, FN8, FN8, FN8, FN8, FN8, FN8, - LSFT,FN8, FN8, FN8, FN8, FN8, - FN8, FN8, FN8, FN8, FN8, FN8, FN8, - FN8, FN8, FN8, FN8, FN8, - FN8, FN8, - FN8, - FN8, FN10,FN8, - // right hand - FN8, FN8, FN8, FN8, FN8, FN8, FN8, - FN8, FN8, FN8, FN8, FN8, FN8, FN8, - FN8, FN8, FN8, FN8, FN8, RSFT, - FN8, FN8, FN8, FN8, FN8, FN8, FN8, - FN8, FN8, FN8, FN8, FN8, - FN8, FN8, - FN8, - FN8, FN8, FN8 - ), - - KEYMAP( // layout: layer 12: F-keys only - // left hand - FN0, NO, NO, NO, NO, NO, NO, - TRNS,F13, F14, F15, F16, NO, TRNS, - TRNS,F17, F18, F19, F20, NO, - TRNS,F21, F22, F23, F24, NO, TRNS, - FN13,FN13,TRNS,LALT,LGUI, - TRNS,TRNS, - TRNS, - LCTL,LSFT,TRNS, - // right hand - NO, NO, F10, F11, F12, NO, TRNS, - TRNS,NO, F7, F8, F9, NO, TRNS, - NO, F4, F5, F6, NO, TRNS, - TRNS,NO, F1, F2, F3, NO, TRNS, - RGUI,RALT,RCTL,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,RSFT,RCTL - ), - - KEYMAP( // layout: layer 13: reserved - // left hand - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS, - // right hand - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS - ), - - KEYMAP( // layout: layer 14: reserved - // left hand - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS, - // right hand - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS - ), - - // TEMPLATES - -/* - KEYMAP( // layout: layer N: transparent on edges, all others are empty - // left hand - TRNS,NO, NO, NO, NO, NO, NO, - TRNS,NO, NO, NO, NO, NO, TRNS, - TRNS,NO, NO, NO, NO, NO, - TRNS,NO, NO, NO, NO, NO, TRNS, - TRNS,TRNS,TRNS,LALT,LGUI, - TRNS,TRNS, - TRNS, - LCTL,LSFT,TRNS, - // right hand - NO, NO, NO, NO, NO, NO, TRNS, - TRNS,NO, NO, NO, NO, NO, TRNS, - NO, NO, NO, NO, NO, TRNS, - TRNS,NO, NO, NO, NO, NO, TRNS, - RGUI,RALT,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,RSFT,RCTL - ), - KEYMAP( // layout: layer N: fully transparent - // left hand - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS, - // right hand - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS,TRNS,TRNS,TRNS, - TRNS,TRNS, - TRNS, - TRNS,TRNS,TRNS - ), -*/ - -}; - -/* id for user defined functions */ -enum function_id { - TEENSY_KEY, - ANY_KEY, - PLOVER_SWITCH, - SHIFT_SWITCH, - FKEY_SWITCH, -}; - -enum macro_id { - MACRO_PASSWORD1, - MACRO_PASSWORD2, - MACRO_PASSWORD3, -}; - -/* - * Fn action definition - */ -static const uint16_t PROGMEM fn_actions[] = { - ACTION_LAYER_SET(0, ON_PRESS), // FN0 - set layer0 only - ACTION_LAYER_TAP_TOGGLE(8), // FN1 - switch to BlueShift - ACTION_LAYER_TAP_TOGGLE(7), // FN2 - movement tap/toggle - ACTION_LAYER_TAP_TOGGLE(6), // FN3 - numpad - ACTION_FUNCTION(TEENSY_KEY), // FN4 - Teensy key - ACTION_FUNCTION(PLOVER_SWITCH), // FN5 - enable Plover - ACTION_FUNCTION(PLOVER_SWITCH), // ** FN6 - suspend Plover (OUT OF USE) - ACTION_LAYER_MOMENTARY(11), // FN7 - Trigger the AnyKey layer - ACTION_FUNCTION(ANY_KEY), // FN8 - AnyKey functional layer - ACTION_MODS_TAP_TOGGLE(MOD_LSFT), // ** FN9 - tap toggle shift (OUT OF USE) - ACTION_MACRO(MACRO_PASSWORD1), // FN10 - password1 - ACTION_MACRO(MACRO_PASSWORD2), // FN11 - password2 - ACTION_FUNCTION(SHIFT_SWITCH), // FN12 - symbolized number row - ACTION_FUNCTION(FKEY_SWITCH), // FN13 - trigger Fkey layer and get rid of it appropriately -}; - -void simon_hotkey(keyrecord_t *record, action_t action) -{ - keyevent_t event = record->event; - - switch (action.kind.id) { - /* Key and Mods */ - case ACT_LMODS: - case ACT_RMODS: - { - uint8_t mods = (action.kind.id == ACT_LMODS) ? action.key.mods : - action.key.mods<<4; - if (event.pressed) { - if (mods) { - add_weak_mods(mods); - send_keyboard_report(); - } - register_code(action.key.code); - } else { - unregister_code(action.key.code); - if (mods) { - del_weak_mods(mods); - send_keyboard_report(); - } - } - } - break; - default: - print("not supported.\n"); - break; - } -} - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - keyevent_t event = record->event; - - // print("action_function called\n"); - // print("id = "); phex(id); print("\n"); - // print("opt = "); phex(opt); print("\n"); - if (id == TEENSY_KEY) { - clear_keyboard(); - print("\n\nJump to bootloader... "); - _delay_ms(250); - bootloader_jump(); // should not return - print("not supported.\n"); - } - else if (id == PLOVER_SWITCH) { - if (event.pressed) { - if (layer_state & 1<<4) { // plover is already on - print("switching off plover layout...\n"); - action_macro_play(MACRO( D(A), D(W), D(P), D(F), D(SCLN), D(LBRC), D(QUOT), D(D), D(A), D(L), U(W), U(P), U(F), U(SCLN), U(LBRC), U(QUOT), U(D), U(L), END)); - layer_off(4); - } else { - print("switching on plover layout...\n"); - action_macro_play(MACRO(D(LANG5), U(LANG5), D(W), D(P), D(F), D(SCLN), D(LBRC), D(QUOT), D(D), D(A), U(W), U(P), U(F), U(SCLN), U(LBRC), U(QUOT), U(D), END)); - layer_on(4); - } - } - } - else if (id == ANY_KEY) { - uint8_t col = event.key.col; - uint8_t row = event.key.row; - - action_t action = { .code = ACTION_NO }; - - if (col == 3 && row == 2) { // Q - action.code = ACTION_MODS_KEY(MOD_LALT, KC_F4); - } - if (col == 3 && row == 10) { // W - action.code = ACTION_MODS_KEY(MOD_LALT, KC_F4); - } - if (col == 4 && row == 12) { // Alt+tab - action.code = ACTION_MODS_KEY(MOD_LALT, KC_TAB); - } - if (action.code != ACTION_NO) { - simon_hotkey(record, action); - } - else - { - print("col = "); pdec(col); print("\n"); - print("row = "); pdec(row); print("\n"); - } - } - else if (id == SHIFT_SWITCH) { - uint8_t col = event.key.col; - uint8_t row = event.key.row; - uint8_t savedmods = get_mods(); - uint8_t shiftpressed = (savedmods & (MOD_LSFT | MOD_RSFT)); - uint8_t othermodspressed = (savedmods & (MOD_LGUI | MOD_RGUI | MOD_LCTL | MOD_RCTL | MOD_LALT | MOD_RALT )); - - action_t action = { .code = ACTION_NO }; - uint8_t keycode = KC_NO; - - if (col == 0) { // Number row - switch (row) { - case 1: - keycode = KC_1; - break; - case 2: - keycode = KC_2; - break; - case 3: - keycode = KC_3; - break; - case 4: - keycode = KC_4; - break; - case 5: - keycode = KC_5; - break; - case 8: - keycode = KC_6; - break; - case 9: - keycode = KC_7; - break; - case 10: - keycode = KC_8; - break; - case 11: - keycode = KC_9; - break; - case 12: - keycode = KC_0; - break; - default: - break; - } - } - if (col == 1) { // next row - switch (row) { - case 2: - keycode = KC_LBRC; - break; - case 3: - keycode = KC_RBRC; - break; - default: - break; - } - } - if (keycode != KC_NO) { - action.code = ACTION_MODS_KEY(MOD_LSFT, keycode); - } - if (action.code != ACTION_NO) { - if (othermodspressed) { - action.key.mods = 0; - } - else if (shiftpressed) { - action.key.mods = 0; - del_mods(MOD_LSFT | MOD_RSFT); - } - simon_hotkey(record, action); - if (shiftpressed) { - set_mods(savedmods); - } - } - } - else if (id == FKEY_SWITCH) { - uint8_t row = event.key.row; - if (event.pressed) { - layer_on(12); - } - else { - if ((row == 0) && (layer_state & 1<<6)) { // left button and from numpad; out-of-order release - layer_off(6); - } - else if ((row == 1) && (layer_state & 1<<8)) { // right button and from BlueShift; out-of-order release - layer_off(8); - } - else { - layer_off(12); - } - } - } -} - -/* - * Macro definition - */ -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - keyevent_t event = record->event; - - if (event.pressed) { - switch (id) { -#include "keymap_simon_passwords.h" - } - } - return MACRO_NONE; -} - |