From ffa1507c2c27cf9d1e6fcceeb5a7810a8d2eae19 Mon Sep 17 00:00:00 2001 From: George Wietor Date: Thu, 22 Apr 2021 13:13:44 -0400 Subject: [PATCH] VIA support for Planck Rev6 (#9144) Co-authored-by: Joel Challis Co-authored-by: George Wietor Co-authored-by: Jack Humbert --- keyboards/planck/config.h | 3 +- keyboards/planck/keymaps/via/keymap.c | 97 ++++++++++++++++++++++++++ keyboards/planck/keymaps/via/readme.md | 8 +++ keyboards/planck/keymaps/via/rules.mk | 2 + keyboards/planck/light/config.h | 3 +- keyboards/planck/rev1/config.h | 1 + keyboards/planck/rev2/config.h | 1 + keyboards/planck/rev3/config.h | 1 + keyboards/planck/rev4/config.h | 1 + keyboards/planck/rev5/config.h | 1 + keyboards/planck/rev6/config.h | 1 + 11 files changed, 115 insertions(+), 4 deletions(-) create mode 100644 keyboards/planck/keymaps/via/keymap.c create mode 100644 keyboards/planck/keymaps/via/readme.md create mode 100644 keyboards/planck/keymaps/via/rules.mk diff --git a/keyboards/planck/config.h b/keyboards/planck/config.h index f7dce7020..71111eca2 100644 --- a/keyboards/planck/config.h +++ b/keyboards/planck/config.h @@ -21,8 +21,7 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xFEED -#define PRODUCT_ID 0x6060 +#define VENDOR_ID 0x03A8 #define MANUFACTURER OLKB #define PRODUCT Planck diff --git a/keyboards/planck/keymaps/via/keymap.c b/keyboards/planck/keymaps/via/keymap.c new file mode 100644 index 000000000..d469cd6ae --- /dev/null +++ b/keyboards/planck/keymaps/via/keymap.c @@ -0,0 +1,97 @@ +/* Copyright 2015-2017 Jack Humbert + * Updated 2020 mixedfeelings + * + * 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 LOWER FN_MO13 +#define RAISE FN_MO23 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ortho_4x12 ( + 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_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_SFTENT, + KC_NO, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [1] = LAYOUT_ortho_4x12 ( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + 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_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [2] = LAYOUT_ortho_4x12 ( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + 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_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Utility + * ,-----------------------------------------------------------------------------------. + * | |RESET |DEBUG | | | | | | | | |Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [3] = LAYOUT_ortho_4x12 ( + KC_TRNS, RESET, DEBUG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) + +}; diff --git a/keyboards/planck/keymaps/via/readme.md b/keyboards/planck/keymaps/via/readme.md new file mode 100644 index 000000000..a3cd80f1d --- /dev/null +++ b/keyboards/planck/keymaps/via/readme.md @@ -0,0 +1,8 @@ +# VIA QWERTY layout for Planck Rev6 +A heavily simplified version of the Planck Layout that deals with VIA layer limit by stripping out Dvorak, Colemak, and Plover layouts as well as all internal audio, lighting, and mod switching keys. + +Predefined Layers: +- 0 - Default Planck QWERTY keymap (minus lighting control, plus SHIFT ENTER) +- 1 - Default Planck LOWER keymap +- 2 - Default Planck RAISE keymap +- 3 - UTILITY keymap (RESET, DEBUG) diff --git a/keyboards/planck/keymaps/via/rules.mk b/keyboards/planck/keymaps/via/rules.mk new file mode 100644 index 000000000..36b7ba9cb --- /dev/null +++ b/keyboards/planck/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/planck/light/config.h b/keyboards/planck/light/config.h index c570ec766..ccf9f0984 100644 --- a/keyboards/planck/light/config.h +++ b/keyboards/planck/light/config.h @@ -5,8 +5,7 @@ #undef PRODUCT #define PRODUCT Planck Light -#undef PRODUCT_ID -#define PRODUCT_ID 0x6065 +#define PRODUCT_ID 0xBEA2 #define DEVICE_VER 0x0001 #undef MATRIX_ROW_PINS diff --git a/keyboards/planck/rev1/config.h b/keyboards/planck/rev1/config.h index 397887a73..82f9acd8f 100644 --- a/keyboards/planck/rev1/config.h +++ b/keyboards/planck/rev1/config.h @@ -1,3 +1,4 @@ #pragma once +#define PRODUCT_ID 0xAE01 #define DEVICE_VER 0x0001 diff --git a/keyboards/planck/rev2/config.h b/keyboards/planck/rev2/config.h index bed78bca3..09ec6c447 100644 --- a/keyboards/planck/rev2/config.h +++ b/keyboards/planck/rev2/config.h @@ -1,3 +1,4 @@ #pragma once +#define PRODUCT_ID 0xAE01 #define DEVICE_VER 0x0002 diff --git a/keyboards/planck/rev3/config.h b/keyboards/planck/rev3/config.h index fd6f0460e..a57e42dfb 100644 --- a/keyboards/planck/rev3/config.h +++ b/keyboards/planck/rev3/config.h @@ -1,3 +1,4 @@ #pragma once +#define PRODUCT_ID 0xAE01 #define DEVICE_VER 0x0003 diff --git a/keyboards/planck/rev4/config.h b/keyboards/planck/rev4/config.h index 572852bbf..c802efa8d 100644 --- a/keyboards/planck/rev4/config.h +++ b/keyboards/planck/rev4/config.h @@ -1,3 +1,4 @@ #pragma once +#define PRODUCT_ID 0xAE01 #define DEVICE_VER 0x0004 diff --git a/keyboards/planck/rev5/config.h b/keyboards/planck/rev5/config.h index 936922078..c2ff086f3 100644 --- a/keyboards/planck/rev5/config.h +++ b/keyboards/planck/rev5/config.h @@ -1,3 +1,4 @@ #pragma once +#define PRODUCT_ID 0xAE01 #define DEVICE_VER 0x0005 diff --git a/keyboards/planck/rev6/config.h b/keyboards/planck/rev6/config.h index 055610c69..63c44001f 100644 --- a/keyboards/planck/rev6/config.h +++ b/keyboards/planck/rev6/config.h @@ -19,6 +19,7 @@ #define REV6_CONFIG_H /* USB Device descriptor parameter */ +#define PRODUCT_ID 0xA4F9 #define DEVICE_VER 0x0006 #undef MATRIX_ROWS