diff --git a/keyboards/keebio/bdn9/keymaps/branderson/config.h b/keyboards/keebio/bdn9/keymaps/branderson/config.h new file mode 100644 index 0000000000..20b1f40d0b --- /dev/null +++ b/keyboards/keebio/bdn9/keymaps/branderson/config.h @@ -0,0 +1,7 @@ +#pragma once + +#ifdef RGB_MATRIX_ENABLE +# define RGB_MATRIX_KEYPRESSES +#endif +#define MK_3_SPEED +#undef MK_MOMENTARY_ACCEL diff --git a/keyboards/keebio/bdn9/keymaps/branderson/keymap.c b/keyboards/keebio/bdn9/keymaps/branderson/keymap.c new file mode 100644 index 0000000000..7cab13accb --- /dev/null +++ b/keyboards/keebio/bdn9/keymaps/branderson/keymap.c @@ -0,0 +1,249 @@ +/* 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 + +#define CONFIG MO(2) +#define MOUSEMODE TG(1) + +/* char layer_count = 3; */ +unsigned char lighting_layers[3][3] = { + {180, 255, 128}, + {126, 255, 128}, + {0, 255, 128} +}; + +enum custom_keycodes { + STOP = SAFE_RANGE, + HMSCRN, + FLSCRN, +}; + +enum encoder_names { + _LEFT, + _RIGHT, + _MIDDLE, +}; + +enum layer_names { + _PLEX = 0, + _MOUSE, + _CONFIG, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + | Knob 1: Seek Bck/Fwd | Knob 2: Scroll Up/Dn | Knob 3: Vol Dn/Up | + | Press: Play/Pause | Press: Home | Press: Mute | + | RGB Toggle | RGB Mode | Subtitles | + | Back | Fullscreen | Enter / Skip Intro | + */ + [0] = LAYOUT( + KC_MPLY, KC_P , KC_MUTE, + RGB_TOG, CONFIG , KC_S, + KC_ESC , FLSCRN , KC_ENTER + ), + [1] = LAYOUT( + KC_ACL1, KC_ACL2 , KC_BTN3, + KC_WH_L, CONFIG , KC_WH_R, + KC_BTN2, _______ , KC_BTN1 + ), + /* + | Knob 1: RGB Hue + | Knob 2: RGB Sat + | Knob 3: RGB Bright + | + | Press: RGB Mode - | Press: RGB Static | Press: Bootloader | + | Homescreen | | RGB Mode + | + | Media Previous | Layer 3 (Hold->RGB) | Media Next | + */ + [2] = LAYOUT( + RGB_RMOD, RGB_M_P, QK_BOOT, + HMSCRN , _______ , RGB_MOD, + KC_MPRV, MOUSEMODE, KC_MNXT + ), +}; + +void keyboard_post_init_user(void) { + +} + +layer_state_t layer_state_set_user(layer_state_t state) { + // This won't work because it'll always set overwrite the new colors + /* layer_state_t prev = (state - 1) % 3 */ + /* lighting_layers[state][0] = rgblight_get_hue(); */ + /* lighting_layers[state][1] = rgblight_get_sat(); */ + /* lighting_layers[state][2] = rgblight_get_val(); */ + /* rgblight_sethsv( */ + /* lighting_layers[state][0], */ + /* lighting_layers[state][1], */ + /* lighting_layers[state][2] */ + /* ); */ + /* rgblight_mode(0); */ + switch (get_highest_layer(state)) { + case _PLEX: + rgblight_sethsv( + lighting_layers[_PLEX][0], + lighting_layers[_PLEX][1], + lighting_layers[_PLEX][2] + ); + break; + case _MOUSE: + tap_code16(KC_ACL2); + rgblight_sethsv( + lighting_layers[_MOUSE][0], + lighting_layers[_MOUSE][1], + lighting_layers[_MOUSE][2] + ); + break; + case _CONFIG: + rgblight_sethsv( + lighting_layers[_CONFIG][0], + lighting_layers[_CONFIG][1], + lighting_layers[_CONFIG][2] + ); + break; + default: // for any other layers, or the default layer + rgblight_sethsv(0x00, 0xFF, 0xFF); + break; + } + return state; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case STOP: + if (record->event.pressed) { + // when keycode is pressed + SEND_STRING("x"); + } else { + // when keycode is released + } + break; + case HMSCRN: + if (record->event.pressed) { + // when keycode is pressed + SEND_STRING("xh"); + } else { + // when keycode is released + } + break; + + case FLSCRN: + if (record->event.pressed) { + // when keycode is pressed + tap_code16(LSFT(KC_F11)); + tap_code(KC_BACKSLASH); + } else { + // when keycode is released + } + break; + +/* case CONFIG: */ +/* if (record->event.pressed) { */ +/* layer_on(2); */ +/* } else { */ +/* layer_off(2); */ +/* } */ + +/* case MOUSEMODE: */ +/* if (record->event.pressed) { */ +/* layer_invert(1); */ +/* } else { */ +/* } */ +/* break; */ + } + return true; +}; + +bool encoder_update_user(uint8_t index, bool clockwise) { + // Seek Back / Forward + switch(get_highest_layer(layer_state|default_layer_state)) { + case 0: + if (index == _LEFT) { + if (clockwise) { + /* tap_code(KC_MEDIA_FAST_FORWARD); */ + tap_code(KC_RIGHT); + } else { + /* tap_code(KC_MEDIA_REWIND); */ + tap_code(KC_LEFT); + } + } else if (index == _MIDDLE) { + if (clockwise) { + tap_code16(KC_MS_WH_DOWN); + tap_code(KC_DOWN); + } else { + tap_code16(KC_MS_WH_UP); + tap_code(KC_UP); + } + } else if (index == _RIGHT) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + break; + case 1: + if (index == _LEFT) { + if (clockwise) { + tap_code16(KC_MS_RIGHT); + } else { + tap_code16(KC_MS_LEFT); + } + } else if (index == _MIDDLE) { + if (clockwise) { + tap_code16(KC_MS_UP); + } else { + tap_code16(KC_MS_DOWN); + } + } else if (index == _RIGHT) { + if (clockwise) { + tap_code16(KC_MS_WH_DOWN); + } else { + tap_code16(KC_MS_WH_UP); + } + } + break; + case 2: + if (index == _LEFT) { + if (clockwise) { + /* tap_code(KC_MEDIA_FAST_FORWARD); */ + rgblight_increase_hue(); + } else { + /* tap_code(KC_MEDIA_REWIND); */ + rgblight_decrease_hue(); + } + lighting_layers[_PLEX][0] = rgblight_get_hue(); + } else if (index == _MIDDLE) { + if (clockwise) { + rgblight_increase_sat(); + } else { + rgblight_decrease_sat(); + } + lighting_layers[_PLEX][1] = rgblight_get_sat(); + } else if (index == _RIGHT) { + if (clockwise) { + rgblight_increase_val(); + } else { + rgblight_decrease_val(); + } + lighting_layers[_PLEX][2] = rgblight_get_val(); + lighting_layers[_CONFIG][2] = rgblight_get_val(); + lighting_layers[_MOUSE][2] = rgblight_get_val(); + } + break; + default: + break; + } + return false; +} diff --git a/keyboards/keebio/levinson/keymaps/branderson/keymap.c b/keyboards/keebio/levinson/keymaps/branderson/keymap.c index 1ebc9a403d..dd735e1a7e 100644 --- a/keyboards/keebio/levinson/keymaps/branderson/keymap.c +++ b/keyboards/keebio/levinson/keymaps/branderson/keymap.c @@ -112,10 +112,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------' '------------------------------------------' */ [_RAISE] = LAYOUT_ortho_4x12( - ALTAB, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_DLR, KC_GRV, KC_P7, KC_P8, KC_P9, KC_PAST, KC_NUM, - KC_CAPS, KC_EQL, KC_UNDS, KC_LPRN, KC_RPRN, KC_HASH, KC_PIPE, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_PGUP, - KC_HOME,KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_PGDN, - KC_END, _______, _______, KC_GRV, LOWER, _______, NUMPAD, _______, KC_P0, KC_PDOT, KC_PSLS, KC_PENT + ALTAB, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_DLR, KC_GRV, KC_P7, KC_P8, KC_P9, KC_ASTR, KC_NUM, + KC_CAPS, KC_EQL, KC_UNDS, KC_LPRN, KC_RPRN, KC_HASH, KC_PIPE, KC_P4, KC_P5, KC_P6, KC_PLUS, KC_PGUP, + KC_HOME,KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_P1, KC_P2, KC_P3, KC_MINS, KC_PGDN, + KC_END, _______, _______, KC_GRV, LOWER, _______, NUMPAD, _______, KC_P0, KC_PDOT, KC_SLSH, KC_PENT ), /* Numpad diff --git a/keyboards/planck/keymaps/branderson/config.h b/keyboards/planck/keymaps/branderson/config.h index 464b7b29f8..5707fb186c 100644 --- a/keyboards/planck/keymaps/branderson/config.h +++ b/keyboards/planck/keymaps/branderson/config.h @@ -47,3 +47,13 @@ // Most tactile encoders have detents every 4 stages #define ENCODER_RESOLUTION 4 + +//#define MOUSEKEY_WHEEL_MAX_SPEED 2 +//#define MOUSEKEY_MAX_SPEED 4 +//#define MOUSEKEY_TIME_TO_MAX 60 +#define MK_KINETIC_SPEED +#define MOUSEKEY_INTERVAL 10 +#define MOUSEKEY_MOVE_DELTA 4 +#define MOUSEKEY_BASE_SPEED 500 +#define MOUSEKEY_ACCELERATED_SPEED 800 +#define MOUSEKEY_WHEEL_INITIAL_MOVEMENTS 1 diff --git a/keyboards/planck/keymaps/branderson/keymap.c b/keyboards/planck/keymaps/branderson/keymap.c index 2b85e1e05b..caf9b1dff4 100644 --- a/keyboards/planck/keymaps/branderson/keymap.c +++ b/keyboards/planck/keymaps/branderson/keymap.c @@ -130,10 +130,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `------------------------------------------------------------------------------------' */ [_RAISE] = LAYOUT_planck_grid( - ALTAB, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_DLR, KC_GRV, KC_P7, KC_P8, KC_P9, KC_PAST, KC_NUM, - KC_CAPS, KC_EQL, KC_UNDS, KC_LPRN, KC_RPRN, KC_HASH, KC_PIPE, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_PGUP, - KC_HOME,KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_PGDN, - KC_END, _______, _______, KC_GRV, LOWER, _______, NUMPAD, _______, KC_P0, KC_PDOT, KC_PSLS, KC_PENT + ALTAB, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_DLR, KC_GRV, KC_P7, KC_P8, KC_P9, KC_ASTR, KC_NUM, + KC_CAPS, KC_EQL, KC_UNDS, KC_LPRN, KC_RPRN, KC_HASH, KC_PIPE, KC_P4, KC_P5, KC_P6, KC_PLUS, KC_PGUP, + KC_HOME,KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_P1, KC_P2, KC_P3, KC_MINS, KC_PGDN, + KC_END, _______, _______, KC_GRV, LOWER, _______, NUMPAD, _______, KC_P0, KC_PDOT, KC_SLSH, KC_PENT ), /* Numpad @@ -174,21 +174,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Adjust (Lower + Raise) * v------------------------RGB CONTROL--------------------v - * ,-----------------------------------------------------------------------------------. - * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del | + * ,-------------+------+--------------------------------------------------------------. + * | |WWWBck|MouseU|WWWFwd|RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del | * |------+------+------+------+------+------+------+------+------+------+------+------| - * |CTLESC| |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * |CTLESC|MouseL|MouseD|MouseR|MUSmod|AGnorm|AGswap|LtClck|RtClck|ScrlDn|ScrlUp| Reset| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | + * |MsAcl | | | |Musoff|MIDIon|MIDIof|Qwerty|Colemk|Dvorak|Plover| Debug| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | + * | |Voice-|Voice+|Mus on| | | | | |Aud on|Audoff| RGB | * `-----------------------------------------------------------------------------------' */ [_ADJUST] = LAYOUT_planck_grid( - _______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , - CTLESC, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______, - _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + _______, KC_WBAK, KC_MS_U, KC_WFWD, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , + CTLESC, KC_MS_L, KC_MS_D, KC_MS_R, MU_MOD, AG_NORM, AG_SWAP, KC_BTN1, KC_BTN2, KC_WH_D, KC_WH_U, RESET, + KC_ACL2, _______, _______, _______, MU_OFF, MI_ON, MI_OFF, QWERTY, COLEMAK, DVORAK, PLOVER, DEBUG, + _______, MUV_DE, MUV_IN, MU_ON, _______, _______, _______, _______, _______, AU_ON, AU_OFF, RGB_TOG ) };