diff options
Diffstat (limited to 'keyboards/planck/keymaps')
25 files changed, 1077 insertions, 267 deletions
diff --git a/keyboards/planck/keymaps/basic/keymap.c b/keyboards/planck/keymaps/basic/keymap.c index 748d9acbe4..4458c32a76 100644 --- a/keyboards/planck/keymaps/basic/keymap.c +++ b/keyboards/planck/keymaps/basic/keymap.c @@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { {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_RSFT, KC_LCTL, KC_LALT, KC_LGUI, M(1), KC_SPC, KC_SPC, M(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} + {KC_RSFT, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} }, /* Lower @@ -64,24 +64,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - switch(id) { - case 1: - if (record->event.pressed) { - layer_on(1); - } else { - layer_off(1); - } - break; - case 2: - if (record->event.pressed) { - layer_on(2); - } else { - layer_off(2); - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c index cc090200b7..280249a9c2 100644 --- a/keyboards/planck/keymaps/default/keymap.c +++ b/keyboards/planck/keymaps/default/keymap.c @@ -46,9 +46,9 @@ 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 | @@ -64,9 +64,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 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 | @@ -82,9 +82,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 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 | @@ -100,9 +100,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Lower * ,-----------------------------------------------------------------------------------. * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| + * |------+------+------+------+------+------+------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | - * |------+------+------+------+------+------|------+------+------+------+------+------| + * |------+------+------+------+------+------+------+------+------+------+------+------| * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | @@ -118,9 +118,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 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 |ISO # |ISO / |Pg Up |Pg Dn | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | @@ -136,9 +136,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* 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 | | | | @@ -154,9 +154,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. * | | Reset| | | | | | | | | | Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| + * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | - * |------+------+------+------+------+------|------+------+------+------+------+------| + * |------+------+------+------+------+------+------+------+------+------+------+------| * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | | | | | diff --git a/keyboards/planck/keymaps/dodger/rules.mk b/keyboards/planck/keymaps/dodger/rules.mk index 981a3e82be..032f5af689 100644 --- a/keyboards/planck/keymaps/dodger/rules.mk +++ b/keyboards/planck/keymaps/dodger/rules.mk @@ -1,5 +1,4 @@ # MCU name -#MCU = at90usb1287 MCU = atmega32u4 # Processor frequency. diff --git a/keyboards/planck/keymaps/dsanchezseco/config.h b/keyboards/planck/keymaps/dsanchezseco/config.h index 6fa31cc8a7..3ed041f3bd 100644 --- a/keyboards/planck/keymaps/dsanchezseco/config.h +++ b/keyboards/planck/keymaps/dsanchezseco/config.h @@ -1,39 +1,5 @@ #pragma once #ifdef AUDIO_ENABLE - #define STARTUP_SONG SONG(PLANCK_SOUND) - // #define STARTUP_SONG SONG(NO_SOUND) - - #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ - SONG(COLEMAK_SOUND), \ - SONG(DVORAK_SOUND) \ - } + #define STARTUP_SONG SONG(DVORAK_SOUND) #endif - -/* - * MIDI options - */ - -/* Prevent use of disabled MIDI features in the keymap */ -//#define MIDI_ENABLE_STRICT 1 - -/* enable basic MIDI features: - - MIDI notes can be sent when in Music mode is on -*/ - -#define MIDI_BASIC - -/* enable advanced MIDI features: - - MIDI notes can be added to the keymap - - Octave shift and transpose - - Virtual sustain, portamento, and modulation wheel - - etc. -*/ -//#define MIDI_ADVANCED - -/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ -//#define MIDI_TONE_KEYCODE_OCTAVES 2 - -// Most tactile encoders have detents every 4 stages -#define ENCODER_RESOLUTION 4 - diff --git a/keyboards/planck/keymaps/dsanchezseco/keymap.c b/keyboards/planck/keymaps/dsanchezseco/keymap.c index 90ad2bc596..df560b46c5 100644 --- a/keyboards/planck/keymaps/dsanchezseco/keymap.c +++ b/keyboards/planck/keymaps/dsanchezseco/keymap.c @@ -1,19 +1,3 @@ -/* Copyright 2015-2017 Jack Humbert - * - * 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 <http://www.gnu.org/licenses/>. - */ - #include QMK_KEYBOARD_H #include "muse.h" diff --git a/keyboards/planck/keymaps/dvorak2space/config.h b/keyboards/planck/keymaps/dvorak2space/config.h new file mode 100644 index 0000000000..0927fa016e --- /dev/null +++ b/keyboards/planck/keymaps/dvorak2space/config.h @@ -0,0 +1,3 @@ +#pragma once +#define TAPPING_TOGGLE 1 +#define PERMISSIVE_HOLD diff --git a/keyboards/planck/keymaps/dvorak2space/keymap.c b/keyboards/planck/keymaps/dvorak2space/keymap.c new file mode 100644 index 0000000000..4b07759452 --- /dev/null +++ b/keyboards/planck/keymaps/dvorak2space/keymap.c @@ -0,0 +1,242 @@ +#include QMK_KEYBOARD_H +#include "passwords.c" //Instead of extern just to cut down on compile time. Holds a single array. +#define MOUSEL KC_BTN1 +#define MOUSER KC_BTN2 +#define CTRLL LCTL(KC_LEFT) +#define CTRLR LCTL(KC_RGHT) +#define CAD LCTL(LALT(KC_DEL)) + +#define BASE_L 0 +#define SHFT_L 1 +#define MOD_L 2 +#define NAV_L 3 +#define AHK_L 4 +#define LOCK_L 5 +#define PASS_L 6 + +static host_driver_t *host_driver = 0; + +enum { + HK_SLP = SAFE_RANGE, + HK_IF, + HK_ELSE, + HK_COSL +}; + +enum { + FB = 0, + LPN, + RPN, + BCK, + DSH +}; + +enum { + SINGLE_TAP = 1, + SINGLE_HOLD = 2, + DOUBLE_TAP = 3, + DOUBLE_HOLD = 4, + DOUBLE_SINGLE_TAP = 5, //Distinguishes between double tapping and typing, "tapping", for example. Not sure how accurate it is, and I have no need, so avoiding it at the moment. + TRIPLE_TAP = 6, + TRIPLE_HOLD = 7 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Base + * ,-----------------------------------------------------------------------------------. + * | Tab | ' | , | . | p | y | f | g | c | r | l | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | Nav | a | o | e | u | i | d | h | t | n | s | Enter| + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | Shft | ; | q | j | k | x | b | m | w | v | z | Shft | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | RClk | LClk | Ctrl | Space | Modifier | GUI | VolD | VolU |Macros| + * `-----------------------------------------------------------------------------------' + */ + [0] = LAYOUT_planck_2x2u( + KC_TAB, KC_QUOT,KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, TD(BCK), + MO(NAV_L),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_SCLN,KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, + KC_ESC, MOUSER, MOUSEL, KC_LCTL, KC_SPC, MO(MOD_L), KC_LGUI, KC_VOLD, KC_VOLU, OSL(AHK_L) + ), +/* Custom Shifts + * ,-----------------------------------------------------------------------------------. + * | | | ? | ! | | | | | | | | | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [1] = LAYOUT_planck_2x2u( + KC_TRNS,KC_TRNS,KC_SLSH,KC_1, 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_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_NO, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS + ), +/* Modifier + * ,-----------------------------------------------------------------------------------. + * | Tab | + | - | * | / \ | if | else | ( [ | ) ] | { | } | Bksp | + * |------+------+------+------+------+-------------+------+------+------+------+------| + * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Enter| + * |------+------+------+------+------+------|------+------+------+------+------+------| + * | ` | < | > | & | | | _ | $ | @ | # | % | ^ | ~ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | Space | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [2] = LAYOUT_planck_2x2u( + KC_TRNS,KC_PLUS,TD(DSH),KC_ASTR,TD(FB), HK_IF, HK_ELSE,TD(LPN),TD(RPN),KC_LCBR,KC_RCBR,KC_TRNS, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, + KC_GRV, KC_LT, KC_GT, KC_AMPR,KC_PIPE,KC_UNDS,KC_DLR, KC_AT, KC_HASH,KC_PERC,KC_CIRC,LSFT(KC_GRV), + KC_NO, KC_NO, KC_NO, KC_NO, KC_SPC, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO + ), +//Nav + [3] = LAYOUT_planck_2x2u( + KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME,KC_UP, KC_END, KC_NO, KC_TRNS, + KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, CTRLL, KC_LEFT,KC_DOWN,KC_RGHT, CTRLR, KC_TRNS, + KC_LSFT,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_SPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), +//AHK-Bindable Macros + [4] = LAYOUT_planck_2x2u( + KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, + LCTL(KC_F13),LCTL(KC_F14),LCTL(KC_F15),LCTL(KC_F16),LCTL(KC_F17),LCTL(KC_F18),LCTL(KC_F19),LCTL(KC_F20),LCTL(KC_F21),LCTL(KC_F22),LCTL(KC_F23),LCTL(KC_F24), + LSFT(KC_F13),LSFT(KC_F14),LSFT(KC_F15),LSFT(KC_F16),LSFT(KC_F17),LSFT(KC_F18),LSFT(KC_F19),LSFT(KC_F20),LSFT(KC_F21),LSFT(KC_F22),LSFT(KC_F23),LSFT(KC_F24), + RESET, LALT(KC_F14),LALT(KC_F15),OSL(PASS_L), CAD, LALT(KC_F19), LALT(KC_F21),LALT(KC_F22),HK_SLP, HK_COSL + ), +//Locked Screen + [5] = LAYOUT_planck_2x2u( + 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, 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, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, HK_SLP, KC_NO + ), +//Passwords (by first letter of service name, at least better than just one) + [6] = LAYOUT_planck_2x2u( + KC_NO, KC_NO, KC_NO, KC_NO, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_NO, + KC_NO, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_NO, + KC_NO, KC_NO, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_NO, + KC_NO, KC_NO, KC_NO, HK_COSL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ) +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { //X_KEY doesn't support aliases + switch(keycode) { + //if shift pressed and not shift layer or released and other shift not pressed + //in separate things because MOD_BIT (probably?) isn't toggled until after this returns true and shift is actually toggled + case KC_LSFT: //if pressed and not shift layer or released and other shift not pressed + if((record->event.pressed && IS_LAYER_OFF(SHFT_L)) || (!record->event.pressed && !(get_mods() & MOD_BIT(KC_RSFT)))) { layer_invert(SHFT_L); } + break; + case KC_RSFT: + if((record->event.pressed && IS_LAYER_OFF(SHFT_L)) || (!record->event.pressed && !(get_mods() & MOD_BIT(KC_LSFT)))) { layer_invert(SHFT_L); } + break; + case KC_ENT: //won't repeat on hold and I can't find a solution other than hardcoding timers but I kinda prefer it anyway. Swaps enter and shift enter + if(record->event.pressed) { + (IS_LAYER_ON(SHFT_L)) //if shifted release correct shift, send, and press same shift, else send shift enter + ? (get_mods() & MOD_BIT(KC_LSFT)) + ? SEND_STRING(SS_UP(X_LSHIFT) SS_TAP(X_ENTER) SS_DOWN(X_LSHIFT)) + : SEND_STRING(SS_UP(X_RSHIFT) SS_TAP(X_ENTER) SS_DOWN(X_RSHIFT)) + : SEND_STRING(SS_LSFT(SS_TAP(X_ENTER))); + } + return false; + case HK_IF: + if(record->event.pressed) { SEND_STRING("if"); } + break; + case HK_ELSE: + if(record->event.pressed) { SEND_STRING("else"); } + break; + case HK_COSL: + clear_keyboard(); + break; + case HK_SLP: + if(record->event.pressed) { + if(IS_LAYER_OFF(LOCK_L)) { + host_driver = host_get_driver(); + SEND_STRING(SS_LALT(SS_TAP(X_F23))); + host_set_driver(0); + } + else { + host_set_driver(host_driver); + SEND_STRING(SS_LALT(SS_TAP(X_F24))); + } + return false; + } + layer_invert(LOCK_L); + if(IS_LAYER_ON(AHK_L)) + layer_invert(AHK_L); + break; + default: + if(IS_LAYER_ON(PASS_L) && keycode <= KC_Z) { + SEND_STRING(passwords[keycode - KC_A]); + layer_invert(PASS_L); + return false; + } + } + return true; +}; + +//tapdance state evaluation +int cur_dance(qk_tap_dance_state_t *state) { + int press = 0; + switch(state->count) { + case 1: + press = (state->interrupted || !state->pressed) + ? SINGLE_TAP + : SINGLE_HOLD; + break; + case 2: + press = DOUBLE_TAP; + break; + case 3: + press = TRIPLE_TAP; + } + return press; +} + +void back_tap(qk_tap_dance_state_t *state, void *user_data) { tap_code(KC_BSPACE); } + +void back_finished(qk_tap_dance_state_t *state, void *user_data) { if(!(state->interrupted || !state->pressed)) tap_code16(LCTL(KC_BSPACE)); } + +void slash_finished(qk_tap_dance_state_t *state, void *user_data) { + int td_state = cur_dance(state); + switch(td_state) { + case SINGLE_TAP: + clear_mods(); + clear_weak_mods(); + tap_code(KC_SLSH); + break; + case DOUBLE_TAP: + tap_code(KC_NUBS); + } +} + +void dash_finished(qk_tap_dance_state_t *state, void *user_data) { + int td_state = cur_dance(state); + switch(td_state) { + case SINGLE_TAP: + tap_code(KC_PMNS); + break; + case SINGLE_HOLD: + register_mods(MOD_BIT(KC_LALT)); + tap_code(KC_KP_0); + tap_code(KC_KP_1); + tap_code(KC_KP_5); + tap_code(KC_KP_1); + unregister_mods(MOD_BIT(KC_LALT)); + break; + case DOUBLE_TAP: + tap_code(KC_PMNS); + tap_code(KC_PMNS); + } +} + +qk_tap_dance_action_t tap_dance_actions[] = { + [LPN] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_LBRC), + [RPN] = ACTION_TAP_DANCE_DOUBLE(KC_RPRN, KC_RBRC), + [FB] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, slash_finished, NULL), + [BCK] = ACTION_TAP_DANCE_FN_ADVANCED(back_tap, back_finished, NULL), //each tap, on finished, and reset. Normally register_code on press unregister on reset so keys can be held down. + [DSH] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dash_finished, NULL) +}; diff --git a/keyboards/planck/keymaps/dvorak2space/passwords.c b/keyboards/planck/keymaps/dvorak2space/passwords.c new file mode 100644 index 0000000000..161c564dd5 --- /dev/null +++ b/keyboards/planck/keymaps/dvorak2space/passwords.c @@ -0,0 +1,28 @@ +char *passwords[26] = { + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" +}; diff --git a/keyboards/planck/keymaps/dvorak2space/readme.md b/keyboards/planck/keymaps/dvorak2space/readme.md new file mode 100644 index 0000000000..1844a57f37 --- /dev/null +++ b/keyboards/planck/keymaps/dvorak2space/readme.md @@ -0,0 +1,5 @@ +![Keyboard Layout](https://i.imgur.com/9jYjllM.png) + +# IsaacElenbaas's Planck Layout + +Split spacebar, Dvorak. Bottom right button leads to layer with lots of things to be mapped in AutoHotkey. The ones I use (of which the best are sleep, which turns off the monitors and locks all inputs, rebinding keyboard-only mouse inputs, and redirecting media keys to a specific player) can be found [here.](https://github.com/IsaacElenbaas/personal_scripts/blob/master/Keyboard.ahk) Capslock goes to a right-hand navigation layer, there is a custom layer when holding shift, holding dash gives an em dash, holding backspace deletes a word, and I have a obfuscation-based password system you probably shouldn't use, but the rest is pretty standard. diff --git a/keyboards/planck/keymaps/dvorak2space/rules.mk b/keyboards/planck/keymaps/dvorak2space/rules.mk new file mode 100644 index 0000000000..59f9f1dff2 --- /dev/null +++ b/keyboards/planck/keymaps/dvorak2space/rules.mk @@ -0,0 +1,20 @@ +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work. Can make windows not recognize device. +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = no # 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. +API_SYSEX_ENABLE = no +TAP_DANCE_ENABLE = yes + +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend + +LAYOUTS_HAS_RGB = no diff --git a/keyboards/planck/keymaps/handwired_binaryplease/rules.mk b/keyboards/planck/keymaps/handwired_binaryplease/rules.mk index efe0c7a5dd..cf37fa6f3b 100644 --- a/keyboards/planck/keymaps/handwired_binaryplease/rules.mk +++ b/keyboards/planck/keymaps/handwired_binaryplease/rules.mk @@ -1,5 +1,4 @@ # MCU name -#MCU = at90usb1287 MCU = atmega32u4 # Processor frequency. diff --git a/keyboards/planck/keymaps/kloki/rules.mk b/keyboards/planck/keymaps/kloki/rules.mk index 195ad328be..02926bffa6 100644 --- a/keyboards/planck/keymaps/kloki/rules.mk +++ b/keyboards/planck/keymaps/kloki/rules.mk @@ -1,5 +1,4 @@ # MCU name -#MCU = at90usb1287 MCU = atmega32u4 # Processor frequency. diff --git a/keyboards/planck/keymaps/mattly/keymap.c b/keyboards/planck/keymaps/mattly/keymap.c index baa7d9fbf7..52ade86432 100644 --- a/keyboards/planck/keymaps/mattly/keymap.c +++ b/keyboards/planck/keymaps/mattly/keymap.c @@ -1,166 +1,34 @@ -/* Copyright 2015-2017 Jack Humbert - * - * 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 <http://www.gnu.org/licenses/>. - */ - #include QMK_KEYBOARD_H -#include "muse.h" - -extern keymap_config_t keymap_config; - -enum planck_layers { - _QWERTY, - _NUMBER, - _SYMBOL, - _FUNC, -}; - -enum planck_keycodes { - QWERTY = SAFE_RANGE -}; - -#define SPC_SHF MT(MOD_LSFT, KC_SPC) - -#define ESC_HYP MT(MOD_HYPR, KC_ESC) -#define TAB_NUM LT(_NUMBER, KC_TAB) -#define BSP_SYM LT(_SYMBOL, KC_BSPC) -#define DEL_WRP MT(MOD_LCTL | MOD_LALT | MOD_LGUI, KC_DEL) - -#define SYMLOCK TG(_SYMBOL) -#define NUMLOCK TG(_NUMBER) - -#define ONE_CTL OSM(MOD_LCTL) -#define ONE_ALT OSM(MOD_LALT) -#define ONE_GUI OSM(MOD_LGUI) -#define ONE_HYP OSM(MOD_HYPR) -#define ONE_MEH OSM(MOD_MEH) -#define ONE_WRP OSM(MOD_LCTL | MOD_LALT | MOD_LGUI) -#define ONE_WOA OSM(MOD_LCTL | MOD_LGUI | MOD_LSFT) -#define ONE_DER OSM(MOD_LALT | MOD_LGUI | MOD_LSFT) - -#define A_CTRL MT(MOD_LCTL, KC_A) -#define S_ALT MT(MOD_LALT, KC_S) -#define D_GUI MT(MOD_LGUI, KC_D) -#define F_SHFT MT(MOD_LSFT, KC_F) -#define J_SHFT MT(MOD_RSFT, KC_J) -#define K_GUI MT(MOD_RGUI, KC_K) -#define L_ALT MT(MOD_RALT, KC_L) -#define MINSCTL MT(MOD_RCTL, KC_MINS) - -#define ENT_CTL MT(MOD_LCTL, KC_ENT) -#define LT_ALT MT(MOD_LALT, KC_LEFT) -#define DN_GUI MT(MOD_LGUI, KC_DOWN) -#define RT_SHFT MT(MOD_LSFT, KC_RGHT) -#define N4_SHFT MT(MOD_RSFT, KC_4) -#define N5_GUI MT(MOD_RGUI, KC_5) -#define N6_ALT MT(MOD_RALT, KC_6) - -#define BWORD LALT(KC_LEFT) -#define FWORD LALT(KC_RIGHT) - -#define NWIN LGUI(KC_GRV) -#define PWIN LGUI(LSFT(KC_GRV)) -#define NTAB LGUI(LSFT(KC_RBRC)) -#define PTAB LGUI(LSFT(KC_LBRC)) -#define NAVBACK LGUI(KC_LBRC) -#define NAVFWD LGUI(KC_RBRC) - -#define XMSNCTL HYPR(KC_F14) -#define XDSKTOP HYPR(KC_F15) -#define XNXTSPC HYPR(KC_F16) -#define XPRVSPC HYPR(KC_F17) -#define XNOTIFY HYPR(KC_F18) +#include "mattly.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Querty - | # | q | w | e | r | t | y | u | i | o | p | - | - | | | | | | | | | | | | | - |------|------|------|------|------|------|------|------|------|------|------|------| - | ( | a | s | d | f | g | h | j | k | l | ; | ' | - | | CTRL | ALT | GUI | SHIFT| | | SHIFT| GUI | ALT | CTRL | | - |------|------|------|------|------|------|------|------|------|------|------|------| - | [ | z | x | c | v | b | n | m | , | . | / | > | - | | | | | | | | | | | | | - |------|------|------|------|------|------|------|------|------|------|------|------| - | ctrl | alt | gui | Esc | Tab | space | Bksp | Del | hyper| meh | warp | - | | | | FUNC |NUMBER| SHIFT |SYMBOL| | | | | - */ [_QWERTY] = LAYOUT_planck_grid( - KC_HASH, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_SCLN, - KC_LPRN, A_CTRL, S_ALT, D_GUI, F_SHFT, KC_G, KC_H, J_SHFT, K_GUI, L_ALT, MINSCTL, KC_QUOT, - KC_LBRC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RABK, - NUMLOCK, MO(_FUNC), ONE_MEH, ESC_HYP, TAB_NUM, SPC_SHF, SPC_SHF, BSP_SYM, DEL_WRP, ONE_WRP, ONE_DER, SYMLOCK + XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_SCLN, + KC_CAPS, A_CTRL, S_ALT, D_GUI, F_SHFT, KC_G, KC_H, J_SHFT, K_GUI, L_ALT, MINSCTL, KC_QUOT, + XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + XXXXXXX, NAVLOCK, XXXXXXX, ESC_HYP, BSP_NUM, ENT_SFT, SPC_SFT, TAB_SYM, DEL_WRP, XXXXXXX, SYMLOCK, XXXXXXX ), -/* Symbol - | | & | ` | ~ | [ | ] | < | > | + | | | | | - | | $ | % | = | ( | ) | ; | : | ! | @ | _ | | - | | | ^ | # | { | } | ' | " | | | \ | ? | | - | | | | | | | .... | | | | | - */ [_SYMBOL] = LAYOUT_planck_grid( - KC_ESC, KC_AMPR, KC_GRV, KC_TILD, KC_LBRC, KC_RBRC, KC_LABK, KC_RABK, KC_PLUS, KC_ASTR, XXXXXXX, KC_DEL, - KC_ENT, KC_DLR, KC_PERC, KC_EQL, KC_LPRN, KC_RPRN, KC_SCLN, KC_COLN, KC_EXLM, KC_AT, KC_UNDS, KC_BSPC, + _______, KC_AMPR, KC_GRV, KC_TILD, KC_LBRC, KC_RBRC, KC_LABK, KC_RABK, KC_PLUS, KC_ASTR, XXXXXXX, _______, + _______, KC_DLR, KC_PERC, KC_EQL, KC_LPRN, KC_RPRN, KC_SCLN, KC_COLN, KC_EXLM, KC_AT, KC_UNDS, _______, _______, XXXXXXX, KC_CIRC, KC_HASH, KC_LCBR, KC_RCBR, KC_QUOT, KC_DQUO, KC_PIPE, KC_BSLS, KC_QUES, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -/* Number - | | |<-word| up |word->| PgUp | . | 7 | 8 | 9 | + | * | - | | Enter| left | down | right| PgDn | 0 | 4 | 5 | 6 | - | / | - | | Bksp | Home | tab | End | Del | , | 1 | 2 | 3 | = | % | - | | | | | .... | | | | : | $ | | - */ -[_NUMBER] = LAYOUT_planck_grid( - XXXXXXX, XXXXXXX, BWORD, KC_UP, FWORD, KC_PGUP, KC_DOT, KC_7, KC_8, KC_9, KC_PLUS, KC_ASTR, - KC_CAPS, ENT_CTL, LT_ALT, DN_GUI, RT_SHFT, KC_PGDN, KC_0, N4_SHFT, N5_GUI, N6_ALT, MINSCTL, KC_SLSH, - XXXXXXX, KC_BSPC, KC_HOME, KC_TAB, KC_END, KC_DEL, KC_COMM, KC_1, KC_2, KC_3, KC_EQL, KC_PERC, - _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_COLN, KC_DLR, _______ + +[_NAVNUM] = LAYOUT_planck_grid( + _______, XXXXXXX, BWORD, KC_UP, FWORD, KC_PGUP, KC_DOT, KC_7, KC_8, KC_9, KC_PLUS, KC_ASTR, + _______, KC_ENT, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_0, KC_4, KC_5, KC_6, KC_MINS, KC_SLSH, + _______, KC_BSPC, KC_HOME, KC_TAB, KC_END, KC_DEL, KC_COMM, KC_1, KC_2, KC_3, KC_EQL, KC_PERC, + _______, _______, _______, _______, _______, _______, _______, _______, KC_0, KC_COLN, KC_DLR, _______ ), -/* Function - * | Reset| Mctl | Pspc | Nwin | Nspc | Desk | | F7 | F8 | F9 | F10 | F13 | - * | Debug| Nctr | Ptab | Pwin | Ntab | Back | Fwd | F4 | F5 | F6 | F11 | F14 | - * | Mute | Vol- | Vol+ | Trk- | Trk+ | Play | | F1 | F2 | F3 | F12 | F15 | - * | | | | | | | | | | | | | - */ -[_FUNC] = LAYOUT_planck_grid( - RESET, XMSNCTL, XPRVSPC, NWIN, XNXTSPC, XDSKTOP, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F13, + +[_FUNCT] = LAYOUT_planck_grid( + RESET, XALLWIN, XPRVSPC, NWIN, XNXTSPC, XDESKTP, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F13, DEBUG, XNOTIFY, PTAB, PWIN, NTAB, NAVBACK, NAVFWD, KC_F4, KC_F5, KC_F6, KC_F11, KC_F14, KC_MUTE, KC_VOLD, KC_VOLU, KC_MRWD, KC_MFFD, KC_MPLY, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F12, KC_F15, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; -#ifdef AUDIO_ENABLE -#endif - -uint32_t layer_state_set_user(uint32_t state) { - state = update_tri_layer_state(state, _SYMBOL, _NUMBER, _FUNC); - return state; -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - print("mode just switched to qwerty and this is a huge string\n"); - set_single_persistent_default_layer(_QWERTY); - } - return false; - break; - } - return true; -} - diff --git a/keyboards/planck/keymaps/mattly/readme.md b/keyboards/planck/keymaps/mattly/readme.md index 58f2b979c6..4e8c7f17c6 100644 --- a/keyboards/planck/keymaps/mattly/readme.md +++ b/keyboards/planck/keymaps/mattly/readme.md @@ -1,28 +1 @@ -# Mattly's Planck layout - -This planck layout is optimized for, in order: - -- moving work from my pinkies to my thumbs -- writing lisp/clojure code in my evil-mode based emacs setup -- tapping out messages in chat applications such as slack -- writing english in markdown files in said emacs -- navigating mac applications -- writing english in a web browser on a macintosh -- writing other programming languages' code in said emacs -- writing english in other contexts -- literally anything else - -## oddities: - -You may notice that `enter` is on a layer. This is an experiment and I kind of -like it so far, since many programs interpret that keystroke as a "commit" -of some kind. - -## works in progress - -I'm trying to figure out how to make some things easier to do with the mouse or -one-handed. Right now the combo of entering numbers and using a mouse with my -right hand is kind of annoying. I want to be able to toggle layers on, but only -from within that layer. - -![mattly's keymap](https://lyonheart.us/etc/mattly-keymap.png) +See my readme in [users/mattly](../../../../../users/mattly/readme.md)
\ No newline at end of file diff --git a/keyboards/planck/keymaps/snowkuma/config.h b/keyboards/planck/keymaps/snowkuma/config.h new file mode 100644 index 0000000000..b41ead838d --- /dev/null +++ b/keyboards/planck/keymaps/snowkuma/config.h @@ -0,0 +1,46 @@ +#pragma once + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PLANCK_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) + + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +#endif + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 2 + +// Most tactile encoders have detents every 4 stages +#define ENCODER_RESOLUTION 4 + +// Settings for homerow mods +#define TAPPING_TERM 250 +#define IGNORE_MOD_TAP_INTERRUPT + + +// Add the leader key feature +#define LEADER_TIMEOUT 300 diff --git a/keyboards/planck/keymaps/snowkuma/custom_keycodes.h b/keyboards/planck/keymaps/snowkuma/custom_keycodes.h new file mode 100644 index 0000000000..5e4353c049 --- /dev/null +++ b/keyboards/planck/keymaps/snowkuma/custom_keycodes.h @@ -0,0 +1,60 @@ +// These definitions are for convenience. +// It is not wise to put sensitive information here such as passwords +// as anyone with access to your keyboard will be able to use them! + +// magnet keycodes +#define M_LEFT LCA(KC_LEFT) +#define M_TOP LCA(KC_UP) +#define M_BOTT LCA(KC_DOWN) +#define M_RGHT LCA(KC_RGHT) + +#define M_TOPL LCA(KC_U) +#define M_TOPR LCA(KC_I) +#define M_BOTL LCA(KC_J) +#define M_BOTR LCA(KC_K) + +#define M_L13 LCA(KC_D) +#define M_L23 LCA(KC_E) +#define M_C13 LCA(KC_F) +#define M_R23 LCA(KC_T) +#define M_R13 LCA(KC_G) + +#define M_NEXT LCAG(KC_RGHT) +#define M_PREV LCAG(KC_LEFT) + +#define M_MAX LCA(KC_ENT) +#define M_CEN LCA(KC_C) +#define M_REST LCA(KC_BSPC) + +// Shortcuts +#define INPUT_L LCAG(KC_SPC) +#define TXT_PLS LGUI(KC_PLUS) +#define TXT_MIN LGUI(KC_MINS) +#define SC_CAPF LGUI(LSFT(KC_3)) // Capture the full screen to file +#define SC_CAPP LGUI(LSFT(KC_4)) // Capture portion of screen to file + +// Special Layer keycodes +#define ESC_NUM LT(_NUMBER, KC_ESC) +#define BSP_REG LT(_REGEX, KC_BSPC) +#define DEL_REG LT(_REGEX, KC_DEL) +#define MIN_ARR LT(_ARRANGE, KC_MINS) +#define TAB_SFT LSFT_T(KC_TAB) +#define SPC_SYM LT(_SYMBOL, KC_SPC) +#define ENT_THU LT(_THUMB, KC_ENT) +#define FUN_L MO(_FUNCTION) + +// HOMEROW SHIFT +#define T_SFT LSFT_T(KC_T) +#define N_SFT RSFT_T(KC_N) + +// Special Characters +#define GBP LALT(KC_3) +#define EURO LALT(S(KC_2)) + +// Modifier tap holds +#define Q_CTL LCTL_T(KC_Q) +#define W_ALT LALT_T(KC_W) +#define F_GUI LGUI_T(KC_F) +#define U_GUI LGUI_T(KC_U) +#define Y_ALT LALT_T(KC_Y) +#define SCL_CTL LCTL_T(KC_SCLN) diff --git a/keyboards/planck/keymaps/snowkuma/keymap.c b/keyboards/planck/keymaps/snowkuma/keymap.c new file mode 100644 index 0000000000..eee8e11701 --- /dev/null +++ b/keyboards/planck/keymaps/snowkuma/keymap.c @@ -0,0 +1,373 @@ +/* Copyright 2015-2017 Jack Humbert + * + * 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 <http://www.gnu.org/licenses/>. + */ + +/* _ + * ___ _ __ ___ __ __ | | __ _ _ _ __ ___ __ _ + * / __| | '_ \ / _ \ \ \ /\ / / | |/ / | | | | | '_ ` _ \ / _` | + * \__ \ | | | | | (_) | \ V V / | < | |_| | | | | | | | | (_| | + * |___/ |_| |_| \___/ \_/\_/ |_|\_\ \__,_| |_| |_| |_| \__,_| + * + * https://github.com/snowkuma + * + * version 0.1 +*/ + +#include QMK_KEYBOARD_H +#include "muse.h" +#include "custom_keycodes.h" +#include "my_strings.h" + +extern keymap_config_t keymap_config; + +enum planck_layers { + _COLEMAK = 0, + _SYMBOL, + _SFT_NAV, + _REGEX, + _NUMBER, + _ARRANGE, + _FUNCTION, + _MOUSE, + _THUMB +}; + +enum planck_keycodes { + EMAIL = SAFE_RANGE, + EMOJI, + EXT_PLV, + ITERM, + LESSON, + TYPE_FU, + VS_CODE, + VIM +}; + + +// Tap Dance Declarations +enum { + TD_RESET = 0, + TD_TILD +}; + +// Tap Dance Definitions +void safe_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count >=3) { + // Reset the keyboard if you tap the key more than three times + reset_keyboard(); + reset_tap_dance(state); + } +}; void tilde_home(qk_tap_dance_state_t *state, void *user_data) { + if (state->count > 2) { + register_code(KC_LSFT); + register_code(KC_GRV); + } + else { + register_code(KC_LSFT); + register_code(KC_GRV); + if (state->count > 1) { + // Outputs ~/ if tilde tapped twice + unregister_code(KC_GRV); + unregister_code(KC_LSFT); + register_code(KC_SLSH); + } + } +} + +void tilde_reset(qk_tap_dance_state_t *state, void *user_data) +{ + if (state->count == 2) { + unregister_code(KC_SLSH); + } else { + unregister_code(KC_GRV); + unregister_code(KC_LSFT); + } +} + + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_RESET] = ACTION_TAP_DANCE_FN (safe_reset), + [TD_TILD] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, tilde_home, tilde_reset) +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* COLEMAK + * + * Base layer + * ,-----------------------------------------------------------------------------------------------------------. + * | q | w | f | p | g | | | j | l | u | y | ; | + * | CTRL | ALT | GUI | | | | | | | GUI | ALT | CTRL | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | a | r | s | t | d | | | h | n | e | i | o | + * | | | | Shift | | | | | Shift | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | z | x | c | v | b | | | k | m | , | . | ' | + * | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | Esc | BkSp | - | Tab | Space | Enter | | | + * | | | | Num | Regex | Arrange| Shift | Sym | Thumb | | | | + * `--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------' + */ +[_COLEMAK] = LAYOUT_planck_grid( + Q_CTL, W_ALT, F_GUI, KC_P, KC_G, _______, _______, KC_J, KC_L, U_GUI, Y_ALT, SCL_CTL, + KC_A, KC_R, KC_S, T_SFT, KC_D, _______, _______, KC_H, N_SFT, KC_E, KC_I, KC_O, + KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_QUOT, + _______, _______, _______, ESC_NUM, BSP_REG, MIN_ARR, TAB_SFT, SPC_SYM, ENT_THU, _______, _______, _______ +), + +/* Symbol & Cursor Nav layer + * ,-----------------------------------------------------------------------------------------------------------. + * | ! | @ | € | & | | | | | | Home | Up | End | PgUp | + * | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | ~ | < | % | > | + | | | | Left | Down | Right | PgDn | + * | 2x ~/ | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | ` | | £ | = | - | | | | | | | | + * | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | _ | Del | - | | f() | | | | | + * | | | | | Mouse | | | Sym |Function| | | | + * `--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------' + */ +[_SYMBOL] = LAYOUT_planck_grid( + KC_EXLM, KC_AT, EURO, KC_AMPR, KC_PIPE, _______, _______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP, + TD(TD_TILD), KC_LT, KC_PERC, KC_GT, KC_PLUS, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, + KC_GRV, _______, GBP, KC_EQL, KC_MINS, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_UNDS, DEL_REG, KC_MINS, _______, _______, _______, _______, _______, _______ +), + +/* Regex layer + * ,-----------------------------------------------------------------------------------------------------------. + * | | | | | | | | * | [ | ^ | ] | : | + * | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | ? | ( | $ | ) | / | + * | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | { | # | } | \ | + * | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | f() | | | Space | | | | + * | | | | | Regex | | | Mouse | Enter | | | | + * `--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------' + */ +[_REGEX] = LAYOUT_planck_grid( + _______, _______, _______, _______, _______, _______, _______, KC_ASTR, KC_LBRC, KC_CIRC, KC_RBRC, KC_COLN, + _______, _______, _______, _______, _______, _______, _______, KC_QUES, KC_LPRN, KC_DLR, KC_RPRN, KC_SLSH, + _______, _______, _______, _______, _______, _______, _______, KC_PIPE, KC_LCBR, KC_HASH, KC_RCBR, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT, _______, _______, _______ +), + +/* Number Layer + * ,-----------------------------------------------------------------------------------------------------------. + * | : | F | E | D | G | | | * | 7 | 8 | 9 | 0 | + * | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | # | C | B | A | + | | | . | 4 | 5 | 6 | / | + * | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | € | x | £ | = | - | | | , | 1 | 2 | 3 | \ | + * | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | f() | | | | | | | | | + * | | | | Number | | | | Space | Enter | | | | + * `--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------' +* +*/ +[_NUMBER] = LAYOUT_planck_grid( + KC_COLN, S(KC_F), S(KC_E), S(KC_D), S(KC_G), _______, _______, KC_ASTR, KC_7, KC_8, KC_9, KC_0, + KC_HASH, S(KC_C), S(KC_B), S(KC_A), KC_PLUS, _______, _______, KC_DOT, KC_4, KC_5, KC_6, KC_SLSH, + EURO, KC_X, GBP, KC_EQL, KC_MINS, _______, _______, KC_COMM, KC_1, KC_2, KC_3, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* Mouse Layer + * ,-----------------------------------------------------------------------------------------------------------. + * | Ctrl | Alt | GUI | | | | | | | Up | | wUp | + * | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | Btn3 | Btn2 | Btn1 | Shift | | | | | Left | Down | Right | wDn | + * | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | | | | | + * | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | f() | | | f() | | | | + * | | | | | Mouse | | | Mouse | | | | | + * `--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------' +*/ +[_MOUSE] = LAYOUT_planck_grid( + KC_LCTL, KC_LALT, KC_LGUI, _______, _______, _______, _______, _______, _______, KC_MS_U, _______, KC_WH_U, + KC_BTN3, KC_BTN2, KC_BTN1, KC_LSFT, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* Thumb Layer + * ,-----------------------------------------------------------------------------------------------------------. + * | Reset | | SC_CAPF| SC_CAPP| | | | |Input L | | | | + * | (3x) | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | TypeFu | CMD + | | | | Caps | emoji | iterm | | + * | | | | | | | | | Lock | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | VS_Code| Vim | CMD - | | | | | | | | + * | | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | f() | | | | + * | | | | | | | | | Thumb | | | | + * `--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------' + */ +[_THUMB] = LAYOUT_planck_grid( + TD(TD_RESET), _______, SC_CAPF, SC_CAPP, _______, _______, _______, _______, INPUT_L, _______, _______, _______, + _______, _______, _______, TYPE_FU, TXT_PLS, _______, _______, _______, KC_CAPS, EMOJI, ITERM, _______, + _______, _______, VS_CODE, VIM, TXT_MIN, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* Arrange Layer + * ,-----------------------------------------------------------------------------------------------------------. + * | | | Full | | | | | | Top L | Top | Top R | | + * | | | Screen | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | L 1/3 | L 2/3 | C 1/3 | R 2/3 | R 1/3 | | | Prev | Left | Bottom | Right | Next | + * | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | Restore| | Center | | | | | | Bottom | | Bottom | | + * | | | | | | | | | Left | | Right | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | f() | | | | | | + * | | | | | | Arrange| | | | | | | + * `--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------' +*/ +[_ARRANGE] = LAYOUT_planck_grid( + _______, _______, M_MAX, _______, _______, _______, _______, _______, M_TOPL, M_TOP, M_TOPR, _______, + M_L13, M_L23, M_C13, M_R23, M_R13, _______, _______, M_PREV, M_LEFT, M_BOTT, M_RGHT, M_NEXT, + M_REST, _______, M_CEN, _______, _______, _______, _______, _______, M_BOTL, _______, M_BOTR, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* Function Layer + * ,-----------------------------------------------------------------------------------------------------------. + * | Ctrl | Alt | GUI | | | | | | F7 | F8 | F9 | F10 | + * | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | Shift | | | | | F4 | F5 | F6 | F11 | + * | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | | F1 | F2 | F3 | F12 | + * | | | | | | | | | | | | + * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + * | | | | | | | | f() | f() | | | | + * | | | | | | | |Function|Function| | | | + * `--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------' +*/ +[_FUNCTION] = LAYOUT_planck_grid( + KC_LCTL, KC_LALT, KC_LGUI, _______, _______, _______, _______, KC_F13, KC_F7, KC_F8, KC_F9, KC_F10, + _______, _______, _______, KC_LSFT, _______, _______, _______, KC_F14, KC_F4, KC_F5, KC_F6, KC_F11, + _______, _______, _______, _______, _______, _______, _______, KC_F15, KC_F1, KC_F2, KC_F3, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + +}; + +#ifdef AUDIO_ENABLE + float plover_song[][2] = SONG(PLOVER_SOUND); + float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); +#endif + +uint32_t layer_state_set_user(uint32_t state) { + state = update_tri_layer_state(state, _SYMBOL, _THUMB, _FUNCTION); + state = update_tri_layer_state(state, _SYMBOL, _REGEX, _MOUSE); + return state; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case EMAIL: + if (record->event.pressed) { + SEND_STRING(MY_EMAIL); + } + return false; + break; + case ITERM: + if (record->event.pressed) { + SEND_STRING(SS_LGUI(" ")); + SEND_STRING("iterm" SS_TAP(X_ENTER)); + } + return false; + break; + case TYPE_FU: + if (record->event.pressed) { + SEND_STRING(SS_LGUI(" ")); + SEND_STRING("type fu" SS_TAP(X_ENTER)); + } + return false; + break; + case VIM: + if (record->event.pressed) { + SEND_STRING(SS_LGUI(" ")); + SEND_STRING("macvim.app" SS_TAP(X_ENTER)); + } + return false; + break; + case VS_CODE: + if (record->event.pressed) { + SEND_STRING(SS_LGUI(" ")); + SEND_STRING("visual studio code" SS_TAP(X_ENTER)); + } + return false; + break; + case EMOJI: + if (record->event.pressed) { + register_code(KC_LGUI); + register_code(KC_LCTL); + register_code(KC_SPC); + unregister_code(KC_LGUI); + unregister_code(KC_LCTL); + unregister_code(KC_SPC); + } + return false; + break; + } + return true; +} + +bool muse_mode = false; +uint8_t last_muse_note = 0; +uint16_t muse_counter = 0; +uint8_t muse_offset = 70; +uint16_t muse_tempo = 50; + +void matrix_scan_user(void) { + #ifdef AUDIO_ENABLE + if (muse_mode) { + if (muse_counter == 0) { + uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()]; + if (muse_note != last_muse_note) { + stop_note(compute_freq_for_midi_note(last_muse_note)); + play_note(compute_freq_for_midi_note(muse_note), 0xF); + last_muse_note = muse_note; + } + } + muse_counter = (muse_counter + 1) % muse_tempo; + } + #endif +} + +void matrix_init_user(void) { + set_unicode_input_mode(UC_OSX); +} diff --git a/keyboards/planck/keymaps/snowkuma/my_strings.h b/keyboards/planck/keymaps/snowkuma/my_strings.h new file mode 100644 index 0000000000..4e2ee6f770 --- /dev/null +++ b/keyboards/planck/keymaps/snowkuma/my_strings.h @@ -0,0 +1,4 @@ +// Email address +#define MY_EMAIL "myname@email.com" +// Canned responses +#define CANNED_1 "A canned response / template for emails." diff --git a/keyboards/planck/keymaps/snowkuma/readme.md b/keyboards/planck/keymaps/snowkuma/readme.md new file mode 100644 index 0000000000..b1d5ff9c92 --- /dev/null +++ b/keyboards/planck/keymaps/snowkuma/readme.md @@ -0,0 +1,14 @@ +# Snowkuma's Planck Layout v.0.1 + +Wide colemak planck layout. Heavily influenced by the ideas of sdothum and his blog. + +Aims to minimize key usage to minimal set and have hands in a comfortable position. + +![Colemak](https://i.imgur.com/4B3HdCE.png) +![Symbol](https://i.imgur.com/WYxIJqv.png) +![Regex](https://i.imgur.com/PxTCT6P.png) +![Number](https://i.imgur.com/NzhW26R.png) +![Arrange](https://i.imgur.com/BlTJjyW.png) +![Shortcuts](https://i.imgur.com/p2ooSrC.png) +![Function](https://i.imgur.com/U1F5J3R.png) +![Mouse](https://i.imgur.com/nCHabXV.png) diff --git a/keyboards/planck/keymaps/snowkuma/rules.mk b/keyboards/planck/keymaps/snowkuma/rules.mk new file mode 100644 index 0000000000..4a172d2868 --- /dev/null +++ b/keyboards/planck/keymaps/snowkuma/rules.mk @@ -0,0 +1,19 @@ +SRC += muse.c + +AUDIO_ENABLE = yes +BACKLIGHT_ENABLE = no +BLUETOOTH_ENABLE = no +BOOTMAGIC_ENABLE = no +COMBO_ENABLE = no +COMMAND_ENABLE = no +CONSOLE_ENABLE = no +EXTRAKEY_ENABLE = yes +LEADER_ENABLE = yes +MIDI_ENABLE = no +MOUSEKEY_ENABLE = yes +NKRO_ENABLE = yes # nkey rollover +RGBLIGHT_ENABLE = no +SLEEP_LED_ENABLE = no +STENO_ENABLE = yes +TAP_DANCE_ENABLE = yes +UNICODE_ENABLE = yes diff --git a/keyboards/planck/keymaps/vaire/rules.mk b/keyboards/planck/keymaps/vaire/rules.mk index 22e4bd9341..f9dfeb7263 100644 --- a/keyboards/planck/keymaps/vaire/rules.mk +++ b/keyboards/planck/keymaps/vaire/rules.mk @@ -1,5 +1,4 @@ # MCU name -#MCU = at90usb1287 MCU = atmega32u4 # Processor frequency. diff --git a/keyboards/planck/keymaps/yttyx/config.h b/keyboards/planck/keymaps/yttyx/config.h new file mode 100644 index 0000000000..88d0c07e93 --- /dev/null +++ b/keyboards/planck/keymaps/yttyx/config.h @@ -0,0 +1,5 @@ +#pragma once +#define NO_ACTION_ONESHOT +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION +#define TAPPING_TOGGLE 2 diff --git a/keyboards/planck/keymaps/yttyx/keymap.c b/keyboards/planck/keymaps/yttyx/keymap.c new file mode 100644 index 0000000000..0fcbae8923 --- /dev/null +++ b/keyboards/planck/keymaps/yttyx/keymap.c @@ -0,0 +1,146 @@ + +#include QMK_KEYBOARD_H +#include <keymap_steno.h> + +enum planck_layers { + _BA, // Base (Balance Twelve mirror variant) + _PL, // Plover (http://opensteno.org) + _NP, // Numeric/punctuation + _FC // Function/cursor +}; + +enum planck_keycodes { + BA = SAFE_RANGE, + PL +}; + + +// Abbreviations +#define KX_SFT_Z MT(MOD_LSFT, KC_Z) +#define KX_SFT_X MT(MOD_RSFT, KC_X) +#define LT_ESC_FC LT(_FC, KC_ESC) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* BA + .--------.--------.--------.--------.--------.--------.--------.--------.--------.--------.--------.--------. + | P | L | C | D | W | | | U | O | Y | K | Q | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | N | R | S | T | M | | BS | A | E | I | H | V | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | Z Sft | J | F | G | B | | Ent | ' @ | , < | . > | X Sft | | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | Ctl | Alt | Sup | NP | Spc | Esc/FC | Sft | Sft | Sup | Alt | Ctl | | + '--------'--------'--------'--------'--------'--------'--------'--------'--------'--------'--------'--------' + */ + [_BA] = LAYOUT_planck_grid( + KC_P, KC_L, KC_C, KC_D, KC_W, XXXXXXX, XXXXXXX, KC_U, KC_O, KC_Y, KC_K, KC_Q, + KC_N, KC_R, KC_S, KC_T, KC_M, XXXXXXX, KC_BSPC, KC_A, KC_E, KC_I, KC_H, KC_V, + KX_SFT_Z, KC_J, KC_F, KC_G, KC_B, XXXXXXX, KC_ENT, KC_QUOT, KC_COMM, KC_DOT, KX_SFT_X, XXXXXXX, + KC_LCTL, KC_LALT, KC_LGUI, MO(_NP), KC_SPC, LT_ESC_FC, KC_LSFT, KC_LSFT, KC_LGUI, KC_LALT, KC_LCTL, XXXXXXX + ), + + /* Plover + .--------.--------.--------.--------.--------.--------.--------.--------.--------.--------.--------.--------. + | # | # | # | # | # | BA | # | # | # | # | # | # | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | S | T | P | H | * | | * | F | P | L | T | D | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | S | K | W | R | * | | * | R | B | G | S | Z | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | | | | A | O | | E | U | | | | | + '--------'--------'--------'--------'--------'--------'--------'--------'--------'--------'--------'--------' + */ + [_PL] = LAYOUT_planck_grid( + STN_NUM, STN_NUM, STN_NUM, STN_NUM, STN_NUM, BA, STN_NUM, STN_NUM, STN_NUM, STN_NUM, STN_NUM, STN_NUM, + STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, XXXXXXX, STN_ST1, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR, + STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, XXXXXXX, STN_ST2, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR, + XXXXXXX, XXXXXXX, XXXXXXX, STN_A, STN_O, XXXXXXX, STN_E, STN_U, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + + /* Numeric/punctuation + .--------.--------.--------.--------.--------.--------.--------.--------.--------.--------.--------.--------. + | 1 ! | 2 " | 3 £ | 4 $ | 5 % | PL | | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | Tab | Ctl-X | Ctl-C | Ctl-V | Ctl-Z | | BS | [ { | ] } | - _ | ; : | \ | | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | Sft | | | Del | Ins | | | / ? | = + | # ~ | ` | | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | Ctl | Alt | Sup | NP | Spc | | Sft | Sft | Sup | Alt | Ctl | | + '--------'--------'--------'--------'--------'--------'--------'--------'--------'--------'--------'--------' + */ + [_NP] = LAYOUT_planck_grid( + KC_1, KC_2, KC_3, KC_4, KC_5, PL, XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TAB, C(KC_X), C(KC_C), C(KC_V), C(KC_Z), XXXXXXX, _______, KC_LBRC, KC_RBRC, KC_MINS, KC_SCLN, KC_NUBS, + KC_LSFT, XXXXXXX, XXXXXXX, KC_DEL, KC_INS, XXXXXXX, XXXXXXX, KC_SLSH, KC_EQL, KC_NUHS, KC_GRV, XXXXXXX, + _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______, XXXXXXX + ), + + /* Function/cursor + .--------.--------.--------.--------.--------.--------.--------.--------.--------.--------.--------.--------. + | F1 | F2 | F3 | F4 | F5 | | | Home | Up | End | PgUp | | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | F6 | F7 | F8 | F9 | F10 | | | Left | Down | Right | PgDn | | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | Sft | | | F11 | F12 | | | PScr | Break | ScLk | Caps | | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | Ctl | Alt | Sup | | Spc | | Sft | Sft | Sup | Alt | Ctl | | + '--------'--------'--------'--------'--------'--------'--------'--------'--------'--------'--------'--------' + */ + [_FC] = LAYOUT_planck_grid( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, KC_PGUP, XXXXXXX, + KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, XXXXXXX, + _______, XXXXXXX, XXXXXXX, KC_F11, KC_F12, XXXXXXX, XXXXXXX, KC_PSCR, KC_BRK, KC_SLCK, KC_CAPS, XXXXXXX, + _______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, XXXXXXX + ) + +}; + + +#ifdef AUDIO_ENABLE + float plover_on[][2] = SONG(PLOVER_SOUND); + float plover_off[][2] = SONG(PLOVER_GOODBYE_SOUND); +#endif + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case PL: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_SONG(plover_on); + #endif + + layer_off(_NP); + layer_off(_FC); + layer_on(_PL); + + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + case BA: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(plover_off); + #endif + + layer_off(_NP); + layer_off(_PL); + layer_off(_FC); + } + return false; + } + return true; +} + +void matrix_init_user() { + steno_set_mode(STENO_MODE_GEMINI); +} + diff --git a/keyboards/planck/keymaps/yttyx/readme.md b/keyboards/planck/keymaps/yttyx/readme.md new file mode 100644 index 0000000000..6661c31704 --- /dev/null +++ b/keyboards/planck/keymaps/yttyx/readme.md @@ -0,0 +1,68 @@ +# Overview + +* Base layer uses the Balance Twelve layout ([reference](https://mathematicalmulticore.wordpress.com/the-keyboard-layout-project/)) +* Plover layer uses the same home position as the base layer ([reference](http://www.openstenoproject.org/)) + +## To build + +``` +make planck/rev6:yttyx +``` + +## To build and flash + +``` +make planck/rev6:yttyx:dfu-util +``` + +## Layers + +### Base + + .--------.--------.--------.--------.--------.--------.--------.--------.--------.--------.--------.--------. + | P | L | C | D | W | | | U | O | Y | K | Q | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | N | R | S | T | M | | BS | A | E | I | H | V | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | Z Sft | J | F | G | B | | Ent | ' @ | , < | . > | X Sft | | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | Ctl | Alt | Sup | NP | Spc | Esc/FC | Sft | Sft | Sup | Alt | Ctl | | + '--------'--------'--------'--------'--------'--------'--------'--------'--------'--------'--------'--------' + +### Plover + + .--------.--------.--------.--------.--------.--------.--------.--------.--------.--------.--------.--------. + | # | # | # | # | # | BA | # | # | # | # | # | # | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | S | T | P | H | * | | * | F | P | L | T | D | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | S | K | W | R | * | | * | R | B | G | S | Z | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | | | | A | O | | E | U | | | | | + '--------'--------'--------'--------'--------'--------'--------'--------'--------'--------'--------'--------' + +### Numeric/Punctuation + + .--------.--------.--------.--------.--------.--------.--------.--------.--------.--------.--------.--------. + | 1 ! | 2 " | 3 £ | 4 $ | 5 % | PL | | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | Tab | Ctl-X | Ctl-C | Ctl-V | Ctl-Z | | BS | [ { | ] } | - _ | ; : | \ | | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | Sft | | | Del | Ins | | | / ? | = + | # ~ | ` | | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | Ctl | Alt | Sup | NP | Spc | | Sft | Sft | Sup | Alt | Ctl | | + '--------'--------'--------'--------'--------'--------'--------'--------'--------'--------'--------'--------' + +### Function + + .--------.--------.--------.--------.--------.--------.--------.--------.--------.--------.--------.--------. + | F1 | F2 | F3 | F4 | F5 | | | Home | Up | End | PgUp | | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | F6 | F7 | F8 | F9 | F10 | | | Left | Down | Right | PgDn | | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | Sft | | | F11 | F12 | | | PScr | Break | ScLk | Caps | | + |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------| + | Ctl | Alt | Sup | | Spc | | Sft | Sft | Sup | Alt | Ctl | | + '--------'--------'--------'--------'--------'--------'--------'--------'--------'--------'--------'--------' + + diff --git a/keyboards/planck/keymaps/yttyx/rules.mk b/keyboards/planck/keymaps/yttyx/rules.mk new file mode 100644 index 0000000000..27dac6d4da --- /dev/null +++ b/keyboards/planck/keymaps/yttyx/rules.mk @@ -0,0 +1,11 @@ +# Build Options +AUDIO_ENABLE = yes +CONSOLE_ENABLE = no +EXTRAKEY_ENABLE = no +MIDI_ENABLE = no +MOUSEKEY_ENABLE = no +NKRO_ENABLE = yes +RGBLIGHT_ENABLE = no +STENO_ENABLE = yes +VIRTSER_ENABLE = yes + |