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 f7dce70207f..71111eca215 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 00000000000..d469cd6aec8 --- /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 00000000000..a3cd80f1dbf --- /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 00000000000..36b7ba9cbc9 --- /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 c570ec7667c..ccf9f098437 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 397887a73f3..82f9acd8f90 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 bed78bca3f0..09ec6c44709 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 fd6f0460e56..a57e42dfbc2 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 572852bbf0c..c802efa8d47 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 93692207805..c2ff086f33b 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 055610c699f..63c44001f65 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