From b6c5c4cf5242adaa579e84ad4cf3ca4e11d507c6 Mon Sep 17 00:00:00 2001 From: "J.net" Date: Thu, 26 Jul 2018 17:30:47 -0400 Subject: [PATCH] Keymap: jennetters iris keymap (#3488) * jennetters iris keymap, re-write for improved readability. * Update rules/config/keymap to follow correct makefile structure --- keyboards/iris/keymaps/jennetters/config.h | 41 ++++ keyboards/iris/keymaps/jennetters/keymap.c | 207 ++++++++++++++++++++ keyboards/iris/keymaps/jennetters/readme.md | 10 + keyboards/iris/keymaps/jennetters/rules.mk | 1 + 4 files changed, 259 insertions(+) create mode 100644 keyboards/iris/keymaps/jennetters/config.h create mode 100644 keyboards/iris/keymaps/jennetters/keymap.c create mode 100644 keyboards/iris/keymaps/jennetters/readme.md create mode 100644 keyboards/iris/keymaps/jennetters/rules.mk diff --git a/keyboards/iris/keymaps/jennetters/config.h b/keyboards/iris/keymaps/jennetters/config.h new file mode 100644 index 000000000..a3c0634f5 --- /dev/null +++ b/keyboards/iris/keymaps/jennetters/config.h @@ -0,0 +1,41 @@ +/* +Copyright 2017 Danny Nguyen + +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 . +*/ + +#pragma once + +#define TAPPING_TERM 150 + +/* Try to prevent sticky keys */ +#define PREVENT_STUCK_MODIFIERS + +/* Use I2C or Serial, not both */ + +#define USE_SERIAL +// #define USE_I2C + +/* Select hand configuration */ + +#define MASTER_LEFT +// #define MASTER_RIGHT +// #define EE_HANDS + +#undef RGBLED_NUM +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 12 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 \ No newline at end of file diff --git a/keyboards/iris/keymaps/jennetters/keymap.c b/keyboards/iris/keymaps/jennetters/keymap.c new file mode 100644 index 000000000..287dc9712 --- /dev/null +++ b/keyboards/iris/keymaps/jennetters/keymap.c @@ -0,0 +1,207 @@ +#include QMK_KEYBOARD_H + +extern keymap_config_t keymap_config; + +#define _QWERTY 0 +#define _LOWER 1 +#define _RAISE 2 +#define _ADJUST 16 + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + ADJUST, + YUNO, + SHRG, + NOVY, +}; + +#define KC_ KC_TRNS +#define _______ KC_TRNS + +#define KC_LOWR LOWER +#define KC_RASE RAISE +#define KC_YUNO YUNO +#define KC_SHRG SHRG +#define KC_NOVY NOVY +#define KC_RST RESET +#define KC_BL_S BL_STEP + +//Tap Dance Declartaions +enum { + ESC_GR = 0 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + + // ,----+----+----+----+----+----. ,----+----+----+----+----+----. + // | ESC| 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - | + // |----+----+----+----+----+----| |----+----+----+----+----+----| + // | TAB| Q | W | E | R | T | | Y | U | I | O | P | BSP| + // |----+----+----+----+----+----| |----+----+----+----+----+----| + // | CAP| A | S | D | F | G | | H | J | K | L | ; | ' | + // |----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + // | SFT| Z | X | C | V | B | SPC| | SPC| N | M | , | . | / | ENT| + // `----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + // \ GUI| ALT| CTL / \RASE\ CTL | SFT / + // `----+----+----' `----+----+----' + + TD(ESC_GR), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, \ + 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_CAPS, 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_SPC, KC_SPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, \ + KC_LGUI, KC_LALT, KC_LCTL, KC_RASE, KC_RCTL, KC_RSFT + ), + + [_LOWER] = LAYOUT_kc( + + // ,----+----+----+----+----+----. ,----+----+----+----+----+----. + // | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | DEL| + // |----+----+----+----+----+----| |----+----+----+----+----+----| + // | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | + // |----+----+----+----+----+----| |----+----+----+----+----+----| + // | | | | | | | | | | | | |PIPE| + // |----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + // | \ | | | | | [ | ( | | ) | ] | | | | - | | + // `----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + // \ | | DEL / \ DEL\ | / + // `----+----+----' `----+----+----' + + TILD, EXLM, AT, HASH, DLR, PERC, CIRC, AMPR, ASTR, LPRN, RPRN, DEL, \ + , 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, , \ + , , , , , , , , , , ,PIPE, \ + BL_S, , , , , LCBR, LPRN, RPRN, RCBR, , , , MINS, , \ + , , DEL, DEL, , + ), + + [_RAISE] = LAYOUT_kc( + // ,----+----+----+----+----+----. ,----+----+----+----+----+----. + // | | F1 | F2 | | | | | | | | [ | ] | = | + // |----+----+----+----+----+----| |----+----+----+----+----+----| + // | | | UP | | | | | | | | { | } | DEL| + // |----+----+----+----+----+----| |----+----+----+----+----+----| + // | | LT | DN | RT | | | |SHRG| | | |PIPE| | + // |----+----+----+----+----+----+----. ,----|----+----+----+----+----+----| + // | | | | | | | | | | | | | | \ | | + // `----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----' + // \ | | / \ \ | / + // `----+----+----' `----+----+----' + + , F1, F2, , , , , , , LBRC, RBRC, EQL, \ + , , UP, , , , YUNO, NOVY, , LCBR, RCBR, DEL, \ + , LEFT, DOWN, RIGHT, , , SHRG, , , , PIPE, , \ + , , , , , , , , , , , , BSLS, , \ + , , , , , + ), + + [_ADJUST] = LAYOUT( + //,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------. + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + //|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------| + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + //`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------' + _______, _______, _______, _______, _______, _______ + // `--------+--------+--------' `--------+--------+--------' + ) + +}; + +#ifdef AUDIO_ENABLE +float tone_qwerty[][2] = SONG(QWERTY_SOUND); +#endif + +void esc_gr_finished (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + register_code (KC_ESC); + } else if (state->count == 2) { + register_code (KC_GRV); + } else { + register_code (KC_LSFT); + register_code (KC_GRV); + } +} + +void esc_gr_reset (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code (KC_ESC); + } else if (state->count == 2) { + unregister_code (KC_GRV); + } else { + unregister_code (KC_LSFT); + unregister_code (KC_GRV); + } +} + +//Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + //Tap once for ESC, twice for `, thrice for ~ + [ESC_GR] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, esc_gr_finished, esc_gr_reset) + // Other declarations would go here, separated by commas, if you have them +}; + +void persistent_default_layer_set(uint16_t default_layer) { + eeconfig_update_default_layer(default_layer); + default_layer_set(default_layer); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_qwerty); + #endif + persistent_default_layer_set(1UL<<_QWERTY); + } + return false; + 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); + } + return false; + 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); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + case SHRG: + if (record->event.pressed) { + SEND_STRING("¯\\_(ツ)_/¯"); // I dunno. + return false; + } + /* Ignore for now - special characters not working with macros + } + case NOVY: + if (record->event.pressed) { + SEND_STRING("ლ(ಠ_ಠლ)"); // YUNO?! + return false; + } + */ + } + return true; +} \ No newline at end of file diff --git a/keyboards/iris/keymaps/jennetters/readme.md b/keyboards/iris/keymaps/jennetters/readme.md new file mode 100644 index 000000000..272a4ed74 --- /dev/null +++ b/keyboards/iris/keymaps/jennetters/readme.md @@ -0,0 +1,10 @@ +## jennetters iris keymap + +This keymap is based on the Iris default by [Bakingpy/nooges](https://github.com/nooges) without much deviation. + +* The QERTY layer remains largely the same with repositioning of the control key for ease of use. +* L/RBRC, L/RCBR, and PIPE added to raise layer. +* Arrow keys moved to wasd on raise layer. +* Grave Escape added to maintain usage of ESC/~/` with top left key. + +See keymap.c for full details. \ No newline at end of file diff --git a/keyboards/iris/keymaps/jennetters/rules.mk b/keyboards/iris/keymaps/jennetters/rules.mk new file mode 100644 index 000000000..1ba2fa8fb --- /dev/null +++ b/keyboards/iris/keymaps/jennetters/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes \ No newline at end of file