diff options
| -rw-r--r-- | keyboards/planck/keymaps/navi/config.h | 31 | ||||
| -rw-r--r-- | keyboards/planck/keymaps/navi/keymap.c | 270 | ||||
| -rw-r--r-- | keyboards/planck/keymaps/navi/rules.mk | 5 | 
3 files changed, 124 insertions, 182 deletions
| diff --git a/keyboards/planck/keymaps/navi/config.h b/keyboards/planck/keymaps/navi/config.h index 694053c6a4..087ebb54e7 100644 --- a/keyboards/planck/keymaps/navi/config.h +++ b/keyboards/planck/keymaps/navi/config.h @@ -1,7 +1,14 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H +#pragma once -#include "config_common.h" +#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 @@ -13,7 +20,7 @@  /* enable basic MIDI features:     - MIDI notes can be sent when in Music mode is on  */ -                                 +  #define MIDI_BASIC  /* enable advanced MIDI features: @@ -27,4 +34,18 @@  /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */  //#define MIDI_TONE_KEYCODE_OCTAVES 2 -#endif
\ No newline at end of file +// Most tactile encoders have detents every 4 stages +#define ENCODER_RESOLUTION 4 + +#define MOUSEKEY_INTERVAL 16 + +#define MOUSEKEY_DELAY 0 + +#define MOUSEKEY_TIME_TO_MAX 60 + +#define MOUSEKEY_MAX_SPEED 7 + +#define MOUSEKEY_WHEEL_DELAY 0 + +#define TAPPING_TERM 80 +#define TAPPING_TOGGLE 2 diff --git a/keyboards/planck/keymaps/navi/keymap.c b/keyboards/planck/keymaps/navi/keymap.c index 0f0e48ad8d..bbf7d510f9 100644 --- a/keyboards/planck/keymaps/navi/keymap.c +++ b/keyboards/planck/keymaps/navi/keymap.c @@ -9,42 +9,35 @@   * 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. - * cd /c/qmk_firmware - * make planck/rev4:navi + * cd /c/qmk_firmware-master... make planck/rev6:navi   * You should have received a copy of the GNU General Public License   * along with this program.  If not, see <http://www.gnu.org/licenses/>.   */ -#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example" -#include "planck.h" -#include "action_layer.h" -#ifdef AUDIO_ENABLE -  #include "audio.h" -  #include "song_list.h" -#endif +#include QMK_KEYBOARD_H +  extern keymap_config_t keymap_config;  enum planck_layers {    _QWERTY, -  _COLEMAK, -  _PLOVER,    _LOWER,    _RAISE, -  _ADJUST, -  _FUNCTION +  _FUNCTION, +  _ADJUST +    };  enum planck_keycodes {    QWERTY = SAFE_RANGE, -  COLEMAK, -  PLOVER,    LOWER,    RAISE, -  EXT_PLV,    FUNCTION  }; +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +  const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {  /* Qwerty @@ -59,51 +52,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {   * `-----------------------------------------------------------------------------------'   * CtlSE = Control+shift+esc/   * CtlE = Control when held, esc when tapped -  */ -[_QWERTY] = { -  {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC}, -  {LCTL_T(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 }, -  {FUNCTION, C_S_T(KC_ESC), KC_LGUI, KC_LALT, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT} -}, - -/* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab  |   Q  |   W  |   F  |   P  |   G  |   J  |   L  |   U  |   Y  |   ;  | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | CtlE |   A  |   R  |   S  |   T  |   D  |   H  |   N  |   E  |   I  |   O  |  "   | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift|   Z  |   X  |   C  |   V  |   B  |   K  |   M  |   ,  |   .  |   /  |Enter | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * |  FN  |CtlSE |  GUI |  Alt |Lower |    Space    | Raise| Left | Down |  Up  |Right | - * `-----------------------------------------------------------------------------------' - */ -[_COLEMAK] = { -  {KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_BSPC}, -  {LCTL_T(KC_ESC),  KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT}, -  {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_ENT }, -  {FUNCTION, C_S_T(KC_ESC), KC_LGUI, KC_LALT, LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT} -}, - -/* 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  |      |      |      | - * `-----------------------------------------------------------------------------------' + * FN takes two taps to have it stay as FN   */ - -[_PLOVER] = { -  {KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1,    KC_1   }, -  {XXXXXXX, KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC}, -  {XXXXXXX, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT}, -  {EXT_PLV, XXXXXXX, XXXXXXX, KC_C,    KC_V,    XXXXXXX, XXXXXXX, KC_N,    KC_M,    XXXXXXX, XXXXXXX, XXXXXXX} -}, - +[_QWERTY] = LAYOUT_planck_grid( +  KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_DEL, +  LCTL_T(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, +  TT(_FUNCTION), LCTL(LALT(KC_DEL)), KC_LGUI, KC_LALT, LOWER,   KC_SPC,  KC_BSPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +),  /* Lower   * ,-----------------------------------------------------------------------------------. @@ -116,12 +72,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {   * |      |      |      |      |      |             |      |      |Pg DN | Pg UP|      |   * `-----------------------------------------------------------------------------------'   */ -[_LOWER] = { -  {KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_DEL}, -  {KC_DEL,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_UNDS,    KC_PLUS,    KC_LCBR, KC_RCBR, KC_PIPE}, -  {KC_LSHIFT, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  S(KC_NUHS), S(KC_NUBS), KC_END, KC_HOME,  _______}, -  {_______, _______, _______, _______, _______, _______, _______, _______,    _______, KC_PGDN  , KC_PGUP, _______} -}, +[_LOWER] = LAYOUT_planck_grid( +  KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_DEL, +  KC_DEL,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_UNDS,    KC_PLUS,    KC_LCBR, KC_RCBR, KC_PIPE, +  KC_LSHIFT, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  S(KC_NUHS), S(KC_NUBS), KC_END, KC_HOME,  _______, +  _______, _______, _______, _______, _______, _______, _______, _______,    _______, KC_PGDN  , KC_PGUP, _______ +),  /* Raise   * ,-----------------------------------------------------------------------------------. @@ -129,89 +85,54 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {   * |------+------+------+------+------+-------------+------+------+------+------+------|   * | Del  |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |   -  |   =  |   [  |   ]  |  \   |   * |------+------+------+------+------+------|------+------+------+------+------+------| - * |Shift |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |ISO # |ISO / | End  | Home |       | + * |Shift |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |ISO # |ISO / | End  | Home |      |   * |------+------+------+------+------+------+------+------+------+------+------+------|   * |      |      |      |      |      |             |      |      |Pg DN |Pg UP |      |   * `-----------------------------------------------------------------------------------'   */ -[_RAISE] = { -  {KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR,    KC_ASTR,    KC_LPRN, KC_RPRN, KC_DEL}, -  {KC_DEL,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS}, -  {KC_LSHIFT, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_NUHS, KC_NUBS, KC_END, KC_HOME,  _______}, -  {_______, _______, _______, _______, _______, _______, _______, _______,    _______, KC_PGDN  , KC_PGUP, _______} -}, +[_RAISE] = LAYOUT_planck_grid( +  KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR,    KC_ASTR,    KC_LPRN, KC_RPRN, KC_DEL, +  KC_DEL,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS, +  KC_LSHIFT, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_NUHS, KC_NUBS, KC_END, KC_HOME,  _______, +  _______, _______, _______, _______, _______, _______, _______, _______,    _______, KC_PGDN  , KC_PGUP, _______ +), -/* Adjust (Lower + Raise) - * ,-----------------------------------------------------------------------------------. - * |      | Reset|      |      |      |      |      |      |      |      |      |  Del | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * |      |      |MU_MOD|Aud on|Audoff|      |      |Qwerty|Colemk|Plover|      |      | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * |Caps  |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|      |      |      |      | Caps | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * |      |      |      |      |      |             |      |      |      |      |      | - * `-----------------------------------------------------------------------------------' - */ -[_ADJUST] = { -  {_______, RESET,   DEBUG,    RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL }, -  {_______, _______, MU_MOD,  AU_ON,   AU_OFF,  _______, _______, QWERTY,  COLEMAK, PLOVER,_______,  _______}, -  {KC_CAPS, MUV_DE,  MUV_IN,  MU_ON,   MU_OFF,  MI_ON,   MI_OFF,  TERM_ON, TERM_OFF, _______, _______, KC_CAPS}, -  {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -},  /* Function   * ,-----------------------------------------------------------------------------------. - * | Esc  |      | Prev | Play | Next |      |      |      |  7   |  8   |  9   | Bksp | + * | Vol- | Mute | Vol+ | 	   | 	  |      |      |   #  |  7   |  8   |  9   | Bksp |   * |------+------+------+------+------+-------------+------+------+------+------+------| - * |      |      | Vol- | Mute | Vol+ |      |      |   +  |  4   |  5   |  6   |  -   | + * | Prev | Play | Next | 	   | 	  |      |      |   +  |  4   |  5   |  6   |  -   |   * |------+------+------+------+------+------|------+------+------+------+------+------| - * | CALC |      |      |      |      |      |      |   $  |  1   |  2   |  3   | Enter| + * | CALC |  MWU |  M1  |MouseU|  M2  |      |      |   $  |  1   |  2   |  3   | Enter|   * |------+------+------+------+------+------+------+------+------+------+------+------| - * |      |      |Prntsc|      |      |             |   *  |  0   |  .   |Numlck|  /   | + * |      |  MWD |MouseL|MouseD|MouseR|             |   *  |  0   |  .   |Numlck|  /   |   * `-----------------------------------------------------------------------------------'   */ -[_FUNCTION] = { -  {KC_ESC , _______, KC_MPRV, KC_MPLY, KC_MNXT, _______,_______,_______, KC_KP_7, KC_KP_8, KC_KP_9,KC_BSPC}, -  {_______, _______, KC_VOLD, KC_MUTE, KC_VOLU, _______, _______, KC_PPLS, KC_KP_4, KC_KP_5, KC_KP_6, KC_PMNS}, -  {KC_CALC, _______, _______, _______, _______, _______, _______, KC_DLR, KC_KP_1, KC_KP_2, KC_KP_3, KC_ENT}, -  {_______, _______, KC_PSCR, _______, _______ , _______, _______, KC_PAST, KC_KP_0, KC_KP_DOT,KC_NUMLOCK, KC_PSLS} -} +[_FUNCTION] = LAYOUT_planck_grid( +  KC_VOLD, KC_MUTE, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_HASH, KC_KP_7, KC_KP_8, KC_KP_9, KC_BSPC, +  KC_MPRV, KC_MPLY, KC_MNXT, AU_ON, AU_OFF, MU_ON, MU_OFF, KC_PPLS, KC_KP_4, KC_KP_5, KC_KP_6, KC_PMNS, +  KC_CALC, KC_WH_U, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_DLR, KC_KP_1, KC_KP_2, KC_KP_3, KC_ENTER, +  KC_TRNS, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_PAST, KC_KP_0, KC_KP_DOT,KC_NUMLOCK, KC_PSLS +)  }; -#ifdef AUDIO_ENABLE -float tone_startup[][2]    = SONG(ZELDA_PUZZLE); -float tone_qwerty[][2]     = SONG(ZELDA_TREASURE); -float plover_song[][2]     = SONG(PLOVER_SOUND); -float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); -float tone_colemak[][2]    = SONG(VIOLIN_SOUND); -float tone_music_on[][2]   = SONG(ONE_UP_SOUND); -float tone_music_off[][2]  = SONG(ROCK_A_BYE_BABY); -#endif /* AUDIO_ENABLE */ +uint32_t layer_state_set_user(uint32_t state) { +  return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +}  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); -        #ifdef AUDIO_ENABLE -          PLAY_SONG(tone_qwerty); -        #endif -      } -      return false; -      break; -    case COLEMAK: -      if (record->event.pressed) { -		  set_single_persistent_default_layer(_COLEMAK); -        #ifdef AUDIO_ENABLE -          PLAY_SONG(tone_colemak); -        #endif +        print("mode just switched to qwerty and this is a huge string\n"); +        set_single_persistent_default_layer(_QWERTY);        }        return false;        break; -    case LOWER: +	case LOWER:        if (record->event.pressed) {          layer_on(_LOWER);          update_tri_layer(_LOWER, _RAISE, _ADJUST); @@ -238,62 +159,59 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {          layer_off(_FUNCTION);        }        return false; -      break; -	case PLOVER: -      if (record->event.pressed) { -        #ifdef AUDIO_ENABLE -          stop_all_notes(); -          PLAY_SONG(plover_song); -        #endif -        layer_off(_RAISE); -        layer_off(_LOWER); -        layer_off(_ADJUST); -        layer_on(_PLOVER); -        if (!eeconfig_is_enabled()) { -            eeconfig_init(); -        } -        keymap_config.raw = eeconfig_read_keymap(); -        keymap_config.nkro = 1; -        eeconfig_update_keymap(keymap_config.raw); -      } -      return false; -      break; -    case EXT_PLV: -      if (record->event.pressed) { -        #ifdef AUDIO_ENABLE -          PLAY_SONG(plover_gb_song); -        #endif -        layer_off(_PLOVER); -      } -      return false; -      break; +	  break;	  	      }    return true;  } -void matrix_init_user(void) { -    #ifdef AUDIO_ENABLE -        startup_user(); -    #endif -} - -#ifdef AUDIO_ENABLE - -void startup_user() -{ -    _delay_ms(20); // gets rid of tick -    PLAY_SONG(tone_startup); -} - -void music_on_user(void) -{ -	PLAY_SONG(tone_music_on); +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 encoder_update(bool clockwise) { +  if (muse_mode) { +    if (IS_LAYER_ON(_RAISE)) { +      if (clockwise) { +        muse_offset++; +      } else { +        muse_offset--; +      } +    } else { +      if (clockwise) { +        muse_tempo+=1; +      } else { +        muse_tempo-=1; +      } +    } +  } else { +    if (clockwise) { +      #ifdef MOUSEKEY_ENABLE +        register_code(KC_MS_WH_DOWN); +        unregister_code(KC_MS_WH_DOWN); +      #else +        register_code(KC_PGDN); +        unregister_code(KC_PGDN); +      #endif +    } else { +      #ifdef MOUSEKEY_ENABLE +        register_code(KC_MS_WH_UP); +        unregister_code(KC_MS_WH_UP); +      #else +        register_code(KC_PGUP); +        unregister_code(KC_PGUP); +      #endif +    } +  }  } -void music_off_user(void) -{ -	PLAY_SONG(tone_music_off); +bool music_mask_user(uint16_t keycode) { +  switch (keycode) { +    case RAISE: +    case LOWER: +      return false; +    default: +      return true; +  }  } -#endif - - diff --git a/keyboards/planck/keymaps/navi/rules.mk b/keyboards/planck/keymaps/navi/rules.mk index 628167ff66..4852442b36 100644 --- a/keyboards/planck/keymaps/navi/rules.mk +++ b/keyboards/planck/keymaps/navi/rules.mk @@ -1 +1,4 @@ -AUDIO_ENABLE = yes
\ No newline at end of file +AUDIO_ENABLE = yes +MOUSEKEY_ENABLE = yes  + +DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave
\ No newline at end of file | 
