From 0ab8edb5237ef5a6aeab18c57643e01c7bf2da0a Mon Sep 17 00:00:00 2001 From: Adam Perlman Date: Mon, 21 Oct 2019 23:37:33 -0400 Subject: [Keymap] Ergodox EZ and dactyl-manuform keymaps for rishka (#7051) * Setup keymaps and userspace for Rishka * Creates a keymap for Ergodox Ez, bdn9 and Dactyl Manuform 5x6 * Update bdn9 config with suggested change * Add pragma to other header files * Apply suggestions from code review Co-Authored-By: fauxpark * Updates from review from fauxpark * Updates from review Swap to keyboard_post_init, layer_state_t and use layer state for encoder * Updates from review Swap to keyboard_post_init, layer_state_t and use layer state for encoder * Add missing change from review --- keyboards/ergodox_ez/keymaps/rishka/config.h | 17 ++ keyboards/ergodox_ez/keymaps/rishka/keymap.c | 210 +++++++++++++++++++++ keyboards/ergodox_ez/keymaps/rishka/rules.mk | 2 + .../dactyl_manuform/5x6/keymaps/rishka/config.h | 41 ++++ .../dactyl_manuform/5x6/keymaps/rishka/keymap.c | 61 ++++++ .../dactyl_manuform/5x6/keymaps/rishka/rules.mk | 3 + keyboards/keebio/bdn9/keymaps/rishka/config.h | 5 + keyboards/keebio/bdn9/keymaps/rishka/keymap.c | 66 +++++++ keyboards/keebio/bdn9/keymaps/rishka/rules.mk | 1 + 9 files changed, 406 insertions(+) create mode 100644 keyboards/ergodox_ez/keymaps/rishka/config.h create mode 100644 keyboards/ergodox_ez/keymaps/rishka/keymap.c create mode 100644 keyboards/ergodox_ez/keymaps/rishka/rules.mk create mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/config.h create mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/keymap.c create mode 100644 keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/rules.mk create mode 100644 keyboards/keebio/bdn9/keymaps/rishka/config.h create mode 100644 keyboards/keebio/bdn9/keymaps/rishka/keymap.c create mode 100644 keyboards/keebio/bdn9/keymaps/rishka/rules.mk (limited to 'keyboards') diff --git a/keyboards/ergodox_ez/keymaps/rishka/config.h b/keyboards/ergodox_ez/keymaps/rishka/config.h new file mode 100644 index 0000000000..c8f8180bcc --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/rishka/config.h @@ -0,0 +1,17 @@ +#pragma once + +#define PERMISSIVE_HOLD + +#undef MOUSEKEY_TIME_TO_MAX +#define MOUSEKEY_TIME_TO_MAX 0 + +#undef MOUSEKEY_WHEEL_MAX_SPEED +#undef MOUSEKEY_WHEEL_TIME_TO_MAX + +#define MOUSEKEY_WHEEL_MAX_SPEED 1 +#define MOUSEKEY_WHEEL_TIME_TO_MAX 0 + +#define MK_C_OFFSET_1 20 +#define MK_C_OFFSET_2 30 + +#undef MK_MOMENTARY_ACCEL diff --git a/keyboards/ergodox_ez/keymaps/rishka/keymap.c b/keyboards/ergodox_ez/keymaps/rishka/keymap.c new file mode 100644 index 0000000000..102803e512 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/rishka/keymap.c @@ -0,0 +1,210 @@ + +#include QMK_KEYBOARD_H +#include "version.h" +#include "rishka.h" +enum layers { + BASE, // default layer + WIN, // Switch keys that are needed in windows + SYMB, // symbols + MDIA, // media keys + GAME, // Gamepad setup + FIRMWARE // Layer to trigger reset/refresh +}; +enum custom_keycodes { + VRSN = SAFE_RANGE, + RGB_SLD +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[BASE] = LAYOUT_ergodox_pretty_wrapper( + KC_EQL, ________________NUMBERS_L__________________, TG(WIN), OSX_LOCK, ________________NUMBERS_R__________________, KC_MINS, + KC_DELT, _________________QWERTY_L1_________________, TG(SYMB), TG(SYMB), _________________QWERTY_R1_________________, KC_BSLS, + KC_BSPC, _____________MOD_QWERTY_L2_________________, _____________MOD_QWERTY_R2_________________, LT(MDIA, KC_QUOT), + OS_LSFT, _________________QWERTY_L3_________________, ALL_T(KC_NO), TG(MDIA), _________________QWERTY_R3_________________, OS_RSFT, + LT(SYMB,KC_GRV), KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT, KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, OSL(SYMB), + ALT_T(KC_APP), TG(GAME), KC_LALT, CTL_T(KC_ESC), + LT(FIRMWARE, KC_HOME), KC_PGUP, + KC_SPC, GUI_T(KC_BSPC), ALT_T(KC_END), GUI_T(KC_PGDN), CTL_T(KC_TAB), ALT_T(KC_ENT) +), + +[WIN] = LAYOUT_ergodox_pretty_wrapper( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_F1, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_TAB, _________________QWERTY_L2_________________, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, + KC_LCTL, _______, KC_LALT, _______, _______, _______, _______, _______, _______, _______, + _______, KC_ESC, _______, _______, + _______, _______, + _______, KC_BSPC, KC_LALT, KC_PGDN, CTL_T(KC_TAB), _______ +), + +[SYMB] = LAYOUT_ergodox_pretty_wrapper( +VRSN, ______________________F_L__________________, KC_F11, KC_F12 , ______________________F_R__________________, KC_NLCK, +_______, _________________SYMBOL_L1_________________, _______, _______, _________________SYMBOL_R1_________________, _______, +_______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______, +_______, _________________SYMBOL_L3_________________, _______, _______, _________________SYMBOL_R3_________________, _______, +_______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, KC_PSLS, _______, + RGB_MOD, RGB_VAI, RGB_HUI, RGB_SLD, + RGB_VAD, RGB_HUD, + _______, _______, _______, RGB_TOG, _______, _______ +), + +[MDIA] = LAYOUT_ergodox( + // left hand + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_MS_U, _______, KC_WH_U, _______, + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_BTN1, KC_BTN2, + _______, KC_BTN5, + KC_BTN4, + KC_BTN1, KC_BTN2, KC_BTN3, + // right hand + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_WH_U, _______, _______, _______, + _______, KC_WH_L, KC_WH_D, KC_WH_R, _______, KC_MPLY, + _______, _______, _______, KC_MPRV, KC_MNXT, _______, _______, + KC_VOLU, KC_VOLD, KC_MUTE, _______, _______, + _______, _______, + _______, + KC_ACL2, KC_ACL1, KC_ACL0 +), + +[GAME] = LAYOUT_ergodox( + // left hand + KC_ESCAPE, KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, + KC_F1, KC_Y, KC_Q, KC_W, KC_E, KC_R, KC_T, + KC_TAB, KC_LSHIFT, KC_A, KC_S, KC_D, KC_F, + KC_LCTRL, KC_B, KC_Z, KC_X, KC_C, KC_V, KC_G, + LT(BASE, KC_L), KC_J, KC_I, KC_O, KC_M, + KC_ESCAPE, _______, + KC_ENTER, + KC_SPACE, KC_LCTRL, KC_LALT, + // right hand + KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), GUI_T(KC_QUOT), + MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, + KC_UP, KC_DOWN, KC_LBRC, KC_RBRC, TT(SYMB), + KC_LALT, CTL_T(KC_ESC), + KC_PGUP, + KC_PGDN, KC_TAB, KC_ENT +), + +[FIRMWARE] = LAYOUT_ergodox( + // left hand + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, + _______, + RESET, _______, _______, + // right hand + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, + _______, _______, + _______, + _______, _______, EEP_RST +), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + switch (keycode) { + case VRSN: + SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + return false; + #ifdef RGBLIGHT_ENABLE + case RGB_SLD: + rgblight_mode(1); + return false; + #endif + } + } + return true; +} + +// Runs just one time when the keyboard initializes. +void keyboard_post_init_user(void) { +#ifdef RGBLIGHT_COLOR_LAYER_0 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); +#endif +}; + +// Runs whenever there is a layer state change. +uint32_t layer_state_set_user(layer_state_t state) { + ergodox_board_led_off(); + ergodox_right_led_1_off(); + ergodox_right_led_2_off(); + ergodox_right_led_3_off(); + + uint8_t layer = get_highest_layer(state); + switch (layer) { + case 0: + #ifdef RGBLIGHT_COLOR_LAYER_0 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0); + #else + #ifdef RGBLIGHT_ENABLE + rgblight_init(); + #endif + #endif + break; + case 1: + ergodox_right_led_1_on(); + #ifdef RGBLIGHT_COLOR_LAYER_1 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_1); + #endif + break; + case 2: + ergodox_right_led_2_on(); + #ifdef RGBLIGHT_COLOR_LAYER_2 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_2); + #endif + break; + case 3: + ergodox_right_led_3_on(); + #ifdef RGBLIGHT_COLOR_LAYER_3 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_3); + #endif + break; + case 4: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + #ifdef RGBLIGHT_COLOR_LAYER_4 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_4); + #endif + break; + case 5: + ergodox_right_led_1_on(); + ergodox_right_led_3_on(); + #ifdef RGBLIGHT_COLOR_LAYER_5 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_5); + #endif + break; + case 6: + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + #ifdef RGBLIGHT_COLOR_LAYER_6 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_6); + #endif + break; + case 7: + ergodox_right_led_1_on(); + ergodox_right_led_2_on(); + ergodox_right_led_3_on(); + #ifdef RGBLIGHT_COLOR_LAYER_7 + rgblight_setrgb(RGBLIGHT_COLOR_LAYER_7); + #endif + break; + default: + break; + } + + return state; +}; diff --git a/keyboards/ergodox_ez/keymaps/rishka/rules.mk b/keyboards/ergodox_ez/keymaps/rishka/rules.mk new file mode 100644 index 0000000000..c867f89718 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/rishka/rules.mk @@ -0,0 +1,2 @@ +# TAP_DANCE_ENABLE = yes +MOUSEKEY_ENABLE = yes diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/config.h b/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/config.h new file mode 100644 index 0000000000..98dc760031 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/config.h @@ -0,0 +1,41 @@ +/* +Copyright 2012 Jun Wako + +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 USE_SERIAL +#define USE_I2C +// #define MASTER_LEFT +// #define MASTER_RIGHT +#define EE_HANDS +// Rows are doubled-up +// #define DEBOUNCE 5 +#define TAPPING_TOGGLE 3 +#define ONESHOT_TAP_TOGGLE 3 +#define PERMISSIVE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT +#define TAPPING_TERM 300 +#ifdef RGBLED_NUM +# undef RGBLED_NUM +#endif +#define RGBLED_NUM 54 +#define RGBLIGHT_LIMIT_VAL 200 +#define RGBLIGHT_ANIMATIONS +// #define RGBLIGHT_LED_MAP { 11,10,9,8,7,6,5,4,3,2,1,0,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 } +#define RGBLIGHT_SPLIT 27 diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/keymap.c b/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/keymap.c new file mode 100644 index 0000000000..71a91cfd2a --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/keymap.c @@ -0,0 +1,61 @@ +/* A standard layout for the Dactyl Manuform 5x6 Keyboard */ + +#include QMK_KEYBOARD_H +#include "rishka.h" + +enum layers { + BASE, // default layer + WIN, // Switch keys that are needed in windows + SYMB, // symbols + MDIA // media keys +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [BASE] = LAYOUT_5x6_wrapper( + KC_EQL , ________________NUMBERS_L__________________, ________________NUMBERS_R__________________, KC_MINS, + KC_ESC , _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSLS, + KC_F1 , _____________MOD_QWERTY_L2_________________, _____________MOD_QWERTY_R2_________________, KC_QUOT, + OS_LSFT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, OS_RSFT, + KC_LEFT,KC_RGHT, KC_UP, KC_DOWN, + KC_BSPC, KC_SPC, KC_TAB, KC_ENT, + KC_LGUI, MO(SYMB), MO(SYMB), TT(MDIA), + KC_DEL, KC_GRV, TT(WIN), KC_LALT + ), + [WIN] = LAYOUT_5x6_wrapper( + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _________________QWERTY_L2_________________, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, _______, _______, + KC_LCTL, _______, _______, _______, + _______, _______, _______, _______ + ), + + [SYMB] = LAYOUT_5x6_wrapper( + KC_F12 , ______________________F_L__________________, ______________________F_R__________________, KC_F11, + _______, _________________SYMBOL_L1_________________, _________________SYMBOL_R1_________________, KC_NLCK, + _______, _________________SYMBOL_L2_________________, _________________SYMBOL_R2_________________, _______, + _______, _________________SYMBOL_L3_________________, _________________SYMBOL_R3_________________, _______, + _______, _______, KC_P0 , KC_PDOT, + _______, _______, _______, _______, + RESET , _______, _______, _______, + RGB_TOG, _______, _______, _______ + ), + [MDIA] = LAYOUT_5x6_wrapper( + + RGB_MOD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_M_SN, RGB_HUD, _______, KC_MS_U, _______, KC_WH_U, _______, _______, KC_WH_U, _______, _______, _______, + RGB_VAI, RGB_SAI, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, MOUSE_L, KC_WH_D, MOUSE_R, _______, _______, + RGB_VAD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + KC_BTN1, KC_BTN2, _______, _______, + KC_BTN3, KC_BTN4, _______, _______, + KC_BTN5, _______, _______, _______ + + ), +}; + + diff --git a/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/rules.mk b/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/rules.mk new file mode 100644 index 0000000000..7084862d13 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform/5x6/keymaps/rishka/rules.mk @@ -0,0 +1,3 @@ +BOOTLOADER=qmk-dfu +RGBLIGHT_ENABLE = yes + diff --git a/keyboards/keebio/bdn9/keymaps/rishka/config.h b/keyboards/keebio/bdn9/keymaps/rishka/config.h new file mode 100644 index 0000000000..05f1bada99 --- /dev/null +++ b/keyboards/keebio/bdn9/keymaps/rishka/config.h @@ -0,0 +1,5 @@ +#pragma once + +#define QMK_ESC_OUTPUT B4 +#define QMK_ESC_INPUT F7 +#define QMK_LED B0 diff --git a/keyboards/keebio/bdn9/keymaps/rishka/keymap.c b/keyboards/keebio/bdn9/keymaps/rishka/keymap.c new file mode 100644 index 0000000000..dec371d173 --- /dev/null +++ b/keyboards/keebio/bdn9/keymaps/rishka/keymap.c @@ -0,0 +1,66 @@ +/* Copyright 2019 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + | Knob 1: Vol Dn/Up | | Knob 2: Page Dn/Up | + | Press: Mute | Home | Press: Play/Pause | + | Hold: Layer 2 | Up | RGB Mode | + | Left | Down | Right | + */ + [0] = LAYOUT( + KC_MUTE, KC_UP, TO(0), + KC_F12 , _______ , KC_F1, + KC_LEFT, KC_DOWN, KC_RGHT + ), + /* + | RESET | N/A | Media Stop | + | Held: Layer 2 | Home | RGB Mode | + | Media Previous | End | Media Next | + */ + [1] = LAYOUT( + RESET , KC_HOME, _______, + _______, _______, _______, + KC_MPRV, KC_END , KC_MNXT + ), +}; +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLD); + } else { + tap_code(KC_VOLU); + } + } + else if (index == 1) { + int mod = 0; + if (clockwise) { + mod = 1; + } else { + mod = -1; + } + int n = 2; //sizeof(PROGMEM); + int new_layer = ((layer_state + mod) % n + n) % n; + uprintf("new: %d\n", new_layer); + layer_on(new_layer); + for(int i=0; i < n; i++) { + if (new_layer != i) { + layer_off(i); + } + } + } +} diff --git a/keyboards/keebio/bdn9/keymaps/rishka/rules.mk b/keyboards/keebio/bdn9/keymaps/rishka/rules.mk new file mode 100644 index 0000000000..0613ea8667 --- /dev/null +++ b/keyboards/keebio/bdn9/keymaps/rishka/rules.mk @@ -0,0 +1 @@ +BOOTLOADER = qmk-dfu -- cgit v1.2.3