diff options
Diffstat (limited to 'keyboard/planck')
-rw-r--r-- | keyboard/planck/keymaps/brandon.c | 134 | ||||
-rw-r--r-- | keyboard/planck/keymaps/cbbrowne/keymap.c | 166 |
2 files changed, 152 insertions, 148 deletions
diff --git a/keyboard/planck/keymaps/brandon.c b/keyboard/planck/keymaps/brandon.c new file mode 100644 index 0000000000..2b89f86db2 --- /dev/null +++ b/keyboard/planck/keymaps/brandon.c @@ -0,0 +1,134 @@ +// This is the canonical layout file for the Quantum project. If you want to add another keyboard, +// this is the style you want to emulate. + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _QW 0 +#define _CM 1 +#define _TK 2 +#define _LW 3 +#define _RS 4 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ +/* MIT Layout (QWERTY layer) + * + * ,-----------------------------------------------------------------------. + * | esc | q | w | e | r | t | y | u | i | o | p | bspc| + * |-----------------------------------------------------------------------| + * | tab | a | s | d | f | g | h | j | k | l | ; | ' | + * |-----------------------------------------------------------------------| + * |shift| z | x | c | v | b | n | m | , | . | / |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| + * `-----------------------------------------------------------------------' + */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_LSFT, KC_ENT) }, + {KC_LCTL, KC_LALT, KC_LGUI, TG(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_CM] = { /* Colemak */ +/* MIT Layout (Colemak layer) + * + * ,-----------------------------------------------------------------------. + * | esc | q | w | f | p | g | j | l | u | y | ; | bspc| + * |-----------------------------------------------------------------------| + * | tab | a | r | s | t | d | h | n | e | i | o | ' | + * |-----------------------------------------------------------------------| + * |shift| z | x | c | v | b | k | m | , | . | / |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| + * `-----------------------------------------------------------------------' + */ + {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_LSFT, KC_ENT)}, + {KC_LCTL, KC_LALT, KC_LGUI, TG(_TK), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_RS] = { /* RAISE */ +/* MIT Layout (RAISE layer) + * + * ,-----------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | bspc| + * |-----------------------------------------------------------------------| + * | tab | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |-----------------------------------------------------------------------| + * |shift| F7 | F8 | F9 | F10 | F11 | F12 | QW | CM | BL | RST |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | del |lower| spc |raise|next |vold |volu |PLAY | + * `-----------------------------------------------------------------------' + */ + + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_LW] = { /* LOWER */ +/* MIT Layout (Colemak layer) + * + * ,-----------------------------------------------------------------------. + * | esc | q | w | f | p | g | j | l | u | y | ; | bspc| + * |-----------------------------------------------------------------------| + * | tab | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |-----------------------------------------------------------------------| + * |shift| F7 | F8 | F9 | F10 | F11 | F12 | QW | CM | BL | RST |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | TK |lower| spc |raise|next |vold |volu |PLAY | + * `-----------------------------------------------------------------------' + */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_QW), DF(_CM), M(0), RESET, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_TK] = { /* Ten Key*/ +/* MIT Layout (Ten Key layer) + * + * ,-----------------------------------------------------------------------. + * | esc | F9 | F10 | F11 | F12 | PGUP| % | / | 7 | 8 | 9 | bspc| + * |-----------------------------------------------------------------------| + * | tab | F5 | F6 | F7 | F8 | PGDN| HOME| * | 4 | 5 | 6 | \ | + * |-----------------------------------------------------------------------| + * |shift| F1 | F2 | F3 | F4 | DEL | END | 0 | 1 | 2 | 3 |enter| + * |-----------------------------------------------------------------------| + * | ctl | alt | win | TK |lower| spc |raise|left |down | up |right| + * `-----------------------------------------------------------------------' + */ + {KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_PGUP, KC_PERC, KC_SLSH, KC_7, KC_8, KC_9, KC_BSPC}, + {KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, KC_PGDN, KC_HOME, KC_ASTR, KC_4, KC_5, KC_6, KC_PIPE}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_DEL, KC_END, KC_0, KC_1, KC_2, KC_3, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +} + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + switch(id) { + case 0: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/cbbrowne/keymap.c b/keyboard/planck/keymaps/cbbrowne/keymap.c index 45a297cda3..250d412ced 100644 --- a/keyboard/planck/keymaps/cbbrowne/keymap.c +++ b/keyboard/planck/keymaps/cbbrowne/keymap.c @@ -118,6 +118,9 @@ static uint16_t random_value = 157; const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { + uint8_t clockbyte=0; + clockbyte = TCNT1 % 256; + uint8_t rval; // MACRODOWN only works in this function switch(id) { case M_LED: @@ -141,160 +144,27 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) /* Generate, based on random number generator, a keystroke for a numeric digit chosen at random */ random_value = ((random_value + randadd) * randmul) % randmod; - if (record->event.pressed) - switch(random_value % 10) { - case 0: - register_code (KC_0); - unregister_code (KC_0); - break; - case 1: - register_code (KC_1); - unregister_code (KC_1); - break; - case 2: - register_code (KC_2); - unregister_code (KC_2); - break; - case 3: - register_code (KC_3); - unregister_code (KC_3); - break; - case 4: - register_code (KC_4); - unregister_code (KC_4); - break; - case 5: - register_code (KC_5); - unregister_code (KC_5); - break; - case 6: - register_code (KC_6); - unregister_code (KC_6); - break; - case 7: - register_code (KC_7); - unregister_code (KC_7); - break; - case 8: - register_code (KC_8); - unregister_code (KC_8); - break; - case 9: - register_code (KC_9); - unregister_code (KC_9); - break; + if (record->event.pressed) { + /* Here, we mix the LCRNG with low bits from one of the system + clocks via XOR in the theory that this may be more random + than either separately */ + rval = (random_value ^ clockbyte) % 10; + /* Note that KC_1 thru KC_0 are a contiguous range */ + register_code (KC_1 + rval); + unregister_code (KC_1 + rval); } break; case M_RANDLETTER: /* Generate, based on random number generator, a keystroke for a letter chosen at random */ + /* Here, we mix the LCRNG with low bits from one of the system + clocks via XOR in the theory that this may be more random + than either separately */ random_value = ((random_value + randadd) * randmul) % randmod; - if (record->event.pressed) - switch(random_value % 26) { - case 0: - register_code(KC_A); - unregister_code(KC_A); - break; - case 1: - register_code(KC_B); - unregister_code(KC_B); - break; - case 2: - register_code(KC_C); - unregister_code(KC_C); - break; - case 3: - register_code(KC_D); - unregister_code(KC_D); - break; - case 4: - register_code(KC_E); - unregister_code(KC_E); - break; - case 5: - register_code(KC_F); - unregister_code(KC_F); - break; - case 6: - register_code(KC_G); - unregister_code(KC_G); - break; - case 7: - register_code(KC_H); - unregister_code(KC_H); - break; - case 8: - register_code(KC_I); - unregister_code(KC_I); - break; - case 9: - register_code(KC_J); - unregister_code(KC_J); - break; - case 10: - register_code(KC_K); - unregister_code(KC_K); - break; - case 11: - register_code(KC_L); - unregister_code(KC_L); - break; - case 12: - register_code(KC_M); - unregister_code(KC_M); - break; - case 13: - register_code(KC_N); - unregister_code(KC_N); - break; - case 14: - register_code(KC_O); - unregister_code(KC_O); - break; - case 15: - register_code(KC_P); - unregister_code(KC_P); - break; - case 16: - register_code(KC_Q); - unregister_code(KC_Q); - break; - case 17: - register_code(KC_R); - unregister_code(KC_R); - break; - case 18: - register_code(KC_S); - unregister_code(KC_S); - break; - case 19: - register_code(KC_T); - unregister_code(KC_T); - break; - case 20: - register_code(KC_U); - unregister_code(KC_U); - break; - case 21: - register_code(KC_V); - unregister_code(KC_V); - break; - case 22: - register_code(KC_W); - unregister_code(KC_W); - break; - case 23: - register_code(KC_X); - unregister_code(KC_X); - break; - case 24: - register_code(KC_Y); - unregister_code(KC_Y); - break; - case 25: - register_code(KC_Z); - unregister_code(KC_Z); - break; + if (record->event.pressed) { + rval = (random_value ^ clockbyte) % 26; + register_code (KC_A + rval); + unregister_code (KC_A + rval); } break; } |