From 83e1cc241e3aabd69f6cdcd2581477d4b85bb8d3 Mon Sep 17 00:00:00 2001 From: IBNobody Date: Tue, 3 May 2016 12:56:40 -0500 Subject: Clarified audio.c (#302) * Updated personal layouts * tweaked personal * Nightly - Audio Cleanup Refactored the LUTs. Abstracted some of the registers out of audio to use more functional names. Split audio into audio and audio_pwm. WIP * nightly - collapsed code * Added check for note playing to LEDs --- keyboard/planck/keymaps/pvc/config.h | 2 +- keyboard/planck/keymaps/pvc/keymap.c | 4 ++-- keyboard/planck/keymaps/pvc/makefile.mk | 3 ++- 3 files changed, 5 insertions(+), 4 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/pvc/config.h b/keyboard/planck/keymaps/pvc/config.h index 7d64f09773..d435cc795c 100644 --- a/keyboard/planck/keymaps/pvc/config.h +++ b/keyboard/planck/keymaps/pvc/config.h @@ -73,7 +73,7 @@ along with this program. If not, see . */ /* disable debug print */ -//#define NO_DEBUG +#define NO_DEBUG /* disable print */ //#define NO_PRINT diff --git a/keyboard/planck/keymaps/pvc/keymap.c b/keyboard/planck/keymaps/pvc/keymap.c index 27850b2154..830b00a4c4 100644 --- a/keyboard/planck/keymaps/pvc/keymap.c +++ b/keyboard/planck/keymaps/pvc/keymap.c @@ -96,7 +96,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [LAYER_QWERTY] = { /* QWERTY */ { KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, - { KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, + { KC_ESC, 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, KC_ENT }, { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, }, @@ -115,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [LAYER_COLEMAK] = { /* COLEMAK */ { KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_ESC }, - { KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT }, + { KC_BSPC, 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, KC_ENT }, { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_RAISE, KC_SPC, KC_SPC, M_LOWER, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT }, }, diff --git a/keyboard/planck/keymaps/pvc/makefile.mk b/keyboard/planck/keymaps/pvc/makefile.mk index 4b9e34c53f..b3f1b9e51c 100644 --- a/keyboard/planck/keymaps/pvc/makefile.mk +++ b/keyboard/planck/keymaps/pvc/makefile.mk @@ -4,6 +4,7 @@ EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = yes # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode @@ -13,4 +14,4 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -CONFIG_H = keymaps/$(KEYMAP)/config.h +CONFIG_H = keymaps/$(KEYMAP)/config.h \ No newline at end of file -- cgit v1.2.3 From 3f02637f4dd765803671c2611191beb096d60b36 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 9 May 2016 13:17:15 -0400 Subject: Backlight Breathing for Planck and Atomic * Updated personal layouts * tweaked personal * Nightly - Audio Cleanup Refactored the LUTs. Abstracted some of the registers out of audio to use more functional names. Split audio into audio and audio_pwm. WIP * nightly - collapsed code * Added check for note playing to LEDs * Usability tweaks * TWEAE * nightly added extra kcs to keymap common * turned on Plank audio * Added backlight breathing to atomic * reverted accidental merge * adds backlight pulse to planck --- keyboard/planck/keymaps/experimental/README.md | 2 + keyboard/planck/keymaps/experimental/keymap.c | 383 +++++++++++++++++++++++ keyboard/planck/keymaps/experimental/makefile.mk | 2 + keyboard/planck/keymaps/pvc/keymap.c | 13 +- keyboard/planck/keymaps/pvc/makefile.mk | 6 +- keyboard/planck/planck.c | 221 ++++++++++++- keyboard/planck/planck.h | 18 ++ 7 files changed, 635 insertions(+), 10 deletions(-) create mode 100644 keyboard/planck/keymaps/experimental/README.md create mode 100644 keyboard/planck/keymaps/experimental/keymap.c create mode 100644 keyboard/planck/keymaps/experimental/makefile.mk (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/experimental/README.md b/keyboard/planck/keymaps/experimental/README.md new file mode 100644 index 0000000000..de9680b498 --- /dev/null +++ b/keyboard/planck/keymaps/experimental/README.md @@ -0,0 +1,2 @@ +# The Default Planck Layout + diff --git a/keyboard/planck/keymaps/experimental/keymap.c b/keyboard/planck/keymaps/experimental/keymap.c new file mode 100644 index 0000000000..fc3ac4a97e --- /dev/null +++ b/keyboard/planck/keymaps/experimental/keymap.c @@ -0,0 +1,383 @@ +// 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" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// 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 _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _MUSIC 5 +#define _PLOVER 6 +#define _ADJUST 16 + +// Macro name shortcuts +#define QWERTY M(_QWERTY) +#define COLEMAK M(_COLEMAK) +#define DVORAK M(_DVORAK) +#define LOWER M(_LOWER) +#define RAISE M(_RAISE) +#define M_BL 5 +#define AUD_OFF M(6) +#define AUD_ON M(7) +#define MUS_OFF M(8) +#define MUS_ON M(9) +#define VC_IN M(10) +#define VC_DE M(11) +#define PLOVER M(12) +#define EXT_PLV M(13) + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, 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, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, 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, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Music (reserved for process_action_user) + * + */ +[_MUSIC] = { + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, + {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff| | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {_______, VC_DE, VC_IN, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +#ifdef AUDIO_ENABLE +float tone_startup[][2] = { + {440.0*pow(2.0,(31)/12.0), 12}, + {440.0*pow(2.0,(28)/12.0), 8}, + {440.0*pow(2.0,(19)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8}, + {440.0*pow(2.0,(28)/12.0), 20} +}; + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); + +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); +float goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + break; + case _COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + break; + case _DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + break; + case _LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + breathing_speed_set(2); + breathing_pulse(); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case _RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + breathing_speed_set(2); + breathing_pulse(); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case M_BL: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + case 6: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_off(); + #endif + } + break; + case 7: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + audio_on(); + PLAY_NOTE_ARRAY(tone_startup, false, 0); + #endif + } + break; + case 8: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + layer_off(_MUSIC); + stop_all_notes(); + #endif + } + break; + case 9: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(music_scale, false, 0); + layer_on(_MUSIC); + #endif + } + break; + case 10: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_iterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + break; + case 11: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + voice_deiterate(); + PLAY_NOTE_ARRAY(music_scale, false, 0); + #endif + } + break; + case 12: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_NOTE_ARRAY(tone_plover, false, 0); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_off(_MUSIC); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + break; + case 13: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); + #endif + layer_off(_PLOVER); + } + break; + + } + return MACRO_NONE; +}; + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + _delay_ms(20); // stops the tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); + #endif +} + +#ifdef AUDIO_ENABLE +void play_goodbye_tone() +{ + PLAY_NOTE_ARRAY(goodbye, false, 0); + _delay_ms(150); +} + +uint8_t starting_note = 0x0C; +int offset = 0; + +void process_action_user(keyrecord_t *record) { + + if (IS_LAYER_ON(_MUSIC)) { + if (record->event.pressed) { + play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); + } else { + stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); + } + } + +} +#endif diff --git a/keyboard/planck/keymaps/experimental/makefile.mk b/keyboard/planck/keymaps/experimental/makefile.mk new file mode 100644 index 0000000000..99fbfbd0bb --- /dev/null +++ b/keyboard/planck/keymaps/experimental/makefile.mk @@ -0,0 +1,2 @@ +AUDIO_ENABLE = yes +NKRO_ENABLE = yes \ No newline at end of file diff --git a/keyboard/planck/keymaps/pvc/keymap.c b/keyboard/planck/keymaps/pvc/keymap.c index 830b00a4c4..177f04484d 100644 --- a/keyboard/planck/keymaps/pvc/keymap.c +++ b/keyboard/planck/keymaps/pvc/keymap.c @@ -38,6 +38,7 @@ #define MACRO_AUDIO_OFF 17 #define MACRO_INC_VOICE 18 #define MACRO_DEC_VOICE 19 +#define MACRO_BACKLIGHT 20 #define M_QWRTY M(MACRO_QWERTY) #define M_COLMK M(MACRO_COLEMAK) @@ -53,6 +54,7 @@ #define TMPO_UP M(MACRO_TEMPO_U) #define TMPO_DN M(MACRO_TEMPO_D) #define TMPO_DF M(MACRO_TONE_DEFAULT) +#define M_BACKL M(MACRO_BACKLIGHT) #define MUS_ON M(MACRO_MUSIC_ON) @@ -217,7 +219,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [LAYER_ADJUST] = { /* ADJUST */ { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, MUS_ON, MUS_OFF, AUD_ON, AUD_OFF }, { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______ }, - { _______, _______, _______, _______, _______, RESET, _______, M_MOUSE, _______, _______, _______, _______ }, + { _______, _______, _______, _______, M_BACKL, RESET, _______, M_MOUSE, _______, _______, _______, _______ }, { _______, _______, _______, _______, _______, _______, _______, _______, VC_UP, VC_DOWN, _______, _______ }, }, @@ -337,6 +339,15 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) } break; + +#ifdef BACKLIGHT_ENABLE + case MACRO_BACKLIGHT: + if (record->event.pressed) + { + backlight_step(); + } +#endif + #ifdef MOUSEKEY_ENABLE case MACRO_MOUSE: diff --git a/keyboard/planck/keymaps/pvc/makefile.mk b/keyboard/planck/keymaps/pvc/makefile.mk index b3f1b9e51c..f7798b09d5 100644 --- a/keyboard/planck/keymaps/pvc/makefile.mk +++ b/keyboard/planck/keymaps/pvc/makefile.mk @@ -1,12 +1,12 @@ BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) +CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 +AUDIO_ENABLE = yes # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c index 6558501504..446353dbf5 100644 --- a/keyboard/planck/planck.c +++ b/keyboard/planck/planck.c @@ -9,6 +9,9 @@ void matrix_scan_user(void) {} __attribute__ ((weak)) void process_action_user(keyrecord_t *record) {} +__attribute__ ((weak)) +void led_set_user(uint8_t usb_led) {} + void matrix_init_kb(void) { #ifdef BACKLIGHT_ENABLE backlight_init_ports(); @@ -33,8 +36,22 @@ void process_action_kb(keyrecord_t *record) { process_action_user(record); } +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} + #ifdef BACKLIGHT_ENABLE #define CHANNEL OCR1C +#define BREATHING_NO_HALT 0 +#define BREATHING_HALT_OFF 1 +#define BREATHING_HALT_ON 2 + +static uint8_t breath_intensity; +static uint8_t breath_speed; +static uint16_t breathing_index; +static uint8_t breathing_halt; void backlight_init_ports() { @@ -60,22 +77,22 @@ void backlight_init_ports() TCCR1B = _BV(WGM13) | _BV(WGM12) | _BV(CS10); // = 0b00011001; backlight_init(); + breathing_defaults(); } void backlight_set(uint8_t level) { + // Prevent backlight blink on lowest level + PORTB &= ~(_BV(PORTB7)); + if ( level == 0 ) { // Turn off PWM control on PB7, revert to output low. TCCR1A &= ~(_BV(COM1C1)); CHANNEL = 0x0; - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); } else if ( level == BACKLIGHT_LEVELS ) { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); // Turn on PWM control of PB7 TCCR1A |= _BV(COM1C1); // Set the brightness @@ -83,13 +100,205 @@ void backlight_set(uint8_t level) } else { - // Prevent backlight blink on lowest level - PORTB &= ~(_BV(PORTB7)); // Turn on PWM control of PB7 TCCR1A |= _BV(COM1C1); // Set the brightness CHANNEL = 0xFFFF >> ((BACKLIGHT_LEVELS - level) * ((BACKLIGHT_LEVELS + 1) / 2)); } + breathing_intensity_default(); +} + + +void breathing_enable(void) +{ + if (get_backlight_level() == 0) + { + breathing_index = 0; + } + else + { + // Set breathing_index to be at the midpoint (brightest point) + breathing_index = 0x20 << breath_speed; + } + + breathing_halt = BREATHING_NO_HALT; + + // Enable breathing interrupt + TIMSK1 |= _BV(OCIE1A); +} + +void breathing_pulse(void) +{ + if (get_backlight_level() == 0) + { + breathing_index = 0; + } + else + { + // Set breathing_index to be at the midpoint + 1 (brightest point) + breathing_index = 0x21 << breath_speed; + } + + breathing_halt = BREATHING_HALT_ON; + + // Enable breathing interrupt + TIMSK1 |= _BV(OCIE1A); } +void breathing_disable(void) +{ + // Disable breathing interrupt + TIMSK1 &= ~_BV(OCIE1A); + backlight_set(get_backlight_level()); +} + +void breathing_self_disable(void) +{ + if (get_backlight_level() == 0) + { + breathing_halt = BREATHING_HALT_OFF; + } + else + { + breathing_halt = BREATHING_HALT_ON; + } + + //backlight_set(get_backlight_level()); +} + +void breathing_toggle(void) +{ + if (!is_breathing()) + { + if (get_backlight_level() == 0) + { + breathing_index = 0; + } + else + { + // Set breathing_index to be at the midpoint + 1 (brightest point) + breathing_index = 0x21 << breath_speed; + } + + breathing_halt = BREATHING_NO_HALT; + } + + // Toggle breathing interrupt + TIMSK1 ^= _BV(OCIE1A); + + // Restore backlight level + if (!is_breathing()) + { + backlight_set(get_backlight_level()); + } +} + +bool is_breathing(void) +{ + return (TIMSK1 && _BV(OCIE1A)); +} + +void breathing_intensity_default(void) +{ + //breath_intensity = (uint8_t)((uint16_t)100 * (uint16_t)get_backlight_level() / (uint16_t)BACKLIGHT_LEVELS); + breath_intensity = ((BACKLIGHT_LEVELS - get_backlight_level()) * ((BACKLIGHT_LEVELS + 1) / 2)); +} + +void breathing_intensity_set(uint8_t value) +{ + breath_intensity = value; +} + +void breathing_speed_default(void) +{ + breath_speed = 4; +} + +void breathing_speed_set(uint8_t value) +{ + bool is_breathing_now = is_breathing(); + uint8_t old_breath_speed = breath_speed; + + if (is_breathing_now) + { + // Disable breathing interrupt + TIMSK1 &= ~_BV(OCIE1A); + } + + breath_speed = value; + + if (is_breathing_now) + { + // Adjust index to account for new speed + breathing_index = (( (uint8_t)( (breathing_index) >> old_breath_speed ) ) & 0x3F) << breath_speed; + + // Enable breathing interrupt + TIMSK1 |= _BV(OCIE1A); + } + +} + +void breathing_speed_inc(uint8_t value) +{ + if ((uint16_t)(breath_speed - value) > 10 ) + { + breathing_speed_set(0); + } + else + { + breathing_speed_set(breath_speed - value); + } +} + +void breathing_speed_dec(uint8_t value) +{ + if ((uint16_t)(breath_speed + value) > 10 ) + { + breathing_speed_set(10); + } + else + { + breathing_speed_set(breath_speed + value); + } +} + +void breathing_defaults(void) +{ + breathing_intensity_default(); + breathing_speed_default(); + breathing_halt = BREATHING_NO_HALT; +} + +/* Breathing Sleep LED brighness(PWM On period) table + * (64[steps] * 4[duration]) / 64[PWM periods/s] = 4 second breath cycle + * + * http://www.wolframalpha.com/input/?i=%28sin%28+x%2F64*pi%29**8+*+255%2C+x%3D0+to+63 + * (0..63).each {|x| p ((sin(x/64.0*PI)**8)*255).to_i } + */ +static const uint8_t breathing_table[64] PROGMEM = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 4, 6, 10, + 15, 23, 32, 44, 58, 74, 93, 113, 135, 157, 179, 199, 218, 233, 245, 252, +255, 252, 245, 233, 218, 199, 179, 157, 135, 113, 93, 74, 58, 44, 32, 23, + 15, 10, 6, 4, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +}; + +ISR(TIMER1_COMPA_vect) +{ + // CHANNEL = (pgm_read_byte(&breathing_table[ ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F ] )) * breath_intensity; + + + uint8_t local_index = ( (uint8_t)( (breathing_index++) >> breath_speed ) ) & 0x3F; + + if (((breathing_halt == BREATHING_HALT_ON) && (local_index == 0x20)) || ((breathing_halt == BREATHING_HALT_OFF) && (local_index == 0x3F))) + { + // Disable breathing interrupt + TIMSK1 &= ~_BV(OCIE1A); + } + + CHANNEL = (uint16_t)(((uint16_t)pgm_read_byte(&breathing_table[local_index]) * 257)) >> breath_intensity; + +} + + + #endif \ No newline at end of file diff --git a/keyboard/planck/planck.h b/keyboard/planck/planck.h index c5b59d9998..cfd4956bf1 100644 --- a/keyboard/planck/planck.h +++ b/keyboard/planck/planck.h @@ -45,4 +45,22 @@ void matrix_init_user(void); void matrix_scan_user(void); void process_action_user(keyrecord_t *record); +void led_set_user(uint8_t usb_led); +void backlight_init_ports(void); + +void breathing_enable(void); +void breathing_pulse(void); +void breathing_disable(void); +void breathing_self_disable(void); +void breathing_toggle(void); +bool is_breathing(void); + + +void breathing_defaults(void); +void breathing_intensity_default(void); +void breathing_speed_default(void); +void breathing_speed_set(uint8_t value); +void breathing_speed_inc(uint8_t value); +void breathing_speed_dec(uint8_t value); + #endif -- cgit v1.2.3 From 69f05e1afd2e046938209e00db62d18efead4932 Mon Sep 17 00:00:00 2001 From: cwhits Date: Thu, 12 May 2016 15:08:53 -0400 Subject: [planck] adds button for toggling output in plover app (#323) * [planck] toggle plover output in app when toggling plover layer on keyboard * [planck] moved plover toggle to separate key * [planck] renamed toggle button --- keyboard/planck/keymaps/default/keymap.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index ac4937b69e..56f20a3b99 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -38,6 +38,7 @@ extern keymap_config_t keymap_config; #define VC_DE M(11) #define PLOVER M(12) #define EXT_PLV M(13) +#define TOG_OUT M(14) // Fillers to make layering more clear #define _______ KC_TRNS @@ -151,7 +152,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | | S | T | P | H | * | * | F | P | L | T | D | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | S | K | W | R | * | * | R | B | G | S | Z | + * |TogOut| S | K | W | R | * | * | R | B | G | S | Z | * |------+------+------+------+------+------+------+------+------+------+------+------| * | Exit | | | A | O | | E | U | | | | * `-----------------------------------------------------------------------------------' @@ -160,7 +161,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_PLOVER] = { {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, - {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {TOG_OUT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} }, @@ -343,7 +344,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) layer_off(_PLOVER); } break; - + case 14: + if (record->event.pressed) { + return MACRO( D(E), D(R), D(F), D(V), D(O), D(L), U(E), U(R), U(F), U(V), U(O), U(L), END ); + } + break; } return MACRO_NONE; }; -- cgit v1.2.3 From c7d2c79d34501480147f8aa6221e1d46ce473af6 Mon Sep 17 00:00:00 2001 From: Jacob Bilger Date: Sat, 14 May 2016 21:11:33 -0400 Subject: adds Bilger321's planck keymap --- keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG | Bin 0 -> 17292 bytes keyboard/planck/keymaps/Jacob/keymap.c | 56 + keyboard/planck/keymaps/Jacob/planck.hex | 1151 +++++++++++++++++++++ keyboard/planck/keymaps/Jacob/readme.md | 1 + 4 files changed, 1208 insertions(+) create mode 100644 keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG create mode 100644 keyboard/planck/keymaps/Jacob/keymap.c create mode 100644 keyboard/planck/keymaps/Jacob/planck.hex create mode 100644 keyboard/planck/keymaps/Jacob/readme.md (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG b/keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG new file mode 100644 index 0000000000..40f0b89429 Binary files /dev/null and b/keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG differ diff --git a/keyboard/planck/keymaps/Jacob/keymap.c b/keyboard/planck/keymaps/Jacob/keymap.c new file mode 100644 index 0000000000..5e6e8498e2 --- /dev/null +++ b/keyboard/planck/keymaps/Jacob/keymap.c @@ -0,0 +1,56 @@ +#include "planck.h" +#include "action_layer.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +//Simple Keymap where CTRL, WINKEY, and ALT keys are placed in a more familiar location for Windows users. +//Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck. + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +#define _QW 0 +#define _LW 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, 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_RSFT, KC_ENT)}, + {KC_LCTL, KC_LGUI, KC_LALT, M(0), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + [_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, + {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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + }, + [_LW] = { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + } +}; + +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/Jacob/planck.hex b/keyboard/planck/keymaps/Jacob/planck.hex new file mode 100644 index 0000000000..3ea701202c --- /dev/null +++ b/keyboard/planck/keymaps/Jacob/planck.hex @@ -0,0 +1,1151 @@ +:100000000C94A8010C94EC010C94EC010C94EC0100 +:100010000C94EC010C94EC010C94EC010C94EC01AC +:100020000C94EC010C94EC010C94410D0C94050D16 +:100030000C94C11B0C94EC010C94EC010C94EC019D +:100040000C94EC010C94EC010C94EC010C94EC017C +:100050000C94EC010C94841C0C94EC010C94EC01B9 +:100060000C94EC010C94EC010C94EC010C94EC015C +:100070000C94EC010C94EC010C94EC010C94EC014C +:100080000C94EC010C94EC010C94EC010C94EC013C +:100090000C94EC010C94EC010C94EC010C94EC012C +:1000A0000C94EC010C94EC010C94EC012B0014006A +:1000B0001A000800150017001C0018000C001200A0 +:1000C00013002A00290004001600070009000A0096 +:1000D0000B000D000E000F0033003400E1001D0086 +:1000E0001B00060019000500110010003600370043 +:1000F00038002872E000E300E200003001522C00DA +:100100002C0002525000510052004F0035021E02D6 +:100110001F022002210222022302240225022602BB +:1001200027024C0001000100010001000100010054 +:1001300001002D022E022F023002310201000100C7 +:1001400001000100010001000100010001002F0079 +:100150003000010001000100010001000100010068 +:1001600001000100010001000100010035001E0036 +:100170001F0020002100220023002400250026006B +:1001800027004C0001003A003B003C003D003E00CF +:100190003F002D002E002F003000310001004000F4 +:1001A00041004200430044004500010001000100FD +:1001B0000100010001000100010001000100010037 +:1001C0000100010001000100010001000501090614 +:1001D000A101050719E029E715002501950875011A +:1001E0008102950175088101050819012905950508 +:1001F000750191029501750391010507190029FF09 +:10020000150025FF950675088100C005010902A1AA +:10021000010901A10005091901290515002501950C +:1002200005750181029501750381010501093009F8 +:10023000311581257F9502750881060938158125BC +:100240007F950175088106050C0A38021581257F06 +:10025000950175088106C0C005010980A1018502CC +:1002600016010026B7001A01002AB7007510950183 +:100270008100C0050C0901A1018503160100269C1F +:10028000021A01002A9C02751095018100C012011A +:10029000100100000008EDFE606001000102000195 +:1002A00009025400030100A0FA090400000103013F +:1002B0000100092111010001223F00070581030807 +:1002C000000A0904010001030102000921110100D3 +:1002D00001224D000705820308000A0904020001FB +:1002E00003000000092111010001223600070583E7 +:1002F0000308000A040309042C034F007200740071 +:1003000068006F006C0069006E006500610072009B +:1003100020004B006500790062006F0061007200F0 +:10032000640073000000280354006800650020008A +:1003300050006C0061006E0063006B0020004B00F9 +:100340006500790062006F006100720064000000C7 +:1003500011241FBECFEFDAE0DEBFCDBF04B603FE2F +:1003600024C08091ED019091EE01A091EF01B09138 +:10037000F0018750904BA740B04BB9F41092ED01BB +:100380001092EE011092EF011092F00114BE84B7AA +:10039000877F84BF88E10FB6F89480936000109245 +:1003A00060000FBEE0E0F8E3099511E0A0E0B1E0E5 +:1003B000EAE7F7E402C005900D92A435B107D9F73A +:1003C00011E0A4E5B1E001C01D92AD3EB107E1F737 +:1003D0000E9441090C94BB230C940000FC0166238D +:1003E00061F48281882331F085EE0E947D110E94A4 +:1003F000BC2103C085EE0E942A1180E090E00895A0 +:1004000008950895089508950E94010208950E9494 +:10041000020208950E940302089584E0809355012A +:1004200008950E949C2123E030E0281B3109220F0F +:10043000331F2093540108950E9411020E940D025F +:10044000109256010895982F2F98882351F4809187 +:100450008000877F8093800010928D0010928C0026 +:1004600020C0833041F480918000886080938000B8 +:100470008FEF9FEF12C08091800088608093800092 +:1004800023E030E0291B3109220F331F8FEF9FEF4C +:1004900002C0969587952A95E2F790938D008093F8 +:1004A0008C000E9411020895279A2F988FEF9FEFDA +:1004B00090938700809386008AE08093800089E192 +:1004C000809381000E942A220E941C0208950E94AB +:1004D00054026E9A769A0E94000208950895E62FBB +:1004E000F0E0EE0FFF1F98E1799F90011124E20FD9 +:1004F000F31F90E6899FC0011124E80FF91FE4550E +:10050000FF4F25913491C9010895FC01EE0FFF1FA3 +:10051000E45BFF4F25913491C9010895FC01EE0F72 +:10052000FF1FE453FE4F25913491C9010895CF93E5 +:10053000DF93EC0180E4C030D807A0F590E3C03031 +:10054000D90708F005C1C83ED105E8F4C03ED10581 +:1005500008F069C0C83AD10588F4C53AD10508F059 +:1005600064C0C130D10509F4E8C0C130D10508F438 +:1005700014C2C430D10508F410C255C0CB3BD1051C +:1005800008F00BC261C080E2C030D80708F0DBC0C1 +:1005900091E0C030D90708F0D3C0C03FD10508F4BE +:1005A000FCC1C8C080E5C130D80709F4F4C090E5AB +:1005B000C230D907F0F480E4C131D80709F4D4C0BF +:1005C00090E4C231D90730F480E4C031D80708F490 +:1005D000C3C0C7C090E4C331D90709F4CBC080E4DD +:1005E000C331D80708F4C3C0C050D04509F0D5C105 +:1005F000C4C080E6C030D80730F491E5C030D907D8 +:1006000008F05EC1CEC080E7C030D80708F4C5C18D +:1006100090E8C030D90708F4B8C180E9C030D807E5 +:1006200008F0BBC1B6C19E01BAC1C53AD10519F4E3 +:1006300081E890E47DC0C63AD10519F083E890E4E2 +:1006400077C082E890E474C0C83AD10519F482EE0C +:1006500094E46EC0C93AD10519F489EE94E468C0F7 +:10066000CA3AD10519F48AEE94E462C0CB3AD105B6 +:1006700019F485EB94E45CC0CC3AD10519F486EB0F +:1006800094E456C0CD3AD10519F487EB94E450C0F8 +:10069000C03BD10519F48CEC94E44AC0CE3AD105A4 +:1006A00019F48DEC94E444C0CF3AD10519F483E8F1 +:1006B00095E43EC0C13BD10519F48AE895E438C001 +:1006C000C23BD10519F482E995E432C0C33BD105A0 +:1006D00019F484E995E42CC0C43BD10519F481E2F6 +:1006E00096E426C0C53BD10519F483E296E420C008 +:1006F000C63BD10519F484E296E41AC0C73BD10584 +:1007000019F485E296E414C0C83BD10519F486E2D9 +:1007100096E40EC0C93BD10519F487E296E408C0FF +:10072000CA3BD10519F080E094E402C08AE296E465 +:100730009C0135C19E01306532C121E030E02FC1FE +:100740009E013F712CC1CE019F700E948E0228C174 +:100750009E013070306C23C19E012F703070346D5B +:100760001EC120E031ED1BC120E030ED18C120E0BA +:1007700032ED15C120E033ED12C10E94171184EC57 +:1007800099E020E931E0F9013197F1F70197D9F7C4 +:100790000E94A91C04C18091CD0181608093CD018C +:1007A000FEC00E94051D882311F40E94101D0E94A6 +:1007B000F61C8093EB011092EC0190E5C230D90752 +:1007C00011F4816076C090E5C430D90711F48260DD +:1007D00070C090E5C630D90711F484606AC090E516 +:1007E000C830D90711F4886064C090E5CA30D907D1 +:1007F00011F480615EC090E5CC30D90711F48062BD +:1008000058C090E5CE30D90711F4806452C090E50D +:10081000C031D90711F480684CC090E5C231D907C6 +:1008200011F48C6046C080E5C330D80721F4809174 +:10083000EB018E7F3EC090E5C530D90721F4809151 +:10084000EB018D7F36C080E5C730D80721F4809159 +:10085000EB018B7F2EC090E5C930D90721F4809140 +:10086000EB01877F26C080E5CB30D80721F480914B +:10087000EB018F7E1EC090E5CD30D90721F4809129 +:10088000EB018F7D16C080E5CF30D80721F4809131 +:10089000EB018F7B0EC090E5C131D90721F4809127 +:1008A000EB018F7706C0C351D04529F48091EB014D +:1008B000837F8093EB018091EB010E94EB1C6FC062 +:1008C0004D2F55274F70507041305105F9F49E015E +:1008D000A4E0220F331FAA95E1F720703370CE01F8 +:1008E000F3E0880F991FFA95E1F780769070282B36 +:1008F000392B3C68C370D07002C0440F551FCA9595 +:10090000E2F74F715070242B352B49C0423051050E +:1009100029F43C2F2227216F306A41C04330510512 +:1009200051F49E0173E0220F331F7A95E1F7207E88 +:1009300037703C680CC044305105B9F49E0163E047 +:10094000220F331F6A95E1F7207E37703A68C37033 +:10095000D07081E090E002C0880F991FCA95E2F73D +:100960008F719070282B392B1AC04530510529F40E +:100970003C2F2227246F306A12C04630510579F48B +:10098000CF71D0703C2F222702C09E013F70306291 +:1009900006C09E013F70306A02C020E030E0C9010D +:1009A000DF91CF9108950E946F02803E9105F0F48F +:1009B000803C910588F58133910509F475C0823337 +:1009C000910548F48932910509F464C08A32910591 +:1009D00009F07BC06EC08933910509F18238910519 +:1009E000F1F08533910509F070C04FC0833E910549 +:1009F00061F1843E910540F4803E9105B9F0823E5C +:100A0000910509F062C01CC0863E910551F1873EF8 +:100A1000910509F05AC02AC00E94850208952091CC +:100A2000EB0120FD0AC021FD08C04CC08091EB0104 +:100A300080FF03C089E390E045C080EE90E042C0B3 +:100A40008091EB0182FD08C004C08091EB0182FF20 +:100A500003C082EE90E036C084FD11C083EE90E0CA +:100A600031C08091EB0183FD08C004C08091EB018F +:100A700083FF03C086EE90E025C084FF03C080E0C2 +:100A800090E020C087EE90E01DC08091EB0185FFD3 +:100A900005C007C08091EB0185FF03C085E390E0AE +:100AA00011C089E290E00EC08091EB0186FF05C085 +:100AB00007C08091EB0186FF03C081E390E002C094 +:100AC0008AE290E00E94970208950E94970208959A +:100AD0000E940A020895E82FF0E0EE0FFF1FE95A86 +:100AE000FE4F80819181089508954F925F926F9299 +:100AF0007F928F929F92AF92BF92CF92DF92EF92AE +:100B0000FF920F931F93DF93CF93CDB7DEB7289754 +:100B10000FB6F894DEBF0FBECDBFAE014F5F5F4F83 +:100B200060E070E0EE24FF24CC24DD24AA24BB2462 +:100B3000882499242A0101E010E029E0622E712C1A +:100B40006C0E7D1ED201E4E3F1E088E001900D928D +:100B50008150E1F7FA01808191819C01207F307002 +:100B60002032310559F48F709070980102C0220F25 +:100B7000331F8A95E2F7622B732B37C02033310580 +:100B800059F48F709070F80102C0EE0FFF1F8A9524 +:100B9000E2F7EE2AFF2A29C02034310559F48F707C +:100BA0009070980102C0220F331F8A95E2F7C22A83 +:100BB000D32A1BC02035310559F48F709070F8018D +:100BC00002C0EE0FFF1F8A95E2F7AE2ABF2A0DC0C2 +:100BD0002036310551F48F709070980102C0220FB9 +:100BE000331F8A95E2F7822A932A4E5F5F4F46159C +:100BF000570509F0A7CF24B1962F862F8095822321 +:100C000084B985B1982B95B927B19E2D8E2D8095ED +:100C1000822387B988B1982B98B92AB19C2D8C2D45 +:100C2000809582238AB98BB1982B9BB92DB19A2DCF +:100C30008A2D809582238DB98EB1982B9EB920B3D1 +:100C4000982D882D8095822380BB81B3982B91BBF2 +:100C500028960FB6F894DEBF0FBECDBFCF91DF91BF +:100C60001F910F91FF90EF90DF90CF90BF90AF90CA +:100C70009F908F907F906F905F904F9008954F92CC +:100C80005F926F927F928F929F92AF92BF92CF921C +:100C9000DF92EF92FF920F931F93DF93CF93CDB725 +:100CA000DEB768970FB6F894DEBF0FBECDBF85B72D +:100CB000806885BF85B7806885BF0E947505AE01D5 +:100CC0004F5F5F4F60E070E0EE24FF24CC24DD2412 +:100CD000AA24BB24882499242A0101E010E039E1E8 +:100CE000632E712C6C0E7D1ED201ECE3F1E088E1E5 +:100CF00001900D928150E1F7FA01808191819C0170 +:100D0000207F30702032310559F48F709070980137 +:100D100002C0220F331F8A95E2F7622B732B37C074 +:100D20002033310559F48F709070F80102C0EE0F36 +:100D3000FF1F8A95E2F7EE2AFF2A29C020343105E9 +:100D400059F48F709070980102C0220F331F8A955A +:100D5000E2F7C22AD32A1BC02035310559F48F701F +:100D60009070F80102C0EE0FFF1F8A95E2F7AE2ADD +:100D7000BF2A0DC02036310551F48F709070980154 +:100D800002C0220F331F8A95E2F7822A932A4E5F10 +:100D90005F4F4615570509F0A7CF24B1962F862F30 +:100DA0008095822384B985B1982B95B927B19E2D62 +:100DB0008E2D8095822387B988B1982B98B92AB156 +:100DC0009C2D8C2D809582238AB98BB1982B9BB951 +:100DD0002DB19A2D8A2D809582238DB98EB1982BB5 +:100DE0009EB920B3982D882D8095822380BB81B336 +:100DF000982B91BB80E090E0FC01E95AFE4F1182F4 +:100E00001082FC01E15AFE4F118210820296883056 +:100E1000910591F70E94670268960FB6F894DEBFBD +:100E20000FBECDBFCF91DF911F910F91FF90EF903B +:100E3000DF90CF90BF90AF909F908F907F906F90FA +:100E40005F904F9008954F925F926F927F928F9232 +:100E50009F92AF92BF92CF92DF92EF92FF920F9349 +:100E60001F93DF93CF93CDB7DEB7A0970FB6F8945B +:100E7000DEBF0FBECDBF909000016E010894C11C73 +:100E8000D11CEFE5AE2EE1E0BE2EC6015C2C892E12 +:100E900071E0E72EF12C60EA462E59E0652E712CA8 +:100EA0006C0E7D1E852D982DDC01E4E1F1E088E0DB +:100EB00001900D928150E1F7F60120813181C90145 +:100EC000807F90708032910589F484B12F703070EA +:100ED000A70102C0440F551F2A95E2F79A01842BFF +:100EE00084B985B12095282325B94FC08033910559 +:100EF00089F487B12F703070F70102C0EE0FFF1F29 +:100F00002A95E2F79F018E2B87B988B12095282377 +:100F100028B93BC08034910589F48AB12F703070B4 +:100F2000A70102C0440F551F2A95E2F79A01842BAE +:100F30008AB98BB1209528232BB927C0803591051C +:100F400089F48DB12F703070F70102C0EE0FFF1FD2 +:100F50002A95E2F79F018E2B8DB98EB1209528231B +:100F60002EB913C08036910581F480B32F70307094 +:100F7000A70102C0440F551F2A95E2F79A01842B5E +:100F800080BB81B32095282321BB842D8A95F1F75E +:100F9000830160E070E040E050E0D301ECE1F1E07B +:100FA00088E101900D928150E1F7F80120813181B3 +:100FB000C901807F90708032910511F483B113C014 +:100FC0008033910511F486B10EC08034910511F47F +:100FD00089B109C08035910511F48CB104C0803607 +:100FE0009105B9F48FB190E02F70307002C09595E3 +:100FF00087952A95E2F780FF03C080E090E007C064 +:10100000C701062E02C0880F991F0A94E2F7482BE9 +:10101000592B6F5F7F4F0E5F1F4F6C30710509F0CA +:10102000BCCFF501808191818417950721F0518310 +:10103000408345E0942E0E94750542E050E0C40EC6 +:10104000D51EA40EB51EC614D70409F02BCF90925E +:101050000001992059F1892D815080930001882346 +:1010600029F080EA9FE00197F1F720C080915F01AD +:101070009091600190935801809357018091610194 +:101080009091620190935A0180935901809163017C +:101090009091640190935C0180935B018091650164 +:1010A0009091660190935E0180935D010E9404021D +:1010B00081E0A0960FB6F894DEBF0FBECDBFCF91F2 +:1010C000DF911F910F91FF90EF90DF90CF90BF9035 +:1010D000AF909F908F907F906F905F904F9008950A +:1010E0001092E1010895089508958091680108958E +:1010F000DF93CF9300D00F92CDB7DEB7AC018091D4 +:10110000E201843029F583E08093E9002FEF95ED2B +:1011100005C0892F8A95F1F7222329F08091E800F4 +:10112000215085FFF6CF8091E80085FF11C05B83D9 +:101130004A8383E08983CE01019663E070E040E05A +:1011400050E00E94A70B8091E8008E778093E80022 +:101150000F900F900F90CF91DF910895DF93CF9371 +:1011600000D00F92CDB7DEB7AC018091E2018430A0 +:1011700029F583E08093E9002FEF95ED05C0892FD5 +:101180008A95F1F7222329F08091E800215085FF0C +:10119000F6CF8091E80085FF11C05B834A8382E02F +:1011A0008983CE01019663E070E040E050E00E9448 +:1011B000A70B8091E8008E778093E8000F900F9046 +:1011C0000F90CF91DF910895AC018091E2018430BE +:1011D00001F582E08093E9002FEF95ED05C0892F9E +:1011E0008A95F1F7222329F08091E800215085FFAC +:1011F000F6CF8091E80085FF0CC0CA0165E070E081 +:1012000040E050E00E94A70B8091E8008E77809329 +:10121000E80008950F931F93182F092F8091E20182 +:10122000843061F581E08093E9009FEF25ED05C0F2 +:10123000822F8A95F1F7992329F08091E800915047 +:1012400085FFF6CF8091E80085FF18C0812F902F91 +:1012500068E070E040E050E00E94A70B8091E80059 +:101260008E778093E800A9E6B1E0212F302FC901E5 +:10127000FC0188E001900D928150E1F71F910F91E0 +:10128000089584B7877F84BF88E10FB6F894809370 +:101290006000109260000FBE80E090E020E80FB682 +:1012A000F89420936100809361000FBE0E94F30FB9 +:1012B0000E94850C0E94E60C8091E200846080937D +:1012C000E20078940E94840F0E94A81082E091E0CE +:1012D0000E949A0F0CC00E94F61B8091E0018823A7 +:1012E00031F00E94221C882311F00E94BC0A8091D8 +:1012F000E201853081F30E94F90FF9CF8091E1017D +:10130000882349F40E94850C0E94E60C8091E2003B +:1013100084608093E20008958091E401833009F4B1 +:1013200055C0843030F4813071F0823009F0AFC0A4 +:1013300096C08A3009F483C08B3009F468C08930C4 +:1013400009F0A5C020C08091E301813A09F09FC057 +:101350008091E800877F8093E8008091E701909179 +:10136000E801892B21F489E691E068E003C080E080 +:1013700090E060E070E00E94D20A8091E8008B77F4 +:101380008093E80008958091E301813209F07FC0E5 +:101390008091E7019091E801892B09F078C0809154 +:1013A000E800877F8093E80005C08091E2018823F0 +:1013B00009F46DC08091E80082FFF7CF8091F100C1 +:1013C000809368018091E8008B771CC08091E301D5 +:1013D000813A09F05CC08091E7019091E801892B86 +:1013E00009F055C08091E800877F8093E8008091E4 +:1013F000E80080FFFCCF809101018093F100809193 +:10140000E8008E778093E8000E94320C0895809166 +:10141000E3018132E1F58091E7019091E801892BA8 +:10142000B1F58091E800877F8093E8000E94320C3C +:101430008091E501809301010E9417110895809128 +:10144000E301813221F58091E800877F8093E800F5 +:101450000E94320C8091E60180936701089580918B +:10146000E301813AA1F48091E800877F8093E8004E +:101470008091E80080FFFCCF809167018093F100AC +:101480008091E8008E778093E8000E94320C0895E6 +:1014900081E061EC42E00E94FA0B82E061EC42E004 +:1014A0000E94FA0B83E061EC42E00E94FA0B08957F +:1014B0000E94EA1B0895DA019330C1F0943030F4B1 +:1014C000913051F0923009F04FC00BC0913221F1B0 +:1014D000923209F049C032C0EEE8F2E022E130E099 +:1014E00047C0E0EAF2E024E530E042C0813051F04C +:1014F000813020F0823009F037C008C0E4EFF2E01C +:10150000849107C0E8EFF2E0849103C0E6E2F3E0E3 +:101510008491282F30E02CC0613041F0613018F008 +:10152000623011F508C0E2EBF2E002C0EBECF2E051 +:1015300029E030E01DC0E4EEF2E0FACF613051F076 +:10154000613018F0623081F40AC0ECECF1E02FE376 +:1015500030E00EC0EBE0F2E02DE430E009C0E8E559 +:10156000F2E026E330E004C0E0E0F0E020E030E02C +:10157000ED93FC93C901089580E189BD82E189BDA5 +:1015800009B400FEFDCF8091D8008F7D8093D800F4 +:101590008091E00082608093E0008091E00081FD16 +:1015A000FCCF08959C014091E9015091EA01461752 +:1015B000570718F4F90190E043C06115710511F067 +:1015C000AB01F8CF8091E8008E778093E80040E08F +:1015D00050E0F0CF8091E201882309F447C08530C4 +:1015E00009F446C08091E80083FD44C08091E80082 +:1015F00082FD36C08091E80080FF22C08091F30018 +:101600009091F200782F60E0292F30E0262B372BC5 +:1016100007C081918093F100415050402F5F3F4FB0 +:101620004115510519F02830310598F390E0283024 +:10163000310509F491E08091E8008E778093E8000D +:101640004115510539F6992329F60AC08091E20126 +:10165000882361F0853061F08091E80083FD0AC045 +:101660008091E80082FFF2CF80E0089582E0089543 +:1016700083E0089581E008959C014091E901509133 +:10168000EA014617570718F4F90190E044C06115C4 +:10169000710511F0AB01F8CF8091E8008E7780934F +:1016A000E80040E050E0F0CF8091E201882309F4A7 +:1016B00048C0853009F447C08091E80083FD45C0EB +:1016C0008091E80082FD37C08091E80080FF23C050 +:1016D0008091F3009091F200782F60E0292F30E0A4 +:1016E000262B372B08C084918093F100319641500E +:1016F00050402F5F3F4F4115510519F028303105FB +:1017000090F390E02830310509F491E08091E800F1 +:101710008E778093E8004115510531F6992321F623 +:101720000AC08091E201882361F0853061F08091E8 +:10173000E80083FD0AC08091E80082FFF2CF80E0DC +:10174000089582E0089583E0089581E00895BF92AE +:10175000CF92DF92EF92FF920F931F93CF93DF937D +:10176000182F092F7B016A010E94530CB82E882381 +:10177000B1F5812F902F9C01E901C114D10439F0FA +:10178000F60180819181E81AF90AC80FD91F00E09B +:1017900010E022C08091E80085FD16C08091E8002D +:1017A0008E778093E800C114D10449F0F60180815E +:1017B0009181800F911F9183808385E011C00E94E9 +:1017C000530C882349F00CC089918093F100089450 +:1017D000E108F1080F5F1F4FE114F104D9F68B2DDA +:1017E000DF91CF911F910F91FF90EF90DF90CF90FD +:1017F000BF900895382F282F2EC0822F8F7080938E +:10180000E900231721F4762F942F50E006C0709141 +:10181000EC009091ED005091F00091FF1BC0809181 +:10182000EB008E7F8093EB008091ED008D7F8093A5 +:10183000ED008091EB0081608093EB007093EC00F1 +:101840009093ED005093F0008091EE0087FD02C070 +:1018500080E008952F5F273080F23F703093E900D9 +:1018600081E008958091E30188239CF404C0809175 +:10187000E2018823B9F08091E80082FFF8CF8091DF +:10188000E8008B778093E80008958091E201882337 +:1018900049F08091E80080FFF8CF8091E8008E77D2 +:1018A0008093E80008954091E4005091E50024E61B +:1018B0008091EC0080FF24C08091E80080FD1EC074 +:1018C0008091E201882311F482E00895853011F4BB +:1018D00083E008958091EB0085FF02C081E00895C8 +:1018E0008091E4009091E5008417950709F3222385 +:1018F00011F484E008952150AC01DACF80E008951E +:101900008091E80082FFDCCFF9CF0E94F80C0E94A2 +:10191000000DE0EEF0E0808181608083A8EDB0E012 +:101920008C918F778C9319BCE7EDF0E080818E7FEE +:1019300080838C918F7E8C931092E1010895EF92B9 +:10194000FF920F931F930E94F80C0E94000D08ED68 +:1019500010E0F80180818F778083808180688083A8 +:1019600080818F7D808319BC1092E2011092DE018C +:101970001092E0011092DF0180EEE82EF12CF701C9 +:1019800080818B7F8083F80180818160808380E00B +:1019900060E042E00E94FA0BE1EEF0E080818E7F91 +:1019A0008083E2EEF0E080818160808380818860C6 +:1019B0008083F70180818E7F8083F8018081806140 +:1019C00080831F910F91FF90EF900895E8EDF0E074 +:1019D00080818F7E8083E7EDF0E08081816080836D +:1019E00084E082BF81E08093E1010E949F0C089512 +:1019F000E8EDF0E080818E7F80831092E200089510 +:101A00001092DA001092E10008951F920F920FB623 +:101A10000F9211241F932F933F934F935F936F93D4 +:101A20007F938F939F93AF93BF93EF93FF93109107 +:101A3000E9008091EC001092E9008091F000877F2E +:101A40008093F00078940E94130E1092E900809128 +:101A5000F00088608093F0001F701093E900FF9100 +:101A6000EF91BF91AF919F918F917F916F915F9116 +:101A70004F913F912F911F910F900FBE0F901F908C +:101A800018951F920F920FB60F9211242F933F9328 +:101A90004F935F936F937F938F939F93AF93BF9376 +:101AA000EF93FF938091E10082FF0BC08091E200F1 +:101AB00082FF07C08091E1008B7F8093E1000E944C +:101AC000830F8091DA0080FF1FC08091D80080FFD3 +:101AD0001BC08091DA008E7F8093DA008091D9005C +:101AE00080FF0DC080E189BD82E189BD09B400FE9F +:101AF000FDCF81E08093E2010E947E0905C019BC00 +:101B00001092E2010E9470088091E10080FF19C0EC +:101B10008091E20080FF15C08091E2008E7F80936B +:101B2000E2008091E20080618093E2008091D80021 +:101B300080628093D80019BC85E08093E2010E9406 +:101B400074088091E10084FF30C08091E20084FF3E +:101B50002CC080E189BD82E189BD09B400FEFDCFC2 +:101B60008091D8008F7D8093D8008091E1008F7E96 +:101B70008093E1008091E2008F7E8093E20080916B +:101B8000E20081608093E2008091DE01882311F001 +:101B900084E007C08091E30087FD02C081E001C0BE +:101BA00083E08093E2010E94580A8091E10083FF64 +:101BB00029C08091E20083FF25C08091E100877FEA +:101BC0008093E10082E08093E2011092DE01809137 +:101BD000E1008E7F8093E1008091E2008E7F809310 +:101BE000E2008091E20080618093E20080E060E0AA +:101BF00042E00E94FA0B8091F00088608093F00030 +:101C00000E947308FF91EF91BF91AF919F918F91C7 +:101C10007F916F915F914F913F912F910F900FBEE8 +:101C20000F901F9018951F93DF93CF93CDB7DEB71A +:101C3000AC970FB6F894DEBF0FBECDBFE3EEF1E078 +:101C40008091F100819321E0EB3EF207C9F70E94F9 +:101C50008C098091E80083FF3EC18091E3013091BF +:101C6000E401353009F487C0363040F43130C9F131 +:101C7000313070F0333009F02EC133C0383009F400 +:101C8000F9C0393009F409C1363009F024C197C0D0 +:101C9000803821F0823809F01EC108C09091DF0120 +:101CA0008091E001882399F0926011C08091E70152 +:101CB0008F708093E9008091EB0090E025E096958D +:101CC00087952A95E1F7982F91701092E9008091FD +:101CD000E800877F8093E8009093F1001092F10074 +:101CE000D4C0882319F0823009F0F5C090E08F71DC +:101CF0009070009721F0029709F0EDC00CC0809120 +:101D0000E501813009F0E7C01092E001333069F558 +:101D10008093E0012AC08091E501882331F520916C +:101D2000E7012F7009F4D7C02093E9008091EB0000 +:101D300080FF1BC0333021F48091EB00806213C020 +:101D40008091EB0080618093EB0081E090E002C025 +:101D5000880F991F2A95E2F78093EA001092EA0013 +:101D60008091EB0088608093EB001092E9008091F5 +:101D7000E800877F8DC0882309F0ADC01091E50190 +:101D80001F778091E3008078812B8093E30080911E +:101D9000E800877F8093E8000E94320C8091E80081 +:101DA00080FFFCCF8091E30080688093E3001123E3 +:101DB00011F482E001C083E08093E2018CC080587E +:101DC000823008F088C08091E5019091E60123E01F +:101DD0008C3D920709F034C083E08C838AE28B83C8 +:101DE0007FB7F894DE0115966EE040E050E011E216 +:101DF000E62FF0E010935700849140FF03C08295D6 +:101E00008F706F5F8F70282F30E08A3018F0C90113 +:101E1000C79602C0C901C0968D939D934F5F5F4FD7 +:101E20004431510529F77FBF8091E800877F809377 +:101E3000E800CE0103966AE270E00E94D20A14C064 +:101E40006091E701AE014F5F5F4F0E945B0ABC01EA +:101E5000009709F440C08091E800877F8093E800F4 +:101E600089819A810E943C0B8091E8008B77809356 +:101E7000E80031C0803879F58091E800877F809351 +:101E8000E8008091DE018093F1008091E8008E7778 +:101E90008093E8000E94320C1EC08823E1F49091E8 +:101EA000E5019230C0F48091E800877F8093E800DC +:101EB0009093DE010E94320C8091DE01882331F480 +:101EC0008091E30087FD02C081E001C084E080933F +:101ED000E2010E94480A8091E80083FF0AC08091D5 +:101EE000E800877F8093E8008091EB008062809318 +:101EF000EB00AC960FB6F894DEBF0FBECDBFCF910E +:101F0000DF911F91089508951F938091E201882326 +:101F100079F01091E9008091EC001092E900809135 +:101F2000E80083FF02C00E94130E1F701093E900A7 +:101F30001F91089590937601809375010895E09123 +:101F40007501F0917601309711F480E008950190C9 +:101F5000F081E02D09950895E0917501F0917601E9 +:101F6000309721F00280F381E02D09950895E091EA +:101F70007501F0917601309721F00480F581E02D14 +:101F8000099508959C01809173019091740128171F +:101F9000390779F03093740120937301E091750152 +:101FA000F0917601309729F00680F781E02DC90184 +:101FB000099508959C0180917101909172012817F3 +:101FC000390779F03093720120937101E091750126 +:101FD000F0917601309729F00084F185E02DC90158 +:101FE0000995089508950E94F20F08950E946805CA +:101FF00008952F923F925F926F927F928F929F925D +:10200000AF92BF92CF92DF92EF92FF920F931F9306 +:10201000DF93CF93CDB7DEB72A970FB6F894DEBF24 +:102020000FBECDBF0E94230728E7822E21E0922E0B +:10203000AA24BB2491E0292E312C5A2C8A2D0E94EF +:102040006B056C01F401E080F180E826F926E114CB +:10205000F104E1F18091CD0181FF02C00E9474057D +:1020600000E010E03101002E02C0660C771C0A94DB +:10207000E2F7C3018E219F21892B19F10E944C1C8C +:102080009C0109835A821B82C620D720CD2811F0DB +:1020900081E08B83C9018160782F9D838C83498186 +:1020A0005A816B818D810E941C15F501EE0FFF1F77 +:1020B000E858FE4F80819181862597259183808302 +:1020C00021C00F5F1F4F0C30110561F60894A11C51 +:1020D000B11C82E090E0880E991E94E0A916B1042C +:1020E00009F0ABCF0E944C1C2FEF2E832F83188654 +:1020F0008160782F9A8789874FEF5FEF60E08A854C +:102100000E941C150E94B41E109177010E949F0F1F +:10211000181731F00E949F0F809377010E94F60FED +:102120002A960FB6F894DEBF0FBECDBFCF91DF91D8 +:102130001F910F91FF90EF90DF90CF90BF90AF90E5 +:102140009F908F907F906F905F903F902F90089519 +:102150000E94431C0E943F060E94CD1C0E942A221E +:102160000895DF93CF9300D000D00F92CDB7DEB7A4 +:102170000F900F900F900F900F90CF91DF910895D7 +:10218000DF93CF9300D000D000D0CDB7DEB7269636 +:102190000FB6F894DEBF0FBECDBFCF91DF9108958B +:1021A0000E94DA19482F892F82958F70282F30E0EE +:1021B0002C3031054CF42A3031056CF4225030407B +:1021C00022303105E8F407C02C30310579F02F308A +:1021D0003105B1F40BC0403F39F0413F18F4403EA7 +:1021E00078F402C0443F61F481E008959F70892F24 +:1021F00090E023E0969587952A95E1F78170089500 +:1022000080E008950E94431B0E94531B0E94181BEC +:102210000E946B1B0E949D1E0E94A91E80E090E000 +:102220000E94C20F80E090E00E94DA0F08950E94A1 +:10223000331B0E9402110895882321F00E942C1B59 +:102240000E946B1B0895882321F00E94261B0E9488 +:102250006B1B0895282F882309F44EC0823859F447 +:102260000E949F0F81FF48C089E30E94E71A0E94E5 +:102270006B1B89E30CC0833869F40E949F0F80FFB9 +:102280003BC083E50E94E71A0E946B1B83E50E9416 +:10229000051B1FC0843859F40E949F0F82FF2CC079 +:1022A00087E40E94E71A0E946B1B87E4F0CF8450FA +:1022B000813A10F4822FEBCF822F805E883060F459 +:1022C000277081E090E001C0880F2A95EAF70E940C +:1022D0002C1B0E946B1B0895822F855A833028F493 +:1022E00080E090E00E94C20F0895285A233120F424 +:1022F00080E090E00E94DA0F08951F93182F882342 +:1023000009F4D0C0823859F40E949F0F81FDCAC0E1 +:1023100089E30E94E71A0E946B1B89E30CC0833893 +:1023200079F40E949F0F80FDBDC083E50E94E71AEB +:102330000E946B1B83E50E94051B0E946B1BB2C0B1 +:10234000843859F40E949F0F82FDACC087E40E943C +:10235000E71A0E946B1B87E4EECF8450813A50F459 +:10236000812F0E94D020882309F09CC0812F0E94D9 +:10237000E71AE3CF812F805E883050F4177081E038 +:1023800090E001C0880F1A95EAF70E94261BD5CF6E +:10239000812F855A8330A0F4153A19F481E890E032 +:1023A0000CC0163A19F482E890E007C0173A19F009 +:1023B00080E090E002C083E890E00E94C20F72C00B +:1023C000812F885A833108F06DC0183A19F482EED3 +:1023D00090E066C0193A19F489EE90E061C01A3AAB +:1023E00019F48AEE90E05CC01B3A19F485EB90E09A +:1023F00057C01C3A19F486EB90E052C01B3B19F40D +:1024000083EB90E04DC01C3B19F484EB90E048C096 +:102410001D3A19F487EB90E043C0103B19F48CECA3 +:1024200090E03EC01E3A19F48DEC90E039C01F3A9E +:1024300019F483E891E034C0113B19F48AE891E083 +:102440002FC0123B19F482E991E02AC0133B19F422 +:1024500084E991E025C0143B19F481E292E020C0A8 +:10246000153B19F483E292E01BC0163B19F484E299 +:1024700092E016C0173B19F485E292E011C0183BB8 +:1024800019F486E292E00CC0193B19F487E292E05D +:1024900007C01A3B19F080E090E002C08AE292E0A7 +:1024A0000E94DA0F1F9108959F92AF92BF92CF9230 +:1024B000DF92EF92FF920F931F93DF93CF93CDB7ED +:1024C000DEB72A970FB6F894DEBF0FBECDBF5C0112 +:1024D000DE011196FC0185E001900D928150E1F73B +:1024E0000B81F501F580F2944FE0F422DE0116969F +:1024F000FE01319685E001900D928150E1F73E8119 +:102500002F8189859A85892B09F484C22F3F09F090 +:1025100070C23F3F09F06DC27DC20E94431B0E9402 +:10252000E11A882379F0002369F08C2D805E8830D1 +:1025300048F082E00E949C1B0E94E11A9924939427 +:10254000982601C099248D2D82958F7090E085305A +:10255000910509F4B5C08630910554F48430910595 +:102560000CF08FC02D2D207F02970CF049C017C0B2 +:102570008C30910544F48A3091050CF072C10897B3 +:1025800009F023C2A9C08D30910509F4EDC18D3049 +:1025900091050CF4DFC10F9709F017C20FC28D2D02 +:1025A0008F70222311F4182F03C0182F1295107F5B +:1025B000002389F0112309F4B9C18C2D805E883085 +:1025C00020F4812F0E94261B03C0812F0E94361BFE +:1025D0000E946B1BABC18C2D0E942A11112309F4A0 +:1025E000F4C1F0E2CF0E27E02C1520F0812F0E94DD +:1025F0002C1B03C0812F0E943C1B0E946B1BE5C15A +:102600008D2D8F70203211F4182F03C0182F1295C2 +:10261000107FCC2021F081E0C81609F514C00023FA +:1026200049F0FF2031F1E1E0FE1619F5812F0E94FB +:10263000561BCBC1FF2021F0F1E0FF1609F4C5C104 +:102640000E94591B30C1002329F025E02F1508F402 +:10265000BCC10FC084E08F1508F4B7C124C10023AA +:1026600061F0FF2031F0F501858180FF5FC18F703F +:102670008583812F0E942311A8C1FF2009F413C173 +:1026800060C18D2D86958695837090E0009721F02E +:10269000019709F09AC10AC0002319F0C60193708E +:1026A00002C080E090E00E94C20F8FC1002319F0A9 +:1026B000C601937002C080E090E00E94DA0F85C1ED +:1026C000002321F08C2D0E94AB1D03C08C2D0E9495 +:1026D000151E0E94A91E79C18D2D837009F05EC060 +:1026E000002309F072C12C2D229526952770220F08 +:1026F000220F8C2D8F70E82EFF2400E010E0022EB8 +:1027000004C0EE0CFF1C001F111F0A94D2F7C4FC7A +:1027100005C060E070E080E090E00FC06FE070E026 +:1027200080E090E004C0660F771F881F991F2A95EC +:10273000D2F76095709580959095D694D694F3E0F5 +:10274000DF224D2D50E041305105A9F042305105B6 +:102750001CF4452B49F039C14230510589F0433012 +:10276000510509F032C113C06E297F29802B912BAE +:102770000E94B21A2AC16E297F29802B912B0BC08F +:102780006E297F29802B912B0E94A11A1EC10E94C5 +:10279000B21AC801B7010E94C31A17C190E0002302 +:1027A00011F496958795817009F40FC12C2D22950F +:1027B00026952770220F220F8C2D8F70E82EFF2474 +:1027C00000E010E0022E04C0EE0CFF1C001F111FE1 +:1027D0000A94D2F7C4FC05C060E070E080E090E0AD +:1027E0000FC06FE070E080E090E004C0660F771FDC +:1027F000881F991F2A95D2F76095709580959095BE +:10280000D694D69423E0D2224D2D50E0413051058C +:10281000A9F0423051051CF4452B49F0D6C0423096 +:10282000510589F04330510509F0CFC013C06E291E +:102830007F29802B912B0E94051AC7C06E297F2902 +:10284000802B912B0BC06E297F29802B912B0E940E +:10285000F419BBC00E94051AC801B7010E94161ADC +:10286000B4C081EFC81699F18C1540F0E0EECE1699 +:1028700008F458C0FFEEFC1558F419C023EFC21637 +:1028800081F1C21648F184EFC81609F04BC033C07D +:102890001C2D1F708D2D8F71002319F00E94631A5B +:1028A000E8CE0E94431A812F0E941C118EC0002383 +:1028B00029F0E4E0EF1508F488C004C0F5E0FF1546 +:1028C00008F483C08D2D8F710E94271A7EC08D2D34 +:1028D0008F710023E1F130C08D2D8F71002361F1E4 +:1028E00036C0002329F08D2D8F710E947F1A6DC094 +:1028F0000E948F1A6AC0002351F01D2D1F71812F75 +:102900000E94631A812F63E00E94B51B5EC081E0C4 +:102910000E949C1B21E02F1508F057C082E00E9406 +:102920009C1B53C0002359F0FF2021F08C2D0E94E6 +:102930007D114BC08D2D8F710E94631A46C0FF2000 +:1029400021F08C2D0E942A1140C08D2D8F710E9484 +:10295000431A3BC08FE0D822C5016C2D4D2D0E943B +:10296000EE010E94181931C0002379F5EFE0DE2254 +:102970004D2D50E042305105B9F0433051053CF443 +:102980004115510559F041305105F9F40AC0433061 +:10299000510569F044305105C1F40CC00E94152264 +:1029A00014C00E94F82111C00E94E3210EC00E94B1 +:1029B000BC210BC08C2D0E94A02107C0FFE0DF22AC +:1029C000C5016C2D4D2D0E946E02992019F10E94B7 +:1029D000DD1A80FD1FC0F50112820E94D71A0E94E5 +:1029E000631AC5010E9454120E94D71A0E94431A0A +:1029F00011C0C5010E94070269817A81802F0E945F +:102A0000E5196C010E9492190E949119002309F4A2 +:102A100086CD83CD2A960FB6F894DEBF0FBECDBF0C +:102A2000CF91DF911F910F91FF90EF90DF90CF90AA +:102A3000BF90AF909F900895DF93CF93CDB7DEB74F +:102A40002B970FB6F894DEBF0FBECDBF342F4F8348 +:102A5000252F588769877A878B87472F582FFE0144 +:102A6000319686E0DF011D928A95E9F76B83398301 +:102A70002A834C835D83432F522F8D819E810E9438 +:102A800059182B960FB6F894DEBF0FBECDBFCF916D +:102A9000DF9108950F931F930091870115C010E0F7 +:102AA000F801EE0FFF1FE00FF11FEE0FFF1FE857B9 +:102AB000FE4F4081518162817381848195810E94A2 +:102AC000C0100F5F1F4F077080918601081739F7FC +:102AD0001F910F9108954091800150918101609163 +:102AE00082017091830180918401909185010E94FF +:102AF000C01008950F931F93CF93DF9380918501AA +:102B000082958F7009F06DC080918201882309F44D +:102B100068C06091870100918601409183015091C6 +:102B200084011091810170918001EA01C095D095D6 +:102B300055C04115510509F44FC01F3F49F480E0CD +:102B400090E07F3F11F481E090E0882309F044C0D9 +:102B5000262F30E0F901EE0FFF1FE20FF31FDF0118 +:102B6000AA0FBB1FA857BE4F11968C91119718172B +:102B700099F58C91781781F5EE0FFF1FE657FE4F00 +:102B80008081882349F513968D919C911497841721 +:102B9000950718F0841B950B02C08C0F9D1F883C75 +:102BA0009105D0F4809185018F70806180938501BB +:102BB000F901EE0FFF1FE20FF31FEE0FFF1FE357A8 +:102BC000FE4F80818F708061808380E891E00E9459 +:102BD00054120E944A1505C06F5F6770601709F0B4 +:102BE000A8CFDF91CF911F910F910895DF92EF92BF +:102BF000FF920F931F93DF93CF93CDB7DEB76B9701 +:102C00000FB6F894DEBF0FBECDBF8C01DC0112966B +:102C1000DC9012974C9111965C9111971396ED9060 +:102C2000FC9014972091830130918401609181017F +:102C3000709180012115310509F4DBC16F3F09F066 +:102C400003C27F3F09F000C2D4C1E216F30640F090 +:102C5000C701821B930B883C910508F0EEC008C0A9 +:102C6000209530952E0D3F1D283C310508F0E5C01C +:102C700080918501807F09F095C06F3F09F0EAC11E +:102C80007F3F09F0E7C115C0741799F4DD2089F47E +:102C9000809185018F708061809385010E946B1502 +:102CA00080E891E00E94541280918501F8018583AB +:102CB000BCC1FD82EC825A834983DB82DE01169619 +:102CC000FE01319685E001900D928150E1F7688513 +:102CD000DE011B96FE01369685E001900D92815033 +:102CE000E1F72C853B858E859F85892B09F451C0A2 +:102CF0002F3F09F0B3C13F3F09F0B0C14AC0FD8288 +:102D0000EC825A834983DB82DE011B96FE013196F9 +:102D100085E001900D928150E1F7FC847B856D8503 +:102D200080918701909186011FC0282F30E0F90122 +:102D3000EE0FFF1FE20FF31FDF01AA0FBB1FA85703 +:102D4000BE4F11968C911197F81651F48C9178170B +:102D500039F4EE0FFF1FE657FE4F80816817C9F464 +:102D60002F5F3F4F822F87708917F9F68DC19F70B3 +:102D700059F0442349F459C19F7031F0D801159698 +:102D80008C91807F09F451C1405E483008F44DC1F8 +:102D900048C1DD2009F449C180918501816080939B +:102DA000850143C16F3F09F05DC17F3F09F05AC102 +:102DB00014C0741791F4DD2081F480918501F8012D +:102DC0008583C8010E945412A0E8B1E0F80186E0B2 +:102DD00001900D928150E1F720C15A834983898186 +:102DE0009A810E94D010882309F41BC1DD2009F4C8 +:102DF00018C130918501832F82958F7090E00297E2 +:102E00009CF09091810120918001FE01709686E0F6 +:102E1000DF011D928A95E9F7998B288BFC8AEB8A52 +:102E20003D8BCF010E945412A0E8B1E0F80186E08A +:102E300001900D928150E1F7EEC080918501807F75 +:102E4000A9F47E2DFD82EC825A834983DB826D2DAD +:102E50008D810E94B11000E811E0C8010E94541257 +:102E600086E0F80111928A95E9F7C0C06F3F09F03A +:102E7000FDC07F3F09F0FAC014C0741791F4DD2043 +:102E800081F480918501D80115968C93C8010E9428 +:102E90005412E0E8F1E086E0DF011D928A95E9F73F +:102EA000BEC05A83498389819A810E94D0108823A9 +:102EB00009F4B7C0DD2009F4B4C030918501832F37 +:102EC00082958F7090E002979CF090918101209103 +:102ED0008001FE01769686E0DF011D928A95E9F772 +:102EE0009F8B2E8BFA8EE98E3B8FCF010E9454125E +:102EF000A0E8B1E0F80186E001900D928150E1F781 +:102F00008AC06F3F09F0B6C07F3F09F0B3C071C0FF +:102F1000E216F30640F0C701821B930B883C910533 +:102F200008F053C008C0209530952E0D3F1D283C59 +:102F3000310508F04AC0DD2009F473C06F3F09F085 +:102F40009FC07F3F09F09CC029C0741739F590914C +:102F5000850190FD1AC0892F82958F70B1F0F8011C +:102F600095838F3031F08F5F8295807F9F70982B93 +:102F70009583C8010E945412A0E8B1E0F80186E0F0 +:102F800001900D928150E1F748C0A0E8B1E0F8014E +:102F900086E001900D928150E1F741C05A83498348 +:102FA00089819A810E94D010882349F0A0E8B1E07D +:102FB000F80186E001900D928150E1F72CC08091DC +:102FC00085018160809385012CC07E2DFD82EC827D +:102FD0005A834983DB826D2D8D810E94B110E0E818 +:102FE000F1E086E0DF011D928A95E9F70E946B15FA +:102FF0001CC0DD20B1F05A83498389819A810E94E7 +:10300000D010882371F0A0E8B1E0F80186E00190CB +:103010000D928150E1F70E947A150E946B1581E0B4 +:1030200005C0C8010E945412FACF80E06B960FB61B +:10303000F894DEBF0FBECDBFCF91DF911F910F91EE +:10304000FF90EF90DF90089580918201882309F42A +:1030500058CFFBCD651709F02CCE16CE613009F4A0 +:1030600098CE4DCE651709F0B8CEA3CE651709F0FE +:1030700018CF03CF80918201882309F0BACF48CFBF +:10308000651709F08BCF61CF5A83498389819A8173 +:103090000E94DA19482F892F82958F70282F30E0EF +:1030A000223031050CF463CE243031050CF0B9CF59 +:1030B00063CE0F931F93DF93CF93CDB7DEB72C97DB +:1030C0000FB6F894DEBF0FBECDBF4F835887698718 +:1030D0007A878B879C878E01095F1F4FC8010E94EA +:1030E000F6158823D9F028853F818A859B85892B11 +:1030F00009F46BC02F3F49F480E090E03F3F11F4AA +:1031000081E090E0882309F060C04F81588569858F +:103110007A858B859C850E94C01057C0DE01119670 +:10312000F80186E001900D928150E1F7F981EA8182 +:103130004C815D814115510509F447C0EF3F09F00D +:103140004CC0FF3F09F049C040C0F983EA835D836A +:103150004C83F901EE0FFF1FE20FF31FEE0FFF1F6D +:10316000E857FE4FDE01119686E00D9001928150E6 +:10317000E1F7609386010E944A1527C0919FC00124 +:10318000112488579E4F0E94F615882309F445C0E4 +:103190008091870190E0FC01EE0FFF1FE80FF91FFF +:1031A000EE0FFF1FE857FE4F40815181628173810E +:1031B000848195810E94C0108091870190E00196E2 +:1031C000877090708093870101C016E0909187010D +:1031D00080918601981791F620C080918601282F52 +:1031E00030E02F5F3F4FB901677070702150304061 +:1031F0008091870190E06817790709F0A6CF0E94B7 +:1032000017111092860110928701E0E8F1E086E044 +:10321000DF011D928A95E9F7D8CF2C960FB6F89466 +:10322000DEBF0FBECDBFCF91DF911F910F910895EB +:10323000CF92DF92EF92FF921F93CF93DF93EC0137 +:10324000009709F466C010E090EAC92E9FE0D92EDD +:1032500081E0E82EF12CFE0121969491943748F4F8 +:10326000943008F044C0913079F0923009F051C0A8 +:103270001BC0953709F437C0953750F1892F845812 +:10328000803708F046C037C0FE0121969491892FFF +:10329000805E883060F597708E2D01C0880F9A95FA +:1032A000EAF70E94461B0FC0FE0121969491892FD8 +:1032B000805E883058F497708E2D01C0880F9A95E3 +:1032C000EAF70E944C1B0E946B1B19C0892F15C086 +:1032D000FE01249104C0C6010197F1F72150222379 +:1032E000D1F721960CC0FE012196149108C0892FB8 +:1032F0000E947D1104C0892F8F770E942A11212FEF +:1033000004C0C6010197F1F72150222309F4A3CF8D +:10331000F8CFDF91CF911F91FF90EF90DF90CF908A +:10332000089508950895AF92BF92DF92EF92FF92B1 +:103330000F931F93CF93DF935C01E090B801F0905F +:10334000B9010091BA011091BB018091BC0190912B +:10335000BD01A091BE01B091BF01E82AF92A0A2B54 +:103360001B2BCFE1D0E0DC2ED801C7010C2E04C00E +:10337000B695A795979587950A94D2F78170907026 +:10338000892B39F08C2FB5010E94D304813091052F +:1033900031F421978FEFCF3FD80729F7DD248D2D0A +:1033A000DF91CF911F910F91FF90EF90DF90BF9031 +:1033B000AF9008950F931F938C010E949319B80149 +:1033C0000E94D3041F910F910895CB010E94DA1936 +:1033D00008956093BC017093BD018093BE019093EA +:1033E000BF010E94021108959B01AC016091BC01D4 +:1033F0007091BD018091BE019091BF01622773273A +:10340000842795270E94E91908959B01AC016091DA +:10341000BC017091BD018091BE019091BF016223FA +:103420007323842395230E94E91908959B01AC011D +:103430006091BC017091BD018091BE019091BF016E +:10344000622B732B842B952B0E94E919089521E0A0 +:1034500030E040E050E004C0220F331F441F551FEE +:103460008A95D2F78091BC019091BD01A091BE01D7 +:10347000B091BF01282739274A275B27CA01B90124 +:103480000E94E919089521E030E040E050E004C0D6 +:10349000220F331F441F551F8A95D2F72095309570 +:1034A000409550958091BC019091BD01A091BE01C5 +:1034B000B091BF01282339234A235B23CA01B901F4 +:1034C0000E94E919089521E030E040E050E004C096 +:1034D000220F331F441F551F8A95D2F78091BC01DC +:1034E0009091BD01A091BE01B091BF01282B392B55 +:1034F0004A2B5B2BCA01B9010E94E919089521E00A +:1035000030E040E050E004C0220F331F441F551F3D +:103510008A95D2F7CA01B9010E94E919089560E0BD +:1035200070E080E090E00E94E91908956093B8018E +:103530007093B9018093BA019093BB010E9402116C +:1035400008959B01AC016091B8017091B90180911F +:10355000BA019091BB0162277327842795270E94A7 +:10356000961A08959B01AC016091B8017091B90160 +:103570008091BA019091BB01622373238423952328 +:103580000E94961A08959B01AC016091B801709158 +:10359000B9018091BA019091BB01622B732B842BEE +:1035A000952B0E94961A08950E94961A089580916C +:1035B000CC0185958595859508958091CC0187707E +:1035C00008958091CC01877009F081E00895382F2B +:1035D000A0910C01B0910D01FD0120E08FEF9281CF +:1035E000931791F08F3F19F4992309F4822F2F5FDD +:1035F00031962630A1F78F3F39F0992787FD9095B6 +:10360000A80FB91F12963C930895982F20E030E040 +:10361000E0910C01F0910D01E20FF31F82818917F7 +:1036200009F412822F5F3F4F2630310589F7089544 +:1036300081E090E0E0910C01F0910D01E80FF91F9D +:103640001082019688309105A9F708959091C801DC +:10365000982B9093C801089580959091C801982364 +:103660009093C80108951092C80108959091CB01DC +:10367000982B9093CB01089580959091CB0198233E +:103680009093CB0108951092CB0108959091CA01B7 +:10369000982B9093CA01089580959091CA01982320 +:1036A0009093CA0108951092CA0108958093C901A8 +:1036B00008951092C9010895E0910C01F0910D0157 +:1036C00020E091E0818181112F5F9F5F31969830DA +:1036D000C9F7822F0895E0910C01F0910D018091BE +:1036E000C8018083E0910C01F0910D0180819091DF +:1036F000CB01892B8083E0910C01F0910D01808139 +:103700009091CA01892B80839091C901992369F016 +:10371000E0910C01F0910D018081892B80830E9442 +:103720005C1B882311F00E94591B80910C01909121 +:103730000D010E94AC0F08952091CC01482F4095B7 +:1037400042234093CC01842F877071F430E0842FA2 +:10375000992787FD90952817390731F0842F859593 +:10376000859585950E94431A0895982F990F990F72 +:10377000990F962B9093CC010E94631A0895089597 +:1037800008951F920F920FB60F9211248F939F935B +:10379000AF93BF938091CE01882399F48091CF019C +:1037A0009091D001A091D101B091D2014196A11D7B +:1037B000B11D8093CF019093D001A093D101B0931C +:1037C000D201BF91AF919F918F910F900FBE0F903B +:1037D0001F9018950E94171180E00E9423020E94FA +:1037E0002A220E949F0F0E94680508958091E2019D +:1037F000843039F11092CE0120E488E190E00FB6D8 +:10380000F894A895809360000FBE2093600080E03C +:103810000E94230280E00E94680583B7817F846054 +:1038200083BF83B7816083BF7894889583B78E7F89 +:1038300083BF88E10FB6F894809360001092600017 +:103840000FBE089580E00E9423020E94BF1B0E94C9 +:1038500023070E94C01B80E00E946B05892B81F426 +:1038600081E00E946B05892B59F482E00E946B0570 +:10387000892B31F483E00E946B0520E0892B09F04D +:1038800021E0822F089582E084BD93E095BD9AEFF8 +:1038900097BD80936E0008958FB7F8942091CF0163 +:1038A0003091D0014091D1015091D2018FBFC90117 +:1038B0000895EF92FF920F931F93BC018FB7F89476 +:1038C000E090CF01F090D0010091D1011091D20190 +:1038D0008FBFA801970140705070CB01A0E0B0E00D +:1038E000281739074A075B0720F09701261B370B7B +:1038F00005C09B01209530952E0D3F1DC9011F91DC +:103900000F91FF90EF9008951F920F920FB60F92B4 +:1039100011248F939F93AF93BF938091CF01909188 +:10392000D001A091D101B091D2010196A11DB11D8C +:103930008093CF019093D001A093D101B093D20195 +:10394000BF91AF919F918F910F900FBE0F901F90DD +:1039500018950E94850CF89480E29EE420E931E0FD +:10396000F9013197F1F70197D9F787E090EBA7E0DC +:10397000B0EB8093ED019093EE01A093EF01B09333 +:10398000F0012CE088E190E00FB6F894A8958093C0 +:1039900060000FBE20936000FFCF0E94051D8823AA +:1039A00011F40E94101D0E94001D8093CD010E9401 +:1039B000F61C8093EB010E94FB1C90E0A0E0B0E0BD +:1039C000BC01CD010E94D41A0895682F86E090E0D2 +:1039D0000E9493230895682F84E090E00E9493232F +:1039E000089586E090E00E948523089584E090E0A9 +:1039F0000E948523089583E090E00E948523089526 +:103A000082E090E00E948523089580E090E00E948B +:103A10008D2320E08D5E9E4F09F421E0822F0895D2 +:103A200080E090E06DEE7EEF0E94A52382E090E0C2 +:103A300060E00E94932383E090E060E00E94932383 +:103A400084E090E060E00E94932385E090E060E0F5 +:103A50000E94932386E090E060E00E949323089503 +:103A60008091D90180FF0BC09091100185E0989F53 +:103A7000C0011124959587959595879530C081FF54 +:103A800009C09091100185E0989FC001112495957F +:103A9000879525C082FF03C0909110010DC08091D1 +:103AA000D801882319F485E090E008956091110110 +:103AB00090911001861728F085E0989FC00111248D +:103AC0000EC0899F90011124C901880F991F880F8A +:103AD000991F820F931F70E00E945E23CB018038F4 +:103AE000910510F08FE70895009709F481E008959B +:103AF0008091D90180FF05C080911201869586953D +:103B000018C081FF04C080911201869512C082FF07 +:103B100003C0809112010DC02091D801222319F415 +:103B200081E090E0089560911301809112012617C1 +:103B300010F090E007C0289FC001112470E00E949F +:103B40005E23CB018038910510F08FE70895009730 +:103B500009F481E00895803F21F40E94301D819591 +:103B600004C0813F29F40E94301D8093D50108953F +:103B7000823F21F40E94301D819504C0833F29F4C7 +:103B80000E94301D8093D4010895893F19F40E944A +:103B9000781D05C08A3F31F40E94781D819580937D +:103BA000D60108958B3F21F40E94781D819504C0B1 +:103BB0008C3F29F40E94781D8093D7010895843F9B +:103BC00021F48091D301816017C0853F21F4809159 +:103BD000D301826011C0863F21F48091D3018460BB +:103BE0000BC0873F21F48091D301886005C0883FD6 +:103BF00031F48091D30180618093D30108958D3F8A +:103C000021F48091D901816005C08E3F31F480910B +:103C1000D90182608093D90108958F3F29F4809162 +:103C2000D90184608093D9010895803F29F480915F +:103C3000D50187FF6FC007C0813F41F48091D50156 +:103C400018160CF067C01092D50164C0823F29F4A9 +:103C50008091D40187FF5EC007C0833F41F480910B +:103C6000D40118160CF056C01092D40153C0893FED +:103C700029F48091D60118163CF04CC08A3F39F4E3 +:103C80008091D60187FF46C01092D60143C08B3F7A +:103C900029F48091D70187FF3DC006C08C3F39F4DD +:103CA0008091D7011816B4F51092D70133C0843F24 +:103CB00021F48091D3018E7F05C0853F31F480913E +:103CC000D3018D7F8093D30125C0863F21F480915D +:103CD000D3018B7FF7CF873F21F48091D301877F7A +:103CE000F1CF883F21F48091D3018F7EEBCF8D3FC0 +:103CF00021F48091D9018E7F0BC08E3F21F48091F9 +:103D0000D9018D7F05C08F3F29F48091D9018B7F28 +:103D10008093D9018091D401882371F48091D501D9 +:103D2000882351F48091D601882331F48091D70102 +:103D3000882311F41092D8010895E3EDF1E085E0B5 +:103D4000DF011D928A95E9F71092D8011092D901EE +:103D5000089583ED91E00E94B70F0E944C1C909350 +:103D6000DB018093DA0108951F938091DA0190912D +:103D7000DB010E94591CAC012091D801222321F0C3 +:103D800080910F0190E006C090910E018AE0989F0B +:103D9000C00111244817590708F485C09091D40137 +:103DA000992369F48091D501882349F48091D60143 +:103DB000882329F48091D701882309F474C02F3F08 +:103DC00019F02F5F2093D801191624F40E94301D9A +:103DD0008093D4018091D40187FF05C00E94301DDB +:103DE00081958093D4018091D501181624F40E9406 +:103DF000301D8093D5018091D50187FF05C00E94B9 +:103E0000301D81958093D5016091D401662339F1ED +:103E10001091D501112319F1772767FD7095872F30 +:103E2000972F0E946F2223E333E343E35FE30E9473 +:103E3000D3220E943C226093D401612F772767FD33 +:103E40007095872F972F0E946F2223E333E343E37C +:103E50005FE30E94D3220E943C226093D5018091AF +:103E6000D601181624F40E94781D8093D601809103 +:103E7000D60187FF05C00E94781D81958093D601E9 +:103E80008091D701181624F40E94781D8093D701E1 +:103E90008091D70187FF05C00E94781D819580938E +:103EA000D7010E94A91E1F91089580E0089580E027 +:103EB0000895833099F1843030F4813069F0823094 +:103EC00009F06FC01AC0853009F44AC08530B8F1D6 +:103ED000863009F066C055C020910E01822F90E017 +:103EE000860F911D8F3F910520F4260F20930E0120 +:103EF00008958FEF80930E01089520910F01822F76 +:103F000090E0860F911D8F3F910520F4260F20939E +:103F10000F0108958FEF80930F01089520911001F4 +:103F2000822F90E0860F911D8F3F910520F4260F80 +:103F30002093100108958FEF809310010895209130 +:103F40001101822F90E0860F911D8F3F910520F483 +:103F5000260F2093110108958FEF8093110108958A +:103F600020911201822F90E0860F911D8F3F9105C5 +:103F700020F4260F2093120108958FEF80931201F1 +:103F8000089520911301822F90E0860F911D8F3F9D +:103F9000910520F4260F2093130108958FEF80934D +:103FA00013010895833031F1843030F4813061F0B1 +:103FB000823009F04AC013C0853091F1853028F174 +:103FC000863009F042C037C080910E01681720F496 +:103FD000861B80930E01089510920E010895809122 +:103FE0000F01681720F4861B80930F01089510922B +:103FF0000F01089580911001681720F4861B8093AB +:104000001001089510921001089580911101681710 +:1040100020F4861B809311010895109211010895D8 +:1040200080911201681720F4861B80931201089575 +:1040300010921201089580911301681720F4861BD5 +:1040400080931301089510921301089521E030E048 +:1040500040E050E004C0220F331F441F551F8A95D3 +:10406000D2F7CA01B9010E94D41A0E94171108950B +:104070008732F8F48E3108F08AC08E3009F463C0BC +:104080008F3048F4873009F445C08B3009F486C07E +:10409000863039F528C0863109F480C0873118F49C +:1040A0008031F9F45CC0893109F478C08B31C9F4EE +:1040B00040C0883309F472C0893348F4893209F466 +:1040C00068C0853309F465C0873259F462C083340F +:1040D00009F45FC0843418F48A3318F056C0883469 +:1040E00059F080E008958091CD01807F8093CD01CB +:1040F00081E08093DC0108950E94171180E197E22E +:1041000020E931E0F9013197F1F70197D9F70E94E1 +:10411000A91C42C09091CD01892F809581709E7F0E +:10412000982B882311F09E6001C0917F9093CD0160 +:1041300033C08091CD01982F969590959170292F3D +:10414000220F8D7F19C08091CD01982F969596955D +:1041500090959170292F220F220F8B7F0DC0809197 +:10416000CD01982F96959695969590959170292FBB +:10417000220F220F220F877F822B8093CD0199235C +:1041800069F081608093CD0107C0895303C08D51D0 +:1041900001C080E00E94262081E0089581E008951A +:1041A0001F93182F8091DC01813079F0813020F04D +:1041B000823009F0BCC037C0E0910C01F0910D01D4 +:1041C0008081823209F0B5C007C0E0910C01F09106 +:1041D0000D018081823249F4812F0E94551F88236E +:1041E000F9F4812F0E943820A5C0812F0E94571F0B +:1041F0008823B1F4143161F0153128F41B3081F0BB +:10420000103141F40AC0193219F0183319F408C0FA +:104210001092DC0180E090E08DC082E08093DC01B0 +:1042200081E090E087C0193201F11A3270F4143144 +:10423000E1F0153120F4173009F064C065C0812F1A +:104240008E51863008F05EC01BC01E3409F455C084 +:104250001F3420F41B3409F055C049C0113509F44E +:1042600042C0123509F04EC03AC08091DD0188236A +:1042700019F01092DD0146C081E08093DC015AC044 +:104280001232F9F0133260F41F3199F0103218F441 +:104290001E3109F510C0103281F01132E1F40FC067 +:1042A000143299F0143278F0153289F0163299F4FC +:1042B00010C082E011C081E00FC083E00DC084E037 +:1042C0000BC085E009C086E007C087E005C088E034 +:1042D00003C089E001C080E08093DD0113C08091BC +:1042E000DD0161E007C08091DD0161E009C08091DE +:1042F000DD016AE00E94591F05C08091DD016AE07E +:104300000E94D21F81E016C08EE180930E0182E3ED +:1043100080930F018AE08093100184E18093110162 +:1043200088E08093120188E280931301EBCF109212 +:10433000DC0180E01F9108958091EC01869508953D +:104340009091EC01292F26952827220F9170922B0E +:104350009093EC0120E09E7F09F021E08091EC0138 +:104360008E7F822B8093EC010E94E51C8091EC01F2 +:1043700086950E94230208958091EC01282F2695AE +:104380002F5F2F77922F990F8170892B8093EC01EB +:1043900030E0243031051CF081708093EC0190E016 +:1043A0008091EC018E7F09F091E08091EC018E7F8D +:1043B000892B8093EC010E94E51C8091EC0186958D +:1043C0000E94230208958091EC01982F909591709E +:1043D0008E7F892B8093EC010E94E51C8091EC017B +:1043E00080FD02C080E001C086950E9423020895EE +:1043F0008091EC01982F969591F09158990F8170CA +:10440000892B8093EC0190E08E7F09F091E0809100 +:10441000EC018E7F892B8093EC010E94E51C80913A +:10442000EC0186950E94230208952091EC012695C7 +:10443000822F90E0039744F4822F8F5F880F816072 +:104440008093EC010E94E51C8091EC0186950E940E +:10445000230208950E94051D882311F40E94101D57 +:104460000E94F11C8093EC0180FD02C080E001C03D +:1044700086950E942302089504D06894B1118DC0DE +:10448000089570D088F09F5790F0B92F9927B751B1 +:10449000A0F0D1F0660F771F881F991F1AF0BA9508 +:1044A000C9F712C0B13081F077D0B1E0089574C07F +:1044B000672F782F8827B85F39F0B93FCCF38695FE +:1044C00077956795B395D9F73EF49095809570955B +:1044D00061957F4F8F4F9F4F0895E89409C097FBD8 +:1044E0003EF490958095709561957F4F8F4F9F4FCB +:1044F0009923A9F0F92F96E9BB279395F69587950F +:1045000077956795B795F111F8CFFAF4BB0F11F4D1 +:1045100060FF1BC06F5F7F4F8F4F9F4F16C0882378 +:1045200011F096E911C0772321F09EE8872F762FAE +:1045300005C0662371F096E8862F70E060E02AF0EF +:104540009A95660F771F881FDAF7880F96958795DB +:1045500097F9089557FD9058440F551F59F05F3F44 +:1045600071F04795880F97FB991F61F09F3F79F095 +:1045700087950895121613061406551FF2CF469517 +:10458000F1DF08C0161617061806991FF1CF869599 +:104590007105610508940895E894BB27662777277D +:1045A000CB0197F908950BD078C069D028F06ED070 +:1045B00018F0952309F05AC05FC01124EECFCADF6E +:1045C000A0F3959FD1F3950F50E0551F629FF00126 +:1045D000729FBB27F00DB11D639FAA27F00DB11D7F +:1045E000AA1F649F6627B00DA11D661F829F222708 +:1045F000B00DA11D621F739FB00DA11D621F839F8F +:10460000A00D611D221F749F3327A00D611D231F64 +:10461000849F600D211D822F762F6A2F11249F57B2 +:1046200050408AF0E1F088234AF0EE0FFF1FBB1FD5 +:10463000661F771F881F91505040A9F79E3F510574 +:1046400070F014C0AACF5F3FECF3983EDCF3869580 +:1046500077956795B795F795E7959F5FC1F7FE2B1F +:10466000880F911D9695879597F9089597F99F67FB +:1046700080E870E060E008959FEF80EC08950024EA +:104680000A941616170618060906089500240A94B7 +:1046900012161306140605060895092E0394000C3D +:1046A00011F4882352F0BB0F40F4BF2B11F460FFCC +:1046B00004C06F5F7F4F8F4F9F4F089597FB092E68 +:1046C00007260AD077FD04D00CD006D000201AF4BB +:1046D000709561957F4F0895F6F7909581959F4F5E +:1046E0000895AA1BBB1B51E107C0AA1FBB1FA61739 +:1046F000B70710F0A61BB70B881F991F5A95A9F78B +:1047000080959095BC01CD010895F999FECF92BD99 +:1047100081BDF89A992780B50895A8E1B0E042E0FC +:1047200050E00C94AD23262FF999FECF92BD81BDA8 +:10473000F89A019700B4021639F01FBA20BD0FB6DF +:10474000F894FA9AF99A0FBE08950196272F0E94BD +:1047500094230C949323DC01CB01FC01F999FECF47 +:1047600006C0F2BDE1BDF89A319600B40D924150F9 +:0A4770005040B8F70895F894FFCF09 +:10477A00050175080A09E408AE087808C0011E3266 +:10478A000A14082840004500250026006100600040 +:10479A002000370064006500660067004400460098 +:1047AA002400470040004500250026006100600003 +:1047BA002000370064006500660067004400460078 +:0447CA002400470080 +:00000001FF diff --git a/keyboard/planck/keymaps/Jacob/readme.md b/keyboard/planck/keymaps/Jacob/readme.md new file mode 100644 index 0000000000..2a4be4ebce --- /dev/null +++ b/keyboard/planck/keymaps/Jacob/readme.md @@ -0,0 +1 @@ +Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck. \ No newline at end of file -- cgit v1.2.3 From 1a8c0dd22d6a2255511d0db6a456315541b5815b Mon Sep 17 00:00:00 2001 From: Erez Zukerman Date: Sun, 15 May 2016 00:27:32 -0400 Subject: Leader key implementation (#326) * implements leader key for planck experimental * allows override of leader timeout * adds ability to use the leader key in seq * fixes leader keycode * adds chording prototype * fixes keycode detection * moves music mode to quantum.c * disables chording by default * updates process_action functions to return bool --- keyboard/planck/keymaps/experimental/keymap.c | 48 +++++++++++++++++---------- keyboard/planck/planck.c | 8 +++-- keyboard/planck/planck.h | 16 ++------- 3 files changed, 37 insertions(+), 35 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/experimental/keymap.c b/keyboard/planck/keymaps/experimental/keymap.c index fc3ac4a97e..8dc158c73f 100644 --- a/keyboard/planck/keymaps/experimental/keymap.c +++ b/keyboard/planck/keymaps/experimental/keymap.c @@ -6,6 +6,7 @@ #ifdef AUDIO_ENABLE #include "audio.h" #endif + #include "eeconfig.h" extern keymap_config_t keymap_config; @@ -78,7 +79,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, {KC_ESC, 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, KC_ENT }, - {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {KC_LEAD, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Dvorak @@ -291,7 +292,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case 8: if (record->event.pressed) { #ifdef AUDIO_ENABLE - layer_off(_MUSIC); + music_activated = false; stop_all_notes(); #endif } @@ -300,7 +301,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) if (record->event.pressed) { #ifdef AUDIO_ENABLE PLAY_NOTE_ARRAY(music_scale, false, 0); - layer_on(_MUSIC); + music_activated = true; #endif } break; @@ -360,24 +361,35 @@ void matrix_init_user(void) { } #ifdef AUDIO_ENABLE -void play_goodbye_tone() -{ - PLAY_NOTE_ARRAY(goodbye, false, 0); - _delay_ms(150); -} + void play_goodbye_tone(void) + { + PLAY_NOTE_ARRAY(goodbye, false, 0); + _delay_ms(150); + } +#endif -uint8_t starting_note = 0x0C; -int offset = 0; +LEADER_EXTERNS(); -void process_action_user(keyrecord_t *record) { +#define LEADER_TIMEOUT 300 - if (IS_LAYER_ON(_MUSIC)) { - if (record->event.pressed) { - play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); - } else { - stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); +void matrix_scan_user(void) { + LEADER_DICTIONARY() { + leading = false; + leader_end(); + + SEQ_ONE_KEY(KC_F) { + register_code(KC_S); + unregister_code(KC_S); + } + SEQ_TWO_KEYS(KC_A, KC_S) { + register_code(KC_H); + unregister_code(KC_H); + } + SEQ_THREE_KEYS(KC_A, KC_S, KC_D) { + register_code(KC_LGUI); + register_code(KC_S); + unregister_code(KC_S); + unregister_code(KC_LGUI); } } - } -#endif diff --git a/keyboard/planck/planck.c b/keyboard/planck/planck.c index 446353dbf5..da7b3a1702 100644 --- a/keyboard/planck/planck.c +++ b/keyboard/planck/planck.c @@ -7,7 +7,9 @@ __attribute__ ((weak)) void matrix_scan_user(void) {} __attribute__ ((weak)) -void process_action_user(keyrecord_t *record) {} +bool process_action_user(keyrecord_t *record) { + return true; +} __attribute__ ((weak)) void led_set_user(uint8_t usb_led) {} @@ -32,8 +34,8 @@ void matrix_scan_kb(void) { matrix_scan_user(); } -void process_action_kb(keyrecord_t *record) { - process_action_user(record); +bool process_action_kb(keyrecord_t *record) { + return process_action_user(record); } void led_set_kb(uint8_t usb_led) { diff --git a/keyboard/planck/planck.h b/keyboard/planck/planck.h index cfd4956bf1..8aec6b2627 100644 --- a/keyboard/planck/planck.h +++ b/keyboard/planck/planck.h @@ -1,19 +1,7 @@ #ifndef PLANCK_H #define PLANCK_H -#include "matrix.h" -#include "keymap_common.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif -#ifdef RGBLIGHT_ENABLE - #include "rgblight.h" -#endif -#include -#include -#ifdef MIDI_ENABLE - #include -#endif +#include "quantum.h" #define PLANCK_MIT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \ @@ -43,7 +31,7 @@ void matrix_init_user(void); void matrix_scan_user(void); -void process_action_user(keyrecord_t *record); +bool process_action_user(keyrecord_t *record); void led_set_user(uint8_t usb_led); void backlight_init_ports(void); -- cgit v1.2.3 From 15719f3574c6274ee0f3ec87431927c5a523aa3e Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 15 May 2016 00:40:59 -0400 Subject: adds a sequencer to the music mode (#330) * implements leader key for planck experimental * allows override of leader timeout * adds ability to use the leader key in seq * fixes leader keycode * adds chording prototype * fixes keycode detection * moves music mode to quantum.c * disables chording by default * adds music sequencer functionality * implements audio/music functions in quantum.c * Merge branch 'master' into process-record --- keyboard/planck/keymaps/experimental/keymap.c | 72 ++------------------------- 1 file changed, 3 insertions(+), 69 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/experimental/keymap.c b/keyboard/planck/keymaps/experimental/keymap.c index 8dc158c73f..8bc7334c9a 100644 --- a/keyboard/planck/keymaps/experimental/keymap.c +++ b/keyboard/planck/keymaps/experimental/keymap.c @@ -20,8 +20,7 @@ extern keymap_config_t keymap_config; #define _DVORAK 2 #define _LOWER 3 #define _RAISE 4 -#define _MUSIC 5 -#define _PLOVER 6 +#define _PLOVER 5 #define _ADJUST 16 // Macro name shortcuts @@ -31,12 +30,6 @@ extern keymap_config_t keymap_config; #define LOWER M(_LOWER) #define RAISE M(_RAISE) #define M_BL 5 -#define AUD_OFF M(6) -#define AUD_ON M(7) -#define MUS_OFF M(8) -#define MUS_ON M(9) -#define VC_IN M(10) -#define VC_DE M(11) #define PLOVER M(12) #define EXT_PLV M(13) @@ -136,16 +129,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, -/* Music (reserved for process_action_user) - * - */ -[_MUSIC] = { - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} -}, - /* Plover layer (http://opensteno.org) * ,-----------------------------------------------------------------------------------. * | # | # | # | # | # | # | # | # | # | # | # | # | @@ -178,8 +161,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, - {_______, VC_DE, VC_IN, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -205,7 +188,6 @@ float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); float goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -274,53 +256,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) unregister_code(KC_RSFT); } break; - case 6: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - audio_off(); - #endif - } - break; - case 7: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - audio_on(); - PLAY_NOTE_ARRAY(tone_startup, false, 0); - #endif - } - break; - case 8: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - music_activated = false; - stop_all_notes(); - #endif - } - break; - case 9: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(music_scale, false, 0); - music_activated = true; - #endif - } - break; - case 10: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - voice_iterate(); - PLAY_NOTE_ARRAY(music_scale, false, 0); - #endif - } - break; - case 11: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - voice_deiterate(); - PLAY_NOTE_ARRAY(music_scale, false, 0); - #endif - } - break; case 12: if (record->event.pressed) { #ifdef AUDIO_ENABLE @@ -330,7 +265,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) layer_off(_RAISE); layer_off(_LOWER); layer_off(_ADJUST); - layer_off(_MUSIC); layer_on(_PLOVER); if (!eeconfig_is_enabled()) { eeconfig_init(); -- cgit v1.2.3 From fde477a927edc6b4207a6968d44aeed021e8b300 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 15 May 2016 00:51:06 -0400 Subject: updates midi functionality (#331) * implements leader key for planck experimental * allows override of leader timeout * adds ability to use the leader key in seq * fixes leader keycode * adds chording prototype * fixes keycode detection * moves music mode to quantum.c * disables chording by default * adds music sequencer functionality * implements audio/music functions in quantum.c * splits up process_action to allow independent processing of actions * moves midi stuff to quantum.c * adds additional scales for midi --- keyboard/planck/keymaps/experimental/keymap.c | 6 +++++- keyboard/planck/keymaps/experimental/makefile.mk | 5 ++++- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/experimental/keymap.c b/keyboard/planck/keymaps/experimental/keymap.c index 8bc7334c9a..2f8a0510a8 100644 --- a/keyboard/planck/keymaps/experimental/keymap.c +++ b/keyboard/planck/keymaps/experimental/keymap.c @@ -162,7 +162,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, _______, _______, _______, _______, _______, _______, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -227,8 +227,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _LOWER: if (record->event.pressed) { layer_on(_LOWER); + #ifdef BACKLIGHT_ENABLE breathing_speed_set(2); breathing_pulse(); + #endif update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_LOWER); @@ -238,8 +240,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) case _RAISE: if (record->event.pressed) { layer_on(_RAISE); + #ifdef BACKLIGHT_ENABLE breathing_speed_set(2); breathing_pulse(); + #endif update_tri_layer(_LOWER, _RAISE, _ADJUST); } else { layer_off(_RAISE); diff --git a/keyboard/planck/keymaps/experimental/makefile.mk b/keyboard/planck/keymaps/experimental/makefile.mk index 99fbfbd0bb..6c1e05b65a 100644 --- a/keyboard/planck/keymaps/experimental/makefile.mk +++ b/keyboard/planck/keymaps/experimental/makefile.mk @@ -1,2 +1,5 @@ AUDIO_ENABLE = yes -NKRO_ENABLE = yes \ No newline at end of file +NKRO_ENABLE = yes +MIDI_ENABLE = yes +BACKLIGHT_ENABLE = no +COMMAND_ENABLE = no \ No newline at end of file -- cgit v1.2.3 From e2aa980ad5d92f76dadf1de9dbadb9eacbddd5df Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Sun, 15 May 2016 01:07:48 -0400 Subject: cleans up default keymaps (olkb) --- keyboard/planck/keymaps/default/keymap.c | 86 ++------------------------------ 1 file changed, 3 insertions(+), 83 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 56f20a3b99..79bf62436a 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -19,8 +19,7 @@ extern keymap_config_t keymap_config; #define _DVORAK 2 #define _LOWER 3 #define _RAISE 4 -#define _MUSIC 5 -#define _PLOVER 6 +#define _PLOVER 5 #define _ADJUST 16 // Macro name shortcuts @@ -30,12 +29,6 @@ extern keymap_config_t keymap_config; #define LOWER M(_LOWER) #define RAISE M(_RAISE) #define M_BL 5 -#define AUD_OFF M(6) -#define AUD_ON M(7) -#define MUS_OFF M(8) -#define MUS_ON M(9) -#define VC_IN M(10) -#define VC_DE M(11) #define PLOVER M(12) #define EXT_PLV M(13) #define TOG_OUT M(14) @@ -136,16 +129,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, -/* Music (reserved for process_action_user) - * - */ -[_MUSIC] = { - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX}, - {XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LOWER, XXXXXXX, XXXXXXX, RAISE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX} -}, - /* Plover layer (http://opensteno.org) * ,-----------------------------------------------------------------------------------. * | # | # | # | # | # | # | # | # | # | # | # | # | @@ -178,8 +161,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = { {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AUD_ON, AUD_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, - {_______, VC_DE, VC_IN, MUS_ON, MUS_OFF, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} } @@ -205,7 +188,6 @@ float tone_colemak[][2] = SONG(COLEMAK_SOUND); float tone_plover[][2] = SONG(PLOVER_SOUND); float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); -float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); float goodbye[][2] = SONG(GOODBYE_SOUND); #endif @@ -270,53 +252,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) unregister_code(KC_RSFT); } break; - case 6: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - audio_off(); - #endif - } - break; - case 7: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - audio_on(); - PLAY_NOTE_ARRAY(tone_startup, false, 0); - #endif - } - break; - case 8: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - layer_off(_MUSIC); - stop_all_notes(); - #endif - } - break; - case 9: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(music_scale, false, 0); - layer_on(_MUSIC); - #endif - } - break; - case 10: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - voice_iterate(); - PLAY_NOTE_ARRAY(music_scale, false, 0); - #endif - } - break; - case 11: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - voice_deiterate(); - PLAY_NOTE_ARRAY(music_scale, false, 0); - #endif - } - break; case 12: if (record->event.pressed) { #ifdef AUDIO_ENABLE @@ -366,19 +301,4 @@ void play_goodbye_tone() PLAY_NOTE_ARRAY(goodbye, false, 0); _delay_ms(150); } - -uint8_t starting_note = 0x0C; -int offset = 0; - -void process_action_user(keyrecord_t *record) { - - if (IS_LAYER_ON(_MUSIC)) { - if (record->event.pressed) { - play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); - } else { - stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); - } - } - -} #endif -- cgit v1.2.3 From b79400e0e9080112fbdcf9ae1672297286b7938a Mon Sep 17 00:00:00 2001 From: Jacob Bilger Date: Sun, 15 May 2016 01:22:51 -0400 Subject: Folders for each keymap.c file (#332) * Add folders to keymaps * test * test --- keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG | Bin 17292 -> 0 bytes keyboard/planck/keymaps/Jacob/keymap.c | 56 - keyboard/planck/keymaps/Jacob/planck.hex | 1151 -------------------- keyboard/planck/keymaps/Jacob/readme.md | 1 - keyboard/planck/keymaps/alexey.c | 51 - keyboard/planck/keymaps/alexey/alexey.c | 51 + keyboard/planck/keymaps/angerthosenear.c | 50 - .../planck/keymaps/angerthosenear/angerthosenear.c | 50 + keyboard/planck/keymaps/austin.c | 50 - keyboard/planck/keymaps/austin/austin.c | 50 + keyboard/planck/keymaps/bone2planck.c | 112 -- keyboard/planck/keymaps/bone2planck/bone2planck.c | 112 ++ keyboard/planck/keymaps/brandon.c | 134 --- keyboard/planck/keymaps/brandon/brandon.c | 134 +++ keyboard/planck/keymaps/charlie.c | 54 - keyboard/planck/keymaps/charlie/charlie.c | 54 + keyboard/planck/keymaps/daniel.c | 48 - keyboard/planck/keymaps/daniel/daniel.c | 48 + keyboard/planck/keymaps/david.c | 76 -- keyboard/planck/keymaps/david/david.c | 76 ++ keyboard/planck/keymaps/dzobert.c | 49 - keyboard/planck/keymaps/dzobert/dzobert.c | 49 + keyboard/planck/keymaps/gabriel.c | 108 -- keyboard/planck/keymaps/gabriel/gabriel.c | 108 ++ keyboard/planck/keymaps/jacob/Keyboard Layout.PNG | Bin 0 -> 17292 bytes keyboard/planck/keymaps/jacob/keymap.c | 56 + keyboard/planck/keymaps/jacob/readme.md | 1 + keyboard/planck/keymaps/joe.c | 88 -- keyboard/planck/keymaps/joe/joe.c | 88 ++ keyboard/planck/keymaps/kyle.c | 49 - keyboard/planck/keymaps/kyle/kyle.c | 49 + keyboard/planck/keymaps/leo.c | 46 - keyboard/planck/keymaps/leo/leo.c | 46 + keyboard/planck/keymaps/lucas.c | 163 --- keyboard/planck/keymaps/lucas/lucas.c | 163 +++ keyboard/planck/keymaps/lukas.c | 64 -- keyboard/planck/keymaps/lukas/lukas.c | 64 ++ keyboard/planck/keymaps/max.c | 49 - keyboard/planck/keymaps/max/max.c | 49 + keyboard/planck/keymaps/mollat.c | 149 --- keyboard/planck/keymaps/mollat/mollat.c | 149 +++ keyboard/planck/keymaps/monkey.c | 76 -- keyboard/planck/keymaps/monkey/monkey.c | 76 ++ keyboard/planck/keymaps/nico.c | 69 -- keyboard/planck/keymaps/nico/nico.c | 69 ++ keyboard/planck/keymaps/numpad.c | 26 - keyboard/planck/keymaps/numpad/numpad.c | 26 + keyboard/planck/keymaps/tak3over.c | 130 --- keyboard/planck/keymaps/tak3over/tak3over.c | 130 +++ 49 files changed, 1698 insertions(+), 2849 deletions(-) delete mode 100644 keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG delete mode 100644 keyboard/planck/keymaps/Jacob/keymap.c delete mode 100644 keyboard/planck/keymaps/Jacob/planck.hex delete mode 100644 keyboard/planck/keymaps/Jacob/readme.md delete mode 100644 keyboard/planck/keymaps/alexey.c create mode 100644 keyboard/planck/keymaps/alexey/alexey.c delete mode 100644 keyboard/planck/keymaps/angerthosenear.c create mode 100644 keyboard/planck/keymaps/angerthosenear/angerthosenear.c delete mode 100644 keyboard/planck/keymaps/austin.c create mode 100644 keyboard/planck/keymaps/austin/austin.c delete mode 100644 keyboard/planck/keymaps/bone2planck.c create mode 100644 keyboard/planck/keymaps/bone2planck/bone2planck.c delete mode 100644 keyboard/planck/keymaps/brandon.c create mode 100644 keyboard/planck/keymaps/brandon/brandon.c delete mode 100644 keyboard/planck/keymaps/charlie.c create mode 100644 keyboard/planck/keymaps/charlie/charlie.c delete mode 100644 keyboard/planck/keymaps/daniel.c create mode 100644 keyboard/planck/keymaps/daniel/daniel.c delete mode 100644 keyboard/planck/keymaps/david.c create mode 100644 keyboard/planck/keymaps/david/david.c delete mode 100644 keyboard/planck/keymaps/dzobert.c create mode 100644 keyboard/planck/keymaps/dzobert/dzobert.c delete mode 100644 keyboard/planck/keymaps/gabriel.c create mode 100644 keyboard/planck/keymaps/gabriel/gabriel.c create mode 100644 keyboard/planck/keymaps/jacob/Keyboard Layout.PNG create mode 100644 keyboard/planck/keymaps/jacob/keymap.c create mode 100644 keyboard/planck/keymaps/jacob/readme.md delete mode 100644 keyboard/planck/keymaps/joe.c create mode 100644 keyboard/planck/keymaps/joe/joe.c delete mode 100644 keyboard/planck/keymaps/kyle.c create mode 100644 keyboard/planck/keymaps/kyle/kyle.c delete mode 100644 keyboard/planck/keymaps/leo.c create mode 100644 keyboard/planck/keymaps/leo/leo.c delete mode 100644 keyboard/planck/keymaps/lucas.c create mode 100644 keyboard/planck/keymaps/lucas/lucas.c delete mode 100644 keyboard/planck/keymaps/lukas.c create mode 100644 keyboard/planck/keymaps/lukas/lukas.c delete mode 100644 keyboard/planck/keymaps/max.c create mode 100644 keyboard/planck/keymaps/max/max.c delete mode 100644 keyboard/planck/keymaps/mollat.c create mode 100644 keyboard/planck/keymaps/mollat/mollat.c delete mode 100644 keyboard/planck/keymaps/monkey.c create mode 100644 keyboard/planck/keymaps/monkey/monkey.c delete mode 100644 keyboard/planck/keymaps/nico.c create mode 100644 keyboard/planck/keymaps/nico/nico.c delete mode 100644 keyboard/planck/keymaps/numpad.c create mode 100644 keyboard/planck/keymaps/numpad/numpad.c delete mode 100644 keyboard/planck/keymaps/tak3over.c create mode 100644 keyboard/planck/keymaps/tak3over/tak3over.c (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG b/keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG deleted file mode 100644 index 40f0b89429..0000000000 Binary files a/keyboard/planck/keymaps/Jacob/Keyboard Layout.PNG and /dev/null differ diff --git a/keyboard/planck/keymaps/Jacob/keymap.c b/keyboard/planck/keymaps/Jacob/keymap.c deleted file mode 100644 index 5e6e8498e2..0000000000 --- a/keyboard/planck/keymaps/Jacob/keymap.c +++ /dev/null @@ -1,56 +0,0 @@ -#include "planck.h" -#include "action_layer.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif - -//Simple Keymap where CTRL, WINKEY, and ALT keys are placed in a more familiar location for Windows users. -//Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck. - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -#define _QW 0 -#define _LW 1 -#define _RS 2 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, 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_RSFT, KC_ENT)}, - {KC_LCTL, KC_LGUI, KC_LALT, M(0), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - }, - [_RS] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, - {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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} - }, - [_LW] = { /* LOWER */ - {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} - } -}; - -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/Jacob/planck.hex b/keyboard/planck/keymaps/Jacob/planck.hex deleted file mode 100644 index 3ea701202c..0000000000 --- a/keyboard/planck/keymaps/Jacob/planck.hex +++ /dev/null @@ -1,1151 +0,0 @@ -:100000000C94A8010C94EC010C94EC010C94EC0100 -:100010000C94EC010C94EC010C94EC010C94EC01AC -:100020000C94EC010C94EC010C94410D0C94050D16 -:100030000C94C11B0C94EC010C94EC010C94EC019D -:100040000C94EC010C94EC010C94EC010C94EC017C -:100050000C94EC010C94841C0C94EC010C94EC01B9 -:100060000C94EC010C94EC010C94EC010C94EC015C -:100070000C94EC010C94EC010C94EC010C94EC014C -:100080000C94EC010C94EC010C94EC010C94EC013C -:100090000C94EC010C94EC010C94EC010C94EC012C -:1000A0000C94EC010C94EC010C94EC012B0014006A -:1000B0001A000800150017001C0018000C001200A0 -:1000C00013002A00290004001600070009000A0096 -:1000D0000B000D000E000F0033003400E1001D0086 -:1000E0001B00060019000500110010003600370043 -:1000F00038002872E000E300E200003001522C00DA -:100100002C0002525000510052004F0035021E02D6 -:100110001F022002210222022302240225022602BB -:1001200027024C0001000100010001000100010054 -:1001300001002D022E022F023002310201000100C7 -:1001400001000100010001000100010001002F0079 -:100150003000010001000100010001000100010068 -:1001600001000100010001000100010035001E0036 -:100170001F0020002100220023002400250026006B -:1001800027004C0001003A003B003C003D003E00CF -:100190003F002D002E002F003000310001004000F4 -:1001A00041004200430044004500010001000100FD -:1001B0000100010001000100010001000100010037 -:1001C0000100010001000100010001000501090614 -:1001D000A101050719E029E715002501950875011A -:1001E0008102950175088101050819012905950508 -:1001F000750191029501750391010507190029FF09 -:10020000150025FF950675088100C005010902A1AA -:10021000010901A10005091901290515002501950C -:1002200005750181029501750381010501093009F8 -:10023000311581257F9502750881060938158125BC -:100240007F950175088106050C0A38021581257F06 -:10025000950175088106C0C005010980A1018502CC -:1002600016010026B7001A01002AB7007510950183 -:100270008100C0050C0901A1018503160100269C1F -:10028000021A01002A9C02751095018100C012011A -:10029000100100000008EDFE606001000102000195 -:1002A00009025400030100A0FA090400000103013F -:1002B0000100092111010001223F00070581030807 -:1002C000000A0904010001030102000921110100D3 -:1002D00001224D000705820308000A0904020001FB -:1002E00003000000092111010001223600070583E7 -:1002F0000308000A040309042C034F007200740071 -:1003000068006F006C0069006E006500610072009B -:1003100020004B006500790062006F0061007200F0 -:10032000640073000000280354006800650020008A -:1003300050006C0061006E0063006B0020004B00F9 -:100340006500790062006F006100720064000000C7 -:1003500011241FBECFEFDAE0DEBFCDBF04B603FE2F -:1003600024C08091ED019091EE01A091EF01B09138 -:10037000F0018750904BA740B04BB9F41092ED01BB -:100380001092EE011092EF011092F00114BE84B7AA -:10039000877F84BF88E10FB6F89480936000109245 -:1003A00060000FBEE0E0F8E3099511E0A0E0B1E0E5 -:1003B000EAE7F7E402C005900D92A435B107D9F73A -:1003C00011E0A4E5B1E001C01D92AD3EB107E1F737 -:1003D0000E9441090C94BB230C940000FC0166238D -:1003E00061F48281882331F085EE0E947D110E94A4 -:1003F000BC2103C085EE0E942A1180E090E00895A0 -:1004000008950895089508950E94010208950E9494 -:10041000020208950E940302089584E0809355012A -:1004200008950E949C2123E030E0281B3109220F0F -:10043000331F2093540108950E9411020E940D025F -:10044000109256010895982F2F98882351F4809187 -:100450008000877F8093800010928D0010928C0026 -:1004600020C0833041F480918000886080938000B8 -:100470008FEF9FEF12C08091800088608093800092 -:1004800023E030E0291B3109220F331F8FEF9FEF4C -:1004900002C0969587952A95E2F790938D008093F8 -:1004A0008C000E9411020895279A2F988FEF9FEFDA -:1004B00090938700809386008AE08093800089E192 -:1004C000809381000E942A220E941C0208950E94AB -:1004D00054026E9A769A0E94000208950895E62FBB -:1004E000F0E0EE0FFF1F98E1799F90011124E20FD9 -:1004F000F31F90E6899FC0011124E80FF91FE4550E -:10050000FF4F25913491C9010895FC01EE0FFF1FA3 -:10051000E45BFF4F25913491C9010895FC01EE0F72 -:10052000FF1FE453FE4F25913491C9010895CF93E5 -:10053000DF93EC0180E4C030D807A0F590E3C03031 -:10054000D90708F005C1C83ED105E8F4C03ED10581 -:1005500008F069C0C83AD10588F4C53AD10508F059 -:1005600064C0C130D10509F4E8C0C130D10508F438 -:1005700014C2C430D10508F410C255C0CB3BD1051C -:1005800008F00BC261C080E2C030D80708F0DBC0C1 -:1005900091E0C030D90708F0D3C0C03FD10508F4BE -:1005A000FCC1C8C080E5C130D80709F4F4C090E5AB -:1005B000C230D907F0F480E4C131D80709F4D4C0BF -:1005C00090E4C231D90730F480E4C031D80708F490 -:1005D000C3C0C7C090E4C331D90709F4CBC080E4DD -:1005E000C331D80708F4C3C0C050D04509F0D5C105 -:1005F000C4C080E6C030D80730F491E5C030D907D8 -:1006000008F05EC1CEC080E7C030D80708F4C5C18D -:1006100090E8C030D90708F4B8C180E9C030D807E5 -:1006200008F0BBC1B6C19E01BAC1C53AD10519F4E3 -:1006300081E890E47DC0C63AD10519F083E890E4E2 -:1006400077C082E890E474C0C83AD10519F482EE0C -:1006500094E46EC0C93AD10519F489EE94E468C0F7 -:10066000CA3AD10519F48AEE94E462C0CB3AD105B6 -:1006700019F485EB94E45CC0CC3AD10519F486EB0F -:1006800094E456C0CD3AD10519F487EB94E450C0F8 -:10069000C03BD10519F48CEC94E44AC0CE3AD105A4 -:1006A00019F48DEC94E444C0CF3AD10519F483E8F1 -:1006B00095E43EC0C13BD10519F48AE895E438C001 -:1006C000C23BD10519F482E995E432C0C33BD105A0 -:1006D00019F484E995E42CC0C43BD10519F481E2F6 -:1006E00096E426C0C53BD10519F483E296E420C008 -:1006F000C63BD10519F484E296E41AC0C73BD10584 -:1007000019F485E296E414C0C83BD10519F486E2D9 -:1007100096E40EC0C93BD10519F487E296E408C0FF -:10072000CA3BD10519F080E094E402C08AE296E465 -:100730009C0135C19E01306532C121E030E02FC1FE -:100740009E013F712CC1CE019F700E948E0228C174 -:100750009E013070306C23C19E012F703070346D5B -:100760001EC120E031ED1BC120E030ED18C120E0BA -:1007700032ED15C120E033ED12C10E94171184EC57 -:1007800099E020E931E0F9013197F1F70197D9F7C4 -:100790000E94A91C04C18091CD0181608093CD018C -:1007A000FEC00E94051D882311F40E94101D0E94A6 -:1007B000F61C8093EB011092EC0190E5C230D90752 -:1007C00011F4816076C090E5C430D90711F48260DD -:1007D00070C090E5C630D90711F484606AC090E516 -:1007E000C830D90711F4886064C090E5CA30D907D1 -:1007F00011F480615EC090E5CC30D90711F48062BD -:1008000058C090E5CE30D90711F4806452C090E50D -:10081000C031D90711F480684CC090E5C231D907C6 -:1008200011F48C6046C080E5C330D80721F4809174 -:10083000EB018E7F3EC090E5C530D90721F4809151 -:10084000EB018D7F36C080E5C730D80721F4809159 -:10085000EB018B7F2EC090E5C930D90721F4809140 -:10086000EB01877F26C080E5CB30D80721F480914B -:10087000EB018F7E1EC090E5CD30D90721F4809129 -:10088000EB018F7D16C080E5CF30D80721F4809131 -:10089000EB018F7B0EC090E5C131D90721F4809127 -:1008A000EB018F7706C0C351D04529F48091EB014D -:1008B000837F8093EB018091EB010E94EB1C6FC062 -:1008C0004D2F55274F70507041305105F9F49E015E -:1008D000A4E0220F331FAA95E1F720703370CE01F8 -:1008E000F3E0880F991FFA95E1F780769070282B36 -:1008F000392B3C68C370D07002C0440F551FCA9595 -:10090000E2F74F715070242B352B49C0423051050E -:1009100029F43C2F2227216F306A41C04330510512 -:1009200051F49E0173E0220F331F7A95E1F7207E88 -:1009300037703C680CC044305105B9F49E0163E047 -:10094000220F331F6A95E1F7207E37703A68C37033 -:10095000D07081E090E002C0880F991FCA95E2F73D -:100960008F719070282B392B1AC04530510529F40E -:100970003C2F2227246F306A12C04630510579F48B -:10098000CF71D0703C2F222702C09E013F70306291 -:1009900006C09E013F70306A02C020E030E0C9010D -:1009A000DF91CF9108950E946F02803E9105F0F48F -:1009B000803C910588F58133910509F475C0823337 -:1009C000910548F48932910509F464C08A32910591 -:1009D00009F07BC06EC08933910509F18238910519 -:1009E000F1F08533910509F070C04FC0833E910549 -:1009F00061F1843E910540F4803E9105B9F0823E5C -:100A0000910509F062C01CC0863E910551F1873EF8 -:100A1000910509F05AC02AC00E94850208952091CC -:100A2000EB0120FD0AC021FD08C04CC08091EB0104 -:100A300080FF03C089E390E045C080EE90E042C0B3 -:100A40008091EB0182FD08C004C08091EB0182FF20 -:100A500003C082EE90E036C084FD11C083EE90E0CA -:100A600031C08091EB0183FD08C004C08091EB018F -:100A700083FF03C086EE90E025C084FF03C080E0C2 -:100A800090E020C087EE90E01DC08091EB0185FFD3 -:100A900005C007C08091EB0185FF03C085E390E0AE -:100AA00011C089E290E00EC08091EB0186FF05C085 -:100AB00007C08091EB0186FF03C081E390E002C094 -:100AC0008AE290E00E94970208950E94970208959A -:100AD0000E940A020895E82FF0E0EE0FFF1FE95A86 -:100AE000FE4F80819181089508954F925F926F9299 -:100AF0007F928F929F92AF92BF92CF92DF92EF92AE -:100B0000FF920F931F93DF93CF93CDB7DEB7289754 -:100B10000FB6F894DEBF0FBECDBFAE014F5F5F4F83 -:100B200060E070E0EE24FF24CC24DD24AA24BB2462 -:100B3000882499242A0101E010E029E0622E712C1A -:100B40006C0E7D1ED201E4E3F1E088E001900D928D -:100B50008150E1F7FA01808191819C01207F307002 -:100B60002032310559F48F709070980102C0220F25 -:100B7000331F8A95E2F7622B732B37C02033310580 -:100B800059F48F709070F80102C0EE0FFF1F8A9524 -:100B9000E2F7EE2AFF2A29C02034310559F48F707C -:100BA0009070980102C0220F331F8A95E2F7C22A83 -:100BB000D32A1BC02035310559F48F709070F8018D -:100BC00002C0EE0FFF1F8A95E2F7AE2ABF2A0DC0C2 -:100BD0002036310551F48F709070980102C0220FB9 -:100BE000331F8A95E2F7822A932A4E5F5F4F46159C -:100BF000570509F0A7CF24B1962F862F8095822321 -:100C000084B985B1982B95B927B19E2D8E2D8095ED -:100C1000822387B988B1982B98B92AB19C2D8C2D45 -:100C2000809582238AB98BB1982B9BB92DB19A2DCF -:100C30008A2D809582238DB98EB1982B9EB920B3D1 -:100C4000982D882D8095822380BB81B3982B91BBF2 -:100C500028960FB6F894DEBF0FBECDBFCF91DF91BF -:100C60001F910F91FF90EF90DF90CF90BF90AF90CA -:100C70009F908F907F906F905F904F9008954F92CC -:100C80005F926F927F928F929F92AF92BF92CF921C -:100C9000DF92EF92FF920F931F93DF93CF93CDB725 -:100CA000DEB768970FB6F894DEBF0FBECDBF85B72D -:100CB000806885BF85B7806885BF0E947505AE01D5 -:100CC0004F5F5F4F60E070E0EE24FF24CC24DD2412 -:100CD000AA24BB24882499242A0101E010E039E1E8 -:100CE000632E712C6C0E7D1ED201ECE3F1E088E1E5 -:100CF00001900D928150E1F7FA01808191819C0170 -:100D0000207F30702032310559F48F709070980137 -:100D100002C0220F331F8A95E2F7622B732B37C074 -:100D20002033310559F48F709070F80102C0EE0F36 -:100D3000FF1F8A95E2F7EE2AFF2A29C020343105E9 -:100D400059F48F709070980102C0220F331F8A955A -:100D5000E2F7C22AD32A1BC02035310559F48F701F -:100D60009070F80102C0EE0FFF1F8A95E2F7AE2ADD -:100D7000BF2A0DC02036310551F48F709070980154 -:100D800002C0220F331F8A95E2F7822A932A4E5F10 -:100D90005F4F4615570509F0A7CF24B1962F862F30 -:100DA0008095822384B985B1982B95B927B19E2D62 -:100DB0008E2D8095822387B988B1982B98B92AB156 -:100DC0009C2D8C2D809582238AB98BB1982B9BB951 -:100DD0002DB19A2D8A2D809582238DB98EB1982BB5 -:100DE0009EB920B3982D882D8095822380BB81B336 -:100DF000982B91BB80E090E0FC01E95AFE4F1182F4 -:100E00001082FC01E15AFE4F118210820296883056 -:100E1000910591F70E94670268960FB6F894DEBFBD -:100E20000FBECDBFCF91DF911F910F91FF90EF903B -:100E3000DF90CF90BF90AF909F908F907F906F90FA -:100E40005F904F9008954F925F926F927F928F9232 -:100E50009F92AF92BF92CF92DF92EF92FF920F9349 -:100E60001F93DF93CF93CDB7DEB7A0970FB6F8945B -:100E7000DEBF0FBECDBF909000016E010894C11C73 -:100E8000D11CEFE5AE2EE1E0BE2EC6015C2C892E12 -:100E900071E0E72EF12C60EA462E59E0652E712CA8 -:100EA0006C0E7D1E852D982DDC01E4E1F1E088E0DB -:100EB00001900D928150E1F7F60120813181C90145 -:100EC000807F90708032910589F484B12F703070EA -:100ED000A70102C0440F551F2A95E2F79A01842BFF -:100EE00084B985B12095282325B94FC08033910559 -:100EF00089F487B12F703070F70102C0EE0FFF1F29 -:100F00002A95E2F79F018E2B87B988B12095282377 -:100F100028B93BC08034910589F48AB12F703070B4 -:100F2000A70102C0440F551F2A95E2F79A01842BAE -:100F30008AB98BB1209528232BB927C0803591051C -:100F400089F48DB12F703070F70102C0EE0FFF1FD2 -:100F50002A95E2F79F018E2B8DB98EB1209528231B -:100F60002EB913C08036910581F480B32F70307094 -:100F7000A70102C0440F551F2A95E2F79A01842B5E -:100F800080BB81B32095282321BB842D8A95F1F75E -:100F9000830160E070E040E050E0D301ECE1F1E07B -:100FA00088E101900D928150E1F7F80120813181B3 -:100FB000C901807F90708032910511F483B113C014 -:100FC0008033910511F486B10EC08034910511F47F -:100FD00089B109C08035910511F48CB104C0803607 -:100FE0009105B9F48FB190E02F70307002C09595E3 -:100FF00087952A95E2F780FF03C080E090E007C064 -:10100000C701062E02C0880F991F0A94E2F7482BE9 -:10101000592B6F5F7F4F0E5F1F4F6C30710509F0CA -:10102000BCCFF501808191818417950721F0518310 -:10103000408345E0942E0E94750542E050E0C40EC6 -:10104000D51EA40EB51EC614D70409F02BCF90925E -:101050000001992059F1892D815080930001882346 -:1010600029F080EA9FE00197F1F720C080915F01AD -:101070009091600190935801809357018091610194 -:101080009091620190935A0180935901809163017C -:101090009091640190935C0180935B018091650164 -:1010A0009091660190935E0180935D010E9404021D -:1010B00081E0A0960FB6F894DEBF0FBECDBFCF91F2 -:1010C000DF911F910F91FF90EF90DF90CF90BF9035 -:1010D000AF909F908F907F906F905F904F9008950A -:1010E0001092E1010895089508958091680108958E -:1010F000DF93CF9300D00F92CDB7DEB7AC018091D4 -:10110000E201843029F583E08093E9002FEF95ED2B -:1011100005C0892F8A95F1F7222329F08091E800F4 -:10112000215085FFF6CF8091E80085FF11C05B83D9 -:101130004A8383E08983CE01019663E070E040E05A -:1011400050E00E94A70B8091E8008E778093E80022 -:101150000F900F900F90CF91DF910895DF93CF9371 -:1011600000D00F92CDB7DEB7AC018091E2018430A0 -:1011700029F583E08093E9002FEF95ED05C0892FD5 -:101180008A95F1F7222329F08091E800215085FF0C -:10119000F6CF8091E80085FF11C05B834A8382E02F -:1011A0008983CE01019663E070E040E050E00E9448 -:1011B000A70B8091E8008E778093E8000F900F9046 -:1011C0000F90CF91DF910895AC018091E2018430BE -:1011D00001F582E08093E9002FEF95ED05C0892F9E -:1011E0008A95F1F7222329F08091E800215085FFAC -:1011F000F6CF8091E80085FF0CC0CA0165E070E081 -:1012000040E050E00E94A70B8091E8008E77809329 -:10121000E80008950F931F93182F092F8091E20182 -:10122000843061F581E08093E9009FEF25ED05C0F2 -:10123000822F8A95F1F7992329F08091E800915047 -:1012400085FFF6CF8091E80085FF18C0812F902F91 -:1012500068E070E040E050E00E94A70B8091E80059 -:101260008E778093E800A9E6B1E0212F302FC901E5 -:10127000FC0188E001900D928150E1F71F910F91E0 -:10128000089584B7877F84BF88E10FB6F894809370 -:101290006000109260000FBE80E090E020E80FB682 -:1012A000F89420936100809361000FBE0E94F30FB9 -:1012B0000E94850C0E94E60C8091E200846080937D -:1012C000E20078940E94840F0E94A81082E091E0CE -:1012D0000E949A0F0CC00E94F61B8091E0018823A7 -:1012E00031F00E94221C882311F00E94BC0A8091D8 -:1012F000E201853081F30E94F90FF9CF8091E1017D -:10130000882349F40E94850C0E94E60C8091E2003B -:1013100084608093E20008958091E401833009F4B1 -:1013200055C0843030F4813071F0823009F0AFC0A4 -:1013300096C08A3009F483C08B3009F468C08930C4 -:1013400009F0A5C020C08091E301813A09F09FC057 -:101350008091E800877F8093E8008091E701909179 -:10136000E801892B21F489E691E068E003C080E080 -:1013700090E060E070E00E94D20A8091E8008B77F4 -:101380008093E80008958091E301813209F07FC0E5 -:101390008091E7019091E801892B09F078C0809154 -:1013A000E800877F8093E80005C08091E2018823F0 -:1013B00009F46DC08091E80082FFF7CF8091F100C1 -:1013C000809368018091E8008B771CC08091E301D5 -:1013D000813A09F05CC08091E7019091E801892B86 -:1013E00009F055C08091E800877F8093E8008091E4 -:1013F000E80080FFFCCF809101018093F100809193 -:10140000E8008E778093E8000E94320C0895809166 -:10141000E3018132E1F58091E7019091E801892BA8 -:10142000B1F58091E800877F8093E8000E94320C3C -:101430008091E501809301010E9417110895809128 -:10144000E301813221F58091E800877F8093E800F5 -:101450000E94320C8091E60180936701089580918B -:10146000E301813AA1F48091E800877F8093E8004E -:101470008091E80080FFFCCF809167018093F100AC -:101480008091E8008E778093E8000E94320C0895E6 -:1014900081E061EC42E00E94FA0B82E061EC42E004 -:1014A0000E94FA0B83E061EC42E00E94FA0B08957F -:1014B0000E94EA1B0895DA019330C1F0943030F4B1 -:1014C000913051F0923009F04FC00BC0913221F1B0 -:1014D000923209F049C032C0EEE8F2E022E130E099 -:1014E00047C0E0EAF2E024E530E042C0813051F04C -:1014F000813020F0823009F037C008C0E4EFF2E01C -:10150000849107C0E8EFF2E0849103C0E6E2F3E0E3 -:101510008491282F30E02CC0613041F0613018F008 -:10152000623011F508C0E2EBF2E002C0EBECF2E051 -:1015300029E030E01DC0E4EEF2E0FACF613051F076 -:10154000613018F0623081F40AC0ECECF1E02FE376 -:1015500030E00EC0EBE0F2E02DE430E009C0E8E559 -:10156000F2E026E330E004C0E0E0F0E020E030E02C -:10157000ED93FC93C901089580E189BD82E189BDA5 -:1015800009B400FEFDCF8091D8008F7D8093D800F4 -:101590008091E00082608093E0008091E00081FD16 -:1015A000FCCF08959C014091E9015091EA01461752 -:1015B000570718F4F90190E043C06115710511F067 -:1015C000AB01F8CF8091E8008E778093E80040E08F -:1015D00050E0F0CF8091E201882309F447C08530C4 -:1015E00009F446C08091E80083FD44C08091E80082 -:1015F00082FD36C08091E80080FF22C08091F30018 -:101600009091F200782F60E0292F30E0262B372BC5 -:1016100007C081918093F100415050402F5F3F4FB0 -:101620004115510519F02830310598F390E0283024 -:10163000310509F491E08091E8008E778093E8000D -:101640004115510539F6992329F60AC08091E20126 -:10165000882361F0853061F08091E80083FD0AC045 -:101660008091E80082FFF2CF80E0089582E0089543 -:1016700083E0089581E008959C014091E901509133 -:10168000EA014617570718F4F90190E044C06115C4 -:10169000710511F0AB01F8CF8091E8008E7780934F -:1016A000E80040E050E0F0CF8091E201882309F4A7 -:1016B00048C0853009F447C08091E80083FD45C0EB -:1016C0008091E80082FD37C08091E80080FF23C050 -:1016D0008091F3009091F200782F60E0292F30E0A4 -:1016E000262B372B08C084918093F100319641500E -:1016F00050402F5F3F4F4115510519F028303105FB -:1017000090F390E02830310509F491E08091E800F1 -:101710008E778093E8004115510531F6992321F623 -:101720000AC08091E201882361F0853061F08091E8 -:10173000E80083FD0AC08091E80082FFF2CF80E0DC -:10174000089582E0089583E0089581E00895BF92AE -:10175000CF92DF92EF92FF920F931F93CF93DF937D -:10176000182F092F7B016A010E94530CB82E882381 -:10177000B1F5812F902F9C01E901C114D10439F0FA -:10178000F60180819181E81AF90AC80FD91F00E09B -:1017900010E022C08091E80085FD16C08091E8002D -:1017A0008E778093E800C114D10449F0F60180815E -:1017B0009181800F911F9183808385E011C00E94E9 -:1017C000530C882349F00CC089918093F100089450 -:1017D000E108F1080F5F1F4FE114F104D9F68B2DDA -:1017E000DF91CF911F910F91FF90EF90DF90CF90FD -:1017F000BF900895382F282F2EC0822F8F7080938E -:10180000E900231721F4762F942F50E006C0709141 -:10181000EC009091ED005091F00091FF1BC0809181 -:10182000EB008E7F8093EB008091ED008D7F8093A5 -:10183000ED008091EB0081608093EB007093EC00F1 -:101840009093ED005093F0008091EE0087FD02C070 -:1018500080E008952F5F273080F23F703093E900D9 -:1018600081E008958091E30188239CF404C0809175 -:10187000E2018823B9F08091E80082FFF8CF8091DF -:10188000E8008B778093E80008958091E201882337 -:1018900049F08091E80080FFF8CF8091E8008E77D2 -:1018A0008093E80008954091E4005091E50024E61B -:1018B0008091EC0080FF24C08091E80080FD1EC074 -:1018C0008091E201882311F482E00895853011F4BB -:1018D00083E008958091EB0085FF02C081E00895C8 -:1018E0008091E4009091E5008417950709F3222385 -:1018F00011F484E008952150AC01DACF80E008951E -:101900008091E80082FFDCCFF9CF0E94F80C0E94A2 -:10191000000DE0EEF0E0808181608083A8EDB0E012 -:101920008C918F778C9319BCE7EDF0E080818E7FEE -:1019300080838C918F7E8C931092E1010895EF92B9 -:10194000FF920F931F930E94F80C0E94000D08ED68 -:1019500010E0F80180818F778083808180688083A8 -:1019600080818F7D808319BC1092E2011092DE018C -:101970001092E0011092DF0180EEE82EF12CF701C9 -:1019800080818B7F8083F80180818160808380E00B -:1019900060E042E00E94FA0BE1EEF0E080818E7F91 -:1019A0008083E2EEF0E080818160808380818860C6 -:1019B0008083F70180818E7F8083F8018081806140 -:1019C00080831F910F91FF90EF900895E8EDF0E074 -:1019D00080818F7E8083E7EDF0E08081816080836D -:1019E00084E082BF81E08093E1010E949F0C089512 -:1019F000E8EDF0E080818E7F80831092E200089510 -:101A00001092DA001092E10008951F920F920FB623 -:101A10000F9211241F932F933F934F935F936F93D4 -:101A20007F938F939F93AF93BF93EF93FF93109107 -:101A3000E9008091EC001092E9008091F000877F2E -:101A40008093F00078940E94130E1092E900809128 -:101A5000F00088608093F0001F701093E900FF9100 -:101A6000EF91BF91AF919F918F917F916F915F9116 -:101A70004F913F912F911F910F900FBE0F901F908C -:101A800018951F920F920FB60F9211242F933F9328 -:101A90004F935F936F937F938F939F93AF93BF9376 -:101AA000EF93FF938091E10082FF0BC08091E200F1 -:101AB00082FF07C08091E1008B7F8093E1000E944C -:101AC000830F8091DA0080FF1FC08091D80080FFD3 -:101AD0001BC08091DA008E7F8093DA008091D9005C -:101AE00080FF0DC080E189BD82E189BD09B400FE9F -:101AF000FDCF81E08093E2010E947E0905C019BC00 -:101B00001092E2010E9470088091E10080FF19C0EC -:101B10008091E20080FF15C08091E2008E7F80936B -:101B2000E2008091E20080618093E2008091D80021 -:101B300080628093D80019BC85E08093E2010E9406 -:101B400074088091E10084FF30C08091E20084FF3E -:101B50002CC080E189BD82E189BD09B400FEFDCFC2 -:101B60008091D8008F7D8093D8008091E1008F7E96 -:101B70008093E1008091E2008F7E8093E20080916B -:101B8000E20081608093E2008091DE01882311F001 -:101B900084E007C08091E30087FD02C081E001C0BE -:101BA00083E08093E2010E94580A8091E10083FF64 -:101BB00029C08091E20083FF25C08091E100877FEA -:101BC0008093E10082E08093E2011092DE01809137 -:101BD000E1008E7F8093E1008091E2008E7F809310 -:101BE000E2008091E20080618093E20080E060E0AA -:101BF00042E00E94FA0B8091F00088608093F00030 -:101C00000E947308FF91EF91BF91AF919F918F91C7 -:101C10007F916F915F914F913F912F910F900FBEE8 -:101C20000F901F9018951F93DF93CF93CDB7DEB71A -:101C3000AC970FB6F894DEBF0FBECDBFE3EEF1E078 -:101C40008091F100819321E0EB3EF207C9F70E94F9 -:101C50008C098091E80083FF3EC18091E3013091BF -:101C6000E401353009F487C0363040F43130C9F131 -:101C7000313070F0333009F02EC133C0383009F400 -:101C8000F9C0393009F409C1363009F024C197C0D0 -:101C9000803821F0823809F01EC108C09091DF0120 -:101CA0008091E001882399F0926011C08091E70152 -:101CB0008F708093E9008091EB0090E025E096958D -:101CC00087952A95E1F7982F91701092E9008091FD -:101CD000E800877F8093E8009093F1001092F10074 -:101CE000D4C0882319F0823009F0F5C090E08F71DC -:101CF0009070009721F0029709F0EDC00CC0809120 -:101D0000E501813009F0E7C01092E001333069F558 -:101D10008093E0012AC08091E501882331F520916C -:101D2000E7012F7009F4D7C02093E9008091EB0000 -:101D300080FF1BC0333021F48091EB00806213C020 -:101D40008091EB0080618093EB0081E090E002C025 -:101D5000880F991F2A95E2F78093EA001092EA0013 -:101D60008091EB0088608093EB001092E9008091F5 -:101D7000E800877F8DC0882309F0ADC01091E50190 -:101D80001F778091E3008078812B8093E30080911E -:101D9000E800877F8093E8000E94320C8091E80081 -:101DA00080FFFCCF8091E30080688093E3001123E3 -:101DB00011F482E001C083E08093E2018CC080587E -:101DC000823008F088C08091E5019091E60123E01F -:101DD0008C3D920709F034C083E08C838AE28B83C8 -:101DE0007FB7F894DE0115966EE040E050E011E216 -:101DF000E62FF0E010935700849140FF03C08295D6 -:101E00008F706F5F8F70282F30E08A3018F0C90113 -:101E1000C79602C0C901C0968D939D934F5F5F4FD7 -:101E20004431510529F77FBF8091E800877F809377 -:101E3000E800CE0103966AE270E00E94D20A14C064 -:101E40006091E701AE014F5F5F4F0E945B0ABC01EA -:101E5000009709F440C08091E800877F8093E800F4 -:101E600089819A810E943C0B8091E8008B77809356 -:101E7000E80031C0803879F58091E800877F809351 -:101E8000E8008091DE018093F1008091E8008E7778 -:101E90008093E8000E94320C1EC08823E1F49091E8 -:101EA000E5019230C0F48091E800877F8093E800DC -:101EB0009093DE010E94320C8091DE01882331F480 -:101EC0008091E30087FD02C081E001C084E080933F -:101ED000E2010E94480A8091E80083FF0AC08091D5 -:101EE000E800877F8093E8008091EB008062809318 -:101EF000EB00AC960FB6F894DEBF0FBECDBFCF910E -:101F0000DF911F91089508951F938091E201882326 -:101F100079F01091E9008091EC001092E900809135 -:101F2000E80083FF02C00E94130E1F701093E900A7 -:101F30001F91089590937601809375010895E09123 -:101F40007501F0917601309711F480E008950190C9 -:101F5000F081E02D09950895E0917501F0917601E9 -:101F6000309721F00280F381E02D09950895E091EA -:101F70007501F0917601309721F00480F581E02D14 -:101F8000099508959C01809173019091740128171F -:101F9000390779F03093740120937301E091750152 -:101FA000F0917601309729F00680F781E02DC90184 -:101FB000099508959C0180917101909172012817F3 -:101FC000390779F03093720120937101E091750126 -:101FD000F0917601309729F00084F185E02DC90158 -:101FE0000995089508950E94F20F08950E946805CA -:101FF00008952F923F925F926F927F928F929F925D -:10200000AF92BF92CF92DF92EF92FF920F931F9306 -:10201000DF93CF93CDB7DEB72A970FB6F894DEBF24 -:102020000FBECDBF0E94230728E7822E21E0922E0B -:10203000AA24BB2491E0292E312C5A2C8A2D0E94EF -:102040006B056C01F401E080F180E826F926E114CB -:10205000F104E1F18091CD0181FF02C00E9474057D -:1020600000E010E03101002E02C0660C771C0A94DB -:10207000E2F7C3018E219F21892B19F10E944C1C8C -:102080009C0109835A821B82C620D720CD2811F0DB -:1020900081E08B83C9018160782F9D838C83498186 -:1020A0005A816B818D810E941C15F501EE0FFF1F77 -:1020B000E858FE4F80819181862597259183808302 -:1020C00021C00F5F1F4F0C30110561F60894A11C51 -:1020D000B11C82E090E0880E991E94E0A916B1042C -:1020E00009F0ABCF0E944C1C2FEF2E832F83188654 -:1020F0008160782F9A8789874FEF5FEF60E08A854C -:102100000E941C150E94B41E109177010E949F0F1F -:10211000181731F00E949F0F809377010E94F60FED -:102120002A960FB6F894DEBF0FBECDBFCF91DF91D8 -:102130001F910F91FF90EF90DF90CF90BF90AF90E5 -:102140009F908F907F906F905F903F902F90089519 -:102150000E94431C0E943F060E94CD1C0E942A221E -:102160000895DF93CF9300D000D00F92CDB7DEB7A4 -:102170000F900F900F900F900F90CF91DF910895D7 -:10218000DF93CF9300D000D000D0CDB7DEB7269636 -:102190000FB6F894DEBF0FBECDBFCF91DF9108958B -:1021A0000E94DA19482F892F82958F70282F30E0EE -:1021B0002C3031054CF42A3031056CF4225030407B -:1021C00022303105E8F407C02C30310579F02F308A -:1021D0003105B1F40BC0403F39F0413F18F4403EA7 -:1021E00078F402C0443F61F481E008959F70892F24 -:1021F00090E023E0969587952A95E1F78170089500 -:1022000080E008950E94431B0E94531B0E94181BEC -:102210000E946B1B0E949D1E0E94A91E80E090E000 -:102220000E94C20F80E090E00E94DA0F08950E94A1 -:10223000331B0E9402110895882321F00E942C1B59 -:102240000E946B1B0895882321F00E94261B0E9488 -:102250006B1B0895282F882309F44EC0823859F447 -:102260000E949F0F81FF48C089E30E94E71A0E94E5 -:102270006B1B89E30CC0833869F40E949F0F80FFB9 -:102280003BC083E50E94E71A0E946B1B83E50E9416 -:10229000051B1FC0843859F40E949F0F82FF2CC079 -:1022A00087E40E94E71A0E946B1B87E4F0CF8450FA -:1022B000813A10F4822FEBCF822F805E883060F459 -:1022C000277081E090E001C0880F2A95EAF70E940C -:1022D0002C1B0E946B1B0895822F855A833028F493 -:1022E00080E090E00E94C20F0895285A233120F424 -:1022F00080E090E00E94DA0F08951F93182F882342 -:1023000009F4D0C0823859F40E949F0F81FDCAC0E1 -:1023100089E30E94E71A0E946B1B89E30CC0833893 -:1023200079F40E949F0F80FDBDC083E50E94E71AEB -:102330000E946B1B83E50E94051B0E946B1BB2C0B1 -:10234000843859F40E949F0F82FDACC087E40E943C -:10235000E71A0E946B1B87E4EECF8450813A50F459 -:10236000812F0E94D020882309F09CC0812F0E94D9 -:10237000E71AE3CF812F805E883050F4177081E038 -:1023800090E001C0880F1A95EAF70E94261BD5CF6E -:10239000812F855A8330A0F4153A19F481E890E032 -:1023A0000CC0163A19F482E890E007C0173A19F009 -:1023B00080E090E002C083E890E00E94C20F72C00B -:1023C000812F885A833108F06DC0183A19F482EED3 -:1023D00090E066C0193A19F489EE90E061C01A3AAB -:1023E00019F48AEE90E05CC01B3A19F485EB90E09A -:1023F00057C01C3A19F486EB90E052C01B3B19F40D -:1024000083EB90E04DC01C3B19F484EB90E048C096 -:102410001D3A19F487EB90E043C0103B19F48CECA3 -:1024200090E03EC01E3A19F48DEC90E039C01F3A9E -:1024300019F483E891E034C0113B19F48AE891E083 -:102440002FC0123B19F482E991E02AC0133B19F422 -:1024500084E991E025C0143B19F481E292E020C0A8 -:10246000153B19F483E292E01BC0163B19F484E299 -:1024700092E016C0173B19F485E292E011C0183BB8 -:1024800019F486E292E00CC0193B19F487E292E05D -:1024900007C01A3B19F080E090E002C08AE292E0A7 -:1024A0000E94DA0F1F9108959F92AF92BF92CF9230 -:1024B000DF92EF92FF920F931F93DF93CF93CDB7ED -:1024C000DEB72A970FB6F894DEBF0FBECDBF5C0112 -:1024D000DE011196FC0185E001900D928150E1F73B -:1024E0000B81F501F580F2944FE0F422DE0116969F -:1024F000FE01319685E001900D928150E1F73E8119 -:102500002F8189859A85892B09F484C22F3F09F090 -:1025100070C23F3F09F06DC27DC20E94431B0E9402 -:10252000E11A882379F0002369F08C2D805E8830D1 -:1025300048F082E00E949C1B0E94E11A9924939427 -:10254000982601C099248D2D82958F7090E085305A -:10255000910509F4B5C08630910554F48430910595 -:102560000CF08FC02D2D207F02970CF049C017C0B2 -:102570008C30910544F48A3091050CF072C10897B3 -:1025800009F023C2A9C08D30910509F4EDC18D3049 -:1025900091050CF4DFC10F9709F017C20FC28D2D02 -:1025A0008F70222311F4182F03C0182F1295107F5B -:1025B000002389F0112309F4B9C18C2D805E883085 -:1025C00020F4812F0E94261B03C0812F0E94361BFE -:1025D0000E946B1BABC18C2D0E942A11112309F4A0 -:1025E000F4C1F0E2CF0E27E02C1520F0812F0E94DD -:1025F0002C1B03C0812F0E943C1B0E946B1BE5C15A -:102600008D2D8F70203211F4182F03C0182F1295C2 -:10261000107FCC2021F081E0C81609F514C00023FA -:1026200049F0FF2031F1E1E0FE1619F5812F0E94FB -:10263000561BCBC1FF2021F0F1E0FF1609F4C5C104 -:102640000E94591B30C1002329F025E02F1508F402 -:10265000BCC10FC084E08F1508F4B7C124C10023AA -:1026600061F0FF2031F0F501858180FF5FC18F703F -:102670008583812F0E942311A8C1FF2009F413C173 -:1026800060C18D2D86958695837090E0009721F02E -:10269000019709F09AC10AC0002319F0C60193708E -:1026A00002C080E090E00E94C20F8FC1002319F0A9 -:1026B000C601937002C080E090E00E94DA0F85C1ED -:1026C000002321F08C2D0E94AB1D03C08C2D0E9495 -:1026D000151E0E94A91E79C18D2D837009F05EC060 -:1026E000002309F072C12C2D229526952770220F08 -:1026F000220F8C2D8F70E82EFF2400E010E0022EB8 -:1027000004C0EE0CFF1C001F111F0A94D2F7C4FC7A -:1027100005C060E070E080E090E00FC06FE070E026 -:1027200080E090E004C0660F771F881F991F2A95EC -:10273000D2F76095709580959095D694D694F3E0F5 -:10274000DF224D2D50E041305105A9F042305105B6 -:102750001CF4452B49F039C14230510589F0433012 -:10276000510509F032C113C06E297F29802B912BAE -:102770000E94B21A2AC16E297F29802B912B0BC08F -:102780006E297F29802B912B0E94A11A1EC10E94C5 -:10279000B21AC801B7010E94C31A17C190E0002302 -:1027A00011F496958795817009F40FC12C2D22950F -:1027B00026952770220F220F8C2D8F70E82EFF2474 -:1027C00000E010E0022E04C0EE0CFF1C001F111FE1 -:1027D0000A94D2F7C4FC05C060E070E080E090E0AD -:1027E0000FC06FE070E080E090E004C0660F771FDC -:1027F000881F991F2A95D2F76095709580959095BE -:10280000D694D69423E0D2224D2D50E0413051058C -:10281000A9F0423051051CF4452B49F0D6C0423096 -:10282000510589F04330510509F0CFC013C06E291E -:102830007F29802B912B0E94051AC7C06E297F2902 -:10284000802B912B0BC06E297F29802B912B0E940E -:10285000F419BBC00E94051AC801B7010E94161ADC -:10286000B4C081EFC81699F18C1540F0E0EECE1699 -:1028700008F458C0FFEEFC1558F419C023EFC21637 -:1028800081F1C21648F184EFC81609F04BC033C07D -:102890001C2D1F708D2D8F71002319F00E94631A5B -:1028A000E8CE0E94431A812F0E941C118EC0002383 -:1028B00029F0E4E0EF1508F488C004C0F5E0FF1546 -:1028C00008F483C08D2D8F710E94271A7EC08D2D34 -:1028D0008F710023E1F130C08D2D8F71002361F1E4 -:1028E00036C0002329F08D2D8F710E947F1A6DC094 -:1028F0000E948F1A6AC0002351F01D2D1F71812F75 -:102900000E94631A812F63E00E94B51B5EC081E0C4 -:102910000E949C1B21E02F1508F057C082E00E9406 -:102920009C1B53C0002359F0FF2021F08C2D0E94E6 -:102930007D114BC08D2D8F710E94631A46C0FF2000 -:1029400021F08C2D0E942A1140C08D2D8F710E9484 -:10295000431A3BC08FE0D822C5016C2D4D2D0E943B -:10296000EE010E94181931C0002379F5EFE0DE2254 -:102970004D2D50E042305105B9F0433051053CF443 -:102980004115510559F041305105F9F40AC0433061 -:10299000510569F044305105C1F40CC00E94152264 -:1029A00014C00E94F82111C00E94E3210EC00E94B1 -:1029B000BC210BC08C2D0E94A02107C0FFE0DF22AC -:1029C000C5016C2D4D2D0E946E02992019F10E94B7 -:1029D000DD1A80FD1FC0F50112820E94D71A0E94E5 -:1029E000631AC5010E9454120E94D71A0E94431A0A -:1029F00011C0C5010E94070269817A81802F0E945F -:102A0000E5196C010E9492190E949119002309F4A2 -:102A100086CD83CD2A960FB6F894DEBF0FBECDBF0C -:102A2000CF91DF911F910F91FF90EF90DF90CF90AA -:102A3000BF90AF909F900895DF93CF93CDB7DEB74F -:102A40002B970FB6F894DEBF0FBECDBF342F4F8348 -:102A5000252F588769877A878B87472F582FFE0144 -:102A6000319686E0DF011D928A95E9F76B83398301 -:102A70002A834C835D83432F522F8D819E810E9438 -:102A800059182B960FB6F894DEBF0FBECDBFCF916D -:102A9000DF9108950F931F930091870115C010E0F7 -:102AA000F801EE0FFF1FE00FF11FEE0FFF1FE857B9 -:102AB000FE4F4081518162817381848195810E94A2 -:102AC000C0100F5F1F4F077080918601081739F7FC -:102AD0001F910F9108954091800150918101609163 -:102AE00082017091830180918401909185010E94FF -:102AF000C01008950F931F93CF93DF9380918501AA -:102B000082958F7009F06DC080918201882309F44D -:102B100068C06091870100918601409183015091C6 -:102B200084011091810170918001EA01C095D095D6 -:102B300055C04115510509F44FC01F3F49F480E0CD -:102B400090E07F3F11F481E090E0882309F044C0D9 -:102B5000262F30E0F901EE0FFF1FE20FF31FDF0118 -:102B6000AA0FBB1FA857BE4F11968C91119718172B -:102B700099F58C91781781F5EE0FFF1FE657FE4F00 -:102B80008081882349F513968D919C911497841721 -:102B9000950718F0841B950B02C08C0F9D1F883C75 -:102BA0009105D0F4809185018F70806180938501BB -:102BB000F901EE0FFF1FE20FF31FEE0FFF1FE357A8 -:102BC000FE4F80818F708061808380E891E00E9459 -:102BD00054120E944A1505C06F5F6770601709F0B4 -:102BE000A8CFDF91CF911F910F910895DF92EF92BF -:102BF000FF920F931F93DF93CF93CDB7DEB76B9701 -:102C00000FB6F894DEBF0FBECDBF8C01DC0112966B -:102C1000DC9012974C9111965C9111971396ED9060 -:102C2000FC9014972091830130918401609181017F -:102C3000709180012115310509F4DBC16F3F09F066 -:102C400003C27F3F09F000C2D4C1E216F30640F090 -:102C5000C701821B930B883C910508F0EEC008C0A9 -:102C6000209530952E0D3F1D283C310508F0E5C01C -:102C700080918501807F09F095C06F3F09F0EAC11E -:102C80007F3F09F0E7C115C0741799F4DD2089F47E -:102C9000809185018F708061809385010E946B1502 -:102CA00080E891E00E94541280918501F8018583AB -:102CB000BCC1FD82EC825A834983DB82DE01169619 -:102CC000FE01319685E001900D928150E1F7688513 -:102CD000DE011B96FE01369685E001900D92815033 -:102CE000E1F72C853B858E859F85892B09F451C0A2 -:102CF0002F3F09F0B3C13F3F09F0B0C14AC0FD8288 -:102D0000EC825A834983DB82DE011B96FE013196F9 -:102D100085E001900D928150E1F7FC847B856D8503 -:102D200080918701909186011FC0282F30E0F90122 -:102D3000EE0FFF1FE20FF31FDF01AA0FBB1FA85703 -:102D4000BE4F11968C911197F81651F48C9178170B -:102D500039F4EE0FFF1FE657FE4F80816817C9F464 -:102D60002F5F3F4F822F87708917F9F68DC19F70B3 -:102D700059F0442349F459C19F7031F0D801159698 -:102D80008C91807F09F451C1405E483008F44DC1F8 -:102D900048C1DD2009F449C180918501816080939B -:102DA000850143C16F3F09F05DC17F3F09F05AC102 -:102DB00014C0741791F4DD2081F480918501F8012D -:102DC0008583C8010E945412A0E8B1E0F80186E0B2 -:102DD00001900D928150E1F720C15A834983898186 -:102DE0009A810E94D010882309F41BC1DD2009F4C8 -:102DF00018C130918501832F82958F7090E00297E2 -:102E00009CF09091810120918001FE01709686E0F6 -:102E1000DF011D928A95E9F7998B288BFC8AEB8A52 -:102E20003D8BCF010E945412A0E8B1E0F80186E08A -:102E300001900D928150E1F7EEC080918501807F75 -:102E4000A9F47E2DFD82EC825A834983DB826D2DAD -:102E50008D810E94B11000E811E0C8010E94541257 -:102E600086E0F80111928A95E9F7C0C06F3F09F03A -:102E7000FDC07F3F09F0FAC014C0741791F4DD2043 -:102E800081F480918501D80115968C93C8010E9428 -:102E90005412E0E8F1E086E0DF011D928A95E9F73F -:102EA000BEC05A83498389819A810E94D0108823A9 -:102EB00009F4B7C0DD2009F4B4C030918501832F37 -:102EC00082958F7090E002979CF090918101209103 -:102ED0008001FE01769686E0DF011D928A95E9F772 -:102EE0009F8B2E8BFA8EE98E3B8FCF010E9454125E -:102EF000A0E8B1E0F80186E001900D928150E1F781 -:102F00008AC06F3F09F0B6C07F3F09F0B3C071C0FF -:102F1000E216F30640F0C701821B930B883C910533 -:102F200008F053C008C0209530952E0D3F1D283C59 -:102F3000310508F04AC0DD2009F473C06F3F09F085 -:102F40009FC07F3F09F09CC029C0741739F590914C -:102F5000850190FD1AC0892F82958F70B1F0F8011C -:102F600095838F3031F08F5F8295807F9F70982B93 -:102F70009583C8010E945412A0E8B1E0F80186E0F0 -:102F800001900D928150E1F748C0A0E8B1E0F8014E -:102F900086E001900D928150E1F741C05A83498348 -:102FA00089819A810E94D010882349F0A0E8B1E07D -:102FB000F80186E001900D928150E1F72CC08091DC -:102FC00085018160809385012CC07E2DFD82EC827D -:102FD0005A834983DB826D2D8D810E94B110E0E818 -:102FE000F1E086E0DF011D928A95E9F70E946B15FA -:102FF0001CC0DD20B1F05A83498389819A810E94E7 -:10300000D010882371F0A0E8B1E0F80186E00190CB -:103010000D928150E1F70E947A150E946B1581E0B4 -:1030200005C0C8010E945412FACF80E06B960FB61B -:10303000F894DEBF0FBECDBFCF91DF911F910F91EE -:10304000FF90EF90DF90089580918201882309F42A -:1030500058CFFBCD651709F02CCE16CE613009F4A0 -:1030600098CE4DCE651709F0B8CEA3CE651709F0FE -:1030700018CF03CF80918201882309F0BACF48CFBF -:10308000651709F08BCF61CF5A83498389819A8173 -:103090000E94DA19482F892F82958F70282F30E0EF -:1030A000223031050CF463CE243031050CF0B9CF59 -:1030B00063CE0F931F93DF93CF93CDB7DEB72C97DB -:1030C0000FB6F894DEBF0FBECDBF4F835887698718 -:1030D0007A878B879C878E01095F1F4FC8010E94EA -:1030E000F6158823D9F028853F818A859B85892B11 -:1030F00009F46BC02F3F49F480E090E03F3F11F4AA -:1031000081E090E0882309F060C04F81588569858F -:103110007A858B859C850E94C01057C0DE01119670 -:10312000F80186E001900D928150E1F7F981EA8182 -:103130004C815D814115510509F447C0EF3F09F00D -:103140004CC0FF3F09F049C040C0F983EA835D836A -:103150004C83F901EE0FFF1FE20FF31FEE0FFF1F6D -:10316000E857FE4FDE01119686E00D9001928150E6 -:10317000E1F7609386010E944A1527C0919FC00124 -:10318000112488579E4F0E94F615882309F445C0E4 -:103190008091870190E0FC01EE0FFF1FE80FF91FFF -:1031A000EE0FFF1FE857FE4F40815181628173810E -:1031B000848195810E94C0108091870190E00196E2 -:1031C000877090708093870101C016E0909187010D -:1031D00080918601981791F620C080918601282F52 -:1031E00030E02F5F3F4FB901677070702150304061 -:1031F0008091870190E06817790709F0A6CF0E94B7 -:1032000017111092860110928701E0E8F1E086E044 -:10321000DF011D928A95E9F7D8CF2C960FB6F89466 -:10322000DEBF0FBECDBFCF91DF911F910F910895EB -:10323000CF92DF92EF92FF921F93CF93DF93EC0137 -:10324000009709F466C010E090EAC92E9FE0D92EDD -:1032500081E0E82EF12CFE0121969491943748F4F8 -:10326000943008F044C0913079F0923009F051C0A8 -:103270001BC0953709F437C0953750F1892F845812 -:10328000803708F046C037C0FE0121969491892FFF -:10329000805E883060F597708E2D01C0880F9A95FA -:1032A000EAF70E94461B0FC0FE0121969491892FD8 -:1032B000805E883058F497708E2D01C0880F9A95E3 -:1032C000EAF70E944C1B0E946B1B19C0892F15C086 -:1032D000FE01249104C0C6010197F1F72150222379 -:1032E000D1F721960CC0FE012196149108C0892FB8 -:1032F0000E947D1104C0892F8F770E942A11212FEF -:1033000004C0C6010197F1F72150222309F4A3CF8D -:10331000F8CFDF91CF911F91FF90EF90DF90CF908A -:10332000089508950895AF92BF92DF92EF92FF92B1 -:103330000F931F93CF93DF935C01E090B801F0905F -:10334000B9010091BA011091BB018091BC0190912B -:10335000BD01A091BE01B091BF01E82AF92A0A2B54 -:103360001B2BCFE1D0E0DC2ED801C7010C2E04C00E -:10337000B695A795979587950A94D2F78170907026 -:10338000892B39F08C2FB5010E94D304813091052F -:1033900031F421978FEFCF3FD80729F7DD248D2D0A -:1033A000DF91CF911F910F91FF90EF90DF90BF9031 -:1033B000AF9008950F931F938C010E949319B80149 -:1033C0000E94D3041F910F910895CB010E94DA1936 -:1033D00008956093BC017093BD018093BE019093EA -:1033E000BF010E94021108959B01AC016091BC01D4 -:1033F0007091BD018091BE019091BF01622773273A -:10340000842795270E94E91908959B01AC016091DA -:10341000BC017091BD018091BE019091BF016223FA -:103420007323842395230E94E91908959B01AC011D -:103430006091BC017091BD018091BE019091BF016E -:10344000622B732B842B952B0E94E919089521E0A0 -:1034500030E040E050E004C0220F331F441F551FEE -:103460008A95D2F78091BC019091BD01A091BE01D7 -:10347000B091BF01282739274A275B27CA01B90124 -:103480000E94E919089521E030E040E050E004C0D6 -:10349000220F331F441F551F8A95D2F72095309570 -:1034A000409550958091BC019091BD01A091BE01C5 -:1034B000B091BF01282339234A235B23CA01B901F4 -:1034C0000E94E919089521E030E040E050E004C096 -:1034D000220F331F441F551F8A95D2F78091BC01DC -:1034E0009091BD01A091BE01B091BF01282B392B55 -:1034F0004A2B5B2BCA01B9010E94E919089521E00A -:1035000030E040E050E004C0220F331F441F551F3D -:103510008A95D2F7CA01B9010E94E919089560E0BD -:1035200070E080E090E00E94E91908956093B8018E -:103530007093B9018093BA019093BB010E9402116C -:1035400008959B01AC016091B8017091B90180911F -:10355000BA019091BB0162277327842795270E94A7 -:10356000961A08959B01AC016091B8017091B90160 -:103570008091BA019091BB01622373238423952328 -:103580000E94961A08959B01AC016091B801709158 -:10359000B9018091BA019091BB01622B732B842BEE -:1035A000952B0E94961A08950E94961A089580916C -:1035B000CC0185958595859508958091CC0187707E -:1035C00008958091CC01877009F081E00895382F2B -:1035D000A0910C01B0910D01FD0120E08FEF9281CF -:1035E000931791F08F3F19F4992309F4822F2F5FDD -:1035F00031962630A1F78F3F39F0992787FD9095B6 -:10360000A80FB91F12963C930895982F20E030E040 -:10361000E0910C01F0910D01E20FF31F82818917F7 -:1036200009F412822F5F3F4F2630310589F7089544 -:1036300081E090E0E0910C01F0910D01E80FF91F9D -:103640001082019688309105A9F708959091C801DC -:10365000982B9093C801089580959091C801982364 -:103660009093C80108951092C80108959091CB01DC -:10367000982B9093CB01089580959091CB0198233E -:103680009093CB0108951092CB0108959091CA01B7 -:10369000982B9093CA01089580959091CA01982320 -:1036A0009093CA0108951092CA0108958093C901A8 -:1036B00008951092C9010895E0910C01F0910D0157 -:1036C00020E091E0818181112F5F9F5F31969830DA -:1036D000C9F7822F0895E0910C01F0910D018091BE -:1036E000C8018083E0910C01F0910D0180819091DF -:1036F000CB01892B8083E0910C01F0910D01808139 -:103700009091CA01892B80839091C901992369F016 -:10371000E0910C01F0910D018081892B80830E9442 -:103720005C1B882311F00E94591B80910C01909121 -:103730000D010E94AC0F08952091CC01482F4095B7 -:1037400042234093CC01842F877071F430E0842FA2 -:10375000992787FD90952817390731F0842F859593 -:10376000859585950E94431A0895982F990F990F72 -:10377000990F962B9093CC010E94631A0895089597 -:1037800008951F920F920FB60F9211248F939F935B -:10379000AF93BF938091CE01882399F48091CF019C -:1037A0009091D001A091D101B091D2014196A11D7B -:1037B000B11D8093CF019093D001A093D101B0931C -:1037C000D201BF91AF919F918F910F900FBE0F903B -:1037D0001F9018950E94171180E00E9423020E94FA -:1037E0002A220E949F0F0E94680508958091E2019D -:1037F000843039F11092CE0120E488E190E00FB6D8 -:10380000F894A895809360000FBE2093600080E03C -:103810000E94230280E00E94680583B7817F846054 -:1038200083BF83B7816083BF7894889583B78E7F89 -:1038300083BF88E10FB6F894809360001092600017 -:103840000FBE089580E00E9423020E94BF1B0E94C9 -:1038500023070E94C01B80E00E946B05892B81F426 -:1038600081E00E946B05892B59F482E00E946B0570 -:10387000892B31F483E00E946B0520E0892B09F04D -:1038800021E0822F089582E084BD93E095BD9AEFF8 -:1038900097BD80936E0008958FB7F8942091CF0163 -:1038A0003091D0014091D1015091D2018FBFC90117 -:1038B0000895EF92FF920F931F93BC018FB7F89476 -:1038C000E090CF01F090D0010091D1011091D20190 -:1038D0008FBFA801970140705070CB01A0E0B0E00D -:1038E000281739074A075B0720F09701261B370B7B -:1038F00005C09B01209530952E0D3F1DC9011F91DC -:103900000F91FF90EF9008951F920F920FB60F92B4 -:1039100011248F939F93AF93BF938091CF01909188 -:10392000D001A091D101B091D2010196A11DB11D8C -:103930008093CF019093D001A093D101B093D20195 -:10394000BF91AF919F918F910F900FBE0F901F90DD -:1039500018950E94850CF89480E29EE420E931E0FD -:10396000F9013197F1F70197D9F787E090EBA7E0DC -:10397000B0EB8093ED019093EE01A093EF01B09333 -:10398000F0012CE088E190E00FB6F894A8958093C0 -:1039900060000FBE20936000FFCF0E94051D8823AA -:1039A00011F40E94101D0E94001D8093CD010E9401 -:1039B000F61C8093EB010E94FB1C90E0A0E0B0E0BD -:1039C000BC01CD010E94D41A0895682F86E090E0D2 -:1039D0000E9493230895682F84E090E00E9493232F -:1039E000089586E090E00E948523089584E090E0A9 -:1039F0000E948523089583E090E00E948523089526 -:103A000082E090E00E948523089580E090E00E948B -:103A10008D2320E08D5E9E4F09F421E0822F0895D2 -:103A200080E090E06DEE7EEF0E94A52382E090E0C2 -:103A300060E00E94932383E090E060E00E94932383 -:103A400084E090E060E00E94932385E090E060E0F5 -:103A50000E94932386E090E060E00E949323089503 -:103A60008091D90180FF0BC09091100185E0989F53 -:103A7000C0011124959587959595879530C081FF54 -:103A800009C09091100185E0989FC001112495957F -:103A9000879525C082FF03C0909110010DC08091D1 -:103AA000D801882319F485E090E008956091110110 -:103AB00090911001861728F085E0989FC00111248D -:103AC0000EC0899F90011124C901880F991F880F8A -:103AD000991F820F931F70E00E945E23CB018038F4 -:103AE000910510F08FE70895009709F481E008959B -:103AF0008091D90180FF05C080911201869586953D -:103B000018C081FF04C080911201869512C082FF07 -:103B100003C0809112010DC02091D801222319F415 -:103B200081E090E0089560911301809112012617C1 -:103B300010F090E007C0289FC001112470E00E949F -:103B40005E23CB018038910510F08FE70895009730 -:103B500009F481E00895803F21F40E94301D819591 -:103B600004C0813F29F40E94301D8093D50108953F -:103B7000823F21F40E94301D819504C0833F29F4C7 -:103B80000E94301D8093D4010895893F19F40E944A -:103B9000781D05C08A3F31F40E94781D819580937D -:103BA000D60108958B3F21F40E94781D819504C0B1 -:103BB0008C3F29F40E94781D8093D7010895843F9B -:103BC00021F48091D301816017C0853F21F4809159 -:103BD000D301826011C0863F21F48091D3018460BB -:103BE0000BC0873F21F48091D301886005C0883FD6 -:103BF00031F48091D30180618093D30108958D3F8A -:103C000021F48091D901816005C08E3F31F480910B -:103C1000D90182608093D90108958F3F29F4809162 -:103C2000D90184608093D9010895803F29F480915F -:103C3000D50187FF6FC007C0813F41F48091D50156 -:103C400018160CF067C01092D50164C0823F29F4A9 -:103C50008091D40187FF5EC007C0833F41F480910B -:103C6000D40118160CF056C01092D40153C0893FED -:103C700029F48091D60118163CF04CC08A3F39F4E3 -:103C80008091D60187FF46C01092D60143C08B3F7A -:103C900029F48091D70187FF3DC006C08C3F39F4DD -:103CA0008091D7011816B4F51092D70133C0843F24 -:103CB00021F48091D3018E7F05C0853F31F480913E -:103CC000D3018D7F8093D30125C0863F21F480915D -:103CD000D3018B7FF7CF873F21F48091D301877F7A -:103CE000F1CF883F21F48091D3018F7EEBCF8D3FC0 -:103CF00021F48091D9018E7F0BC08E3F21F48091F9 -:103D0000D9018D7F05C08F3F29F48091D9018B7F28 -:103D10008093D9018091D401882371F48091D501D9 -:103D2000882351F48091D601882331F48091D70102 -:103D3000882311F41092D8010895E3EDF1E085E0B5 -:103D4000DF011D928A95E9F71092D8011092D901EE -:103D5000089583ED91E00E94B70F0E944C1C909350 -:103D6000DB018093DA0108951F938091DA0190912D -:103D7000DB010E94591CAC012091D801222321F0C3 -:103D800080910F0190E006C090910E018AE0989F0B -:103D9000C00111244817590708F485C09091D40137 -:103DA000992369F48091D501882349F48091D60143 -:103DB000882329F48091D701882309F474C02F3F08 -:103DC00019F02F5F2093D801191624F40E94301D9A -:103DD0008093D4018091D40187FF05C00E94301DDB -:103DE00081958093D4018091D501181624F40E9406 -:103DF000301D8093D5018091D50187FF05C00E94B9 -:103E0000301D81958093D5016091D401662339F1ED -:103E10001091D501112319F1772767FD7095872F30 -:103E2000972F0E946F2223E333E343E35FE30E9473 -:103E3000D3220E943C226093D401612F772767FD33 -:103E40007095872F972F0E946F2223E333E343E37C -:103E50005FE30E94D3220E943C226093D5018091AF -:103E6000D601181624F40E94781D8093D601809103 -:103E7000D60187FF05C00E94781D81958093D601E9 -:103E80008091D701181624F40E94781D8093D701E1 -:103E90008091D70187FF05C00E94781D819580938E -:103EA000D7010E94A91E1F91089580E0089580E027 -:103EB0000895833099F1843030F4813069F0823094 -:103EC00009F06FC01AC0853009F44AC08530B8F1D6 -:103ED000863009F066C055C020910E01822F90E017 -:103EE000860F911D8F3F910520F4260F20930E0120 -:103EF00008958FEF80930E01089520910F01822F76 -:103F000090E0860F911D8F3F910520F4260F20939E -:103F10000F0108958FEF80930F01089520911001F4 -:103F2000822F90E0860F911D8F3F910520F4260F80 -:103F30002093100108958FEF809310010895209130 -:103F40001101822F90E0860F911D8F3F910520F483 -:103F5000260F2093110108958FEF8093110108958A -:103F600020911201822F90E0860F911D8F3F9105C5 -:103F700020F4260F2093120108958FEF80931201F1 -:103F8000089520911301822F90E0860F911D8F3F9D -:103F9000910520F4260F2093130108958FEF80934D -:103FA00013010895833031F1843030F4813061F0B1 -:103FB000823009F04AC013C0853091F1853028F174 -:103FC000863009F042C037C080910E01681720F496 -:103FD000861B80930E01089510920E010895809122 -:103FE0000F01681720F4861B80930F01089510922B -:103FF0000F01089580911001681720F4861B8093AB -:104000001001089510921001089580911101681710 -:1040100020F4861B809311010895109211010895D8 -:1040200080911201681720F4861B80931201089575 -:1040300010921201089580911301681720F4861BD5 -:1040400080931301089510921301089521E030E048 -:1040500040E050E004C0220F331F441F551F8A95D3 -:10406000D2F7CA01B9010E94D41A0E94171108950B -:104070008732F8F48E3108F08AC08E3009F463C0BC -:104080008F3048F4873009F445C08B3009F486C07E -:10409000863039F528C0863109F480C0873118F49C -:1040A0008031F9F45CC0893109F478C08B31C9F4EE -:1040B00040C0883309F472C0893348F4893209F466 -:1040C00068C0853309F465C0873259F462C083340F -:1040D00009F45FC0843418F48A3318F056C0883469 -:1040E00059F080E008958091CD01807F8093CD01CB -:1040F00081E08093DC0108950E94171180E197E22E -:1041000020E931E0F9013197F1F70197D9F70E94E1 -:10411000A91C42C09091CD01892F809581709E7F0E -:10412000982B882311F09E6001C0917F9093CD0160 -:1041300033C08091CD01982F969590959170292F3D -:10414000220F8D7F19C08091CD01982F969596955D -:1041500090959170292F220F220F8B7F0DC0809197 -:10416000CD01982F96959695969590959170292FBB -:10417000220F220F220F877F822B8093CD0199235C -:1041800069F081608093CD0107C0895303C08D51D0 -:1041900001C080E00E94262081E0089581E008951A -:1041A0001F93182F8091DC01813079F0813020F04D -:1041B000823009F0BCC037C0E0910C01F0910D01D4 -:1041C0008081823209F0B5C007C0E0910C01F09106 -:1041D0000D018081823249F4812F0E94551F88236E -:1041E000F9F4812F0E943820A5C0812F0E94571F0B -:1041F0008823B1F4143161F0153128F41B3081F0BB -:10420000103141F40AC0193219F0183319F408C0FA -:104210001092DC0180E090E08DC082E08093DC01B0 -:1042200081E090E087C0193201F11A3270F4143144 -:10423000E1F0153120F4173009F064C065C0812F1A -:104240008E51863008F05EC01BC01E3409F455C084 -:104250001F3420F41B3409F055C049C0113509F44E -:1042600042C0123509F04EC03AC08091DD0188236A -:1042700019F01092DD0146C081E08093DC015AC044 -:104280001232F9F0133260F41F3199F0103218F441 -:104290001E3109F510C0103281F01132E1F40FC067 -:1042A000143299F0143278F0153289F0163299F4FC -:1042B00010C082E011C081E00FC083E00DC084E037 -:1042C0000BC085E009C086E007C087E005C088E034 -:1042D00003C089E001C080E08093DD0113C08091BC -:1042E000DD0161E007C08091DD0161E009C08091DE -:1042F000DD016AE00E94591F05C08091DD016AE07E -:104300000E94D21F81E016C08EE180930E0182E3ED -:1043100080930F018AE08093100184E18093110162 -:1043200088E08093120188E280931301EBCF109212 -:10433000DC0180E01F9108958091EC01869508953D -:104340009091EC01292F26952827220F9170922B0E -:104350009093EC0120E09E7F09F021E08091EC0138 -:104360008E7F822B8093EC010E94E51C8091EC01F2 -:1043700086950E94230208958091EC01282F2695AE -:104380002F5F2F77922F990F8170892B8093EC01EB -:1043900030E0243031051CF081708093EC0190E016 -:1043A0008091EC018E7F09F091E08091EC018E7F8D -:1043B000892B8093EC010E94E51C8091EC0186958D -:1043C0000E94230208958091EC01982F909591709E -:1043D0008E7F892B8093EC010E94E51C8091EC017B -:1043E00080FD02C080E001C086950E9423020895EE -:1043F0008091EC01982F969591F09158990F8170CA -:10440000892B8093EC0190E08E7F09F091E0809100 -:10441000EC018E7F892B8093EC010E94E51C80913A -:10442000EC0186950E94230208952091EC012695C7 -:10443000822F90E0039744F4822F8F5F880F816072 -:104440008093EC010E94E51C8091EC0186950E940E -:10445000230208950E94051D882311F40E94101D57 -:104460000E94F11C8093EC0180FD02C080E001C03D -:1044700086950E942302089504D06894B1118DC0DE -:10448000089570D088F09F5790F0B92F9927B751B1 -:10449000A0F0D1F0660F771F881F991F1AF0BA9508 -:1044A000C9F712C0B13081F077D0B1E0089574C07F -:1044B000672F782F8827B85F39F0B93FCCF38695FE -:1044C00077956795B395D9F73EF49095809570955B -:1044D00061957F4F8F4F9F4F0895E89409C097FBD8 -:1044E0003EF490958095709561957F4F8F4F9F4FCB -:1044F0009923A9F0F92F96E9BB279395F69587950F -:1045000077956795B795F111F8CFFAF4BB0F11F4D1 -:1045100060FF1BC06F5F7F4F8F4F9F4F16C0882378 -:1045200011F096E911C0772321F09EE8872F762FAE -:1045300005C0662371F096E8862F70E060E02AF0EF -:104540009A95660F771F881FDAF7880F96958795DB -:1045500097F9089557FD9058440F551F59F05F3F44 -:1045600071F04795880F97FB991F61F09F3F79F095 -:1045700087950895121613061406551FF2CF469517 -:10458000F1DF08C0161617061806991FF1CF869599 -:104590007105610508940895E894BB27662777277D -:1045A000CB0197F908950BD078C069D028F06ED070 -:1045B00018F0952309F05AC05FC01124EECFCADF6E -:1045C000A0F3959FD1F3950F50E0551F629FF00126 -:1045D000729FBB27F00DB11D639FAA27F00DB11D7F -:1045E000AA1F649F6627B00DA11D661F829F222708 -:1045F000B00DA11D621F739FB00DA11D621F839F8F -:10460000A00D611D221F749F3327A00D611D231F64 -:10461000849F600D211D822F762F6A2F11249F57B2 -:1046200050408AF0E1F088234AF0EE0FFF1FBB1FD5 -:10463000661F771F881F91505040A9F79E3F510574 -:1046400070F014C0AACF5F3FECF3983EDCF3869580 -:1046500077956795B795F795E7959F5FC1F7FE2B1F -:10466000880F911D9695879597F9089597F99F67FB -:1046700080E870E060E008959FEF80EC08950024EA -:104680000A941616170618060906089500240A94B7 -:1046900012161306140605060895092E0394000C3D -:1046A00011F4882352F0BB0F40F4BF2B11F460FFCC -:1046B00004C06F5F7F4F8F4F9F4F089597FB092E68 -:1046C00007260AD077FD04D00CD006D000201AF4BB -:1046D000709561957F4F0895F6F7909581959F4F5E -:1046E0000895AA1BBB1B51E107C0AA1FBB1FA61739 -:1046F000B70710F0A61BB70B881F991F5A95A9F78B -:1047000080959095BC01CD010895F999FECF92BD99 -:1047100081BDF89A992780B50895A8E1B0E042E0FC -:1047200050E00C94AD23262FF999FECF92BD81BDA8 -:10473000F89A019700B4021639F01FBA20BD0FB6DF -:10474000F894FA9AF99A0FBE08950196272F0E94BD -:1047500094230C949323DC01CB01FC01F999FECF47 -:1047600006C0F2BDE1BDF89A319600B40D924150F9 -:0A4770005040B8F70895F894FFCF09 -:10477A00050175080A09E408AE087808C0011E3266 -:10478A000A14082840004500250026006100600040 -:10479A002000370064006500660067004400460098 -:1047AA002400470040004500250026006100600003 -:1047BA002000370064006500660067004400460078 -:0447CA002400470080 -:00000001FF diff --git a/keyboard/planck/keymaps/Jacob/readme.md b/keyboard/planck/keymaps/Jacob/readme.md deleted file mode 100644 index 2a4be4ebce..0000000000 --- a/keyboard/planck/keymaps/Jacob/readme.md +++ /dev/null @@ -1 +0,0 @@ -Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck. \ No newline at end of file diff --git a/keyboard/planck/keymaps/alexey.c b/keyboard/planck/keymaps/alexey.c deleted file mode 100644 index 89af4112c6..0000000000 --- a/keyboard/planck/keymaps/alexey.c +++ /dev/null @@ -1,51 +0,0 @@ -#include "keymap_common.h" -#include "planck.h" -#include "backlight.h" - -#define _QW 0 -#define _LW 1 -#define _RS 2 - -// This layout tries to imitate the Atreus keyboard - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QW] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MO(_LW)}, - {KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS}, - {M(0), KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_SPC, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT, KC_TRNS} -}, -[_RS] = { /* RAISE */ - {KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS}, - {KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS}, - {KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_EQL, KC_TRNS} -}, -[_LW] = { /* LOWER */ - {KC_TRNS, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_DELETE, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_F4, KC_F5, KC_F6, KC_F11, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_TRNS} -} -}; - -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); - backlight_step(); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; - diff --git a/keyboard/planck/keymaps/alexey/alexey.c b/keyboard/planck/keymaps/alexey/alexey.c new file mode 100644 index 0000000000..89af4112c6 --- /dev/null +++ b/keyboard/planck/keymaps/alexey/alexey.c @@ -0,0 +1,51 @@ +#include "keymap_common.h" +#include "planck.h" +#include "backlight.h" + +#define _QW 0 +#define _LW 1 +#define _RS 2 + +// This layout tries to imitate the Atreus keyboard + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MO(_LW)}, + {KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS}, + {M(0), KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, KC_SPC, KC_SPC, MO(_RS), KC_MINS, KC_QUOT, KC_ENT, KC_TRNS} +}, +[_RS] = { /* RAISE */ + {KC_TRNS, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS}, + {KC_TRNS, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS}, + {KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_EQL, KC_TRNS} +}, +[_LW] = { /* LOWER */ + {KC_TRNS, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, + {KC_TRNS, KC_DELETE, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_F4, KC_F5, KC_F6, KC_F11, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, KC_TRNS} +} +}; + +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); + backlight_step(); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; + diff --git a/keyboard/planck/keymaps/angerthosenear.c b/keyboard/planck/keymaps/angerthosenear.c deleted file mode 100644 index cdf60632e4..0000000000 --- a/keyboard/planck/keymaps/angerthosenear.c +++ /dev/null @@ -1,50 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {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_ENT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, - {KC_LCTL, KC_LGUI, KC_LALT, BL_STEP, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* WASD + NumPad */ - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_PMNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PPLS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PDOT, KC_PENT, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_SPC, KC_P0, FUNC(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -[2] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS}, - {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_DEL}, - {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} -} -}; - - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -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: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/angerthosenear/angerthosenear.c b/keyboard/planck/keymaps/angerthosenear/angerthosenear.c new file mode 100644 index 0000000000..cdf60632e4 --- /dev/null +++ b/keyboard/planck/keymaps/angerthosenear/angerthosenear.c @@ -0,0 +1,50 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {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_ENT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, + {KC_LCTL, KC_LGUI, KC_LALT, BL_STEP, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* WASD + NumPad */ + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_PMNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PPLS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PDOT, KC_PENT, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_SPC, KC_P0, FUNC(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +[2] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS}, + {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* LOWER */ + {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_DEL}, + {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} +} +}; + + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; + +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: + return MACRODOWN(T(CM_T), END); + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/austin.c b/keyboard/planck/keymaps/austin.c deleted file mode 100644 index 49fc98a587..0000000000 --- a/keyboard/planck/keymaps/austin.c +++ /dev/null @@ -1,50 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, 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, KC_ENT}, - {BL_STEP, KC_LGUI, KC_LALT, KC_LCTL, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, 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, KC_ENT}, - {KC_FN3, KC_LGUI, KC_LALT, KC_LCTL, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* RAISE */ - {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, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -} -}; - - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -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: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/austin/austin.c b/keyboard/planck/keymaps/austin/austin.c new file mode 100644 index 0000000000..49fc98a587 --- /dev/null +++ b/keyboard/planck/keymaps/austin/austin.c @@ -0,0 +1,50 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, 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, KC_ENT}, + {BL_STEP, KC_LGUI, KC_LALT, KC_LCTL, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, 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, KC_ENT}, + {KC_FN3, KC_LGUI, KC_LALT, KC_LCTL, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[2] = { /* RAISE */ + {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, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* LOWER */ + {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, + {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +} +}; + + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; + +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: + return MACRODOWN(T(CM_T), END); + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/bone2planck.c b/keyboard/planck/keymaps/bone2planck.c deleted file mode 100644 index a99e7719f9..0000000000 --- a/keyboard/planck/keymaps/bone2planck.c +++ /dev/null @@ -1,112 +0,0 @@ - -#include "planck.h" -#ifdef BACKLIGHT_ENABLE -#include "backlight.h" -#endif -#include "..\..\quantum\keymap_extras\keymap_german.h" - -/* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout. - It has Umlauts and "ß" as it is optimized for a mix of German & English. - My favourite features are the placement of the special characters often used for programming right on the home row - and the number & navigation block combo, so you never have to move your hands from their home position. - - Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone -*/ - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - /* Bone2 - * ,-----------------------------------------------------------------------------------. - * | Q | J | D | U | A | X | P | H | L | M | W | ẞ | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | M1 | C | T | I | E | O | B | N | R | S | G | M1 | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | - * `-----------------------------------------------------------------------------------' - */ - [0] = { - { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS }, - { MO(1), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, MO(1) }, - { DE_S, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, DE_S }, - { KC_LCTL, KC_LGUI, KC_LALT, MO(3), MO(2), KC_SPC, KC_SPC, MO(2), MO(3), KC_ESC, KC_TAB, KC_ENT } - }, - - /* M1 Special Characters - * ,-----------------------------------------------------------------------------------. - * | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | M1 | \ | / | { | } | * | ? | ( | ) | - | : | M1 | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | # | $ | | | ~ | € | + | % | " | ' | ; | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | - * `-----------------------------------------------------------------------------------' - */ - [1] = { - { DE_RING, DE_AT, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, KC_NO }, - { KC_TRNS, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, KC_TRNS }, - { KC_NO , DE_HASH, DE_DLR, DE_PIPE, DE_TILD, DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, KC_NO }, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } - }, - - /* Navigation & Number Blocks - * ,-----------------------------------------------------------------------------------. - * | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | Home | Lft | Down | Right| End | . | 4 | 5 | 6 | , | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| | Tab | Ins | Enter| | 0 | 1 | 2 | 3 | ; |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | - * `-----------------------------------------------------------------------------------' - */ - [2] = { - { KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_NO }, - { KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_NO }, - { DE_S, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, KC_0, DE_1, DE_2, DE_3, DE_SCLN, DE_S }, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } - }, - - /* Function & Media Keys - * ,-----------------------------------------------------------------------------------. - * | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | GUI | Alt | M3 | | Space | | M3 | Esc | Tab |Enter | - * `-----------------------------------------------------------------------------------' - */ - [3] = { - { KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO }, - { KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO }, - { KC_TRNS, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, KC_TRNS}, - { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} - } -}; - -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/bone2planck/bone2planck.c b/keyboard/planck/keymaps/bone2planck/bone2planck.c new file mode 100644 index 0000000000..a99e7719f9 --- /dev/null +++ b/keyboard/planck/keymaps/bone2planck/bone2planck.c @@ -0,0 +1,112 @@ + +#include "planck.h" +#ifdef BACKLIGHT_ENABLE +#include "backlight.h" +#endif +#include "..\..\quantum\keymap_extras\keymap_german.h" + +/* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout. + It has Umlauts and "ß" as it is optimized for a mix of German & English. + My favourite features are the placement of the special characters often used for programming right on the home row + and the number & navigation block combo, so you never have to move your hands from their home position. + + Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone +*/ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Bone2 + * ,-----------------------------------------------------------------------------------. + * | Q | J | D | U | A | X | P | H | L | M | W | ẞ | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | M1 | C | T | I | E | O | B | N | R | S | G | M1 | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [0] = { + { DE_Q, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_SS }, + { MO(1), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, MO(1) }, + { DE_S, DE_F, DE_V, DE_UE, DE_AE, DE_OE, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, DE_S }, + { KC_LCTL, KC_LGUI, KC_LALT, MO(3), MO(2), KC_SPC, KC_SPC, MO(2), MO(3), KC_ESC, KC_TAB, KC_ENT } + }, + + /* M1 Special Characters + * ,-----------------------------------------------------------------------------------. + * | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | M1 | \ | / | { | } | * | ? | ( | ) | - | : | M1 | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | # | $ | | | ~ | € | + | % | " | ' | ; | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [1] = { + { DE_RING, DE_AT, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LESS, DE_MORE, DE_EQL, DE_AMPR, KC_NO }, + { KC_TRNS, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QST, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, KC_TRNS }, + { KC_NO , DE_HASH, DE_DLR, DE_PIPE, DE_TILD, DE_EURO, DE_PLUS, DE_PERC, DE_DQOT, DE_QUOT, DE_SCLN, KC_NO }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } + }, + + /* Navigation & Number Blocks + * ,-----------------------------------------------------------------------------------. + * | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | Home | Lft | Down | Right| End | . | 4 | 5 | 6 | , | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| | Tab | Ins | Enter| | 0 | 1 | 2 | 3 | ; |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [2] = { + { KC_NO, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_NO, DE_7, DE_8, DE_9, KC_NO, KC_NO }, + { KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, DE_DOT, DE_4, DE_5, DE_6, DE_COMM, KC_NO }, + { DE_S, KC_NO, KC_TAB, KC_INS, KC_ENT, KC_NO, KC_0, DE_1, DE_2, DE_3, DE_SCLN, DE_S }, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS } + }, + + /* Function & Media Keys + * ,-----------------------------------------------------------------------------------. + * | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | GUI | Alt | M3 | | Space | | M3 | Esc | Tab |Enter | + * `-----------------------------------------------------------------------------------' + */ + [3] = { + { KC_NO, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_NO, KC_NO, KC_F7, KC_F8, KC_F9, KC_F12, KC_NO }, + { KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, DE_SQ3, KC_F4, KC_F5, KC_F6, KC_F11, KC_NO }, + { KC_TRNS, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, DE_SQ2, KC_F1, KC_F2, KC_F3, KC_F10, KC_TRNS}, + { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + } +}; + +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/brandon.c b/keyboard/planck/keymaps/brandon.c deleted file mode 100644 index 2b89f86db2..0000000000 --- a/keyboard/planck/keymaps/brandon.c +++ /dev/null @@ -1,134 +0,0 @@ -// 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/brandon/brandon.c b/keyboard/planck/keymaps/brandon/brandon.c new file mode 100644 index 0000000000..2b89f86db2 --- /dev/null +++ b/keyboard/planck/keymaps/brandon/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/charlie.c b/keyboard/planck/keymaps/charlie.c deleted file mode 100644 index 88f454d789..0000000000 --- a/keyboard/planck/keymaps/charlie.c +++ /dev/null @@ -1,54 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = { /* Native */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, FUNC(2)}, - {KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_TAB, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_DEL, KC_LCTL, KC_NO, KC_LSFT, KC_LALT, KC_SPC, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, - [1] = { /* QWERTY->PHOTOSHOP */ - {KC_DELETE, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, FUNC(1)}, - {KC_O, KC_G, KC_S, KC_U, KC_T, FUNC(27), KC_F21, KC_F10, KC_F11, KC_F7, KC_F8, KC_F9}, - {KC_TAB, FUNC(4), FUNC(5), FUNC(6), KC_F1, FUNC(7), KC_F18, KC_F19, KC_F23, KC_F20, KC_F22, FUNC(9)}, - {KC_COMM, KC_DOT, KC_R, FUNC(11), FUNC(3), KC_SPC, FUNC(12), KC_F2, FUNC(8), KC_F3, KC_F14} - }, - [2] = { /* 2: FUNC(3 PHOTOSHOP */ - {KC_ESC, FUNC(25), FUNC(26), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, FUNC(19), FUNC(20), FUNC(21)}, - {KC_C, KC_NO, FUNC(22), FUNC(5), KC_NO, FUNC(23), KC_NO, KC_NO, KC_NO, KC_NO, FUNC(13), KC_NO}, - {FUNC(14), FUNC(15), FUNC(16), FUNC(17), FUNC(3), KC_SPC, FUNC(18), KC_NO, KC_NO, KC_F24, KC_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_MOMENTARY(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_LCTL, KC_F2), // stroke - [15] = ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_F2), // stroke layer - [16] = ACTION_MODS_KEY(MOD_LCTL, KC_0), // zoom 0 - [17] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_H), // HSV sliders - [18] = ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_S), // save as - [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_LCTL, KC_BSPC), // KC_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 - -}; diff --git a/keyboard/planck/keymaps/charlie/charlie.c b/keyboard/planck/keymaps/charlie/charlie.c new file mode 100644 index 0000000000..88f454d789 --- /dev/null +++ b/keyboard/planck/keymaps/charlie/charlie.c @@ -0,0 +1,54 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { /* Native */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, FUNC(2)}, + {KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_TAB, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {KC_DEL, KC_LCTL, KC_NO, KC_LSFT, KC_LALT, KC_SPC, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + [1] = { /* QWERTY->PHOTOSHOP */ + {KC_DELETE, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, FUNC(1)}, + {KC_O, KC_G, KC_S, KC_U, KC_T, FUNC(27), KC_F21, KC_F10, KC_F11, KC_F7, KC_F8, KC_F9}, + {KC_TAB, FUNC(4), FUNC(5), FUNC(6), KC_F1, FUNC(7), KC_F18, KC_F19, KC_F23, KC_F20, KC_F22, FUNC(9)}, + {KC_COMM, KC_DOT, KC_R, FUNC(11), FUNC(3), KC_SPC, FUNC(12), KC_F2, FUNC(8), KC_F3, KC_F14} + }, + [2] = { /* 2: FUNC(3 PHOTOSHOP */ + {KC_ESC, FUNC(25), FUNC(26), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO}, + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, FUNC(19), FUNC(20), FUNC(21)}, + {KC_C, KC_NO, FUNC(22), FUNC(5), KC_NO, FUNC(23), KC_NO, KC_NO, KC_NO, KC_NO, FUNC(13), KC_NO}, + {FUNC(14), FUNC(15), FUNC(16), FUNC(17), FUNC(3), KC_SPC, FUNC(18), KC_NO, KC_NO, KC_F24, KC_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_MOMENTARY(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_LCTL, KC_F2), // stroke + [15] = ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_F2), // stroke layer + [16] = ACTION_MODS_KEY(MOD_LCTL, KC_0), // zoom 0 + [17] = ACTION_MODS_KEY(MOD_LSFT | MOD_LCTL, KC_H), // HSV sliders + [18] = ACTION_MODS_KEY(MOD_LCTL | MOD_LSFT, KC_S), // save as + [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_LCTL, KC_BSPC), // KC_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 + +}; diff --git a/keyboard/planck/keymaps/daniel.c b/keyboard/planck/keymaps/daniel.c deleted file mode 100644 index 234e48ff4a..0000000000 --- a/keyboard/planck/keymaps/daniel.c +++ /dev/null @@ -1,48 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {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, KC_RSFT}, - {FUNC(3), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* RAISE */ - {KC_GRV, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_EQL}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, S(KC_MINS), KC_BSLS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[2] = { /* LOWER */ - {S(KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, S(KC_EQL)}, - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_ENT}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* Qwerty */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL}, - {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, KC_RSFT}, - {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -} -}; - - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(1), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(2), // to LOWER - [3] = ACTION_LAYER_MOMENTARY(3) // to LOWER -}; - -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: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/daniel/daniel.c b/keyboard/planck/keymaps/daniel/daniel.c new file mode 100644 index 0000000000..234e48ff4a --- /dev/null +++ b/keyboard/planck/keymaps/daniel/daniel.c @@ -0,0 +1,48 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {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, KC_RSFT}, + {FUNC(3), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* RAISE */ + {KC_GRV, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_EQL}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, S(KC_MINS), KC_BSLS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[2] = { /* LOWER */ + {S(KC_GRV), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, S(KC_EQL)}, + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {KC_CAPS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_ENT}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* Qwerty */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL}, + {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, KC_RSFT}, + {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +} +}; + + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(1), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(2), // to LOWER + [3] = ACTION_LAYER_MOMENTARY(3) // to LOWER +}; + +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: + return MACRODOWN(T(CM_T), END); + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/david.c b/keyboard/planck/keymaps/david.c deleted file mode 100644 index f483084801..0000000000 --- a/keyboard/planck/keymaps/david.c +++ /dev/null @@ -1,76 +0,0 @@ -#include "keymap_common.h" -#include "beeps.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_A, KC_S, KC_D, KC_F, KC_G, KC_ENT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ESC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {M(10), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, 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, KC_ENT}, - {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* RAISE */ - {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, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - // MACRODOWN only works in this function - if (record->event.pressed) { - switch(id) { - case 0: - true_note(12, 12, 20); - break; - case 1: - true_note(14, 14, 20); - break; - case 2: - true_note(16, 16, 20); - break; - case 3: - true_note(17, 17, 20); - break; - case 4: - true_note(19, 19, 20); - break; - case 5: - true_note(21, 21, 20); - break; - case 6: - true_note(23, 23, 20); - break; - case 7: - true_note(24, 24, 20); - break; - case 10: - - break; - } - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/david/david.c b/keyboard/planck/keymaps/david/david.c new file mode 100644 index 0000000000..f483084801 --- /dev/null +++ b/keyboard/planck/keymaps/david/david.c @@ -0,0 +1,76 @@ +#include "keymap_common.h" +#include "beeps.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_A, KC_S, KC_D, KC_F, KC_G, KC_ENT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ESC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {M(10), KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, 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, KC_ENT}, + {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[2] = { /* RAISE */ + {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, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F11, KC_F12, M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* LOWER */ + {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, + {KC_TRNS, FUNC(3), FUNC(4), RESET, M(0), M(1), M(2), S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + // MACRODOWN only works in this function + if (record->event.pressed) { + switch(id) { + case 0: + true_note(12, 12, 20); + break; + case 1: + true_note(14, 14, 20); + break; + case 2: + true_note(16, 16, 20); + break; + case 3: + true_note(17, 17, 20); + break; + case 4: + true_note(19, 19, 20); + break; + case 5: + true_note(21, 21, 20); + break; + case 6: + true_note(23, 23, 20); + break; + case 7: + true_note(24, 24, 20); + break; + case 10: + + break; + } + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/dzobert.c b/keyboard/planck/keymaps/dzobert.c deleted file mode 100644 index 665e9c20b6..0000000000 --- a/keyboard/planck/keymaps/dzobert.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TAB}, - {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_BSPC}, - {KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN4, KC_RSFT, KC_LGUI, KC_LSFT, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TAB}, - {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_BSPC}, - {KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, - {KC_FN3, KC_RSFT, KC_LGUI, KC_LSFT, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* RAISE */ - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_DEL}, - {KC_TRNS, KC_GRV, KC_MINS, KC_EQL, KC_QUOT, S(KC_QUOT), S(KC_LBRC), S(KC_RBRC), KC_LBRC, KC_RBRC, KC_BSLS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_HOME, KC_PGUP, KC_PGDN, KC_END} -}, -[3] = { /* LOWER */ - {KC_POWER,KC_PSCR, KC_SLCK, KC_PAUSE, KC_NLCK, KC_EXECUTE, KC_MENU, KC_APP, KC_7, KC_8, KC_9, KC_KP_SLASH}, - {KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_CAPS, KC_CANCEL, KC_UNDO, KC_AGAIN, KC_4, KC_5, KC_6, KC_KP_ASTERISK}, - {KC_TRNS, KC_INSERT,KC_CUT, KC_COPY, KC_PASTE, KC_BSLS, KC_9, KC_0, KC_1, KC_2, KC_3, KC_KP_MINUS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_KP_DOT, KC_KP_ENTER, KC_KP_PLUS} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -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: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; \ No newline at end of file diff --git a/keyboard/planck/keymaps/dzobert/dzobert.c b/keyboard/planck/keymaps/dzobert/dzobert.c new file mode 100644 index 0000000000..665e9c20b6 --- /dev/null +++ b/keyboard/planck/keymaps/dzobert/dzobert.c @@ -0,0 +1,49 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_TAB}, + {KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_BSPC}, + {KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {KC_FN4, KC_RSFT, KC_LGUI, KC_LSFT, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_TAB}, + {KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_BSPC}, + {KC_LALT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT}, + {KC_FN3, KC_RSFT, KC_LGUI, KC_LSFT, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[2] = { /* RAISE */ + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_DEL}, + {KC_TRNS, KC_GRV, KC_MINS, KC_EQL, KC_QUOT, S(KC_QUOT), S(KC_LBRC), S(KC_RBRC), KC_LBRC, KC_RBRC, KC_BSLS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_HOME, KC_PGUP, KC_PGDN, KC_END} +}, +[3] = { /* LOWER */ + {KC_POWER,KC_PSCR, KC_SLCK, KC_PAUSE, KC_NLCK, KC_EXECUTE, KC_MENU, KC_APP, KC_7, KC_8, KC_9, KC_KP_SLASH}, + {KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_CAPS, KC_CANCEL, KC_UNDO, KC_AGAIN, KC_4, KC_5, KC_6, KC_KP_ASTERISK}, + {KC_TRNS, KC_INSERT,KC_CUT, KC_COPY, KC_PASTE, KC_BSLS, KC_9, KC_0, KC_1, KC_2, KC_3, KC_KP_MINUS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_KP_DOT, KC_KP_ENTER, KC_KP_PLUS} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; + +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: + return MACRODOWN(T(CM_T), END); + break; + } + return MACRO_NONE; +}; \ No newline at end of file diff --git a/keyboard/planck/keymaps/gabriel.c b/keyboard/planck/keymaps/gabriel.c deleted file mode 100644 index 805484488b..0000000000 --- a/keyboard/planck/keymaps/gabriel.c +++ /dev/null @@ -1,108 +0,0 @@ -#include "planck.h" - -// 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 _LW 1 -#define _RS 2 -#define _FN 3 - -// This a slightly modified 'default' keymap that's closer to the Mac keyboard layout. I like the position -// of 'esc' and 'tab' better this way. I also got rid of the backlighting control key and the dvorak and -// colemak layers. I added an 'fn' layer that makes the 'bspc' a forward delete (like on OSX). -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -/* 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| - * |-----------------------------------------------------------------------| - * | fn | ctl | alt | cmd |lower| spc |raise|left |down | up |right| - * `-----------------------------------------------------------------------' - */ -[_QW] = { /* QWERTY */ - {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, KC_ENT }, - {MO(_FN), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -/* MIT Layout (Raised layer) - * - * ,-----------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | - * |-----------------------------------------------------------------------| - * | | F1 | F2 | F3 | F4 | F5 | F6 | - | + | [ | ] | | | - * |-----------------------------------------------------------------------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------' - */ -[_RS] = { /* RAISE */ - {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_PLUS, KC_LBRC, KC_RBRC, KC_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -/* MIT Layout (Lowered layer) - * - * ,-----------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | - * |-----------------------------------------------------------------------| - * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | = | { | } | \ | - * |-----------------------------------------------------------------------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------' - */ -[_LW] = { /* LOWER */ - {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_EQL, KC_LCBR, KC_RCBR, KC_BSLS}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -/* MIT Layout (FN layer) - * - * ,-----------------------------------------------------------------------. - * | | | | | | | | | | | | del | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | | - * |-----------------------------------------------------------------------| - * | | | | | | | |home |pgdn |pgup | end | - * `-----------------------------------------------------------------------' - */ -[_FN] = { /* FUNCTION */ - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DELT}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} -} -}; - -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); - backlight_step(); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/gabriel/gabriel.c b/keyboard/planck/keymaps/gabriel/gabriel.c new file mode 100644 index 0000000000..805484488b --- /dev/null +++ b/keyboard/planck/keymaps/gabriel/gabriel.c @@ -0,0 +1,108 @@ +#include "planck.h" + +// 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 _LW 1 +#define _RS 2 +#define _FN 3 + +// This a slightly modified 'default' keymap that's closer to the Mac keyboard layout. I like the position +// of 'esc' and 'tab' better this way. I also got rid of the backlighting control key and the dvorak and +// colemak layers. I added an 'fn' layer that makes the 'bspc' a forward delete (like on OSX). +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* 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| + * |-----------------------------------------------------------------------| + * | fn | ctl | alt | cmd |lower| spc |raise|left |down | up |right| + * `-----------------------------------------------------------------------' + */ +[_QW] = { /* QWERTY */ + {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, KC_ENT }, + {MO(_FN), KC_LCTL, KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +/* MIT Layout (Raised layer) + * + * ,-----------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | + * |-----------------------------------------------------------------------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | - | + | [ | ] | | | + * |-----------------------------------------------------------------------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------' + */ +[_RS] = { /* RAISE */ + {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_PLUS, KC_LBRC, KC_RBRC, KC_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +/* MIT Layout (Lowered layer) + * + * ,-----------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | | + * |-----------------------------------------------------------------------| + * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | = | { | } | \ | + * |-----------------------------------------------------------------------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------' + */ +[_LW] = { /* LOWER */ + {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_EQL, KC_LCBR, KC_RCBR, KC_BSLS}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +/* MIT Layout (FN layer) + * + * ,-----------------------------------------------------------------------. + * | | | | | | | | | | | | del | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | | + * |-----------------------------------------------------------------------| + * | | | | | | | |home |pgdn |pgup | end | + * `-----------------------------------------------------------------------' + */ +[_FN] = { /* FUNCTION */ + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DELT}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} +} +}; + +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); + backlight_step(); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/jacob/Keyboard Layout.PNG b/keyboard/planck/keymaps/jacob/Keyboard Layout.PNG new file mode 100644 index 0000000000..40f0b89429 Binary files /dev/null and b/keyboard/planck/keymaps/jacob/Keyboard Layout.PNG differ diff --git a/keyboard/planck/keymaps/jacob/keymap.c b/keyboard/planck/keymaps/jacob/keymap.c new file mode 100644 index 0000000000..5e6e8498e2 --- /dev/null +++ b/keyboard/planck/keymaps/jacob/keymap.c @@ -0,0 +1,56 @@ +#include "planck.h" +#include "action_layer.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +//Simple Keymap where CTRL, WINKEY, and ALT keys are placed in a more familiar location for Windows users. +//Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck. + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +#define _QW 0 +#define _LW 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, 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_RSFT, KC_ENT)}, + {KC_LCTL, KC_LGUI, KC_LALT, M(0), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + [_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, + {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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + }, + [_LW] = { /* LOWER */ + {KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + } +}; + +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/jacob/readme.md b/keyboard/planck/keymaps/jacob/readme.md new file mode 100644 index 0000000000..2a4be4ebce --- /dev/null +++ b/keyboard/planck/keymaps/jacob/readme.md @@ -0,0 +1 @@ +Focus of this particular keymap is to enable easy transition from more traditional keyboards to OLKB Planck. \ No newline at end of file diff --git a/keyboard/planck/keymaps/joe.c b/keyboard/planck/keymaps/joe.c deleted file mode 100644 index 5b7bbe2bbb..0000000000 --- a/keyboard/planck/keymaps/joe.c +++ /dev/null @@ -1,88 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = { /* Joe colemak */ - {F(3), KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS}, - {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT }, - {F(15), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT}, - {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} - }, - [1] = { /* Joe soft Colemak */ - {F(3), CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_MINS}, - {KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_ENT }, - {F(15), CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT}, - {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} - }, - [2] = { /* Joe NUMPAD */ - {F(3), KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, LSFT(KC_9), LSFT(KC_0), KC_PSLS, KC_P7, KC_P8, KC_P9 }, - {KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, LSFT(KC_5), KC_PEQL, KC_PAST, KC_P4, KC_P5, KC_P6 }, - {F(15), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PCMM, KC_PMNS, KC_P1, KC_P2, KC_P3 }, - {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_TRNS, KC_TRNS, F(2), KC_PPLS, KC_P0, KC_PDOT, KC_PENT} - }, - [3] = { /* Joe 1337 haxOr5*/ - {F(3), KC_Q, KC_W, KC_F, KC_P, KC_6, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS}, - {KC_BSPC, KC_4, KC_R, KC_5, KC_7, KC_D, KC_H, KC_N, KC_3, KC_1, KC_0, KC_ENT }, - {F(15), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT}, - {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} - }, - [4] = { /* Joe LOWER fn1 */ - {KC_GRV, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(3), M(2), M(1), M(0) }, - {KC_BSPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS}, - {KC_BSLS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LBRC, KC_RBRC, KC_PGUP, KC_EQL }, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), KC_TRNS, KC_TRNS, F(2), KC_NO, KC_HOME, KC_PGDN, KC_END } - }, - [5] = { /* Joe UPPER fn2 */ - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 }, - {KC_DEL, KC_BTN1, KC_MS_U, KC_BTN2, KC_BTN3, KC_WH_U, KC_BTN4, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO }, - {KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_L, KC_WH_D, KC_WH_R, KC_NO, KC_NO, LCTL(KC_PGUP), LCTL(LALT(KC_UP)), LCTL(KC_PGDN) }, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), KC_NO, KC_NO, F(2), KC_NO, LCTL(LALT(KC_LEFT)), LCTL(LALT(KC_DOWN)), LCTL(LALT(KC_RGHT))} - }, - [6] = { /* Joe SPECIAL fn3 */ - {KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, - {KC_NO, KC_MPLY, KC_MPRV, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET }, - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, - {F(6), F(7), F(8), F(9), F(1), KC_TRNS, KC_TRNS, F(2), KC_POWER, KC_WAKE, KC_SLEP, LCTL(LALT(KC_L))} - } -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(4), // fn1 - [2] = ACTION_LAYER_MOMENTARY(5), // fn2 - - /* ESC on tap, fn3 on hold */ - [3] = ACTION_LAYER_TAP_KEY(6, KC_ESC), - - /* toggle layers */ - [6] = ACTION_DEFAULT_LAYER_SET(0), - [7] = ACTION_DEFAULT_LAYER_SET(1), - [8] = ACTION_DEFAULT_LAYER_SET(2), - [9] = ACTION_DEFAULT_LAYER_SET(3), - - /* tab on tap, shift on hold */ - [15] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_TAB), -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch (id) { - case 0: - /* :) */ - return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), END ); - break; - case 1: - /* :( */ - return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_9), UP(KC_LSFT), END ); - break; - case 2: - /* (: | :) */ - return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_9), TYPE(KC_SCLN), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END ); - break; - case 3: - /* :( | ): */ - return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_9), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_0), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END ); - break; - default: - break; - } - return MACRO_NONE; -} diff --git a/keyboard/planck/keymaps/joe/joe.c b/keyboard/planck/keymaps/joe/joe.c new file mode 100644 index 0000000000..5b7bbe2bbb --- /dev/null +++ b/keyboard/planck/keymaps/joe/joe.c @@ -0,0 +1,88 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = { /* Joe colemak */ + {F(3), KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS}, + {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT }, + {F(15), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT}, + {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} + }, + [1] = { /* Joe soft Colemak */ + {F(3), CM_Q, CM_W, CM_F, CM_P, CM_G, CM_J, CM_L, CM_U, CM_Y, CM_SCLN, KC_MINS}, + {KC_BSPC, CM_A, CM_R, CM_S, CM_T, CM_D, CM_H, CM_N, CM_E, CM_I, CM_O, KC_ENT }, + {F(15), CM_Z, CM_X, CM_C, CM_V, CM_B, CM_K, CM_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT}, + {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} + }, + [2] = { /* Joe NUMPAD */ + {F(3), KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, LSFT(KC_9), LSFT(KC_0), KC_PSLS, KC_P7, KC_P8, KC_P9 }, + {KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, LSFT(KC_5), KC_PEQL, KC_PAST, KC_P4, KC_P5, KC_P6 }, + {F(15), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PCMM, KC_PMNS, KC_P1, KC_P2, KC_P3 }, + {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_TRNS, KC_TRNS, F(2), KC_PPLS, KC_P0, KC_PDOT, KC_PENT} + }, + [3] = { /* Joe 1337 haxOr5*/ + {F(3), KC_Q, KC_W, KC_F, KC_P, KC_6, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS}, + {KC_BSPC, KC_4, KC_R, KC_5, KC_7, KC_D, KC_H, KC_N, KC_3, KC_1, KC_0, KC_ENT }, + {F(15), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_UP, KC_QUOT}, + {KC_LCTL, KC_LGUI, KC_LALT, KC_LSFT, F(1), KC_SPC, KC_SPC, F(2), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT} + }, + [4] = { /* Joe LOWER fn1 */ + {KC_GRV, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, M(3), M(2), M(1), M(0) }, + {KC_BSPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS}, + {KC_BSLS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LBRC, KC_RBRC, KC_PGUP, KC_EQL }, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), KC_TRNS, KC_TRNS, F(2), KC_NO, KC_HOME, KC_PGDN, KC_END } + }, + [5] = { /* Joe UPPER fn2 */ + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 }, + {KC_DEL, KC_BTN1, KC_MS_U, KC_BTN2, KC_BTN3, KC_WH_U, KC_BTN4, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO }, + {KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_L, KC_WH_D, KC_WH_R, KC_NO, KC_NO, LCTL(KC_PGUP), LCTL(LALT(KC_UP)), LCTL(KC_PGDN) }, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, F(1), KC_NO, KC_NO, F(2), KC_NO, LCTL(LALT(KC_LEFT)), LCTL(LALT(KC_DOWN)), LCTL(LALT(KC_RGHT))} + }, + [6] = { /* Joe SPECIAL fn3 */ + {KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, + {KC_NO, KC_MPLY, KC_MPRV, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET }, + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, + {F(6), F(7), F(8), F(9), F(1), KC_TRNS, KC_TRNS, F(2), KC_POWER, KC_WAKE, KC_SLEP, LCTL(LALT(KC_L))} + } +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(4), // fn1 + [2] = ACTION_LAYER_MOMENTARY(5), // fn2 + + /* ESC on tap, fn3 on hold */ + [3] = ACTION_LAYER_TAP_KEY(6, KC_ESC), + + /* toggle layers */ + [6] = ACTION_DEFAULT_LAYER_SET(0), + [7] = ACTION_DEFAULT_LAYER_SET(1), + [8] = ACTION_DEFAULT_LAYER_SET(2), + [9] = ACTION_DEFAULT_LAYER_SET(3), + + /* tab on tap, shift on hold */ + [15] = ACTION_MODS_TAP_KEY(MOD_LSFT, KC_TAB), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch (id) { + case 0: + /* :) */ + return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), END ); + break; + case 1: + /* :( */ + return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_9), UP(KC_LSFT), END ); + break; + case 2: + /* (: | :) */ + return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_9), TYPE(KC_SCLN), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_SCLN), TYPE(KC_0), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END ); + break; + case 3: + /* :( | ): */ + return MACRODOWN( DOWN(KC_LSFT), TYPE(KC_SCLN), TYPE(KC_9), TYPE(KC_SPC), TYPE(KC_SPC), TYPE(KC_0), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_LEFT), TYPE(KC_LEFT), TYPE(KC_LEFT), END ); + break; + default: + break; + } + return MACRO_NONE; +} diff --git a/keyboard/planck/keymaps/kyle.c b/keyboard/planck/keymaps/kyle.c deleted file mode 100644 index da32b74f96..0000000000 --- a/keyboard/planck/keymaps/kyle.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {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, KC_ENT}, - {KC_RCTL, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {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, KC_ENT}, - {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* RAISE */ - {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, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), LSFT(RSFT(KC_D)), KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, - {BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -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: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/kyle/kyle.c b/keyboard/planck/keymaps/kyle/kyle.c new file mode 100644 index 0000000000..da32b74f96 --- /dev/null +++ b/keyboard/planck/keymaps/kyle/kyle.c @@ -0,0 +1,49 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {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, KC_ENT}, + {KC_RCTL, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* Colemak */ + {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, KC_ENT}, + {KC_FN3, KC_LCTL, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[2] = { /* RAISE */ + {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, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* LOWER */ + {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, + {KC_TRNS, FUNC(3), FUNC(4), LSFT(RSFT(KC_PAUSE)), LSFT(RSFT(KC_D)), KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS}, + {BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; + +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: + return MACRODOWN(T(CM_T), END); + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/leo.c b/keyboard/planck/keymaps/leo.c deleted file mode 100644 index 6d66441822..0000000000 --- a/keyboard/planck/keymaps/leo.c +++ /dev/null @@ -1,46 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* BASE */ - {KC_ESC, KC_LBRC, KC_QUOT, KC_SCLN, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_TAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT}, - {KC_LSFT, KC_DOT, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_COMM}, - {KC_LCTL, KC_LALT, KC_LGUI, FUNC(3), FUNC(2), KC_SPC, KC_SPC, FUNC(1), FUNC(3), KC_RGUI, KC_RALT, KC_RCTL} -}, -[2] = { /* RAISE */ - {RALT(KC_RBRC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, S(KC_RBRC)}, - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -[3] = { /* LOWER */ - {S(KC_EQL),S(KC_1),S(KC_2),S(KC_3),RALT(KC_5),S(KC_5), S(KC_6), S(KC_7),RALT(KC_7),RALT(KC_0),S(KC_0), KC_MINS}, - {KC_TRNS,RALT(KC_2),S(KC_SLSH),KC_NUBS,S(KC_NUBS),RALT(KC_MINS),RALT(KC_NUBS), KC_NUHS, S(KC_8), S(KC_9), S(KC_MINS), KC_SLSH}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RALT(KC_8), RALT(KC_9), KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -[4] = { /* META */ - {KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_DEL}, - {KC_TRNS, KC_RGHT, KC_DOWN, KC_LEFT, KC_PGUP, KC_TRNS, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_PGDN, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - [3] = ACTION_LAYER_MOMENTARY(4), // to META - -}; - -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: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/leo/leo.c b/keyboard/planck/keymaps/leo/leo.c new file mode 100644 index 0000000000..6d66441822 --- /dev/null +++ b/keyboard/planck/keymaps/leo/leo.c @@ -0,0 +1,46 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* BASE */ + {KC_ESC, KC_LBRC, KC_QUOT, KC_SCLN, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_TAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT}, + {KC_LSFT, KC_DOT, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_COMM}, + {KC_LCTL, KC_LALT, KC_LGUI, FUNC(3), FUNC(2), KC_SPC, KC_SPC, FUNC(1), FUNC(3), KC_RGUI, KC_RALT, KC_RCTL} +}, +[2] = { /* RAISE */ + {RALT(KC_RBRC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, S(KC_RBRC)}, + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +[3] = { /* LOWER */ + {S(KC_EQL),S(KC_1),S(KC_2),S(KC_3),RALT(KC_5),S(KC_5), S(KC_6), S(KC_7),RALT(KC_7),RALT(KC_0),S(KC_0), KC_MINS}, + {KC_TRNS,RALT(KC_2),S(KC_SLSH),KC_NUBS,S(KC_NUBS),RALT(KC_MINS),RALT(KC_NUBS), KC_NUHS, S(KC_8), S(KC_9), S(KC_MINS), KC_SLSH}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RALT(KC_8), RALT(KC_9), KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +[4] = { /* META */ + {KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_DEL}, + {KC_TRNS, KC_RGHT, KC_DOWN, KC_LEFT, KC_PGUP, KC_TRNS, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_PGDN, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + [3] = ACTION_LAYER_MOMENTARY(4), // to META + +}; + +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: + return MACRODOWN(T(CM_T), END); + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/lucas.c b/keyboard/planck/keymaps/lucas.c deleted file mode 100644 index 27672e1bbc..0000000000 --- a/keyboard/planck/keymaps/lucas.c +++ /dev/null @@ -1,163 +0,0 @@ -/* -This is the keymap of /u/deepshitgoeshere! -Layer 1 exists so I can have the symbol positions of QWERTY while having my system in german. -The second layer has all the german umlauts I need and with capital and small letters on the -same layer there is no need to press shift+lower. -This keymap is made to work with software implemented QWERTZ. -The "Gaming" layer is mainly customized for CS:GO. -If you have any question about this keymap feel free to shoot me a message on reddit! -*/ - -#include "keymap_common.h" -#include "keymap_extras/keymap_german.h" -#include "backlight.h" -#include "debug.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Colemak - * ,-----------------------------------------------------------------------. - * | Esc | q | w | f | p | g | j | l | u | y | ; | - | - * |-----------------------------------------------------------------------| - * | BS | a | r | s | t | d | h | n | e | i | o | ' | - * |-----------------------------------------------------------------------| - * | SFT | z | x | c | v | b | k | m | , | . | / | Ent | - * |-----------------------------------------------------------------------| - * | CTL | GUI | Tab | ALT |Lower| Space |Raise|Left |Down | Up |Right| - * `-----------------------------------------------------------------------' - */ - {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Z, DE_SCLN, DE_MINS}, - {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, DE_QUOT}, - {M(0), KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, DE_COMM, DE_DOT, DE_SLSH, KC_ENT}, - {KC_LCTL, KC_LGUI, KC_TAB, KC_LALT, F(2), F(3), F(3), F(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[1] = { /* Symbols - * ,-----------------------------------------------------------------------. - * | | | | | | | | | | | : | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | " | - * |-----------------------------------------------------------------------| - * | | | | | | | | | < | > | ? | | - * |-----------------------------------------------------------------------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------' - */ - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DOT, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DQOT}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(1), DE_MORE, DE_QST, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -[2] = { /* Raise - * ,-----------------------------------------------------------------------. - * | | Ä | | | | | | | Ü | Ö | |Game | - * |-----------------------------------------------------------------------| - * | Del | ä | | ß | | | | | ü | ö | |FVol+| - * |-----------------------------------------------------------------------| - * | | | | | | | | |Stop | Prv | Nxt |FVol-| - * |-----------------------------------------------------------------------| - * |LCTL |LGUI | Tab |LALT |Lower| Space | |Mute |Vol- |Vol+ | P/P | - * `-----------------------------------------------------------------------' - */ - {KC_NO, S(DE_AE), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, S(DE_UE), S(DE_OE), KC_NO, F(4)}, - {KC_DEL, DE_AE, KC_NO, DE_SS, KC_NO, KC_NO, KC_NO, KC_NO, DE_UE, DE_OE, KC_NO, RALT(KC_F12)}, - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPRV, KC_MNXT, RALT(KC_F11)}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* Lower - * ,-----------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | + | - * |-----------------------------------------------------------------------| - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = | - * |-----------------------------------------------------------------------| - * | | | | | | [ | ] | { | } | € | | \ | Ent | - * |-----------------------------------------------------------------------| - * |LCTL |LGUI | Tab |LALT | | Space |Raise|Home |PgDn |PgUp | End | - * `-----------------------------------------------------------------------' - */ - {DE_TILD, DE_EXLM, DE_AT, DE_HASH, DE_DLR, DE_PERC, DE_CIRC, DE_AMPR, DE_ASTR, DE_LPRN, DE_RPRN, DE_PLUS}, - {DE_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, DE_EQL}, - {KC_NO, KC_NO, KC_NO, DE_PIPE, DE_LBRC, DE_RBRC, DE_LCBR, DE_RCBR, DE_EURO, KC_NO, DE_BSLS, KC_ENT}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} -}, -[4] = { /* Function - * ,-----------------------------------------------------------------------. - * | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | - * |-----------------------------------------------------------------------| - * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | - * |-----------------------------------------------------------------------| - * | | | | | | KP- | KP+ | | | | |Reset| - * |-----------------------------------------------------------------------| - * | |Light|BL DN|BL UP| | | | |Mute |Vol- |Vol+ | P/P | - * `-----------------------------------------------------------------------' - */ - {KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24}, - {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, - {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PMNS, KC_PPLS, KC_NO, KC_NO, KC_NO, RESET, KC_NO}, - {KC_NO, BL_TOGG, BL_DEC, BL_INC, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[5] = { /* Gaming - * ,-----------------------------------------------------------------------. - * | Buy | ESC | q | w | e | r | t | y | u | i | o | p | - * |-----------------------------------------------------------------------| - * | ENT | BS | a | s | d | f | g | h | j | k | l | ; | - * |-----------------------------------------------------------------------| - * | CTL | SFT | z | x | c | v | b | n | m | , | Up | / | - * |-----------------------------------------------------------------------| - * | | | Tab | ALT | | Space |CrJmp| GUI |Left |Down |Right| - * `-----------------------------------------------------------------------' - */ - {MO(6), KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, F(4)}, - {KC_ENT, KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_SCLN}, - {KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, DE_DOT, KC_UP, DE_SLSH}, - {KC_NO, KC_NO, KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT} -}, -[6] = { /* Gaming - /* CS:GO buy binds - * ,-----------------------------------------------------------------------. - * | | | | | | | | | 7 | 8 | 9 | | - * |-----------------------------------------------------------------------| - * | BS | | | | | | | | 6 | 5 | 4 | End | - * |-----------------------------------------------------------------------| - * | CTL | SFT | | | | | | | 1 | 2 | 3 |Pgdn | - * |-----------------------------------------------------------------------| - * | | | Tab | ALT | | Space |CrJmp| | 0 | KP+ |PEnt | - * `-----------------------------------------------------------------------' - */ - {KC_TRNS, KC_NO, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_P7, KC_P8, KC_P9, KC_NO}, - {KC_BSPC, KC_NO, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_P4, KC_P5, KC_P6, KC_END}, - {KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_P1, KC_P2, KC_P3, KC_PGDN}, - {KC_NO, KC_NO, KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_NO, KC_P0, KC_PDOT, KC_PENT} -}, -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - [3] = ACTION_LAYER_TAP_KEY(4,KC_SPC), // to Function - [4] = ACTION_LAYER_TOGGLE(5), // toggle Gaming - [5] = ACTION_MODS_TAP_KEY(KC_LSFT, KC_CAPS), //Shift on press, Caps on tap -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case 0: // M(0) - if (record->event.pressed) { - register_code(KC_LSFT); - layer_on(1); - } else { - layer_off(1); - unregister_code(KC_LSFT); - } - break; - case 1: // M(1) - if (record->event.pressed) { - unregister_code(KC_LSFT); - register_code(DE_MORE); - } else { - unregister_code(DE_MORE); - } - break; - } - return MACRO_NONE; - -}; \ No newline at end of file diff --git a/keyboard/planck/keymaps/lucas/lucas.c b/keyboard/planck/keymaps/lucas/lucas.c new file mode 100644 index 0000000000..27672e1bbc --- /dev/null +++ b/keyboard/planck/keymaps/lucas/lucas.c @@ -0,0 +1,163 @@ +/* +This is the keymap of /u/deepshitgoeshere! +Layer 1 exists so I can have the symbol positions of QWERTY while having my system in german. +The second layer has all the german umlauts I need and with capital and small letters on the +same layer there is no need to press shift+lower. +This keymap is made to work with software implemented QWERTZ. +The "Gaming" layer is mainly customized for CS:GO. +If you have any question about this keymap feel free to shoot me a message on reddit! +*/ + +#include "keymap_common.h" +#include "keymap_extras/keymap_german.h" +#include "backlight.h" +#include "debug.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Colemak + * ,-----------------------------------------------------------------------. + * | Esc | q | w | f | p | g | j | l | u | y | ; | - | + * |-----------------------------------------------------------------------| + * | BS | a | r | s | t | d | h | n | e | i | o | ' | + * |-----------------------------------------------------------------------| + * | SFT | z | x | c | v | b | k | m | , | . | / | Ent | + * |-----------------------------------------------------------------------| + * | CTL | GUI | Tab | ALT |Lower| Space |Raise|Left |Down | Up |Right| + * `-----------------------------------------------------------------------' + */ + {KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Z, DE_SCLN, DE_MINS}, + {KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, DE_QUOT}, + {M(0), KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, DE_COMM, DE_DOT, DE_SLSH, KC_ENT}, + {KC_LCTL, KC_LGUI, KC_TAB, KC_LALT, F(2), F(3), F(3), F(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[1] = { /* Symbols + * ,-----------------------------------------------------------------------. + * | | | | | | | | | | | : | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | " | + * |-----------------------------------------------------------------------| + * | | | | | | | | | < | > | ? | | + * |-----------------------------------------------------------------------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------' + */ + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DOT, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_DQOT}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(1), DE_MORE, DE_QST, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +[2] = { /* Raise + * ,-----------------------------------------------------------------------. + * | | Ä | | | | | | | Ü | Ö | |Game | + * |-----------------------------------------------------------------------| + * | Del | ä | | ß | | | | | ü | ö | |FVol+| + * |-----------------------------------------------------------------------| + * | | | | | | | | |Stop | Prv | Nxt |FVol-| + * |-----------------------------------------------------------------------| + * |LCTL |LGUI | Tab |LALT |Lower| Space | |Mute |Vol- |Vol+ | P/P | + * `-----------------------------------------------------------------------' + */ + {KC_NO, S(DE_AE), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, S(DE_UE), S(DE_OE), KC_NO, F(4)}, + {KC_DEL, DE_AE, KC_NO, DE_SS, KC_NO, KC_NO, KC_NO, KC_NO, DE_UE, DE_OE, KC_NO, RALT(KC_F12)}, + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MSTP, KC_MPRV, KC_MNXT, RALT(KC_F11)}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* Lower + * ,-----------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | + | + * |-----------------------------------------------------------------------| + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | = | + * |-----------------------------------------------------------------------| + * | | | | | | [ | ] | { | } | € | | \ | Ent | + * |-----------------------------------------------------------------------| + * |LCTL |LGUI | Tab |LALT | | Space |Raise|Home |PgDn |PgUp | End | + * `-----------------------------------------------------------------------' + */ + {DE_TILD, DE_EXLM, DE_AT, DE_HASH, DE_DLR, DE_PERC, DE_CIRC, DE_AMPR, DE_ASTR, DE_LPRN, DE_RPRN, DE_PLUS}, + {DE_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, DE_EQL}, + {KC_NO, KC_NO, KC_NO, DE_PIPE, DE_LBRC, DE_RBRC, DE_LCBR, DE_RCBR, DE_EURO, KC_NO, DE_BSLS, KC_ENT}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} +}, +[4] = { /* Function + * ,-----------------------------------------------------------------------. + * | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | + * |-----------------------------------------------------------------------| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-----------------------------------------------------------------------| + * | | | | | | KP- | KP+ | | | | |Reset| + * |-----------------------------------------------------------------------| + * | |Light|BL DN|BL UP| | | | |Mute |Vol- |Vol+ | P/P | + * `-----------------------------------------------------------------------' + */ + {KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24}, + {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12}, + {KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PMNS, KC_PPLS, KC_NO, KC_NO, KC_NO, RESET, KC_NO}, + {KC_NO, BL_TOGG, BL_DEC, BL_INC, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[5] = { /* Gaming + * ,-----------------------------------------------------------------------. + * | Buy | ESC | q | w | e | r | t | y | u | i | o | p | + * |-----------------------------------------------------------------------| + * | ENT | BS | a | s | d | f | g | h | j | k | l | ; | + * |-----------------------------------------------------------------------| + * | CTL | SFT | z | x | c | v | b | n | m | , | Up | / | + * |-----------------------------------------------------------------------| + * | | | Tab | ALT | | Space |CrJmp| GUI |Left |Down |Right| + * `-----------------------------------------------------------------------' + */ + {MO(6), KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_U, KC_I, KC_O, F(4)}, + {KC_ENT, KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_SCLN}, + {KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, DE_DOT, KC_UP, DE_SLSH}, + {KC_NO, KC_NO, KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT} +}, +[6] = { /* Gaming + /* CS:GO buy binds + * ,-----------------------------------------------------------------------. + * | | | | | | | | | 7 | 8 | 9 | | + * |-----------------------------------------------------------------------| + * | BS | | | | | | | | 6 | 5 | 4 | End | + * |-----------------------------------------------------------------------| + * | CTL | SFT | | | | | | | 1 | 2 | 3 |Pgdn | + * |-----------------------------------------------------------------------| + * | | | Tab | ALT | | Space |CrJmp| | 0 | KP+ |PEnt | + * `-----------------------------------------------------------------------' + */ + {KC_TRNS, KC_NO, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_P7, KC_P8, KC_P9, KC_NO}, + {KC_BSPC, KC_NO, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_P4, KC_P5, KC_P6, KC_END}, + {KC_LCTL, KC_LSFT, KC_Y, KC_X, KC_C, KC_V, KC_B, KC_K, KC_P1, KC_P2, KC_P3, KC_PGDN}, + {KC_NO, KC_NO, KC_TAB, KC_LALT, KC_NO, KC_SPC, KC_SPC, LCTL(KC_SPC), KC_NO, KC_P0, KC_PDOT, KC_PENT} +}, +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + [3] = ACTION_LAYER_TAP_KEY(4,KC_SPC), // to Function + [4] = ACTION_LAYER_TOGGLE(5), // toggle Gaming + [5] = ACTION_MODS_TAP_KEY(KC_LSFT, KC_CAPS), //Shift on press, Caps on tap +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: // M(0) + if (record->event.pressed) { + register_code(KC_LSFT); + layer_on(1); + } else { + layer_off(1); + unregister_code(KC_LSFT); + } + break; + case 1: // M(1) + if (record->event.pressed) { + unregister_code(KC_LSFT); + register_code(DE_MORE); + } else { + unregister_code(DE_MORE); + } + break; + } + return MACRO_NONE; + +}; \ No newline at end of file diff --git a/keyboard/planck/keymaps/lukas.c b/keyboard/planck/keymaps/lukas.c deleted file mode 100644 index 6fd95378b1..0000000000 --- a/keyboard/planck/keymaps/lukas.c +++ /dev/null @@ -1,64 +0,0 @@ -#include "planck.h" -#ifdef BACKLIGHT_ENABLE - #include "backlight.h" -#endif - -// This simple keymap is optimized for xmonad users using super as their modifier key. -// M(1) makes it possible to change virtual screens and swap windows between them. - -// Each layer gets a name for readability, which is then used in the keymap matrix below. -#define _QW 0 -#define _LW 1 -#define _RS 2 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, 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, KC_ENT }, - {KC_LCTL, KC_LALT, KC_LGUI, M(1), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - }, - [_RS] = { /* RAISE */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} - }, - [_LW] = { /* LOWER */ - {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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} - } -}; - -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; - case 1: - if (record->event.pressed) { - register_code(KC_LGUI); - layer_on(_RS); - } else { - unregister_code(KC_LGUI); - layer_off(_RS); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/lukas/lukas.c b/keyboard/planck/keymaps/lukas/lukas.c new file mode 100644 index 0000000000..6fd95378b1 --- /dev/null +++ b/keyboard/planck/keymaps/lukas/lukas.c @@ -0,0 +1,64 @@ +#include "planck.h" +#ifdef BACKLIGHT_ENABLE + #include "backlight.h" +#endif + +// This simple keymap is optimized for xmonad users using super as their modifier key. +// M(1) makes it possible to change virtual screens and swap windows between them. + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +#define _QW 0 +#define _LW 1 +#define _RS 2 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QW] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, 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, KC_ENT }, + {KC_LCTL, KC_LALT, KC_LGUI, M(1), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + }, + [_RS] = { /* RAISE */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + }, + [_LW] = { /* LOWER */ + {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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} + } +}; + +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; + case 1: + if (record->event.pressed) { + register_code(KC_LGUI); + layer_on(_RS); + } else { + unregister_code(KC_LGUI); + layer_off(_RS); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/max.c b/keyboard/planck/keymaps/max.c deleted file mode 100644 index 7fb29bc7a4..0000000000 --- a/keyboard/planck/keymaps/max.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {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_ENT }, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, - {KC_LCTL, BL_STEP, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} - // Space is repeated to accommadate for both spacebar wiring positions -}, -[1] = { /* Colemak */ - {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_ENT }, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, - {KC_LCTL, BL_STEP, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[2] = { /* RAISE */ - {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, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TRNS}, - {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_BSLS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[3] = { /* LOWER */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), KC_TRNS}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, S(KC_BSLS)}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE - [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER - - [3] = ACTION_DEFAULT_LAYER_SET(0), - [4] = ACTION_DEFAULT_LAYER_SET(1), - -}; - -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: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/max/max.c b/keyboard/planck/keymaps/max/max.c new file mode 100644 index 0000000000..7fb29bc7a4 --- /dev/null +++ b/keyboard/planck/keymaps/max/max.c @@ -0,0 +1,49 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {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_ENT }, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, + {KC_LCTL, BL_STEP, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + // Space is repeated to accommadate for both spacebar wiring positions +}, +[1] = { /* Colemak */ + {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_ENT }, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT}, + {KC_LCTL, BL_STEP, KC_LALT, KC_LGUI, FUNC(2), KC_SPC, KC_SPC, FUNC(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[2] = { /* RAISE */ + {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, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_TRNS}, + {KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_BSLS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(1), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[3] = { /* LOWER */ + {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC}, + {KC_TRNS, FUNC(3), FUNC(4), RESET, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), KC_TRNS}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, S(KC_BSLS)}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, FUNC(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_MOMENTARY(2), // to RAISE + [2] = ACTION_LAYER_MOMENTARY(3), // to LOWER + + [3] = ACTION_DEFAULT_LAYER_SET(0), + [4] = ACTION_DEFAULT_LAYER_SET(1), + +}; + +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: + return MACRODOWN(T(CM_T), END); + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/mollat.c b/keyboard/planck/keymaps/mollat.c deleted file mode 100644 index e7c71efd47..0000000000 --- a/keyboard/planck/keymaps/mollat.c +++ /dev/null @@ -1,149 +0,0 @@ -// -// This layout is based on the following needs: -// -// should be as close as possible to querty/us-international layout (using international/AltGr as o/s driver) -// added german umlauts at known places from de-layout -// all movement keys should be at known places from vi/bash (eg HJKL for cursor keys) -// Fn layer (at CapsLock place like the Pok3r does) for missing keys -// additional layer for tmux window switching -// -// This is work in Progress! If you have suggestions write me at github.com/mollat/qmk_firmware/ and check -// this fork for updates as I probably won't bother jack with my pull requests frequently. -// - -#include "planck.h" - -#define _QWERTY 0 -#define _HIGH 1 -#define _LOW 2 -#define _FN 3 -#define _TMUX 4 -#define _LCTL 5 -#define _MOUSE 6 -#define __________ KC_NO // just for easy reading - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -[_QWERTY] = { /* Qwerty */ - { LT(_MOUSE, KC_ESC),KC_Q,KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, - { LT(_FN, 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, SFT_T(KC_ENT)}, - { __________, __________, KC_LGUI, KC_LALT, KC_LCTL,LT(_TMUX, KC_SPC),LT(_HIGH, KC_SPC),MO(_LOW),KC_RALT,KC_RGUI, __________, __________ } -}, - -// missing keys regarding to the form factor -// keeping the dot and comma for typing faster IP addresses and (german) float values -// putting the backslash on the slash's place -[_HIGH] = { - { KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_MINS }, - { __________, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL }, - { __________, __________, __________, __________, __________, __________, __________, __________, KC_COMM, KC_DOT, KC_BSLS, LSFT(KC_BSLS)}, - { __________, __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________, __________ } -}, - -// classic Fn-Layer triggered with 'CapsLock-key' like on Pok3r -// SPC and ENT are doubled for using repeat (which I switched off, see https://github.com/tmk/tmk_keyboard/issues/287) -// '€' sign is on the '5' position as this is the usual AltGr place on the US Internation layout -// home/end at the 'a' and 'e' position like in bash -// ins at 'i' -// del besides backspace (had no better place for it because of the umlauts) -// pg-down at 'f' (forward in vi), pg-up at 'b' (back in 'vi') -// -[_FN] = { - { __________, __________, __________, KC_END, __________, __________, __________, __________, KC_INS, __________, KC_DEL, RALT(KC_Y) }, - { KC_TRNS, __________, RALT(KC_S), __________, KC_PGDN, RALT(KC_5), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, RALT(KC_P), RALT(KC_Q) }, - { __________, KC_HOME, __________, __________, __________, KC_PGUP, __________, __________, __________, __________, __________, KC_ENT }, - { RESET, __________, __________, __________, __________, KC_SPC, KC_SPC, __________, __________, __________, __________, __________ } -}, - -// function key layer and some shift + (missing key at the small form factor) -[_LOW] = { - { KC_TILD, __________, __________, __________, __________, __________, __________, __________, __________, KC_LCBR, KC_RCBR, KC_UNDS }, - { __________, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, KC_PLUS }, - { __________, __________, __________, __________, __________, KC_F9, KC_F10, KC_F11, KC_F12, __________, __________, __________ }, - { __________, __________, __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________ } -}, - -// most macros will switch tmux screens -// two macros are for vi's save/quit at 'w' and 'q' -[_TMUX] = { - { __________, M(14), M(13), __________, __________, __________, __________, __________, __________, __________, M(11), __________ }, - { M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), __________, __________ }, - { __________, __________, __________, M(12), __________, __________, M(10), __________, __________, __________, __________, __________ }, - { __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________, __________, __________ } -}, - -// mouse movement can be improved (e.g. can't press hj at once), but I will use this seldom, so I stick with hjkl keys. -[_MOUSE] = { - { KC_TRNS, __________, __________, __________, __________, __________, __________, __________, __________, __________, __________, __________ }, - { __________, __________, __________, __________, KC_WH_D, __________, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, __________, __________ }, - { __________, __________, __________, __________, __________, KC_WH_U, __________, __________, __________, __________, __________, __________ }, - { __________, __________, __________, KC_ACL2, KC_ACL1, KC_ACL0, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, __________, __________, __________ } -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [_LCTL] = ACTION_MODS_TAP_KEY(KC_LCTL, M(12)), // does not work -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case 0: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_0), END ); - break; - case 1: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_1), END ); - break; - case 2: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_2), END ); - break; - case 3: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_3), END ); - break; - case 4: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_4), END ); - break; - case 5: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_5), END ); - break; - case 6: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_6), END ); - break; - case 7: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_7), END ); - break; - case 8: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_8), END ); - break; - case 9: - // tmux last window - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_L), END ); - break; - // tmux next window - case 10: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_N), END ); - break; - // tmux previous window - case 11: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_P), END ); - break; - // tmux new window - case 12: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_C), END ); - break; - case 13: - // vi save document - return MACRODOWN( TYPE(KC_ESC), DOWN(KC_LSFT), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_W), TYPE(KC_ENT), END ); - break; - case 14: - // vi quit - return MACRODOWN( TYPE(KC_ESC), DOWN(KC_LSFT), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_Q), TYPE(KC_ENT), END ); - break; - // tmux press ctrl-b - case 15: - return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), END ); - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/mollat/mollat.c b/keyboard/planck/keymaps/mollat/mollat.c new file mode 100644 index 0000000000..e7c71efd47 --- /dev/null +++ b/keyboard/planck/keymaps/mollat/mollat.c @@ -0,0 +1,149 @@ +// +// This layout is based on the following needs: +// +// should be as close as possible to querty/us-international layout (using international/AltGr as o/s driver) +// added german umlauts at known places from de-layout +// all movement keys should be at known places from vi/bash (eg HJKL for cursor keys) +// Fn layer (at CapsLock place like the Pok3r does) for missing keys +// additional layer for tmux window switching +// +// This is work in Progress! If you have suggestions write me at github.com/mollat/qmk_firmware/ and check +// this fork for updates as I probably won't bother jack with my pull requests frequently. +// + +#include "planck.h" + +#define _QWERTY 0 +#define _HIGH 1 +#define _LOW 2 +#define _FN 3 +#define _TMUX 4 +#define _LCTL 5 +#define _MOUSE 6 +#define __________ KC_NO // just for easy reading + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_QWERTY] = { /* Qwerty */ + { LT(_MOUSE, KC_ESC),KC_Q,KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, + { LT(_FN, 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, SFT_T(KC_ENT)}, + { __________, __________, KC_LGUI, KC_LALT, KC_LCTL,LT(_TMUX, KC_SPC),LT(_HIGH, KC_SPC),MO(_LOW),KC_RALT,KC_RGUI, __________, __________ } +}, + +// missing keys regarding to the form factor +// keeping the dot and comma for typing faster IP addresses and (german) float values +// putting the backslash on the slash's place +[_HIGH] = { + { KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_MINS }, + { __________, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL }, + { __________, __________, __________, __________, __________, __________, __________, __________, KC_COMM, KC_DOT, KC_BSLS, LSFT(KC_BSLS)}, + { __________, __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________, __________ } +}, + +// classic Fn-Layer triggered with 'CapsLock-key' like on Pok3r +// SPC and ENT are doubled for using repeat (which I switched off, see https://github.com/tmk/tmk_keyboard/issues/287) +// '€' sign is on the '5' position as this is the usual AltGr place on the US Internation layout +// home/end at the 'a' and 'e' position like in bash +// ins at 'i' +// del besides backspace (had no better place for it because of the umlauts) +// pg-down at 'f' (forward in vi), pg-up at 'b' (back in 'vi') +// +[_FN] = { + { __________, __________, __________, KC_END, __________, __________, __________, __________, KC_INS, __________, KC_DEL, RALT(KC_Y) }, + { KC_TRNS, __________, RALT(KC_S), __________, KC_PGDN, RALT(KC_5), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, RALT(KC_P), RALT(KC_Q) }, + { __________, KC_HOME, __________, __________, __________, KC_PGUP, __________, __________, __________, __________, __________, KC_ENT }, + { RESET, __________, __________, __________, __________, KC_SPC, KC_SPC, __________, __________, __________, __________, __________ } +}, + +// function key layer and some shift + (missing key at the small form factor) +[_LOW] = { + { KC_TILD, __________, __________, __________, __________, __________, __________, __________, __________, KC_LCBR, KC_RCBR, KC_UNDS }, + { __________, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, KC_PLUS }, + { __________, __________, __________, __________, __________, KC_F9, KC_F10, KC_F11, KC_F12, __________, __________, __________ }, + { __________, __________, __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________ } +}, + +// most macros will switch tmux screens +// two macros are for vi's save/quit at 'w' and 'q' +[_TMUX] = { + { __________, M(14), M(13), __________, __________, __________, __________, __________, __________, __________, M(11), __________ }, + { M(0), M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), __________, __________ }, + { __________, __________, __________, M(12), __________, __________, M(10), __________, __________, __________, __________, __________ }, + { __________, __________, __________, __________, __________, KC_TRNS, __________, __________, __________, __________, __________, __________ } +}, + +// mouse movement can be improved (e.g. can't press hj at once), but I will use this seldom, so I stick with hjkl keys. +[_MOUSE] = { + { KC_TRNS, __________, __________, __________, __________, __________, __________, __________, __________, __________, __________, __________ }, + { __________, __________, __________, __________, KC_WH_D, __________, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, __________, __________ }, + { __________, __________, __________, __________, __________, KC_WH_U, __________, __________, __________, __________, __________, __________ }, + { __________, __________, __________, KC_ACL2, KC_ACL1, KC_ACL0, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN2, __________, __________, __________ } +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [_LCTL] = ACTION_MODS_TAP_KEY(KC_LCTL, M(12)), // does not work +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case 0: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_0), END ); + break; + case 1: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_1), END ); + break; + case 2: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_2), END ); + break; + case 3: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_3), END ); + break; + case 4: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_4), END ); + break; + case 5: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_5), END ); + break; + case 6: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_6), END ); + break; + case 7: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_7), END ); + break; + case 8: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_8), END ); + break; + case 9: + // tmux last window + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_L), END ); + break; + // tmux next window + case 10: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_N), END ); + break; + // tmux previous window + case 11: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_P), END ); + break; + // tmux new window + case 12: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), TYPE(KC_C), END ); + break; + case 13: + // vi save document + return MACRODOWN( TYPE(KC_ESC), DOWN(KC_LSFT), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_W), TYPE(KC_ENT), END ); + break; + case 14: + // vi quit + return MACRODOWN( TYPE(KC_ESC), DOWN(KC_LSFT), TYPE(KC_SCLN), UP(KC_LSFT), TYPE(KC_Q), TYPE(KC_ENT), END ); + break; + // tmux press ctrl-b + case 15: + return MACRODOWN( DOWN(KC_LCTL), TYPE(KC_B), UP(KC_LCTL), END ); + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/monkey.c b/keyboard/planck/keymaps/monkey.c deleted file mode 100644 index 21a2c146ab..0000000000 --- a/keyboard/planck/keymaps/monkey.c +++ /dev/null @@ -1,76 +0,0 @@ -#include "keymap_common.h" -#include "backlight.h" -#include "debug.h" - -#define COLEMAK_LAYER 0 -#define QWERTY_LAYER 1 -#define LOWER_LAYER 2 -#define UPPER_LAYER 3 -#define SPACEFN_LAYER 4 -#define TENKEY_LAYER 5 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[COLEMAK_LAYER] = { /* Colemak */ - {KC_TAB, UNI(0x1961), KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_LCTL, 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, KC_ENT}, - {FUNC(5), KC_ESC, KC_LGUI, KC_LALT, FUNC(1), FUNC(6), FUNC(6), FUNC(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[QWERTY_LAYER] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_LCTL, 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, KC_ENT}, - {FUNC(5), KC_ESC, KC_LGUI, KC_LALT, FUNC(1), FUNC(6), FUNC(6), FUNC(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[LOWER_LAYER] = { /* LOWER */ - {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELETE}, - {KC_TRNS, FUNC(3), FUNC(4), RESET, DEBUG, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} -}, -[UPPER_LAYER] = { /* RAISE */ - {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_DELETE}, - {KC_CALC, FUNC(3), FUNC(4), RESET, DEBUG, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, - {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, 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} -}, -[SPACEFN_LAYER] = { /* SpaceFN */ - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS}, - {KC_TRNS, FUNC(3), FUNC(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -[TENKEY_LAYER] = { /* TENKEY */ - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, KC_BSPC}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_NLCK}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_1, KC_KP_2, KC_KP_3, KC_PDOT, KC_ENT}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_SPC, KC_KP_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_KEY(LOWER_LAYER, KC_BSPC), // Tap for backspace, hold for LOWER - [2] = ACTION_LAYER_TAP_KEY(UPPER_LAYER, KC_ENT), // Tap for enter, hold for RAISE - - [3] = ACTION_DEFAULT_LAYER_SET(COLEMAK_LAYER), - [4] = ACTION_DEFAULT_LAYER_SET(QWERTY_LAYER), - [5] = ACTION_LAYER_TOGGLE(TENKEY_LAYER), - - [6] = ACTION_LAYER_TAP_KEY(SPACEFN_LAYER, KC_SPC), // Tap for space, hold for SpaceFN -}; - -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); - backlight_step(); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; \ No newline at end of file diff --git a/keyboard/planck/keymaps/monkey/monkey.c b/keyboard/planck/keymaps/monkey/monkey.c new file mode 100644 index 0000000000..21a2c146ab --- /dev/null +++ b/keyboard/planck/keymaps/monkey/monkey.c @@ -0,0 +1,76 @@ +#include "keymap_common.h" +#include "backlight.h" +#include "debug.h" + +#define COLEMAK_LAYER 0 +#define QWERTY_LAYER 1 +#define LOWER_LAYER 2 +#define UPPER_LAYER 3 +#define SPACEFN_LAYER 4 +#define TENKEY_LAYER 5 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[COLEMAK_LAYER] = { /* Colemak */ + {KC_TAB, UNI(0x1961), KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_LCTL, 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, KC_ENT}, + {FUNC(5), KC_ESC, KC_LGUI, KC_LALT, FUNC(1), FUNC(6), FUNC(6), FUNC(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[QWERTY_LAYER] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_LCTL, 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, KC_ENT}, + {FUNC(5), KC_ESC, KC_LGUI, KC_LALT, FUNC(1), FUNC(6), FUNC(6), FUNC(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[LOWER_LAYER] = { /* LOWER */ + {KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELETE}, + {KC_TRNS, FUNC(3), FUNC(4), RESET, DEBUG, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END} +}, +[UPPER_LAYER] = { /* RAISE */ + {S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_DELETE}, + {KC_CALC, FUNC(3), FUNC(4), RESET, DEBUG, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS)}, + {KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, 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} +}, +[SPACEFN_LAYER] = { /* SpaceFN */ + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_TRNS, KC_TRNS}, + {KC_TRNS, FUNC(3), FUNC(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +[TENKEY_LAYER] = { /* TENKEY */ + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, KC_BSPC}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, KC_NLCK}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_1, KC_KP_2, KC_KP_3, KC_PDOT, KC_ENT}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_SPC, KC_KP_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_KEY(LOWER_LAYER, KC_BSPC), // Tap for backspace, hold for LOWER + [2] = ACTION_LAYER_TAP_KEY(UPPER_LAYER, KC_ENT), // Tap for enter, hold for RAISE + + [3] = ACTION_DEFAULT_LAYER_SET(COLEMAK_LAYER), + [4] = ACTION_DEFAULT_LAYER_SET(QWERTY_LAYER), + [5] = ACTION_LAYER_TOGGLE(TENKEY_LAYER), + + [6] = ACTION_LAYER_TAP_KEY(SPACEFN_LAYER, KC_SPC), // Tap for space, hold for SpaceFN +}; + +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); + backlight_step(); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; \ No newline at end of file diff --git a/keyboard/planck/keymaps/nico.c b/keyboard/planck/keymaps/nico.c deleted file mode 100644 index e81fd80a44..0000000000 --- a/keyboard/planck/keymaps/nico.c +++ /dev/null @@ -1,69 +0,0 @@ -// 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" -#include "backlight.h" - -// 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 _DV 2 -#define _LW 3 -#define _RS 4 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_QW] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_LCTL, 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, KC_ENT }, - {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_CM] = { /* Colemak */ - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_LCTL, 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, KC_ENT }, - {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_DV] = { /* Dvorak */ - {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, - {KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, - {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, - {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -[_RS] = { /* RAISE */ - {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), DF(_DV), RESET, KC_TRNS}, - {M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY} -}, -[_LW] = { /* LOWER */ - {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), DF(_DV), RESET, KC_TRNS}, - {M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY} -} -}; - -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_KEY(MO(_LW), KC_BSPC), // Tap for backspace, hold for LOWER - [2] = ACTION_LAYER_TAP_KEY(MO(_RS), KC_ENT), // Tap for enter, hold for RAISE -}; - -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); - backlight_step(); - } else { - unregister_code(KC_RSFT); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboard/planck/keymaps/nico/nico.c b/keyboard/planck/keymaps/nico/nico.c new file mode 100644 index 0000000000..e81fd80a44 --- /dev/null +++ b/keyboard/planck/keymaps/nico/nico.c @@ -0,0 +1,69 @@ +// 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" +#include "backlight.h" + +// 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 _DV 2 +#define _LW 3 +#define _RS 4 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_QW] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_LCTL, 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, KC_ENT }, + {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_CM] = { /* Colemak */ + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_LCTL, 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, KC_ENT }, + {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_DV] = { /* Dvorak */ + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(0), KC_ESC, KC_LALT, KC_LGUI, F(1), KC_SPC, KC_SPC, F(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +[_RS] = { /* RAISE */ + {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), DF(_DV), RESET, KC_TRNS}, + {M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY} +}, +[_LW] = { /* LOWER */ + {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), DF(_DV), RESET, KC_TRNS}, + {M(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F14, KC_F15, KC_TRNS, KC_MFFD, KC_VOLD, KC_VOLU, KC_MPLY} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + [1] = ACTION_LAYER_TAP_KEY(MO(_LW), KC_BSPC), // Tap for backspace, hold for LOWER + [2] = ACTION_LAYER_TAP_KEY(MO(_RS), KC_ENT), // Tap for enter, hold for RAISE +}; + +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); + backlight_step(); + } else { + unregister_code(KC_RSFT); + } + break; + } + return MACRO_NONE; +}; diff --git a/keyboard/planck/keymaps/numpad.c b/keyboard/planck/keymaps/numpad.c deleted file mode 100644 index 7de4372ab0..0000000000 --- a/keyboard/planck/keymaps/numpad.c +++ /dev/null @@ -1,26 +0,0 @@ -#include "keymap_common.h" - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = { /* Qwerty */ - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_KP_MINUS, KC_KP_PLUS, KC_KP_PLUS, KC_KP_ENTER, KC_KP_ENTER}, - {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_ASTERISK, KC_KP_9, KC_KP_6, KC_KP_3, KC_KP_DOT}, - {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_SLASH, KC_KP_8, KC_KP_5, KC_KP_2, KC_KP_0}, - {BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_SPC, KC_SPC, KC_NUMLOCK, KC_KP_7, KC_KP_4, KC_KP_1, KC_KP_0} - // Space is repeated to accommadate for both spacebar wiring positions -} -}; - -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: - return MACRODOWN(T(CM_T), END); - break; - } - return MACRO_NONE; -}; \ No newline at end of file diff --git a/keyboard/planck/keymaps/numpad/numpad.c b/keyboard/planck/keymaps/numpad/numpad.c new file mode 100644 index 0000000000..7de4372ab0 --- /dev/null +++ b/keyboard/planck/keymaps/numpad/numpad.c @@ -0,0 +1,26 @@ +#include "keymap_common.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = { /* Qwerty */ + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_KP_MINUS, KC_KP_PLUS, KC_KP_PLUS, KC_KP_ENTER, KC_KP_ENTER}, + {KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_KP_ASTERISK, KC_KP_9, KC_KP_6, KC_KP_3, KC_KP_DOT}, + {KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_KP_SLASH, KC_KP_8, KC_KP_5, KC_KP_2, KC_KP_0}, + {BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_SPC, KC_SPC, KC_NUMLOCK, KC_KP_7, KC_KP_4, KC_KP_1, KC_KP_0} + // Space is repeated to accommadate for both spacebar wiring positions +} +}; + +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: + return MACRODOWN(T(CM_T), END); + break; + } + return MACRO_NONE; +}; \ No newline at end of file diff --git a/keyboard/planck/keymaps/tak3over.c b/keyboard/planck/keymaps/tak3over.c deleted file mode 100644 index 7d8243dfac..0000000000 --- a/keyboard/planck/keymaps/tak3over.c +++ /dev/null @@ -1,130 +0,0 @@ -// 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. -// -//Dropped the Dvorak layer and added two my layer buttons. Both Raise and lower can be accessed from either side now. - -#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 _LW 2 -#define _RS 3 -#define _FN 4 - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ; | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_QW] = { - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {KC_ESC, 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, KC_ENT }, - {KC_LCTL, KC_LALT, KC_LGUI, MO(_FN), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -/* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O | " | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right - * `-----------------------------------------------------------------------------------' - */ -[_CM] = { - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {KC_ESC, 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, KC_ENT }, - {KC_LCTL, KC_LALT, KC_LGUI, MO(_FN), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} -}, -/* Raise - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| F7 | F8 | F9 | F10 | F11 | F12 | _ | + | { | } |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_RS] = { - {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_PIPE}, - {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -/* Lower - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | Reset| Ins | Home | PGUP |Colemk| Left | - | = | [ | ] | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Brite| Del | End | PGDN |Qwerty| Del | _ | + | { | } |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_LW] = { - {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, RESET, KC_INS, KC_HOME, KC_PGUP, DF(_CM), KC_LEFT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {KC_TRNS, M(0), KC_DEL, KC_END, KC_PGDN, DF(_QW), KC_DEL, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -}, -/* Function - * ,-----------------------------------------------------------------------------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | GUI | X | C | V | Z | Left | Down | Up |Right | Del | \ | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * |Shift | Ctrl | X | C | V | Z | Next | Mute | Vol- | Vol+ | Play |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | - * `-----------------------------------------------------------------------------------' - */ -[_FN] = { - {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_RGUI, KC_X, KC_C, KC_V, KC_Z, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, KC_BSLS}, - {KC_TRNS, KC_RCTL, KC_X, KC_C, KC_V, KC_Z, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_TRNS}, - {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} -} -}; - -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/tak3over/tak3over.c b/keyboard/planck/keymaps/tak3over/tak3over.c new file mode 100644 index 0000000000..7d8243dfac --- /dev/null +++ b/keyboard/planck/keymaps/tak3over/tak3over.c @@ -0,0 +1,130 @@ +// 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. +// +//Dropped the Dvorak layer and added two my layer buttons. Both Raise and lower can be accessed from either side now. + +#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 _LW 2 +#define _RS 3 +#define _FN 4 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QW] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, 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, KC_ENT }, + {KC_LCTL, KC_LALT, KC_LGUI, MO(_FN), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right + * `-----------------------------------------------------------------------------------' + */ +[_CM] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, 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, KC_ENT }, + {KC_LCTL, KC_LALT, KC_LGUI, MO(_FN), MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| F7 | F8 | F9 | F10 | F11 | F12 | _ | + | { | } |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_RS] = { + {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_PIPE}, + {KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | Reset| Ins | Home | PGUP |Colemk| Left | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Brite| Del | End | PGDN |Qwerty| Del | _ | + | { | } |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_LW] = { + {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, RESET, KC_INS, KC_HOME, KC_PGUP, DF(_CM), KC_LEFT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {KC_TRNS, M(0), KC_DEL, KC_END, KC_PGDN, DF(_QW), KC_DEL, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +}, +/* Function + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | GUI | X | C | V | Z | Left | Down | Up |Right | Del | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |Shift | Ctrl | X | C | V | Z | Next | Mute | Vol- | Vol+ | Play |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Ctrl | Alt | GUI |Func |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_FN] = { + {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_RGUI, KC_X, KC_C, KC_V, KC_Z, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, KC_BSLS}, + {KC_TRNS, KC_RCTL, KC_X, KC_C, KC_V, KC_Z, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, KC_TRNS}, + {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} +} +}; + +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; +}; -- cgit v1.2.3 From 2425fd295af80a8e8c4f962085bca4a61d2a00db Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Mon, 16 May 2016 23:08:16 -0400 Subject: fixes default planck keymap --- keyboard/planck/keymaps/default/keymap.c | 1 - 1 file changed, 1 deletion(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 79bf62436a..43f570532b 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -261,7 +261,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) layer_off(_RAISE); layer_off(_LOWER); layer_off(_ADJUST); - layer_off(_MUSIC); layer_on(_PLOVER); if (!eeconfig_is_enabled()) { eeconfig_init(); -- cgit v1.2.3 From fe9b1482fd34a1c07afca0433e4bf5eb6229cf22 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Tue, 17 May 2016 22:17:23 -0400 Subject: adds KC_NUBS, KC_NUHS and shifted versions to default keymaps --- keyboard/planck/keymaps/default/keymap.c | 8 ++++---- keyboard/planck/keymaps/experimental/keymap.c | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/default/keymap.c b/keyboard/planck/keymaps/default/keymap.c index 43f570532b..36d496416e 100644 --- a/keyboard/planck/keymaps/default/keymap.c +++ b/keyboard/planck/keymaps/default/keymap.c @@ -99,7 +99,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' @@ -107,7 +107,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LOWER] = { {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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, @@ -117,7 +117,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' @@ -125,7 +125,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_RAISE] = { {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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, diff --git a/keyboard/planck/keymaps/experimental/keymap.c b/keyboard/planck/keymaps/experimental/keymap.c index 2f8a0510a8..4b9c15e084 100644 --- a/keyboard/planck/keymaps/experimental/keymap.c +++ b/keyboard/planck/keymaps/experimental/keymap.c @@ -99,7 +99,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' @@ -107,7 +107,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LOWER] = { {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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, @@ -117,7 +117,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' @@ -125,7 +125,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_RAISE] = { {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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, - {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUHS, _______, _______, _______}, {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} }, -- cgit v1.2.3 From b732b79b49b098dba8e14493c745075f336747d8 Mon Sep 17 00:00:00 2001 From: Jack Humbert Date: Wed, 18 May 2016 23:47:16 -0400 Subject: adapts unicode to quantum.c (#333) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Unicode to have unicode input you need to: - set your OS input method to UNICODE if needed - enable unicode in your makefile - copy the action_function from keyboard/planck/keymaps/unicode/unicode.c to your keymap.c set the target OS method in your keymap.c: void matrix_init_user() { set_unicode_mode(UC_OSX); } you can then switch when you want with: set_unicode_mode(UC_OSX); set_unicode_mode(UC_LNX); set_unicode_mode(UC_WIN); put some unicode codes in your keymap like so: UC(0x0061) I did change the bit mask in quantum/keymap_common.c and .h I’m afraid we will need uint32 to get a total support for all unicode tables or relocate the handler as @mbarkhau did. * rearranges keycode values, hooks-up unicode * removes extra lalt ref * adds unicode shortcuts and example --- keyboard/planck/keymaps/unicode/keymap.c | 326 ++++++++++++++++++++++++++++ keyboard/planck/keymaps/unicode/makefile.mk | 1 + 2 files changed, 327 insertions(+) create mode 100644 keyboard/planck/keymaps/unicode/keymap.c create mode 100644 keyboard/planck/keymaps/unicode/makefile.mk (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/unicode/keymap.c b/keyboard/planck/keymaps/unicode/keymap.c new file mode 100644 index 0000000000..d73e7e09d4 --- /dev/null +++ b/keyboard/planck/keymaps/unicode/keymap.c @@ -0,0 +1,326 @@ +/* + Copyright + 2015 Jack Humbert + 2016 Francois Marlier + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + + For more info on how this works per OS, see here + https://en.wikipedia.org/wiki/Unicode_input#Hexadecimal_code_input +*/ + + +#include "planck.h" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// 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 _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _PLOVER 5 +#define _ADJUST 16 + +// Macro name shortcuts +#define QWERTY M(_QWERTY) +#define COLEMAK M(_COLEMAK) +#define DVORAK M(_DVORAK) +#define LOWER M(_LOWER) +#define RAISE M(_RAISE) +#define M_BL 5 +#define PLOVER M(12) +#define EXT_PLV M(13) +#define TOG_OUT M(14) + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, 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, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Colemak + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | R | S | T | D | H | N | E | I | O | " | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_COLEMAK] = { + {KC_TAB, UC_q, UC_w, UC_f, UC_p, UC_g, UC_j, UC_l, UC_u, UC_y, UC_SCLN, UC_BSPC}, + {KC_ESC, UC_a, UC_r, UC_s, UC_t, UC_d, UC_h, UC_n, UC_e, UC_i, UC_o, UC_QUOT}, + {KC_LSFT, UC_z, UC_x, UC_c, UC_v, UC_b, UC_k, UC_m, UC_COMM, UC_DOT, UC_SLSH, KC_ENT}, + {KC_TRNS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Dvorak + * ,-----------------------------------------------------------------------------------. + * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Esc | A | O | E | U | I | D | H | T | N | S | / | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_DVORAK] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {M(M_BL), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = { + {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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = { + {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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +/* Plover layer (http://opensteno.org) + * ,-----------------------------------------------------------------------------------. + * | # | # | # | # | # | # | # | # | # | # | # | # | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | S | T | P | H | * | * | F | P | L | T | D | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * |TogOut| S | K | W | R | * | * | R | B | G | S | Z | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Exit | | | A | O | | E | U | | | | + * `-----------------------------------------------------------------------------------' + */ + +[_PLOVER] = { + {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, + {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, + {TOG_OUT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, + {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} +}, + +/* Adjust (Lower + Raise) + * ,-----------------------------------------------------------------------------------. + * | | Reset| | | | | | | | | | Del | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | |Voice-|Voice+|Mus on|Musoff| | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ +[_ADJUST] = { + {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, + {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, + {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} +} + + +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +#ifdef AUDIO_ENABLE +float tone_startup[][2] = { + {440.0*pow(2.0,(31)/12.0), 12}, + {440.0*pow(2.0,(28)/12.0), 8}, + {440.0*pow(2.0,(19)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8}, + {440.0*pow(2.0,(28)/12.0), 20} +}; + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); + +float goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + break; + case _COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + break; + case _DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + break; + case _LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case _RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + break; + case M_BL: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + break; + case 12: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_NOTE_ARRAY(tone_plover, false, 0); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + break; + case 13: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); + #endif + layer_off(_PLOVER); + } + break; + case 14: + if (record->event.pressed) { + return MACRO( D(E), D(R), D(F), D(V), D(O), D(L), U(E), U(R), U(F), U(V), U(O), U(L), END ); + } + break; + } + return MACRO_NONE; +}; + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + _delay_ms(20); // stops the tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); + #endif +} + +#ifdef AUDIO_ENABLE +void play_goodbye_tone() +{ + PLAY_NOTE_ARRAY(goodbye, false, 0); + _delay_ms(150); +} +#endif + + diff --git a/keyboard/planck/keymaps/unicode/makefile.mk b/keyboard/planck/keymaps/unicode/makefile.mk new file mode 100644 index 0000000000..9b27b08bed --- /dev/null +++ b/keyboard/planck/keymaps/unicode/makefile.mk @@ -0,0 +1 @@ +UNICODE_ENABLE = yes # Unicode -- cgit v1.2.3 From d66aa0abf96b5e887250cf0a7fa5e575f18c5a91 Mon Sep 17 00:00:00 2001 From: Peter Date: Fri, 20 May 2016 17:14:08 +0200 Subject: adds petereichinger's planck keymap (#340) * Add custom keymap * A little readme and remove old layout comments --- keyboard/planck/keymaps/pete/README.md | 14 ++ keyboard/planck/keymaps/pete/keymap.c | 223 +++++++++++++++++++++++++++++++ keyboard/planck/keymaps/pete/makefile.mk | 2 + 3 files changed, 239 insertions(+) create mode 100644 keyboard/planck/keymaps/pete/README.md create mode 100644 keyboard/planck/keymaps/pete/keymap.c create mode 100644 keyboard/planck/keymaps/pete/makefile.mk (limited to 'keyboard/planck') diff --git a/keyboard/planck/keymaps/pete/README.md b/keyboard/planck/keymaps/pete/README.md new file mode 100644 index 0000000000..3cf594f3a9 --- /dev/null +++ b/keyboard/planck/keymaps/pete/README.md @@ -0,0 +1,14 @@ +# Planck Layout by Pete + +This layout is based on the default layout but uses a FN key in the bottom left corner instead of the shift / backlight key. +On the FN layer you can do the following things + +- Step through back light +- Put a mac to sleep +- The Fxx keys in a block to click with the right hand +- The delete key in the upper right corner +- Quick access to screenshot functions +- Control volume and media playback +- Home/PgDown/PgUp/End buttons where the arrow keys are + +Pressing the lower and raise buttons allows to reset and change from QWERT to Colemak or Dvorak. diff --git a/keyboard/planck/keymaps/pete/keymap.c b/keyboard/planck/keymaps/pete/keymap.c new file mode 100644 index 0000000000..57cab65a31 --- /dev/null +++ b/keyboard/planck/keymaps/pete/keymap.c @@ -0,0 +1,223 @@ +// 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" +#include "action_layer.h" +#ifdef AUDIO_ENABLE + #include "audio.h" +#endif +#include "eeconfig.h" + +extern keymap_config_t keymap_config; + +// 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 _QWERTY 0 +#define _COLEMAK 1 +#define _DVORAK 2 +#define _LOWER 3 +#define _RAISE 4 +#define _FCT 5 +#define _SETUP 6 +#define _MICMUTE 16 + +// Macro name shortcuts +#define QWERTY M(_QWERTY) +#define COLEMAK M(_COLEMAK) +#define DVORAK M(_DVORAK) +#define LOWER M(_LOWER) +#define RAISE M(_RAISE) +#define FCT M(_FCT) +#define MICMUTE M(_MICMUTE) + +#define MACPRNT LGUI(LSFT(KC_3)) +#define MACPRNT2 LGUI(LSFT(KC_4)) +#define CYCLWIN LGUI(KC_GRV) +#define MAC_SLEP LSFT(LCTL(KC_POWER)) + +// Fillers to make layering more clear +#define _______ KC_TRNS +#define XXXXXXX KC_NO + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[_QWERTY] = { + {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, + {KC_ESC, 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, KC_ENT }, + {FCT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +[_COLEMAK] = { + {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, + {KC_ESC, 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, KC_ENT }, + {FCT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +[_DVORAK] = { + {KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, + {KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, + {KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, + {FCT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} +}, + +[_LOWER] = { + {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_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +[_RAISE] = { + {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_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} +}, + +[_FCT] = { /* Function */ + {BL_STEP, MAC_SLEP,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_DELT}, + {_______, MICMUTE, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, MACPRNT}, + {_______, CYCLWIN, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, MACPRNT2}, + {FCT, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDOWN,KC_PGUP,KC_END } +}, + +[_SETUP] = { /* Setup */ + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, _______, _______}, + {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, + {_______, _______, _______, _______, _______, RESET, RESET, _______, _______, _______, _______, _______} +} +}; + +const uint16_t PROGMEM fn_actions[] = { + +}; + +#ifdef AUDIO_ENABLE +float tone_startup[][2] = { + {440.0*pow(2.0,(31)/12.0), 12}, + {440.0*pow(2.0,(28)/12.0), 8}, + {440.0*pow(2.0,(19)/12.0), 8}, + {440.0*pow(2.0,(24)/12.0), 8}, + {440.0*pow(2.0,(28)/12.0), 20} +}; + +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +float tone_dvorak[][2] = SONG(DVORAK_SOUND); +float tone_colemak[][2] = SONG(COLEMAK_SOUND); +float tone_plover[][2] = SONG(PLOVER_SOUND); +float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); + +float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); +float goodbye[][2] = SONG(GOODBYE_SOUND); +#endif + + +void persistant_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ + switch(id) { + case _QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_qwerty, false, 0); + #endif + persistant_default_layer_set(1UL<<_QWERTY); + } + break; + case _COLEMAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_colemak, false, 0); + #endif + persistant_default_layer_set(1UL<<_COLEMAK); + } + break; + case _DVORAK: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_NOTE_ARRAY(tone_dvorak, false, 0); + #endif + persistant_default_layer_set(1UL<<_DVORAK); + } + break; + case _LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _SETUP); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _SETUP); + } + break; + case _RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _SETUP); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _SETUP); + } + break; + case _FCT: + if (record->event.pressed) { + layer_on(_FCT); + } else { + layer_off(_FCT); + } + break; + case _MICMUTE: + if (record->event.pressed) { + register_code(KC_RSFT); + register_code(KC_RCTL); + register_code(KC_RALT); + register_code(KC_RGUI); + } else { + unregister_code(KC_RSFT); + unregister_code(KC_RCTL); + unregister_code(KC_RALT); + unregister_code(KC_RGUI); + } + break; + + } + return MACRO_NONE; +}; + +void matrix_init_user(void) { + #ifdef AUDIO_ENABLE + _delay_ms(20); // stops the tick + PLAY_NOTE_ARRAY(tone_startup, false, 0); + #endif +} + +#ifdef AUDIO_ENABLE +void play_goodbye_tone() +{ + PLAY_NOTE_ARRAY(goodbye, false, 0); + _delay_ms(150); +} + +uint8_t starting_note = 0x0C; +int offset = 0; + +void process_action_user(keyrecord_t *record) { + + if (IS_LAYER_ON(_MUSIC)) { + if (record->event.pressed) { + play_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row)), 0xF); + } else { + stop_note(((double)220.0)*pow(2.0, -4.0)*pow(2.0,(starting_note + SCALE[record->event.key.col + offset])/12.0+(MATRIX_ROWS - record->event.key.row))); + } + } + +} +#endif diff --git a/keyboard/planck/keymaps/pete/makefile.mk b/keyboard/planck/keymaps/pete/makefile.mk new file mode 100644 index 0000000000..812264cb35 --- /dev/null +++ b/keyboard/planck/keymaps/pete/makefile.mk @@ -0,0 +1,2 @@ +AUDIO_ENABLE = no +NKRO_ENABLE = yes \ No newline at end of file -- cgit v1.2.3