From bf6af85c287b825ca8b5a65a3c6bc997e535827c Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Sun, 14 Aug 2022 20:33:49 -0700 Subject: [PATCH 01/20] QMK Files QMK Files for firmware --- keyboards/aliceh66/pianoforte/config.h | 49 ++ keyboards/aliceh66/pianoforte/info.json | 497 ++++++++++++++++++ .../pianoforte/keymaps/default/keymap.c | 33 ++ .../aliceh66/pianoforte/keymaps/iso/keymap.c | 33 ++ .../aliceh66/pianoforte/keymaps/via/keymap.c | 43 ++ .../aliceh66/pianoforte/keymaps/via/rules.mk | 2 + .../aliceh66/pianoforte/keymaps/vial/config.h | 7 + .../aliceh66/pianoforte/keymaps/vial/keymap.c | 33 ++ .../pianoforte/keymaps/vial/pianoforte.zip | Bin 0 -> 25486 bytes .../keymaps/vial/pianoforte/pianoforte.json | 263 +++++++++ .../aliceh66/pianoforte/keymaps/vial/rules.mk | 2 + keyboards/aliceh66/pianoforte/pianoforte.h | 131 +++++ keyboards/aliceh66/pianoforte/readme.md | 14 + keyboards/aliceh66/pianoforte/rules.mk | 25 + keyboards/aliceh66/pianoforte_hs/config.h | 49 ++ keyboards/aliceh66/pianoforte_hs/info.json | 104 ++++ .../pianoforte_hs/keymaps/default/keymap.c | 33 ++ .../pianoforte_hs/keymaps/via/keymap.c | 43 ++ .../pianoforte_hs/keymaps/via/rules.mk | 2 + .../pianoforte_hs/keymaps/vial/config.h | 7 + .../pianoforte_hs/keymaps/vial/keymap.c | 33 ++ .../keymaps/vial/pianoforte_hs.zip | Bin 0 -> 24989 bytes .../vial/pianoforte_hs/pianoforte_hs.json | 189 +++++++ .../pianoforte_hs/keymaps/vial/rules.mk | 2 + .../aliceh66/pianoforte_hs/pianoforte_hs.h | 43 ++ keyboards/aliceh66/pianoforte_hs/readme.md | 14 + keyboards/aliceh66/pianoforte_hs/rules.mk | 23 + 27 files changed, 1674 insertions(+) create mode 100644 keyboards/aliceh66/pianoforte/config.h create mode 100644 keyboards/aliceh66/pianoforte/info.json create mode 100644 keyboards/aliceh66/pianoforte/keymaps/default/keymap.c create mode 100644 keyboards/aliceh66/pianoforte/keymaps/iso/keymap.c create mode 100644 keyboards/aliceh66/pianoforte/keymaps/via/keymap.c create mode 100644 keyboards/aliceh66/pianoforte/keymaps/via/rules.mk create mode 100644 keyboards/aliceh66/pianoforte/keymaps/vial/config.h create mode 100644 keyboards/aliceh66/pianoforte/keymaps/vial/keymap.c create mode 100644 keyboards/aliceh66/pianoforte/keymaps/vial/pianoforte.zip create mode 100644 keyboards/aliceh66/pianoforte/keymaps/vial/pianoforte/pianoforte.json create mode 100644 keyboards/aliceh66/pianoforte/keymaps/vial/rules.mk create mode 100644 keyboards/aliceh66/pianoforte/pianoforte.h create mode 100644 keyboards/aliceh66/pianoforte/readme.md create mode 100644 keyboards/aliceh66/pianoforte/rules.mk create mode 100644 keyboards/aliceh66/pianoforte_hs/config.h create mode 100644 keyboards/aliceh66/pianoforte_hs/info.json create mode 100644 keyboards/aliceh66/pianoforte_hs/keymaps/default/keymap.c create mode 100644 keyboards/aliceh66/pianoforte_hs/keymaps/via/keymap.c create mode 100644 keyboards/aliceh66/pianoforte_hs/keymaps/via/rules.mk create mode 100644 keyboards/aliceh66/pianoforte_hs/keymaps/vial/config.h create mode 100644 keyboards/aliceh66/pianoforte_hs/keymaps/vial/keymap.c create mode 100644 keyboards/aliceh66/pianoforte_hs/keymaps/vial/pianoforte_hs.zip create mode 100644 keyboards/aliceh66/pianoforte_hs/keymaps/vial/pianoforte_hs/pianoforte_hs.json create mode 100644 keyboards/aliceh66/pianoforte_hs/keymaps/vial/rules.mk create mode 100644 keyboards/aliceh66/pianoforte_hs/pianoforte_hs.h create mode 100644 keyboards/aliceh66/pianoforte_hs/readme.md create mode 100644 keyboards/aliceh66/pianoforte_hs/rules.mk diff --git a/keyboards/aliceh66/pianoforte/config.h b/keyboards/aliceh66/pianoforte/config.h new file mode 100644 index 000000000000..1a0d46883b77 --- /dev/null +++ b/keyboards/aliceh66/pianoforte/config.h @@ -0,0 +1,49 @@ +/* +Copyright 2022 AliceH + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6168 +#define PRODUCT_ID 0x7066 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AliceH +#define PRODUCT pianoforte + +#define MATRIX_ROWS 12 +#define MATRIX_COLS 9 + +#define MATRIX_COL_PINS { D4, D6, D7, B4, B5, F1, F0, E6, B6 } +#define MATRIX_ROW_PINS { D1, D0, D3, D2, D5, B0, C6, C7, F6, F7, F5, F4 } +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 +#define VIAL_KEYBOARD_UID {0x37, 0xFC, 0xE4, 0xB0, 0x9B, 0xC6, 0x1A, 0xD8} +#define VIAL_UNLOCK_COMBO_ROWS { 0, 7 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 6 } +#define DYNAMIC_KEYMAP_LAYER_COUNT 2 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + + diff --git a/keyboards/aliceh66/pianoforte/info.json b/keyboards/aliceh66/pianoforte/info.json new file mode 100644 index 000000000000..2d819013ab1b --- /dev/null +++ b/keyboards/aliceh66/pianoforte/info.json @@ -0,0 +1,497 @@ +{ + "keyboard_name": "pianoforte solder PCB", + "url": "https://github.com/AliceH66", + "maintainer": "AliceH66", + "layouts": { + "LAYOUT": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"F13", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause Break", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2@", "x":2, "y":1.25}, + {"label":"3#", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25}, + {"label":"SB2", "x":14, "y":1.25}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"Pipe", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":1.25}, + {"label":"ISO Pipe", "x":1.25, "y":4.25, "w":1}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"<", "x":9.25, "y":4.25}, + {"label":">", "x":10.25, "y":4.25}, + {"label":"?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, + {"label":"Shift", "x":12.24, "y":4.25, "w":2.75}, + {"label":"Fn", "x":14, "y":4.25}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"label":"Space", "x":4, "y":5.25, "w":7}, + {"label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"label":"Alt", "x":11, "y":5.25, "w":1.25}, + {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, + {"label": "MO(1)", "x":12.5, "y": 5.25, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_ansi": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"F13", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause Break", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2@", "x":2, "y":1.25}, + {"label":"3#", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25, "w":2}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"Pipe", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"<", "x":9.25, "y":4.25}, + {"label":">", "x":10.25, "y":4.25}, + {"label":"?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"label":"Space", "x":4, "y":5.25, "w":6.25}, + {"label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, + {"label":"MO(1)", "x":12.5, "y":5.25, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_iso": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"F13", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause Break", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2@", "x":2, "y":1.25}, + {"label":"3#", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25, "w":2}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'", "x":11.75, "y":3.25}, + {"label":"ISO #", "x":12.75, "y":3.25}, + {"label":"Enter", "x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"ISO Pipe", "x":1.25, "y":4.25, "w":1}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"<", "x":9.25, "y":4.25}, + {"label":">", "x":10.25, "y":4.25}, + {"label":"?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"label":"Space", "x":4, "y":5.25, "w":6.25}, + {"label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, + {"label":"MO(1)", "x":12.5, "y":5.25, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_ansi_7u": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"F13", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause Break", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2@", "x":2, "y":1.25}, + {"label":"3#", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25, "w":2}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"Pipe", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"<", "x":9.25, "y":4.25}, + {"label":">", "x":10.25, "y":4.25}, + {"label":"?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.25, "w":1}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, + {"label":"Space", "x":4, "y":5.25, "w":7}, + {"label":"Alt", "x":11, "y":5.25, "w":1.5}, + {"label":"Win", "x":12.5, "y":5.25, "w":1}, + {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_iso_7u": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"F13", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause Break", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2@", "x":2, "y":1.25}, + {"label":"3#", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25, "w":2}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'", "x":11.75, "y":3.25}, + {"label":"ISO #", "x":12.75, "y":3.25}, + {"label":"Enter", "x":13.75, "y":2.25, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"ISO Pipe", "x":1.25, "y":4.25, "w":1}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"<", "x":9.25, "y":4.25}, + {"label":">", "x":10.25, "y":4.25}, + {"label":"?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.25, "w":1}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, + {"label":"Space", "x":4, "y":5.25, "w":7}, + {"label":"Alt", "x":11, "y":5.25, "w":1.5}, + {"label":"Win", "x":12.5, "y":5.25, "w":1}, + {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/aliceh66/pianoforte/keymaps/default/keymap.c b/keyboards/aliceh66/pianoforte/keymaps/default/keymap.c new file mode 100644 index 000000000000..00acfe82c9b1 --- /dev/null +++ b/keyboards/aliceh66/pianoforte/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* +Copyright 2022 AliceH + +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 +enum layer_names { + _LAYER0, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, MO(1), + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT +) + +}; diff --git a/keyboards/aliceh66/pianoforte/keymaps/iso/keymap.c b/keyboards/aliceh66/pianoforte/keymaps/iso/keymap.c new file mode 100644 index 000000000000..c8c4e8498e30 --- /dev/null +++ b/keyboards/aliceh66/pianoforte/keymaps/iso/keymap.c @@ -0,0 +1,33 @@ +/* +Copyright 2022 AliceH + +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 +enum layer_names { + _LAYER0, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_tkl_iso( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT +) + +}; diff --git a/keyboards/aliceh66/pianoforte/keymaps/via/keymap.c b/keyboards/aliceh66/pianoforte/keymaps/via/keymap.c new file mode 100644 index 000000000000..aa0f8a5e0dea --- /dev/null +++ b/keyboards/aliceh66/pianoforte/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +/* +Copyright 2022 AliceH + +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 +enum layer_names { + _LAYER0, + _LAYER1, +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, MO(1), + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = LAYOUT( + 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, 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, 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/aliceh66/pianoforte/keymaps/via/rules.mk b/keyboards/aliceh66/pianoforte/keymaps/via/rules.mk new file mode 100644 index 000000000000..4f7618e9b211 --- /dev/null +++ b/keyboards/aliceh66/pianoforte/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes diff --git a/keyboards/aliceh66/pianoforte/keymaps/vial/config.h b/keyboards/aliceh66/pianoforte/keymaps/vial/config.h new file mode 100644 index 000000000000..0258ea1bcc72 --- /dev/null +++ b/keyboards/aliceh66/pianoforte/keymaps/vial/config.h @@ -0,0 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x37, 0xFC, 0xE4, 0xB0, 0x9B, 0xC6, 0x1A, 0xD8} +#define VIAL_UNLOCK_COMBO_ROWS { 0, 7 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 6 } diff --git a/keyboards/aliceh66/pianoforte/keymaps/vial/keymap.c b/keyboards/aliceh66/pianoforte/keymaps/vial/keymap.c new file mode 100644 index 000000000000..00acfe82c9b1 --- /dev/null +++ b/keyboards/aliceh66/pianoforte/keymaps/vial/keymap.c @@ -0,0 +1,33 @@ +/* +Copyright 2022 AliceH + +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 +enum layer_names { + _LAYER0, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, MO(1), + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT +) + +}; diff --git a/keyboards/aliceh66/pianoforte/keymaps/vial/pianoforte.zip b/keyboards/aliceh66/pianoforte/keymaps/vial/pianoforte.zip new file mode 100644 index 0000000000000000000000000000000000000000..390ab6bf4697713c53f818b324f8fbe5918fbf20 GIT binary patch literal 25486 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 YTEy1Xzy. +*/ +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT( \ + K000, K010, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K007, K017, K008, \ + K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, \ + K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K047, K057, K048, \ + K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K066, K076, K067, \ + K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K096, K087, K097, \ + K100, K110, K101, K113, K105, K115, K106, K116, K107, K117, K108 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008 }, \ + { K010, K011, K012, K013, K014, K015, K016, K017, ____ }, \ + { K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \ + { K030, K031, K032, K033, K034, K035, K036, K037, ____ }, \ + { K040, K041, K042, K043, K044, K045, K046, K047, K048 }, \ + { K050, K051, K052, K053, K054, K055, K056, K057, ____ }, \ + { K060, K061, K062, K063, K064, K065, K066, K067, ____ }, \ + { K070, K071, K072, K073, K074, K075, K076, ____, ____ }, \ + { K080, K081, K082, K083, K084, K085, K086, K087, ____ }, \ + { K090, K091, K092, K093, K094, K095, K096, K097, ____ }, \ + { K100, K101, ____, ____, ____, ____, K106, K107, K108 }, \ + { K110, ____, ____, K113, ____, K115, K116, K117, ____ } \ +} + +#define LAYOUT_tkl_ansi( \ + K000, K010, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K007, K017, K008, \ + K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, \ + K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K047, K057, K048, \ + K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K076, \ + K080, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K096, K097, \ + K100, K110, K101, K113, K105, K115, K106, K116, K107, K117, K108 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008 }, \ + { K010, K011, K012, K013, K014, K015, K016, K017, ____ }, \ + { K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \ + { K030, K031, K032, K033, K034, K035, K036, K037, ____ }, \ + { K040, K041, K042, K043, K044, K045, K046, K047, K048 }, \ + { K050, K051, K052, K053, K054, K055, K056, K057, ____ }, \ + { K060, K061, K062, K063, K064, K065, ____, ____, ____ }, \ + { K070, K071, K072, K073, K074, K075, K076, ____, ____ }, \ + { K080, K081, K082, K083, K084, K085, ____, ____, ____ }, \ + { ____, K091, K092, K093, K094, K095, K096, K097, ____ }, \ + { K100, K101, ____, ____, ____, K105, K106, K107, K108 }, \ + { K110, ____, ____, K113, ____, K115, K116, K117, ____ } \ +} + +#define LAYOUT_tkl_iso( \ + K000, K010, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K007, K017, K008, \ + K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, \ + K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K047, K057, K048, \ + K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K066, K076, \ + K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K096, K097, \ + K100, K110, K101, K113, K105, K115, K106, K116, K107, K117, K108 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008 }, \ + { K010, K011, K012, K013, K014, K015, K016, K017, ____ }, \ + { K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \ + { K030, K031, K032, K033, K034, K035, K036, K037, ____ }, \ + { K040, K041, K042, K043, K044, K045, K046, K047, K048 }, \ + { K050, K051, K052, K053, K054, K055, ____, K057, ____ }, \ + { K060, K061, K062, K063, K064, K065, K066, ____, ____ }, \ + { K070, K071, K072, K073, K074, K075, K076, ____, ____ }, \ + { K080, K081, K082, K083, K084, K085, ____, ____, ____ }, \ + { K090, K091, K092, K093, K094, K095, K096, K097, ____ }, \ + { K100, K101, ____, ____, ____, K105, K106, K107, K108 }, \ + { K110, ____, ____, K113, ____, K115, K116, K117, ____ } \ +} + +#define LAYOUT_tkl_ansi_7u( \ + K000, K010, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K007, K017, K008, \ + K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, \ + K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K047, K057, K048, \ + K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K076, \ + K080, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K096, K097, \ + K100, K110, K101, K113, K115, K106, K116, K107, K117, K108 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008 }, \ + { K010, K011, K012, K013, K014, K015, K016, K017, ____ }, \ + { K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \ + { K030, K031, K032, K033, K034, K035, K036, K037, ____ }, \ + { K040, K041, K042, K043, K044, K045, K046, K047, K048 }, \ + { K050, K051, K052, K053, K054, K055, K056, K057, ____ }, \ + { K060, K061, K062, K063, K064, K065, ____, ____, ____ }, \ + { K070, K071, K072, K073, K074, K075, K076, ____, ____ }, \ + { K080, K081, K082, K083, K084, K085, ____, ____, ____ }, \ + { ____, K091, K092, K093, K094, K095, K096, K097, ____ }, \ + { K100, K101, ____, ____, ____, K105, K106, K107, K108 }, \ + { K110, ____, ____, K113, ____, K115, K116, K117, ____ } \ +} + +#define LAYOUT_tkl_iso_7u( \ + K000, K010, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K007, K017, K008, \ + K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, \ + K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K047, K057, K048, \ + K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K066, K076, \ + K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K096, K097, \ + K100, K110, K101, K113, K115, K106, K116, K107, K117, K108 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008 }, \ + { K010, K011, K012, K013, K014, K015, K016, K017, ____ }, \ + { K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \ + { K030, K031, K032, K033, K034, K035, K036, K037, ____ }, \ + { K040, K041, K042, K043, K044, K045, K046, K047, K048 }, \ + { K050, K051, K052, K053, K054, K055, ____, K057, ____ }, \ + { K060, K061, K062, K063, K064, K065, K066, ____, ____ }, \ + { K070, K071, K072, K073, K074, K075, K076, ____, ____ }, \ + { K080, K081, K082, K083, K084, K085, ____, ____, ____ }, \ + { K090, K091, K092, K093, K094, K095, K096, K097, ____ }, \ + { K100, K101, ____, ____, ____, K105, K106, K107, K108 }, \ + { K110, ____, ____, K113, ____, K115, K116, K117, ____ } \ +} diff --git a/keyboards/aliceh66/pianoforte/readme.md b/keyboards/aliceh66/pianoforte/readme.md new file mode 100644 index 000000000000..fb58901000d3 --- /dev/null +++ b/keyboards/aliceh66/pianoforte/readme.md @@ -0,0 +1,14 @@ +# AliceH pianoforte solder PCB + +QMK Firmware for the pianoforte solder PCB + +* Keyboard Maintainer: [AliceH] (https://github.com/AliceH66) +* Hardware Supported: pianoforte Solder + +Make example for this keyboard (after setting up your build environment): + make aliceh66/pianoforte:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader +Press and hold the reset button to enter bootloader mode. \ No newline at end of file diff --git a/keyboards/aliceh66/pianoforte/rules.mk b/keyboards/aliceh66/pianoforte/rules.mk new file mode 100644 index 000000000000..7deca1bef317 --- /dev/null +++ b/keyboards/aliceh66/pianoforte/rules.mk @@ -0,0 +1,25 @@ +# MCU name +MCU = atmega32u4 + +# Processor Frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +LTO_ENABLE = yes # Enable link time optomization +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +QMK_SETTINGS = no # QMK Settings + +LAYOUTS = tkl_ansi tkl_iso \ No newline at end of file diff --git a/keyboards/aliceh66/pianoforte_hs/config.h b/keyboards/aliceh66/pianoforte_hs/config.h new file mode 100644 index 000000000000..bc4cc8225c50 --- /dev/null +++ b/keyboards/aliceh66/pianoforte_hs/config.h @@ -0,0 +1,49 @@ +/* +Copyright 2022 AliceH + +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 . +*/ + +#pragma once + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0x6168 +#define PRODUCT_ID 0x7068 +#define DEVICE_VER 0x0001 +#define MANUFACTURER AliceH +#define PRODUCT pianoforte_hotswap + +#define MATRIX_ROWS 12 +#define MATRIX_COLS 9 + +#define MATRIX_COL_PINS { D6, D7, B4, B5, B6, F6, F5, E6, D4 } +#define MATRIX_ROW_PINS { D2, D1, D3, D0, D5, B0, F0, F1, F7, F4, C7, C6 } +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 +#define VIAL_KEYBOARD_UID {0xF3, 0xC1, 0x73, 0xB5, 0x52, 0xD4, 0x0E, 0x99} +#define VIAL_UNLOCK_COMBO_ROWS { 0, 6 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 6 } +#define DYNAMIC_KEYMAP_LAYER_COUNT 2 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + + diff --git a/keyboards/aliceh66/pianoforte_hs/info.json b/keyboards/aliceh66/pianoforte_hs/info.json new file mode 100644 index 000000000000..4456f8dd8552 --- /dev/null +++ b/keyboards/aliceh66/pianoforte_hs/info.json @@ -0,0 +1,104 @@ +{ + "keyboard_name": "pianoforte hotswap PCB", + "url": "https://github.com/AliceH66", + "maintainer": "AliceH66", + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":1.25, "y":0}, + {"label":"F2", "x":2.25, "y":0}, + {"label":"F3", "x":3.25, "y":0}, + {"label":"F4", "x":4.25, "y":0}, + {"label":"F5", "x":5.5, "y":0}, + {"label":"F6", "x":6.5, "y":0}, + {"label":"F7", "x":7.5, "y":0}, + {"label":"F8", "x":8.5, "y":0}, + {"label":"F9", "x":9.75, "y":0}, + {"label":"F10", "x":10.75, "y":0}, + {"label":"F11", "x":11.75, "y":0}, + {"label":"F12", "x":12.75, "y":0}, + {"label":"F13", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause Break", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2@", "x":2, "y":1.25}, + {"label":"3#", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25, "w":2}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"Pipe", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":"<", "x":9.25, "y":4.25}, + {"label":">", "x":10.25, "y":4.25}, + {"label":"?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"label":"Space", "x":4, "y":5.25, "w":6.25}, + {"label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, + {"label":"MO(1)", "x":12.5, "y":5.25, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/aliceh66/pianoforte_hs/keymaps/default/keymap.c b/keyboards/aliceh66/pianoforte_hs/keymaps/default/keymap.c new file mode 100644 index 000000000000..d39b7dda99e1 --- /dev/null +++ b/keyboards/aliceh66/pianoforte_hs/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* +Copyright 2022 AliceH + +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 +enum layer_names { + _LAYER0, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT +) + +}; diff --git a/keyboards/aliceh66/pianoforte_hs/keymaps/via/keymap.c b/keyboards/aliceh66/pianoforte_hs/keymaps/via/keymap.c new file mode 100644 index 000000000000..3d69572d42fe --- /dev/null +++ b/keyboards/aliceh66/pianoforte_hs/keymaps/via/keymap.c @@ -0,0 +1,43 @@ +/* +Copyright 2022 AliceH + +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 +enum layer_names { + _LAYER0, + _LAYER1 +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = LAYOUT_tkl_ansi( + 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, 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, 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/aliceh66/pianoforte_hs/keymaps/via/rules.mk b/keyboards/aliceh66/pianoforte_hs/keymaps/via/rules.mk new file mode 100644 index 000000000000..6bc7063adc21 --- /dev/null +++ b/keyboards/aliceh66/pianoforte_hs/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes \ No newline at end of file diff --git a/keyboards/aliceh66/pianoforte_hs/keymaps/vial/config.h b/keyboards/aliceh66/pianoforte_hs/keymaps/vial/config.h new file mode 100644 index 000000000000..ef64a845cc7a --- /dev/null +++ b/keyboards/aliceh66/pianoforte_hs/keymaps/vial/config.h @@ -0,0 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0xF3, 0xC1, 0x73, 0xB5, 0x52, 0xD4, 0x0E, 0x99} +#define VIAL_UNLOCK_COMBO_ROWS { 0, 6 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 6 } diff --git a/keyboards/aliceh66/pianoforte_hs/keymaps/vial/keymap.c b/keyboards/aliceh66/pianoforte_hs/keymaps/vial/keymap.c new file mode 100644 index 000000000000..9e11e41eac39 --- /dev/null +++ b/keyboards/aliceh66/pianoforte_hs/keymaps/vial/keymap.c @@ -0,0 +1,33 @@ +/* +Copyright 2022 AliceH + +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 +enum layer_names { + _LAYER0 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_tkl_ansi( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT +) + +}; diff --git a/keyboards/aliceh66/pianoforte_hs/keymaps/vial/pianoforte_hs.zip b/keyboards/aliceh66/pianoforte_hs/keymaps/vial/pianoforte_hs.zip new file mode 100644 index 0000000000000000000000000000000000000000..901ea9c835c3dcf0caaf3d384ae466bd66317b8f GIT binary patch literal 24989 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 z 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 literal 0 HcmV?d00001 diff --git a/keyboards/aliceh66/pianoforte_hs/keymaps/vial/pianoforte_hs/pianoforte_hs.json b/keyboards/aliceh66/pianoforte_hs/keymaps/vial/pianoforte_hs/pianoforte_hs.json new file mode 100644 index 000000000000..4b0623d79154 --- /dev/null +++ b/keyboards/aliceh66/pianoforte_hs/keymaps/vial/pianoforte_hs/pianoforte_hs.json @@ -0,0 +1,189 @@ +{ + "name": "pianoforte hotswap", + "vendorId": "0x6168", + "productId": "0x7068", + "lighting": "none", + "matrix": { + "rows": 12, + "cols": 9 + }, + "layouts": { + "keymap":[ + [ + "0,0", + { + "x": 0.25 + }, + "1,0", + "0,1", + "1,1", + "0,2", + { + "x": 0.25 + }, + "1,2", + "0,3", + "1,3", + "0,4", + { + "x": 0.25 + }, + "1,4", + "0,5", + "1,5", + "0,6", + { + "x": 0.25 + }, + "1,6", + { + "x": 0.25 + }, + "0,7", + "1,7", + "0,8" + ], + [ + { + "y": 0.25 + }, + "2,0", + "3,0", + "2,1", + "3,1", + "2,2", + "3,2", + "2,3", + "3,3", + "2,4", + "3,4", + "2,5", + "3,5", + "2,6", + { + "w": 2 + }, + "3,6", + { + "x": 0.25 + }, + "2,7", + "3,7", + "2,8" + ], + [ + { + "w": 1.5 + }, + "4,0", + "5,0", + "4,1", + "5,1", + "4,2", + "5,2", + "4,3", + "5,3", + "4,4", + "5,4", + "4,5", + "5,5", + "4,6", + { + "w": 1.5 + }, + "5,6", + { + "x": 0.25 + }, + "4,7", + "5,7", + "4,8" + ], + [ + { + "w": 1.75 + }, + "6,0", + "7,0", + "6,1", + "7,1", + "6,2", + "7,2", + "6,3", + "7,3", + "6,4", + "7,4", + "6,5", + "7,5", + { + "w": 2.25 + }, + "6,6" + ], + [ + { + "w": 2.25 + }, + "8,0", + "9,0", + "8,1", + "9,1", + "8,2", + "9,2", + "8,3", + "9,3", + "8,4", + "9,4", + "8,5", + { + "w": 2.75 + }, + "9,6", + { + "x": 1.25 + }, + "8,7" + ], + [ + { + "w": 1.25 + }, + "10,0", + { + "w": 1.25 + }, + "11,0", + { + "w": 1.25 + }, + "10,1", + { + "w": 6.25 + }, + "11,2", + { + "w": 1.25 + }, + "10,4", + { + "w": 1.25 + }, + "11,5", + { + "w": 1.25 + }, + "10,6", + { + "w": 1.25 + }, + "11,6", + { + "x": 0.25 + }, + "10,7", + "11,7", + "10,8" + ] + ] + } +} \ No newline at end of file diff --git a/keyboards/aliceh66/pianoforte_hs/keymaps/vial/rules.mk b/keyboards/aliceh66/pianoforte_hs/keymaps/vial/rules.mk new file mode 100644 index 000000000000..6bc7063adc21 --- /dev/null +++ b/keyboards/aliceh66/pianoforte_hs/keymaps/vial/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes \ No newline at end of file diff --git a/keyboards/aliceh66/pianoforte_hs/pianoforte_hs.h b/keyboards/aliceh66/pianoforte_hs/pianoforte_hs.h new file mode 100644 index 000000000000..cd24668766f3 --- /dev/null +++ b/keyboards/aliceh66/pianoforte_hs/pianoforte_hs.h @@ -0,0 +1,43 @@ +/* +Copyright 2022 AliceH + +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 . +*/ +#pragma once + +#include "quantum.h" + +#define ____ KC_NO + +#define LAYOUT_tkl_ansi( \ + K000, K010, K001, K011, K002, K012, K003, K013, K004, K014, K005, K015, K006, K016, K007, K017, K008, \ + K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, \ + K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K047, K057, K048, \ + K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K066, \ + K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K096, K087, \ + K100, K110, K101, K112, K104, K115, K106, K116, K107, K117, K108 \ +) { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008 }, \ + { K010, K011, K012, K013, K014, K015, K016, K017, ____ }, \ + { K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \ + { K030, K031, K032, K033, K034, K035, K036, K037, ____ }, \ + { K040, K041, K042, K043, K044, K045, K046, K047, K048 }, \ + { K050, K051, K052, K053, K054, K055, K056, K057, ____ }, \ + { K060, K061, K062, K063, K064, K065, K066, ____, ____ }, \ + { K070, K071, K072, K073, K074, K075, ____, ____, ____ }, \ + { K080, K081, K082, K083, K084, K085, ____, K087, ____ }, \ + { K090, K091, K092, K093, K094, ____, K096, ____, ____ }, \ + { K100, K101, ____, ____, K104, ____, K106, K107, K108 }, \ + { K110, ____, K112, ____, ____, K115, K116, K117, ____ } \ +} diff --git a/keyboards/aliceh66/pianoforte_hs/readme.md b/keyboards/aliceh66/pianoforte_hs/readme.md new file mode 100644 index 000000000000..3b3bcebc540f --- /dev/null +++ b/keyboards/aliceh66/pianoforte_hs/readme.md @@ -0,0 +1,14 @@ +# AliceH pianoforte hotswap PCB + +QMK Firmware for the pianoforte hotswap PCB + +* Keyboard Maintainer: [AliceH] (https://github.com/AliceH66) +* Hardware Supported: pianoforte hotswap + +Make example for this keyboard (after setting up your build environment): + make aliceh66/pianoforte_hs:default + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader +Press and hold the reset button to enter bootloader mode. \ No newline at end of file diff --git a/keyboards/aliceh66/pianoforte_hs/rules.mk b/keyboards/aliceh66/pianoforte_hs/rules.mk new file mode 100644 index 000000000000..c4604c84efb7 --- /dev/null +++ b/keyboards/aliceh66/pianoforte_hs/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Processor Frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +LTO_ENABLE = yes # Enable link time optomization +BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +QMK_SETTINGS = no # QMK Settings From b2ff4b1ac0682e226a7ee6c6c3ed4d125427228b Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Tue, 16 Aug 2022 19:41:29 -0700 Subject: [PATCH 02/20] via coloring Added necessary colouring for VIA --- .../keymaps/vial/pianoforte/pianoforte.json | 67 ++++++++++++++----- .../vial/pianoforte_hs/pianoforte_hs.json | 53 +++++++++++---- 2 files changed, 88 insertions(+), 32 deletions(-) diff --git a/keyboards/aliceh66/pianoforte/keymaps/vial/pianoforte/pianoforte.json b/keyboards/aliceh66/pianoforte/keymaps/vial/pianoforte/pianoforte.json index 1c4d7016d6e3..c04b0b74412b 100644 --- a/keyboards/aliceh66/pianoforte/keymaps/vial/pianoforte/pianoforte.json +++ b/keyboards/aliceh66/pianoforte/keymaps/vial/pianoforte/pianoforte.json @@ -22,11 +22,13 @@ "keymap":[ [ { - "x": 2.5 + "x": 2.5, + "c": "#777777" }, "0,0", { - "x": 0.25 + "x": 0.25, + "c":"#cccccc" }, "1,0", "0,1", @@ -76,17 +78,20 @@ "3,5", "2,6", { + "c" :"#aaaaaa", "w": 2 }, "3,6\n\n\n0,0", { - "x": 0.25 + "x": 0.25, + "c" :"#cccccc" }, "2,7", "3,7", "2,8", { - "x": 1 + "x": 1, + "c": "#aaaaaa" }, "3,6\n\n\n0,1", "6,7\n\n\n0,1" @@ -94,9 +99,13 @@ [ { "x": 2.5, - "w": 1.5 + "w": 1.5, + "c": "#aaaaaa" }, "4,0", + { + "c": "#cccccc" + }, "5,0", "4,1", "5,1", @@ -132,9 +141,13 @@ [ { "x": 2.5, - "w": 1.75 + "w": 1.75, + "c": "#aaaaaa" }, "6,0", + { + "c": "#cccccc" + }, "7,0", "6,1", "7,1", @@ -147,7 +160,8 @@ "6,5", "7,5", { - "w": 2.25 + "w": 2.25, + "c": "#777777" }, "7,6\n\n\n1,0", { @@ -157,9 +171,13 @@ ], [ { - "w": 1.25 + "w": 1.25, + "c": "#aaaaaa" }, "8,0\n\n\n2,1", + { + "c": "#cccccc" + }, "9,0\n\n\n2,1", { "x": 0.25, @@ -177,24 +195,31 @@ "8,5", "9,5", { - "w": 2.75 + "w": 2.75, + "c": "#aaaaaa" }, "9,6\n\n\n3,0", { - "x": 1.25 + "x": 1.25, + "c": "#777777" }, "9,7", { "x": 1.25, - "w": 1.75 + "w": 1.75, + "c": "#aaaaaa" }, "8,6\n\n\n3,1", + { + "c": "#cccccc" + }, "8,7\n\n\n3,1" ], [ { "x": 2.5, - "w": 1.25 + "w": 1.25, + "c": "#aaaaaa" }, "10,0\n\n\n4,0", { @@ -206,11 +231,13 @@ }, "10,1\n\n\n4,0", { - "w": 6.25 + "w": 6.25, + "c": "#cccccc" }, "11,3\n\n\n4,0", { - "w": 1.25 + "w": 1.25, + "c": "#aaaaaa" }, "10,5\n\n\n4,0", { @@ -226,7 +253,8 @@ }, "11,6\n\n\n4,0", { - "x": 0.25 + "x": 0.25, + "c": "#777777" }, "10,7", "11,7", @@ -236,7 +264,8 @@ { "y": 0.25, "x": 2.5, - "w": 1.5 + "w": 1.5, + "c": "#aaaaaa" }, "10,0\n\n\n4,1", "11,0\n\n\n4,1", @@ -245,11 +274,13 @@ }, "10,1\n\n\n4,1", { - "w": 7 + "w": 7, + "c": "#cccccc" }, "11,3\n\n\n4,1", { - "w": 1.5 + "w": 1.5, + "c": "#aaaaaa" }, "11,5\n\n\n4,1", "10,6\n\n\n4,1", diff --git a/keyboards/aliceh66/pianoforte_hs/keymaps/vial/pianoforte_hs/pianoforte_hs.json b/keyboards/aliceh66/pianoforte_hs/keymaps/vial/pianoforte_hs/pianoforte_hs.json index 4b0623d79154..d2409e88c2a8 100644 --- a/keyboards/aliceh66/pianoforte_hs/keymaps/vial/pianoforte_hs/pianoforte_hs.json +++ b/keyboards/aliceh66/pianoforte_hs/keymaps/vial/pianoforte_hs/pianoforte_hs.json @@ -9,10 +9,14 @@ }, "layouts": { "keymap":[ - [ + [ + { + "c": "#777777" + }, "0,0", { - "x": 0.25 + "x": 0.25, + "c": "#cccccc" }, "1,0", "0,1", @@ -61,11 +65,13 @@ "3,5", "2,6", { - "w": 2 + "w": 2, + "c": "#aaaaaa" }, "3,6", { - "x": 0.25 + "x": 0.25, + "c": "#cccccc" }, "2,7", "3,7", @@ -73,9 +79,13 @@ ], [ { - "w": 1.5 + "w": 1.5, + "c": "#aaaaaa" }, "4,0", + { + "c": "#cccccc" + }, "5,0", "4,1", "5,1", @@ -101,9 +111,13 @@ ], [ { - "w": 1.75 + "w": 1.75, + "c": "#aaaaaa" }, "6,0", + { + "c": "#cccccc" + }, "7,0", "6,1", "7,1", @@ -116,15 +130,20 @@ "6,5", "7,5", { - "w": 2.25 + "w": 2.25, + "c": "#777777" }, "6,6" ], [ { - "w": 2.25 + "w": 2.25, + "c": "#aaaaaa" }, "8,0", + { + "c": "#cccccc" + }, "9,0", "8,1", "9,1", @@ -136,17 +155,20 @@ "9,4", "8,5", { - "w": 2.75 + "w": 2.75, + "c": "#aaaaaa" }, "9,6", { - "x": 1.25 + "x": 1.25, + "c": "#777777" }, "8,7" ], [ { - "w": 1.25 + "w": 1.25, + "c": "#aaaaaa" }, "10,0", { @@ -158,11 +180,13 @@ }, "10,1", { - "w": 6.25 + "w": 6.25, + "c": "#cccccc" }, "11,2", { - "w": 1.25 + "w": 1.25, + "c": "#aaaaaa" }, "10,4", { @@ -178,7 +202,8 @@ }, "11,6", { - "x": 0.25 + "x": 0.25, + "c": "#777777" }, "10,7", "11,7", From 56d937f8cd08dd5dc1b8e4c9addc842bd8b55d3f Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Wed, 17 Aug 2022 17:04:05 -0400 Subject: [PATCH 03/20] Update keyboards/aliceh66/pianoforte/keymaps/via/rules.mk Co-authored-by: Drashna Jaelre --- keyboards/aliceh66/pianoforte/keymaps/via/rules.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/aliceh66/pianoforte/keymaps/via/rules.mk b/keyboards/aliceh66/pianoforte/keymaps/via/rules.mk index 4f7618e9b211..1e5b99807cb7 100644 --- a/keyboards/aliceh66/pianoforte/keymaps/via/rules.mk +++ b/keyboards/aliceh66/pianoforte/keymaps/via/rules.mk @@ -1,2 +1 @@ VIA_ENABLE = yes -VIAL_ENABLE = yes From 1a7aa4427e7bd2339198714875a90d41704d4453 Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Wed, 17 Aug 2022 17:04:40 -0400 Subject: [PATCH 04/20] Update keyboards/aliceh66/pianoforte/rules.mk Co-authored-by: Drashna Jaelre --- keyboards/aliceh66/pianoforte/rules.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/aliceh66/pianoforte/rules.mk b/keyboards/aliceh66/pianoforte/rules.mk index 7deca1bef317..b5e59a3ee6fa 100644 --- a/keyboards/aliceh66/pianoforte/rules.mk +++ b/keyboards/aliceh66/pianoforte/rules.mk @@ -20,6 +20,5 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -QMK_SETTINGS = no # QMK Settings LAYOUTS = tkl_ansi tkl_iso \ No newline at end of file From 3d1280d497707885bf0cd6d82d25e444edba8e42 Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Wed, 17 Aug 2022 17:04:52 -0400 Subject: [PATCH 05/20] Update keyboards/aliceh66/pianoforte_hs/rules.mk Co-authored-by: Drashna Jaelre --- keyboards/aliceh66/pianoforte_hs/rules.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/aliceh66/pianoforte_hs/rules.mk b/keyboards/aliceh66/pianoforte_hs/rules.mk index c4604c84efb7..1409b5ef1ea2 100644 --- a/keyboards/aliceh66/pianoforte_hs/rules.mk +++ b/keyboards/aliceh66/pianoforte_hs/rules.mk @@ -20,4 +20,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -QMK_SETTINGS = no # QMK Settings From 0d863165ab8387b52091c1815c98dd4f05ab8671 Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Wed, 17 Aug 2022 17:06:17 -0400 Subject: [PATCH 06/20] Update keyboards/aliceh66/pianoforte/config.h Co-authored-by: Drashna Jaelre --- keyboards/aliceh66/pianoforte/config.h | 6 ------ 1 file changed, 6 deletions(-) diff --git a/keyboards/aliceh66/pianoforte/config.h b/keyboards/aliceh66/pianoforte/config.h index 1a0d46883b77..f09f90e433ba 100644 --- a/keyboards/aliceh66/pianoforte/config.h +++ b/keyboards/aliceh66/pianoforte/config.h @@ -17,12 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6168 -#define PRODUCT_ID 0x7066 -#define DEVICE_VER 0x0001 -#define MANUFACTURER AliceH -#define PRODUCT pianoforte #define MATRIX_ROWS 12 #define MATRIX_COLS 9 From fd515a0f74b931ea8f5a7a4d9449c7df6cb17f9a Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Wed, 17 Aug 2022 17:07:32 -0400 Subject: [PATCH 07/20] Update keyboards/aliceh66/pianoforte/info.json Co-authored-by: Drashna Jaelre --- keyboards/aliceh66/pianoforte/info.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/keyboards/aliceh66/pianoforte/info.json b/keyboards/aliceh66/pianoforte/info.json index 2d819013ab1b..a4b063cbcc02 100644 --- a/keyboards/aliceh66/pianoforte/info.json +++ b/keyboards/aliceh66/pianoforte/info.json @@ -2,6 +2,12 @@ "keyboard_name": "pianoforte solder PCB", "url": "https://github.com/AliceH66", "maintainer": "AliceH66", + "manufacturer": AlliceH", + "usb": { + "device_version": "1.0.0", + "pid": "0x7066", + "vid": "0x6168" + }, "layouts": { "LAYOUT": { "layout": [ From b955fd56d72766f43b1136910995e02c9951c957 Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Wed, 17 Aug 2022 17:07:51 -0400 Subject: [PATCH 08/20] Update keyboards/aliceh66/pianoforte_hs/keymaps/via/rules.mk Co-authored-by: Drashna Jaelre --- keyboards/aliceh66/pianoforte_hs/keymaps/via/rules.mk | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/keyboards/aliceh66/pianoforte_hs/keymaps/via/rules.mk b/keyboards/aliceh66/pianoforte_hs/keymaps/via/rules.mk index 6bc7063adc21..036bd6d1c3ec 100644 --- a/keyboards/aliceh66/pianoforte_hs/keymaps/via/rules.mk +++ b/keyboards/aliceh66/pianoforte_hs/keymaps/via/rules.mk @@ -1,2 +1 @@ -VIA_ENABLE = yes -VIAL_ENABLE = yes \ No newline at end of file +VIA_ENABLE = yes \ No newline at end of file From deb8b99adffe94670012d3b09f14486234deca36 Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Wed, 17 Aug 2022 17:09:05 -0400 Subject: [PATCH 09/20] Update keyboards/aliceh66/pianoforte_hs/config.h Co-authored-by: Drashna Jaelre --- keyboards/aliceh66/pianoforte_hs/config.h | 6 ------ 1 file changed, 6 deletions(-) diff --git a/keyboards/aliceh66/pianoforte_hs/config.h b/keyboards/aliceh66/pianoforte_hs/config.h index bc4cc8225c50..a60bef1cbf6e 100644 --- a/keyboards/aliceh66/pianoforte_hs/config.h +++ b/keyboards/aliceh66/pianoforte_hs/config.h @@ -17,12 +17,6 @@ along with this program. If not, see . #pragma once -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x6168 -#define PRODUCT_ID 0x7068 -#define DEVICE_VER 0x0001 -#define MANUFACTURER AliceH -#define PRODUCT pianoforte_hotswap #define MATRIX_ROWS 12 #define MATRIX_COLS 9 From cab9d40a5340d20cd629eb5558dd708a45dd8717 Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Wed, 17 Aug 2022 17:09:15 -0400 Subject: [PATCH 10/20] Update keyboards/aliceh66/pianoforte_hs/info.json Co-authored-by: Drashna Jaelre --- keyboards/aliceh66/pianoforte_hs/info.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/keyboards/aliceh66/pianoforte_hs/info.json b/keyboards/aliceh66/pianoforte_hs/info.json index 4456f8dd8552..7035b3ab13ae 100644 --- a/keyboards/aliceh66/pianoforte_hs/info.json +++ b/keyboards/aliceh66/pianoforte_hs/info.json @@ -2,6 +2,12 @@ "keyboard_name": "pianoforte hotswap PCB", "url": "https://github.com/AliceH66", "maintainer": "AliceH66", + "manufacturer": AliceH", + "usb": { + "device_version": "1.0.0", + "pid": "0x7068", + "vid": "0x6168" + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ From f870e2cd072f30f86dec36cfb8cb635532379d6b Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Wed, 17 Aug 2022 14:52:46 -0700 Subject: [PATCH 11/20] Vial files Files removed for QMK. --- .../aliceh66/pianoforte/keymaps/vial/config.h | 7 - .../aliceh66/pianoforte/keymaps/vial/keymap.c | 33 -- .../pianoforte/keymaps/vial/pianoforte.zip | Bin 25486 -> 0 bytes .../keymaps/vial/pianoforte/pianoforte.json | 294 ------------------ .../aliceh66/pianoforte/keymaps/vial/rules.mk | 2 - .../pianoforte_hs/keymaps/vial/config.h | 7 - .../pianoforte_hs/keymaps/vial/keymap.c | 33 -- .../keymaps/vial/pianoforte_hs.zip | Bin 24989 -> 0 bytes .../vial/pianoforte_hs/pianoforte_hs.json | 214 ------------- .../pianoforte_hs/keymaps/vial/rules.mk | 2 - 10 files changed, 592 deletions(-) delete mode 100644 keyboards/aliceh66/pianoforte/keymaps/vial/config.h delete mode 100644 keyboards/aliceh66/pianoforte/keymaps/vial/keymap.c delete mode 100644 keyboards/aliceh66/pianoforte/keymaps/vial/pianoforte.zip delete mode 100644 keyboards/aliceh66/pianoforte/keymaps/vial/pianoforte/pianoforte.json delete mode 100644 keyboards/aliceh66/pianoforte/keymaps/vial/rules.mk delete mode 100644 keyboards/aliceh66/pianoforte_hs/keymaps/vial/config.h delete mode 100644 keyboards/aliceh66/pianoforte_hs/keymaps/vial/keymap.c delete mode 100644 keyboards/aliceh66/pianoforte_hs/keymaps/vial/pianoforte_hs.zip delete mode 100644 keyboards/aliceh66/pianoforte_hs/keymaps/vial/pianoforte_hs/pianoforte_hs.json delete mode 100644 keyboards/aliceh66/pianoforte_hs/keymaps/vial/rules.mk diff --git a/keyboards/aliceh66/pianoforte/keymaps/vial/config.h b/keyboards/aliceh66/pianoforte/keymaps/vial/config.h deleted file mode 100644 index 0258ea1bcc72..000000000000 --- a/keyboards/aliceh66/pianoforte/keymaps/vial/config.h +++ /dev/null @@ -1,7 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ - -#pragma once - -#define VIAL_KEYBOARD_UID {0x37, 0xFC, 0xE4, 0xB0, 0x9B, 0xC6, 0x1A, 0xD8} -#define VIAL_UNLOCK_COMBO_ROWS { 0, 7 } -#define VIAL_UNLOCK_COMBO_COLS { 0, 6 } diff --git a/keyboards/aliceh66/pianoforte/keymaps/vial/keymap.c b/keyboards/aliceh66/pianoforte/keymaps/vial/keymap.c deleted file mode 100644 index 00acfe82c9b1..000000000000 --- a/keyboards/aliceh66/pianoforte/keymaps/vial/keymap.c +++ /dev/null @@ -1,33 +0,0 @@ -/* -Copyright 2022 AliceH - -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 -enum layer_names { - _LAYER0, -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_LAYER0] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, MO(1), - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, MO(1), KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT -) - -}; diff --git a/keyboards/aliceh66/pianoforte/keymaps/vial/pianoforte.zip b/keyboards/aliceh66/pianoforte/keymaps/vial/pianoforte.zip deleted file mode 100644 index 390ab6bf4697713c53f818b324f8fbe5918fbf20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25486 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 YTEy1Xzy - -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 -enum layer_names { - _LAYER0 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [_LAYER0] = LAYOUT_tkl_ansi( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SLCK, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT -) - -}; diff --git a/keyboards/aliceh66/pianoforte_hs/keymaps/vial/pianoforte_hs.zip b/keyboards/aliceh66/pianoforte_hs/keymaps/vial/pianoforte_hs.zip deleted file mode 100644 index 901ea9c835c3dcf0caaf3d384ae466bd66317b8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24989 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 z 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 diff --git a/keyboards/aliceh66/pianoforte_hs/keymaps/vial/pianoforte_hs/pianoforte_hs.json b/keyboards/aliceh66/pianoforte_hs/keymaps/vial/pianoforte_hs/pianoforte_hs.json deleted file mode 100644 index d2409e88c2a8..000000000000 --- a/keyboards/aliceh66/pianoforte_hs/keymaps/vial/pianoforte_hs/pianoforte_hs.json +++ /dev/null @@ -1,214 +0,0 @@ -{ - "name": "pianoforte hotswap", - "vendorId": "0x6168", - "productId": "0x7068", - "lighting": "none", - "matrix": { - "rows": 12, - "cols": 9 - }, - "layouts": { - "keymap":[ - [ - { - "c": "#777777" - }, - "0,0", - { - "x": 0.25, - "c": "#cccccc" - }, - "1,0", - "0,1", - "1,1", - "0,2", - { - "x": 0.25 - }, - "1,2", - "0,3", - "1,3", - "0,4", - { - "x": 0.25 - }, - "1,4", - "0,5", - "1,5", - "0,6", - { - "x": 0.25 - }, - "1,6", - { - "x": 0.25 - }, - "0,7", - "1,7", - "0,8" - ], - [ - { - "y": 0.25 - }, - "2,0", - "3,0", - "2,1", - "3,1", - "2,2", - "3,2", - "2,3", - "3,3", - "2,4", - "3,4", - "2,5", - "3,5", - "2,6", - { - "w": 2, - "c": "#aaaaaa" - }, - "3,6", - { - "x": 0.25, - "c": "#cccccc" - }, - "2,7", - "3,7", - "2,8" - ], - [ - { - "w": 1.5, - "c": "#aaaaaa" - }, - "4,0", - { - "c": "#cccccc" - }, - "5,0", - "4,1", - "5,1", - "4,2", - "5,2", - "4,3", - "5,3", - "4,4", - "5,4", - "4,5", - "5,5", - "4,6", - { - "w": 1.5 - }, - "5,6", - { - "x": 0.25 - }, - "4,7", - "5,7", - "4,8" - ], - [ - { - "w": 1.75, - "c": "#aaaaaa" - }, - "6,0", - { - "c": "#cccccc" - }, - "7,0", - "6,1", - "7,1", - "6,2", - "7,2", - "6,3", - "7,3", - "6,4", - "7,4", - "6,5", - "7,5", - { - "w": 2.25, - "c": "#777777" - }, - "6,6" - ], - [ - { - "w": 2.25, - "c": "#aaaaaa" - }, - "8,0", - { - "c": "#cccccc" - }, - "9,0", - "8,1", - "9,1", - "8,2", - "9,2", - "8,3", - "9,3", - "8,4", - "9,4", - "8,5", - { - "w": 2.75, - "c": "#aaaaaa" - }, - "9,6", - { - "x": 1.25, - "c": "#777777" - }, - "8,7" - ], - [ - { - "w": 1.25, - "c": "#aaaaaa" - }, - "10,0", - { - "w": 1.25 - }, - "11,0", - { - "w": 1.25 - }, - "10,1", - { - "w": 6.25, - "c": "#cccccc" - }, - "11,2", - { - "w": 1.25, - "c": "#aaaaaa" - }, - "10,4", - { - "w": 1.25 - }, - "11,5", - { - "w": 1.25 - }, - "10,6", - { - "w": 1.25 - }, - "11,6", - { - "x": 0.25, - "c": "#777777" - }, - "10,7", - "11,7", - "10,8" - ] - ] - } -} \ No newline at end of file diff --git a/keyboards/aliceh66/pianoforte_hs/keymaps/vial/rules.mk b/keyboards/aliceh66/pianoforte_hs/keymaps/vial/rules.mk deleted file mode 100644 index 6bc7063adc21..000000000000 --- a/keyboards/aliceh66/pianoforte_hs/keymaps/vial/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -VIA_ENABLE = yes -VIAL_ENABLE = yes \ No newline at end of file From d74d22886aa7548bf06a82b73f2be05086d4d8c0 Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Thu, 18 Aug 2022 01:12:27 -0400 Subject: [PATCH 12/20] Update keyboards/aliceh66/pianoforte/config.h Co-authored-by: Drashna Jaelre --- keyboards/aliceh66/pianoforte/config.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/keyboards/aliceh66/pianoforte/config.h b/keyboards/aliceh66/pianoforte/config.h index f09f90e433ba..39f79b3c272e 100644 --- a/keyboards/aliceh66/pianoforte/config.h +++ b/keyboards/aliceh66/pianoforte/config.h @@ -30,9 +30,6 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 -#define VIAL_KEYBOARD_UID {0x37, 0xFC, 0xE4, 0xB0, 0x9B, 0xC6, 0x1A, 0xD8} -#define VIAL_UNLOCK_COMBO_ROWS { 0, 7 } -#define VIAL_UNLOCK_COMBO_COLS { 0, 6 } #define DYNAMIC_KEYMAP_LAYER_COUNT 2 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ From fb098de0b10fc6251a338ff8a89ebc36b03e1ac8 Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Thu, 18 Aug 2022 01:12:32 -0400 Subject: [PATCH 13/20] Update keyboards/aliceh66/pianoforte_hs/config.h Co-authored-by: Drashna Jaelre --- keyboards/aliceh66/pianoforte_hs/config.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/keyboards/aliceh66/pianoforte_hs/config.h b/keyboards/aliceh66/pianoforte_hs/config.h index a60bef1cbf6e..cff3af7aa2e1 100644 --- a/keyboards/aliceh66/pianoforte_hs/config.h +++ b/keyboards/aliceh66/pianoforte_hs/config.h @@ -30,9 +30,6 @@ along with this program. If not, see . /* Set 0 if debouncing isn't needed */ #define DEBOUNCE 5 -#define VIAL_KEYBOARD_UID {0xF3, 0xC1, 0x73, 0xB5, 0x52, 0xD4, 0x0E, 0x99} -#define VIAL_UNLOCK_COMBO_ROWS { 0, 6 } -#define VIAL_UNLOCK_COMBO_COLS { 0, 6 } #define DYNAMIC_KEYMAP_LAYER_COUNT 2 /* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ From 36c57bba4d3ea1681b7c1d8527eaac9bb9a5abc6 Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Thu, 18 Aug 2022 11:53:58 -0700 Subject: [PATCH 14/20] .c files missing --- keyboards/aliceh66/pianoforte/pianoforte.c | 17 +++++++++++++++++ .../aliceh66/pianoforte_hs/pianoforte_hs.c | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 keyboards/aliceh66/pianoforte/pianoforte.c create mode 100644 keyboards/aliceh66/pianoforte_hs/pianoforte_hs.c diff --git a/keyboards/aliceh66/pianoforte/pianoforte.c b/keyboards/aliceh66/pianoforte/pianoforte.c new file mode 100644 index 000000000000..3531744aef89 --- /dev/null +++ b/keyboards/aliceh66/pianoforte/pianoforte.c @@ -0,0 +1,17 @@ +/* +Copyright 2022 AliceH + +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 "pianoforte.h" diff --git a/keyboards/aliceh66/pianoforte_hs/pianoforte_hs.c b/keyboards/aliceh66/pianoforte_hs/pianoforte_hs.c new file mode 100644 index 000000000000..4617663fd3e1 --- /dev/null +++ b/keyboards/aliceh66/pianoforte_hs/pianoforte_hs.c @@ -0,0 +1,17 @@ +/* +Copyright 2022 AliceH + +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 "pianoforte_hs.h" From 2ed84901c1357c600484f9c976ff7ce27b83710f Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Fri, 19 Aug 2022 12:06:52 -0400 Subject: [PATCH 15/20] Update keyboards/aliceh66/pianoforte/info.json Co-authored-by: Ryan --- keyboards/aliceh66/pianoforte/info.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/aliceh66/pianoforte/info.json b/keyboards/aliceh66/pianoforte/info.json index a4b063cbcc02..3e3f8ea8b51a 100644 --- a/keyboards/aliceh66/pianoforte/info.json +++ b/keyboards/aliceh66/pianoforte/info.json @@ -1,8 +1,8 @@ { - "keyboard_name": "pianoforte solder PCB", + "keyboard_name": "pianoforte solder", + "manufacturer": "AliceH", "url": "https://github.com/AliceH66", "maintainer": "AliceH66", - "manufacturer": AlliceH", "usb": { "device_version": "1.0.0", "pid": "0x7066", From 5d45226ee2a5aa93edb663f9936d668c83b1c514 Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Fri, 19 Aug 2022 12:07:00 -0400 Subject: [PATCH 16/20] Update keyboards/aliceh66/pianoforte_hs/info.json Co-authored-by: Ryan --- keyboards/aliceh66/pianoforte_hs/info.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/aliceh66/pianoforte_hs/info.json b/keyboards/aliceh66/pianoforte_hs/info.json index 7035b3ab13ae..c1a99905ba50 100644 --- a/keyboards/aliceh66/pianoforte_hs/info.json +++ b/keyboards/aliceh66/pianoforte_hs/info.json @@ -1,8 +1,8 @@ { - "keyboard_name": "pianoforte hotswap PCB", + "keyboard_name": "pianoforte hotswap", + "manufacturer": "AliceH", "url": "https://github.com/AliceH66", "maintainer": "AliceH66", - "manufacturer": AliceH", "usb": { "device_version": "1.0.0", "pid": "0x7068", From 78ff26b359419fc8a779dd622e212606723979ef Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Fri, 19 Aug 2022 18:27:13 -0400 Subject: [PATCH 17/20] Update keyboards/aliceh66/pianoforte/readme.md Co-authored-by: Ryan --- keyboards/aliceh66/pianoforte/readme.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboards/aliceh66/pianoforte/readme.md b/keyboards/aliceh66/pianoforte/readme.md index fb58901000d3..aadd975b7971 100644 --- a/keyboards/aliceh66/pianoforte/readme.md +++ b/keyboards/aliceh66/pianoforte/readme.md @@ -6,7 +6,8 @@ QMK Firmware for the pianoforte solder PCB * Hardware Supported: pianoforte Solder Make example for this keyboard (after setting up your build environment): - make aliceh66/pianoforte:default + + make aliceh66/pianoforte:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From bfd8bb7b4747ada2b971809552f7eeee1e278d9e Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Fri, 19 Aug 2022 18:27:35 -0400 Subject: [PATCH 18/20] Update keyboards/aliceh66/pianoforte/rules.mk Co-authored-by: Ryan --- keyboards/aliceh66/pianoforte/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/aliceh66/pianoforte/rules.mk b/keyboards/aliceh66/pianoforte/rules.mk index b5e59a3ee6fa..4fecee4ef869 100644 --- a/keyboards/aliceh66/pianoforte/rules.mk +++ b/keyboards/aliceh66/pianoforte/rules.mk @@ -10,7 +10,6 @@ BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -LTO_ENABLE = yes # Enable link time optomization BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control @@ -20,5 +19,6 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output +LTO_ENABLE = yes LAYOUTS = tkl_ansi tkl_iso \ No newline at end of file From 1e220e401a6e492936703ca2d2c9e42c7767485c Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Fri, 19 Aug 2022 18:27:42 -0400 Subject: [PATCH 19/20] Update keyboards/aliceh66/pianoforte_hs/readme.md Co-authored-by: Ryan --- keyboards/aliceh66/pianoforte_hs/readme.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/keyboards/aliceh66/pianoforte_hs/readme.md b/keyboards/aliceh66/pianoforte_hs/readme.md index 3b3bcebc540f..6b05e068055d 100644 --- a/keyboards/aliceh66/pianoforte_hs/readme.md +++ b/keyboards/aliceh66/pianoforte_hs/readme.md @@ -6,7 +6,8 @@ QMK Firmware for the pianoforte hotswap PCB * Hardware Supported: pianoforte hotswap Make example for this keyboard (after setting up your build environment): - make aliceh66/pianoforte_hs:default + + make aliceh66/pianoforte_hs:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From 269712def0c8f3a3afaf433bdf2f9b10808ecefb Mon Sep 17 00:00:00 2001 From: AliceH66 <105761645+AliceH66@users.noreply.github.com> Date: Fri, 19 Aug 2022 18:27:48 -0400 Subject: [PATCH 20/20] Update keyboards/aliceh66/pianoforte_hs/rules.mk Co-authored-by: Ryan --- keyboards/aliceh66/pianoforte_hs/rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/aliceh66/pianoforte_hs/rules.mk b/keyboards/aliceh66/pianoforte_hs/rules.mk index 1409b5ef1ea2..173f16ffe761 100644 --- a/keyboards/aliceh66/pianoforte_hs/rules.mk +++ b/keyboards/aliceh66/pianoforte_hs/rules.mk @@ -10,7 +10,6 @@ BOOTLOADER = atmel-dfu # Build Options # change yes to no to disable # -LTO_ENABLE = yes # Enable link time optomization BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control @@ -20,3 +19,4 @@ NKRO_ENABLE = yes # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output +LTO_ENABLE = yes