]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
[Keymap] add planck/tylerwince (#6169)
authorTyler Wince <tyler@wince.dev>
Sat, 22 Jun 2019 19:25:00 +0000 (12:25 -0700)
committerDrashna Jaelre <drashna@live.com>
Sat, 22 Jun 2019 19:25:00 +0000 (12:25 -0700)
* tylerwince keymap added

* modifications for PR

* remove legacy import

* fix some build errors

* fix layers

* restore custom_keycodes

* remove trailing commas

* change persistent layer function

* update light noeeprom

* layer state set user

* missing trailing "

* changes to single_default_layer

* added autoshift and made a couple mods

* added planck layout

* formatting

* reset to upstream

* updated some comments

* remove EEP_RST

* Apply suggestions from code review

Co-Authored-By: Drashna Jaelre <drashna@live.com>
keyboards/planck/keymaps/tylerwince/config.h [new file with mode: 0644]
keyboards/planck/keymaps/tylerwince/keymap.c [new file with mode: 0644]
keyboards/planck/keymaps/tylerwince/rules.mk [new file with mode: 0644]

diff --git a/keyboards/planck/keymaps/tylerwince/config.h b/keyboards/planck/keymaps/tylerwince/config.h
new file mode 100644 (file)
index 0000000..24adad9
--- /dev/null
@@ -0,0 +1,18 @@
+#pragma once
+
+#ifdef AUDIO_ENABLE
+#define STARTUP_SONG SONG(PLANCK_SOUND)
+#endif
+
+#define MIDI_BASIC
+
+#define ENCODER_RESOLUTION 4
+
+/*
+  Set any config.h overrides for your specific keymap here.
+  See config.h options at https://docs.qmk.fm/#/config_options?id=the-configh-file
+*/
+#define TAPPING_FORCE_HOLD
+#define IGNORE_MOD_TAP_INTERRUPT
+
+#define EECONFIG_RGB_MATRIX (uint32_t *)16
diff --git a/keyboards/planck/keymaps/tylerwince/keymap.c b/keyboards/planck/keymaps/tylerwince/keymap.c
new file mode 100644 (file)
index 0000000..30412e9
--- /dev/null
@@ -0,0 +1,294 @@
+#include QMK_KEYBOARD_H
+#include "muse.h"
+
+enum planck_keycodes {
+  RGB_SLD = SAFE_RANGE,
+  TOGGLE_LAYER_COLOR,
+};
+
+enum planck_layers {
+  _BASE,
+  _LOWER,
+  _RAISE,
+  _ADJUST,
+  _LAYER4,
+};
+
+//Tap Dance Declarations
+enum {
+  TD_SEMI_COLON,
+};
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+  [TD_SEMI_COLON] = ACTION_TAP_DANCE_DOUBLE(KC_SCLN, KC_COLN),
+};
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  [_BASE] = LAYOUT_planck_grid(
+            /* _BASE
+             * ,-----------------------------------------------------------------------------------.
+             * | Tab  |   '  |   ,  |   .  |   P  |   Y  |   F  |   G  |   C  |   R  |   L  |   /  |
+             * |------+------+------+------+------+-------------+------+------+------+------+------|
+             * |CtlEsc|   A  |   O  |   E  |   U  |   I  |   D  |   H  |   T  |   N  |   S  | Bksp |
+             * |------+------+------+------+------+------|------+------+------+------+------+------|
+             * |      |   ;  |   Q  |   J  |   K  |   X  |   B  |   M  |   W  |   V  |   Z  |Enter |
+             * |------+------+------+------+------+------+------+------+------+------+------+------|
+             * |      | Ctrl | Alt  | GUI  |LOWER | Shift/Space | RAISE|      |      |      |      |
+             * `-----------------------------------------------------------------------------------'
+             */
+          KC_TAB,            KC_QUOTE,          KC_COMMA, KC_DOT,  KC_P,  KC_Y,             KC_F,  KC_G,  KC_C,    KC_R,    KC_L,    KC_SLASH,
+          LCTL_T(KC_ESCAPE), KC_A,              KC_O,     KC_E,    KC_U,  KC_I,             KC_D,  KC_H,  KC_T,    KC_N,    KC_S,    KC_BSPACE,
+          _______,           TD(TD_SEMI_COLON), KC_Q,     KC_J,    KC_K,  KC_X,             KC_B,  KC_M,  KC_W,    KC_V,    KC_Z,    KC_ENTER,
+          _______,           KC_LCTRL,          KC_LALT,  KC_LGUI, LOWER, LSFT_T(KC_SPACE), KC_NO, RAISE, _______, _______, _______, _______
+          ),
+
+  [_LOWER] = LAYOUT_planck_grid(
+            /* _LOWER
+             * ,-----------------------------------------------------------------------------------.
+             * |  `   |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  |   \  |
+             * |------+------+------+------+------+-------------+------+------+------+------+------|
+             * |  ~   |   !  |   @  |   #  |   $  |   %  |   ^  |   &  |   *  |   (  |   )  |   |  |
+             * |------+------+------+------+------+------|------+------+------+------+------+------|
+             * |      |      |      |      |      |      |      |   _  |   +  |   {  |   }  |Delete|
+             * |------+------+------+------+------+------+------+------+------+------+------+------|
+             * |      | Ctrl | Alt  | GUI  |LOWER | Shift/Space | RAISE|      |   [  |   ]  |      |
+             * `-----------------------------------------------------------------------------------'
+             */
+          KC_GRAVE, KC_1,     KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,        KC_0,        KC_BSLASH,
+          KC_TILD,  KC_EXLM,  KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN,     KC_RPRN,     KC_PIPE,
+          _______,  _______,  _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR,     KC_RCBR,     KC_DELETE,
+          _______,  KC_LCTRL, KC_LALT, KC_LGUI, _______, _______, KC_NO,   _______, _______, KC_LBRACKET, KC_RBRACKET, _______
+          ),
+
+  [_RAISE] = LAYOUT_planck_grid(
+            /* _RAISE
+             * ,-----------------------------------------------------------------------------------.
+             * |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |      |      |      |      |RIGHT |      |
+             * |------+------+------+------+------+-------------+------+------+------+------+------|
+             * |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |      | LEFT |      |      |      |Delete|
+             * |------+------+------+------+------+------|------+------+------+------+------+------|
+             * |      |      |      | DOWN |  UP  |      |      |   -  |   =  |      |      |      |
+             * |------+------+------+------+------+------+------+------+------+------+------+------|
+             * |THINGS|1PASS |      |      |LOWER | Shift/Space | RAISE|      |      |      |      |
+             * `-----------------------------------------------------------------------------------'
+             */
+
+          KC_F1,          KC_F2,           KC_F3,   KC_F4,   KC_F5,   KC_F6,   _______, _______,  _______,  _______, KC_RIGHT, _______,
+          KC_F7,          KC_F8,           KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______, KC_LEFT,  _______,  _______, _______,  KC_DELETE,
+          _______,        _______,         _______, KC_DOWN, KC_UP,   _______, _______, KC_MINUS, KC_EQUAL, _______, _______,  _______,
+          LALT(KC_SPACE), LGUI(KC_BSLASH), _______, _______, _______, _______, KC_NO,   _______,  _______,  _______, _______,  _______
+          ),
+
+  [_ADJUST] = LAYOUT_planck_grid(
+            /* _LOWER
+             * ,-----------------------------------------------------------------------------------.
+             * |Reset |      |      |      |      |WIN-TL|WIN-TR|      |      |      |WIN-R |      |
+             * |------+------+------+------+------+-------------+------+------+------+------+------|
+             * |      |      |      |      |      |WIN-BL|WIN-BR|WIN-L |      |      |      |      |
+             * |------+------+------+------+------+------|------+------+------+------+------+------|
+             * |      |      |      |WIN-B |WIN-T |      |      |      |      |      |      |      |
+             * |------+------+------+------+------+------+------+------+------+------+------+------|
+             * | BASE |LAYER4|      |      |LOWER | Shift/Space | RAISE|VOL-DN| BR-DN|BR-UP |VOL-UP|
+             * `-----------------------------------------------------------------------------------'
+             */
+
+          RESET,   _______, _______, _______,          _______,          LALT(LCTL(KC_7)), LALT(LCTL(KC_8)), _______,          _______,           _______, LALT(LCTL(KC_L)), _______, 
+          _______, _______, _______, _______,          _______,          LALT(LCTL(KC_U)), LALT(LCTL(KC_I)), LALT(LCTL(KC_H)), _______,           _______, _______,          _______,          
+          _______, _______, _______, LALT(LCTL(KC_J)), LALT(LCTL(KC_K)), _______,          _______,          _______,          _______,           _______, _______,          LALT(LCTL(KC_ENTER)),
+          TO(0),   TO(4),   _______, _______,          _______,          _______,          KC_NO,            _______,          KC_AUDIO_VOL_DOWN, KC_F14,  KC_F15,           KC_AUDIO_VOL_UP
+          ),
+
+  [_LAYER4] = LAYOUT_planck_grid(
+            /* _LOWER
+             * ,-----------------------------------------------------------------------------------.
+             * | Tab  |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  |   '  |
+             * |------+------+------+------+------+-------------+------+------+------+------+------|
+             * |CtlEsc|   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |   ;  | Bksp |
+             * |------+------+------+------+------+------|------+------+------+------+------+------|
+             * |      |   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   /  |Enter |
+             * |------+------+------+------+------+------+------+------+------+------+------+------|
+             * |      | Ctrl | Alt  | GUI  |LOWER | Shift/Space | RAISE|      |      |      |      |
+             * `-----------------------------------------------------------------------------------'
+             */
+
+          KC_TAB,            KC_Q,    KC_W,    KC_E,    KC_R,  KC_T,             KC_Y,  KC_U,  KC_I,     KC_O,    KC_P,      KC_QUOTE,
+          LCTL_T(KC_ESCAPE), KC_A,    KC_S,    KC_D,    KC_F,  KC_G,             KC_H,  KC_J,  KC_K,     KC_L,    KC_SCOLON, KC_BSPACE,
+          _______,           KC_Z,    KC_X,    KC_C,    KC_V,  KC_B,             KC_N,  KC_M,  KC_COMMA, KC_DOT,  KC_SLASH,  KC_ENTER,
+          _______,           KC_LCTL, KC_LALT, KC_LGUI, LOWER, LSFT_T(KC_SPACE), KC_NO, RAISE, _______,  _______, _______,   _______
+          ),
+
+};
+
+extern bool g_suspend_state;
+extern rgb_config_t rgb_matrix_config;
+bool disable_layer_color = 0;
+
+void keyboard_post_init_user(void) {
+  rgb_matrix_enable();
+}
+
+const uint8_t PROGMEM ledmap[][DRIVER_LED_TOTAL][3] = {
+    [0] = { {32,255,234}, {32,255,234}, {12,225,241}, {12,225,241}, {0,204,255}, {0,204,255}, {169,120,255}, {169,120,255}, {169,120,255}, {146,224,255}, {146,224,255}, {146,224,255},
+            {32,255,234}, {32,255,234}, {12,225,241}, {12,225,241}, {0,204,255}, {0,204,255}, {169,120,255}, {169,120,255}, {169,120,255}, {146,224,255}, {146,224,255}, {146,224,255},
+            {32,255,234}, {32,255,234}, {12,225,241}, {12,225,241}, {0,204,255}, {0,204,255}, {169,120,255}, {169,120,255}, {169,120,255}, {146,224,255}, {146,224,255}, {146,224,255}, 
+            {32,255,234}, {32,255,234}, {12,225,241}, {12,225,241}, {0,204,255}, {0,0,0},     {169,120,255}, {169,120,255}, {146,224,255}, {146,224,255}, {146,224,255} },
+
+    [1] = { {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255},
+            {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255},
+            {0,0,0},     {0,0,0},     {0,0,0},     {0,0,0},     {0,0,0},     {0,0,0},     {0,0,0},     {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255},
+            {0,0,0},     {0,204,255}, {0,204,255}, {0,204,255}, {0,204,255}, {0,0,0},     {0,0,0},     {0,0,0},     {0,204,255}, {0,204,255}, {0,0,0} },
+
+    [2] = { {169,120,255}, {169,120,255}, {169,120,255}, {169,120,255}, {169,120,255}, {169,120,255}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {169,120,255}, {0,0,0},
+            {169,120,255}, {169,120,255}, {169,120,255}, {169,120,255}, {169,120,255}, {169,120,255}, {0,0,0}, {169,120,255}, {0,0,0}, {0,0,0}, {0,0,0}, {169,120,255},
+            {0,0,0}, {0,0,0}, {0,0,0}, {169,120,255}, {169,120,255}, {0,0,0}, {0,0,0}, {169,120,255}, {169,120,255}, {0,0,0}, {0,0,0}, {0,0,0},
+            {169,120,255}, {169,120,255}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {169,120,255}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0} },
+
+    [4] = { {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255}, {105,255,255} },
+
+};
+
+void set_layer_color(int layer) {
+  for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
+    HSV hsv = {
+      .h = pgm_read_byte(&ledmap[layer][i][0]),
+      .s = pgm_read_byte(&ledmap[layer][i][1]),
+      .v = pgm_read_byte(&ledmap[layer][i][2]),
+    };
+    if (!hsv.h && !hsv.s && !hsv.v) {
+        rgb_matrix_set_color( i, 0, 0, 0 );
+    } else {
+        RGB rgb = hsv_to_rgb( hsv );
+        rgb_matrix_set_color( i, rgb.r, rgb.g, rgb.b );
+    }
+  }
+}
+
+void rgb_matrix_indicators_user(void) {
+  if (g_suspend_state || disable_layer_color) { return; }
+  switch (biton32(layer_state)) {
+    case 0:
+      set_layer_color(0);
+      break;
+    case 1:
+      set_layer_color(1);
+      break;
+    case 2:
+      set_layer_color(2);
+      break;
+    case 4:
+      set_layer_color(4);
+      break;
+  }
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+  switch (keycode) {
+    case RGB_SLD:
+      if (record->event.pressed) {
+        rgblight_mode(1);
+      }
+      return false;
+    case RGB_TOG:
+  if (record->event.pressed) {
+    if (rgb_matrix_config.val) {
+      rgb_matrix_sethsv(rgb_matrix_config.hue, rgb_matrix_config.sat, 0);
+    } else {
+      rgb_matrix_sethsv(rgb_matrix_config.hue, rgb_matrix_config.sat, 255);
+    }
+  }
+  return false;
+    case TOGGLE_LAYER_COLOR:
+      if (record->event.pressed) {
+        disable_layer_color ^= 1;
+      }
+      return false;
+  }
+  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 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
+            tap_code(KC_MS_WH_DOWN);
+        #else
+            tap_code(KC_PGDN);
+        #endif
+        } else {
+        #ifdef MOUSEKEY_ENABLE
+            tap_code(KC_MS_WH_UP);
+        #else
+            tap_code(KC_PGUP);
+        #endif
+        }
+    }
+}
+
+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
+}
+
+bool music_mask_user(uint16_t keycode) {
+    switch (keycode) {
+    case RAISE:
+    case LOWER:
+        return false;
+    default:
+        return true;
+    }
+}
+uint32_t layer_state_set_user(uint32_t state) {
+    palClearPad(GPIOB, 8);
+    palClearPad(GPIOB, 9);
+    uint8_t layer = biton32(state);
+    switch (layer) {
+        case _LOWER:
+            palSetPad(GPIOB, 9);
+            break;
+        case _RAISE:
+            palSetPad(GPIOB, 8);
+            break;
+        case _ADJUST:
+            palSetPad(GPIOB, 9);
+            palSetPad(GPIOB, 8);
+            break;
+        default:
+            break;
+    }
+    return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
diff --git a/keyboards/planck/keymaps/tylerwince/rules.mk b/keyboards/planck/keymaps/tylerwince/rules.mk
new file mode 100644 (file)
index 0000000..a4f1a0b
--- /dev/null
@@ -0,0 +1,7 @@
+SRC += muse.c
+# Set any rules.mk overrides for your specific keymap here.
+# See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file
+LINK_TIME_OPTIMIZATION_ENABLE = yes
+COMMAND_ENABLE = no
+MOUSEKEY_ENABLE = no
+TAP_DANCE_ENABLE=yes