From c522009816d2c56c8e10390e2176171c34d9faab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20=C4=90or=C4=91evi=C4=87?= Date: Tue, 3 Sep 2019 18:05:29 +0200 Subject: [PATCH 01/36] [Keyboard] Doro67 cleanup (#6514) Add spacing to LAYOUT macros, add layout comments, improve consistency, fix ISO layout bug * Remove placeholder comments in regular.h and rgb.h * Change K## to k## in multi.h and regular.h * Add alignment whitespace in Doro67 LAYOUT macros * Update multi default keymaps and add layout comments * Update rgb default keymap and add layout comments * Add RESET to Fn layer in multi default keymaps * Replace KC_GESC with KC_ESC in rgb default keymap for consistency with other Doro keymaps * Update regular default keymap and add layout comments * WIP * Replace odd F1, F2 with proper split LShift/Backspace keys in default_multi * Minor fixes and tweaks in multi default keymaps * Fix Enter and NUHS positions in multi LAYOUT_iso * Return true in process_record_user in rgb default keymap * Update Enter position in multi info.json Co-Authored-By: noroadsleft <18669334+noroadsleft@users.noreply.github.com> * Update labels in multi info.json to match the default keymaps --- keyboards/doro67/multi/info.json | 6 +- .../doro67/multi/keymaps/default/keymap.c | 56 +++++-- .../doro67/multi/keymaps/default/readme.md | 48 +++--- .../doro67/multi/keymaps/default_iso/keymap.c | 56 +++++-- .../multi/keymaps/default_iso/readme.md | 48 +++--- .../multi/keymaps/default_multi/keymap.c | 56 +++++-- .../multi/keymaps/default_multi/readme.md | 48 +++--- keyboards/doro67/multi/multi.h | 61 +++---- .../doro67/regular/keymaps/default/keymap.c | 154 +++++------------- keyboards/doro67/regular/regular.h | 29 ++-- keyboards/doro67/rgb/keymaps/default/keymap.c | 94 +++++++---- keyboards/doro67/rgb/rgb.h | 27 +-- 12 files changed, 346 insertions(+), 337 deletions(-) diff --git a/keyboards/doro67/multi/info.json b/keyboards/doro67/multi/info.json index 03252140dd5..83f219e7631 100644 --- a/keyboards/doro67/multi/info.json +++ b/keyboards/doro67/multi/info.json @@ -6,13 +6,13 @@ "height": 5, "layouts": { "LAYOUT_ansi": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Ins", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Del", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgUp", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Up", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"MO(1)", "x":11.25, "y":4, "w":1.25}, {"label":"Left", "x":13, "y":4}, {"label":"Down", "x":14, "y":4}, {"label":"Right", "x":15, "y":4}] + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Ins", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Del", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgUp", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Fn", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] }, "LAYOUT_iso": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Ins", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Del", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"PgUp", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Up", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"MO(1)", "x":11.25, "y":4, "w":1.25}, {"label":"Left", "x":13, "y":4}, {"label":"Down", "x":14, "y":4}, {"label":"Right", "x":15, "y":4}] + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Ins", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Del", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"PgUp", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Fn", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] }, "LAYOUT_multi": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Back", "x":13, "y":0}, {"label":"F2", "x":14, "y":0}, {"label":"Ins", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Del", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgUp", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"F1", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Up", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"label":"Alt", "x":10, "y":4}, {"label":"MO(1)", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"Left", "x":13, "y":4}, {"label":"Down", "x":14, "y":4}, {"label":"Right", "x":15, "y":4}] + "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"~", "x":14, "y":0}, {"label":"Ins", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Backspace", "x":13.5, "y":1, "w":1.5}, {"label":"Del", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgUp", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"PgDn", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4, "w":1.25}, {"x":7.75, "y":4, "w":2.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Fn", "x":11, "y":4}, {"label":"Ctrl", "x":12, "y":4}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}] } } } diff --git a/keyboards/doro67/multi/keymaps/default/keymap.c b/keyboards/doro67/multi/keymaps/default/keymap.c index dd40a6c3faa..bc90eb8b2ee 100644 --- a/keyboards/doro67/multi/keymaps/default/keymap.c +++ b/keyboards/doro67/multi/keymaps/default/keymap.c @@ -15,22 +15,46 @@ */ #include QMK_KEYBOARD_H - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ansi( - KC_ESC, 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_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_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_PGUP, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_ansi( - KC_GRV, 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_TRNS, KC_TRNS, - BL_TOGG, BL_STEP, BL_DEC, BL_INC, 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 - ), + /* Default layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bspace │Ins│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │Del│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgU│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ LShift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RShift│ ↑ │PgD│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │LCtl│LGui│LAlt│ Space │RAlt│ Fn │ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_ansi( + KC_ESC, 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_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_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_PGUP, + 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_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + /* Fn layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │BLTog│BLS│BL-│BL+│Rst│ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + [1] = LAYOUT_ansi( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + BL_TOGG, BL_STEP, BL_DEC, BL_INC, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), }; diff --git a/keyboards/doro67/multi/keymaps/default/readme.md b/keyboards/doro67/multi/keymaps/default/readme.md index 9b9136b3441..d9cb59555e8 100644 --- a/keyboards/doro67/multi/keymaps/default/readme.md +++ b/keyboards/doro67/multi/keymaps/default/readme.md @@ -10,34 +10,34 @@ If you purchased an RGB PCB, please see the 'rgb' directory. This is the default ANSI layout that comes flashed on the Doro67 multi PCB with the exception of adding backtick as it was not mapped. -Default Layer: +Default layer: ``` -,---------------------------------------------------------------. -|Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|BackSp |Ins| -|---------------------------------------------------------------| -|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |Del| -|---------------------------------------------------------------| -|Ctrl | A| S| D| F| G| H| J| K| L| ;| '| Enter |PUp| -|---------------------------------------------------------------| -|Shift | Z| X| C| V| B| N| M| ,| .| /| Shift| Up|PDn| -|---------------------------------------------------------------| -|Ctrl |GUI |Alt | Space |Alt |FN |Lft|Dwn|Rgt| -`---------------------------------------------------------------' +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ +│Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bspace │Ins│ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ +│ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │Del│ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ +│ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgU│ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ +│ LShift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RShift│ ↑ │PgD│ +├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ +│LCtl│LGui│LAlt│ Space │RAlt│ Fn │ │ ← │ ↓ │ → │ +└────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ ``` -FN Layer: +Fn layer: ``` -,---------------------------------------------------------------. -|` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | | -|---------------------------------------------------------------| -|BLTog|Stp|Dec|Inc| | | | | | | | | | | | -|---------------------------------------------------------------| -| | | | | | | | | | | | | | | -|---------------------------------------------------------------| -| | | | | | | | | | | | | | | -|---------------------------------------------------------------| -| | | | | | | | | | -`---------------------------------------------------------------' +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ +│ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ +│BLTog│BLS│BL-│BL+│Rst│ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ +└────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ ``` diff --git a/keyboards/doro67/multi/keymaps/default_iso/keymap.c b/keyboards/doro67/multi/keymaps/default_iso/keymap.c index 2e8d8398204..29bc19da804 100644 --- a/keyboards/doro67/multi/keymaps/default_iso/keymap.c +++ b/keyboards/doro67/multi/keymaps/default_iso/keymap.c @@ -15,22 +15,46 @@ */ #include QMK_KEYBOARD_H - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_iso( - KC_ESC, 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_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_ENT, KC_DEL, - 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_PGUP, - 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_LSFT, KC_UP, KC_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_iso( - KC_GRV, 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_TRNS, KC_TRNS, - BL_TOGG, BL_STEP, BL_DEC, BL_INC, 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 - ), + /* Default layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bspace │Ins│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │Del│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐Ent ├───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │NU#│ │PgU│ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │LSft│NU\│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RShift│ ↑ │PgD│ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │LCtl│LGui│LAlt│ Space │RAlt│ Fn │ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_iso( + KC_ESC, 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_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_DEL, + 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_PGUP, + 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_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + /* Fn layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │BLTog│BLS│BL-│BL+│Rst│ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + [1] = LAYOUT_iso( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + BL_TOGG, BL_STEP, BL_DEC, BL_INC, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), }; diff --git a/keyboards/doro67/multi/keymaps/default_iso/readme.md b/keyboards/doro67/multi/keymaps/default_iso/readme.md index 4b3d2ba4ad4..e5189f75c3f 100644 --- a/keyboards/doro67/multi/keymaps/default_iso/readme.md +++ b/keyboards/doro67/multi/keymaps/default_iso/readme.md @@ -10,34 +10,34 @@ If you purchased an RGB PCB, please see the 'rgb' directory. This is the default ISO layout that comes flashed on the Doro67 multi PCB with the exception of adding backtick and UK ISO specific keycodes as they were not mapped. -Default Layer: +Default layer: ``` -,---------------------------------------------------------------. -|Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|BackSp |Ins| -|---------------------------------------------------------------| -|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| |Del| -|------------------------------------------------------|Entr|---| -|Ctrl | A| S| D| F| G| H| J| K| L| ;| '| #| |PUp| -|---------------------------------------------------------------| -|Shft| \| Z| X| C| V| B| N| M| ,| .| /| Shift| Up|PDn| -|---------------------------------------------------------------| -|Ctrl |GUI |Alt | Space |Alt |FN |Lft|Dwn|Rgt| -`---------------------------------------------------------------' +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ +│Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bspace │Ins│ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ +│ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │Del│ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐Ent ├───┤ +│ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │NU#│ │PgU│ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ +│LSft│NU\│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RShift│ ↑ │PgD│ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ +│LCtl│LGui│LAlt│ Space │RAlt│ Fn │ │ ← │ ↓ │ → │ +└────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ ``` -FN Layer: +Fn layer: ``` -,---------------------------------------------------------------. -|` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | | -|---------------------------------------------------------------| -|BLTog|Stp|Dec|Inc| | | | | | | | | | | | -|------------------------------------------------------| |---| -| | | | | | | | | | | | | | | | -|---------------------------------------------------------------| -| | | | | | | | | | | | | | | | -|---------------------------------------------------------------| -| | | | | | | | | | -`---------------------------------------------------------------' +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ +│ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ +│BLTog│BLS│BL-│BL+│Rst│ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ +└────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ ``` diff --git a/keyboards/doro67/multi/keymaps/default_multi/keymap.c b/keyboards/doro67/multi/keymaps/default_multi/keymap.c index e57dce1ea2b..32af5af98e8 100644 --- a/keyboards/doro67/multi/keymaps/default_multi/keymap.c +++ b/keyboards/doro67/multi/keymaps/default_multi/keymap.c @@ -15,22 +15,46 @@ */ #include QMK_KEYBOARD_H - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_multi( - KC_ESC, 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_F2, KC_INS, - 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_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_PGUP, - KC_LSFT, KC_F1, 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_PGDN, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_multi( - KC_GRV, 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_TRNS, KC_TRNS, KC_TRNS, - BL_TOGG, BL_STEP, BL_DEC, BL_INC, 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 - ), + /* Default layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │Ins│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bspc │Del│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgU│ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │LSft│NU\│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RShift│ ↑ │PgD│ + * ├────┼───┴┬──┴─┬─┴───┴───┴┬──┴─┬─┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ + * │LCtl│LGui│LAlt│ Space │Spc │ Space │RAl│Fn │RCt│ ← │ ↓ │ → │ + * └────┴────┴────┴──────────┴────┴────────┴───┴───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT_multi( + KC_ESC, 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_BSLS, KC_GRV, KC_INS, + 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_BSPC, KC_DEL, + 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_PGUP, + 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_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + /* Fn layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │BLTog│BLS│BL-│BL+│Rst│ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴┬──┴─┬─┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴──────────┴────┴────────┴───┴───┴───┴───┴───┴───┘ + */ + [1] = LAYOUT_multi( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + BL_TOGG, BL_STEP, BL_DEC, BL_INC, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), }; diff --git a/keyboards/doro67/multi/keymaps/default_multi/readme.md b/keyboards/doro67/multi/keymaps/default_multi/readme.md index 5761c006bfb..bfe19a9338a 100644 --- a/keyboards/doro67/multi/keymaps/default_multi/readme.md +++ b/keyboards/doro67/multi/keymaps/default_multi/readme.md @@ -13,34 +13,34 @@ the exception of adding backtick as it was not mapped. This layout supports both the blocker and non-blocker layouts (2 & 4) with the difference that the blocker layout lacks the right control key. -Default Layer: +Default layer: ``` -,---------------------------------------------------------------. -|Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| BS| F2|Ins| -|---------------------------------------------------------------| -|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |Del| -|---------------------------------------------------------------| -|Ctrl | A| S| D| F| G| H| J| K| L| ;| '| Enter |PUp| -|---------------------------------------------------------------| -|Shft| F1| Z| X| C| V| B| N| M| ,| .| /| Shift| Up|PDn| -|---------------------------------------------------------------| -|Ctrl |GUI |Alt | Space |Space| Space |Alt|MO1|Ctl|Lft|Dwn|Rgt| -`---------------------------------------------------------------' +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │Ins│ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ +│ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bspc │Del│ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ +│ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgU│ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ +│LSft│NU\│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RShift│ ↑ │PgD│ +├────┼───┴┬──┴─┬─┴───┴───┴┬──┴─┬─┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ +│LCtl│LGui│LAlt│ Space │Spc │ Space │RAl│Fn │RCt│ ← │ ↓ │ → │ +└────┴────┴────┴──────────┴────┴────────┴───┴───┴───┴───┴───┴───┘ ``` -FN Layer: +Fn layer: ``` -,---------------------------------------------------------------. -|` | F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | | -|---------------------------------------------------------------| -|BLTog|Stp|Dec|Inc| | | | | | | | | | | | -|---------------------------------------------------------------| -| | | | | | | | | | | | | | | -|---------------------------------------------------------------| -| | | | | | | | | | | | | | | | -|---------------------------------------------------------------| -| | | | | | | | | | | | | -`---------------------------------------------------------------' +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │ │ │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ +│BLTog│BLS│BL-│BL+│Rst│ │ │ │ │ │ │ │ │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +├────┼───┴┬──┴─┬─┴───┴───┴┬──┴─┬─┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤ +│ │ │ │ │ │ │ │ │ │ │ │ │ +└────┴────┴────┴──────────┴────┴────────┴───┴───┴───┴───┴───┴───┘ ``` diff --git a/keyboards/doro67/multi/multi.h b/keyboards/doro67/multi/multi.h index 0b68aed4260..636707177ac 100644 --- a/keyboards/doro67/multi/multi.h +++ b/keyboards/doro67/multi/multi.h @@ -1,4 +1,5 @@ /* Copyright 2019 ShadeDream + * * 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 @@ -17,43 +18,43 @@ #include "quantum.h" #define LAYOUT_ansi( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ - K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ - K40, K41, K42, K44, K49, K4A, K4C, K4D, K4E \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, k2E, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \ + k40, k41, k42, k44, k49, k4A, k4C, k4D, k4E \ ) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ - { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ - { K40, K41, K42, KC_NO, K44, KC_NO, KC_NO, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D, K4E }, \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, KC_NO, k2D, k2E }, \ + { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \ + { k40, k41, k42, KC_NO, k44, KC_NO, KC_NO, KC_NO, KC_NO, k49, k4A, KC_NO, k4C, k4D, k4E }, \ } #define LAYOUT_iso( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ - K40, K41, K42, K44, K49, K4A, K4C, K4D, K4E \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1E, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k1D, k2D, k2E, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \ + k40, k41, k42, k44, k49, k4A, k4C, k4D, k4E \ ) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ - { K40, K41, K42, KC_NO, K44, KC_NO, KC_NO, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D, K4E }, \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, KC_NO, k2D, k2E }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \ + { k40, k41, k42, KC_NO, k44, KC_NO, KC_NO, KC_NO, KC_NO, k49, k4A, KC_NO, k4C, k4D, k4E }, \ } #define LAYOUT_multi( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K48, K0E, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ - K40, K41, K42, K43, K44, K45, K49, K4A, K4B, K4C, K4D, K4E \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k48, k0E, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, k2E, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \ + k40, k41, k42, k43, k44, k45, k49, k4A, k4B, k4C, k4D, k4E \ ) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ - { K40, K41, K42, K43, K44, K45, KC_NO, KC_NO, K48, K49, K4A, K4B, K4C, K4D, K4E }, \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, KC_NO, k2D, k2E }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \ + { k40, k41, k42, k43, k44, k45, KC_NO, KC_NO, k48, k49, k4A, k4B, k4C, k4D, k4E }, \ } diff --git a/keyboards/doro67/regular/keymaps/default/keymap.c b/keyboards/doro67/regular/keymaps/default/keymap.c index 5271d42c15a..a986a176e9b 100644 --- a/keyboards/doro67/regular/keymaps/default/keymap.c +++ b/keyboards/doro67/regular/keymaps/default/keymap.c @@ -15,120 +15,46 @@ */ #include QMK_KEYBOARD_H - - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( \ - 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_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_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_PGUP, KC_LSFT, \ - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN, KC_LCTL, KC_LGUI, \ - KC_LALT, KC_SPC, KC_LALT, KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT \ - ), - [1] = 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 \ - ), - [2] = 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 \ - ), - [3] = 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 \ - ), - [4] = 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 \ - ), - [5] = 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 \ - ), - [6] = 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 \ - ), - [7] = 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 \ - ), - [8] = 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 \ - ), - [9] = 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 \ - ), - [10] = 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 \ - ), - [11] = 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 \ - ), - [12] = 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 \ - ), - [13] = 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 \ - ), - [14] = 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 \ - ), - [15] = 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 \ - ), + /* Default layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bspace │Ins│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │Del│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgU│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ LShift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RShift│ ↑ │PgD│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │LCtl│LGui│LAlt│ Space │RAlt│ Fn │ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT( + KC_ESC, 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_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_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_PGUP, + 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_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + /* Fn layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ │ │ │ │Rst│ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + [1] = LAYOUT( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), }; diff --git a/keyboards/doro67/regular/regular.h b/keyboards/doro67/regular/regular.h index 76d606b13a0..0da9a5cceba 100644 --- a/keyboards/doro67/regular/regular.h +++ b/keyboards/doro67/regular/regular.h @@ -17,25 +17,16 @@ #include "quantum.h" -/* This a shortcut to help you visually see your layout. - * - * The first section contains all of the arguments representing the physical - * layout of the board and position of the keys. - * - * The second converts the arguments into a two-dimensional array which - * represents the switch matrix. - */ #define LAYOUT( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ - K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ - K40, K41, K42, K43, K49, K4A, K4C, K4D, K4E \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, k2E, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \ + k40, k41, k42, k43, k49, k4A, k4C, k4D, k4E \ ) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ - { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \ - { K40, K41, K42, K43, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D, K4E }, \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, KC_NO, k2D, k2E }, \ + { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \ + { k40, k41, k42, k43, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k49, k4A, KC_NO, k4C, k4D, k4E }, \ } - diff --git a/keyboards/doro67/rgb/keymaps/default/keymap.c b/keyboards/doro67/rgb/keymaps/default/keymap.c index d02665ae768..ddf2b7f2ad3 100644 --- a/keyboards/doro67/rgb/keymaps/default/keymap.c +++ b/keyboards/doro67/rgb/keymaps/default/keymap.c @@ -17,46 +17,74 @@ // Defines the keycodes used by our macros in process_record_user enum custom_keycodes { - QMKBEST = SAFE_RANGE, - QMKURL + QMKBEST = SAFE_RANGE, + QMKURL, }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( \ - KC_GESC, 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_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_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_PGUP, \ - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_UP, KC_PGDN, \ - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT \ - ), + /* Default layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bspace │Ins│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │Del│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgU│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ LShift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RShift│ ↑ │PgD│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │LCtl│LGui│LAlt│ Space │RAlt│ Fn │ │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT( + KC_ESC, 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_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_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_PGUP, + 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_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), - [1] = LAYOUT( \ - KC_GRV, 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_TRNS, KC_TRNS, \ - QMKBEST, QMKURL, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ - KC_TRNS, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_SPD, 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 \ - ), + /* Fn layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │BEST │URL│ │ │Rst│ │ │ │ │ │ │ │ │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ RGB │Mo+│Hu+│Sa+│Va+│Sp+│ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │Mo-│Hu-│Sa-│Va-│Sp-│ │ │ │ │ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + [1] = LAYOUT( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, + QMKBEST, QMKURL, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), }; bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { + switch (keycode) { case QMKBEST: - if (record->event.pressed) { - // when keycode QMKBEST is pressed - SEND_STRING("QMK is the best thing ever!"); - } else { - // when keycode QMKBEST is released - } - break; + if (record->event.pressed) { + // When keycode QMKBEST is pressed + SEND_STRING("QMK is the best thing ever!"); + } else { + // When keycode QMKBEST is released + } + break; + case QMKURL: - if (record->event.pressed) { - // when keycode QMKURL is pressed - SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER)); - } else { - // when keycode QMKURL is released - } - break; - } - return true; + if (record->event.pressed) { + // When keycode QMKURL is pressed + SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER)); + } else { + // When keycode QMKURL is released + } + break; + } + + return true; } diff --git a/keyboards/doro67/rgb/rgb.h b/keyboards/doro67/rgb/rgb.h index aafba11d0e6..0da9a5cceba 100644 --- a/keyboards/doro67/rgb/rgb.h +++ b/keyboards/doro67/rgb/rgb.h @@ -17,25 +17,16 @@ #include "quantum.h" -/* This a shortcut to help you visually see your layout. - * - * The first section contains all of the arguments representing the physical - * layout of the board and position of the keys. - * - * The second converts the arguments into a two-dimensional array which - * represents the switch matrix. - */ #define LAYOUT( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, k2E, \ - k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \ - k40, k41, k42, k43, k49, k4A, k4C, k4D, k4E \ -) \ -{ \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, KC_NO, k2D, k2E }, \ - { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \ - { k40, k41, k42, k43, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k49, k4A, KC_NO, k4C, k4D, k4E }, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, k2E, \ + k30, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \ + k40, k41, k42, k43, k49, k4A, k4C, k4D, k4E \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, KC_NO, k2D, k2E }, \ + { k30, KC_NO, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \ + { k40, k41, k42, k43, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, k49, k4A, KC_NO, k4C, k4D, k4E }, \ } From e6a6b1f122e72d58fbb14f5752929fe489d0e828 Mon Sep 17 00:00:00 2001 From: Elliot Powell <32494740+e11i0t23@users.noreply.github.com> Date: Tue, 3 Sep 2019 18:09:58 +0100 Subject: [PATCH 02/36] [Docs] Update i2c_driver.md (#6665) Fix missing arg of i2c_start --- docs/i2c_driver.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/i2c_driver.md b/docs/i2c_driver.md index 856ca0a9b22..d5c340edce7 100644 --- a/docs/i2c_driver.md +++ b/docs/i2c_driver.md @@ -7,7 +7,7 @@ The I2C Master drivers used in QMK have a set of common functions to allow porta |Function |Description | |------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |`void i2c_init(void);` |Initializes the I2C driver. This function should be called once before any transaction is initiated. | -|`uint8_t i2c_start(uint8_t address);` |Starts an I2C transaction. Address is the 7-bit slave address without the direction bit. | +|`uint8_t i2c_start(uint8_t address, uint16_t timeout);` |Starts an I2C transaction. Address is the 7-bit slave address without the direction bit. | |`uint8_t i2c_transmit(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout);` |Transmit data over I2C. Address is the 7-bit slave address without the direction. Returns status of transaction. | |`uint8_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout);` |Receive data over I2C. Address is the 7-bit slave address without the direction. Saves number of bytes specified by `length` in `data` array. Returns status of transaction. | |`uint8_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout);` |Same as the `i2c_transmit` function but `regaddr` sets where in the slave the data will be written. | From fa71c4c91e8b822e2d78d420d7d6fe2ca32245af Mon Sep 17 00:00:00 2001 From: bwhelm Date: Tue, 3 Sep 2019 14:29:23 -0400 Subject: [PATCH 03/36] Fix battery level code in adafruit_ble.cpp (#6648) * Fix battery level code in adafruit_ble.cpp The code in tsk_core/protocol/lufa/adafluit_ble.cpp that polls the battery level for the Adafruit feather BLE controller reads the regulated voltage, not the raw voltage coming from the battery. To do that, the Adafruit Feather docs say you should read from pin A9: https://learn.adafruit.com/adafruit-feather-32u4-basic-proto/power-management#measuring-battery-4-9. (See also https://learn.adafruit.com/adafruit-feather-32u4-bluefruit-le/pinouts#logic-pins-2-9.) I'm not sure why, but analogRead(9); doesn't read the correct pin. Checking all available analog pins experimentally, it turns out that analogRead(7); returns the correct value. So the code above should read: state.vbat = analogRead(7); * Update tmk_core/protocol/lufa/adafruit_ble.cpp Co-Authored-By: Drashna Jaelre * Remove old comment * Fix linking error * Remove `#ifdef` around `#include analog.h`. * Really fix linking error --- drivers/avr/analog.h | 6 ++++++ tmk_core/protocol/lufa.mk | 2 ++ tmk_core/protocol/lufa/adafruit_ble.cpp | 14 ++++++++------ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/drivers/avr/analog.h b/drivers/avr/analog.h index 32452a1ec21..1b773d82cef 100644 --- a/drivers/avr/analog.h +++ b/drivers/avr/analog.h @@ -19,9 +19,15 @@ #include +#ifdef __cplusplus +extern "C" { +#endif void analogReference(uint8_t mode); int16_t analogRead(uint8_t pin); int16_t adc_read(uint8_t mux); +#ifdef __cplusplus +} +#endif #define ADC_REF_POWER (1 << REFS0) #define ADC_REF_INTERNAL ((1 << REFS1) | (1 << REFS0)) diff --git a/tmk_core/protocol/lufa.mk b/tmk_core/protocol/lufa.mk index bb82a31e17c..d7d1d9ffccf 100644 --- a/tmk_core/protocol/lufa.mk +++ b/tmk_core/protocol/lufa.mk @@ -29,6 +29,7 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) endif ifeq ($(strip $(BLUETOOTH)), AdafruitBLE) + LUFA_SRC += analog.c LUFA_SRC += $(LUFA_DIR)/adafruit_ble.cpp endif @@ -51,6 +52,7 @@ SRC += $(LUFA_SRC) # Search Path VPATH += $(TMK_PATH)/$(LUFA_DIR) VPATH += $(LUFA_PATH) +VPATH += $(DRIVER_PATH)/avr # Option modules #ifdef $(or MOUSEKEY_ENABLE, PS2_MOUSE_ENABLE) diff --git a/tmk_core/protocol/lufa/adafruit_ble.cpp b/tmk_core/protocol/lufa/adafruit_ble.cpp index 71d0936f8f4..1d8ae1038ba 100644 --- a/tmk_core/protocol/lufa/adafruit_ble.cpp +++ b/tmk_core/protocol/lufa/adafruit_ble.cpp @@ -10,6 +10,7 @@ #include "action_util.h" #include "ringbuffer.hpp" #include +#include "analog.h" // These are the pin assignments for the 32u4 boards. // You may define them to something else in your config.h @@ -29,6 +30,12 @@ #define SAMPLE_BATTERY #define ConnectionUpdateInterval 1000 /* milliseconds */ +#ifdef SAMPLE_BATTERY +#ifndef BATTERY_LEVEL_PIN +# define BATTERY_LEVEL_PIN 7 +#endif +#endif + static struct { bool is_connected; bool initialized; @@ -631,15 +638,10 @@ void adafruit_ble_task(void) { } #ifdef SAMPLE_BATTERY - // I don't know if this really does anything useful yet; the reported - // voltage level always seems to be around 3200mV. We may want to just rip - // this code out. if (timer_elapsed(state.last_battery_update) > BatteryUpdateInterval && resp_buf.empty()) { state.last_battery_update = timer_read(); - if (at_command_P(PSTR("AT+HWVBAT"), resbuf, sizeof(resbuf))) { - state.vbat = atoi(resbuf); - } + state.vbat = analogRead(BATTERY_LEVEL_PIN); } #endif } From 7372ce6afdb1030463e09cef92e0d7befbd1d474 Mon Sep 17 00:00:00 2001 From: Vega Deftwing Date: Tue, 3 Sep 2019 18:03:16 -0500 Subject: [PATCH 04/36] added ability to change unicode input method (#6666) --- keyboards/ergodone/keymaps/vega/keymap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/ergodone/keymaps/vega/keymap.c b/keyboards/ergodone/keymaps/vega/keymap.c index 9e5229528d9..ee6c56bf958 100644 --- a/keyboards/ergodone/keymaps/vega/keymap.c +++ b/keyboards/ergodone/keymaps/vega/keymap.c @@ -426,8 +426,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [FNLR] = LAYOUT_ergodox( // left hand - KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, - KC_NO,KC_F11, KC_F12, KC_F13,KC_F14, KC_F15, KC_NO, + UC_M_LN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, + UC_M_WC,KC_F11, KC_F12, KC_F13,KC_F14, KC_F15, KC_NO, KC_NO,KC_F21, KC_F22, KC_F23,KC_F24, KC_NO, KC_NO,KC_PAUSE,KC_PSCR,KC_SLCK,KC_NO,KC_NO,KC_NO, EEP_RST,TO(BASE),TO(BASE),TO(BASE),TO(BASE), From df5b2d204be8c35f5d967b4c3d9f84c7e74373de Mon Sep 17 00:00:00 2001 From: fauxpark Date: Wed, 4 Sep 2019 13:26:01 +1000 Subject: [PATCH 05/36] [Keyboard] Missed a JTAG disable (#6667) --- keyboards/atomic/atomic.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/keyboards/atomic/atomic.c b/keyboards/atomic/atomic.c index 6f393315eeb..eba5ed61f68 100644 --- a/keyboards/atomic/atomic.c +++ b/keyboards/atomic/atomic.c @@ -4,12 +4,9 @@ void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up - MCUCR |= (1< Date: Thu, 5 Sep 2019 05:38:54 +0200 Subject: [PATCH 06/36] Add personal Doro67 multi keymap, fix bug in KBD6X keymap (#6674) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add missing void parameter declarations to *_light functions * Add doro67/multi:konstantin keymap * Allow FNLK to be canceled with Esc * Function layer → Fn layer in keymap comments --- .../doro67/multi/keymaps/konstantin/config.h | 4 ++ .../doro67/multi/keymaps/konstantin/keymap.c | 67 +++++++++++++++++++ .../doro67/multi/keymaps/konstantin/rules.mk | 10 +++ .../kbdfans/kbd6x/keymaps/konstantin/keymap.c | 8 +-- .../wasdat/keymaps/konstantin/keymap.c | 2 +- .../melody96/keymaps/konstantin/keymap.c | 2 +- .../whitefox/keymaps/konstantin/keymap.c | 2 +- users/konstantin/konstantin.c | 8 ++- 8 files changed, 95 insertions(+), 8 deletions(-) create mode 100644 keyboards/doro67/multi/keymaps/konstantin/config.h create mode 100644 keyboards/doro67/multi/keymaps/konstantin/keymap.c create mode 100644 keyboards/doro67/multi/keymaps/konstantin/rules.mk diff --git a/keyboards/doro67/multi/keymaps/konstantin/config.h b/keyboards/doro67/multi/keymaps/konstantin/config.h new file mode 100644 index 00000000000..3c2583e2d46 --- /dev/null +++ b/keyboards/doro67/multi/keymaps/konstantin/config.h @@ -0,0 +1,4 @@ +#pragma once + +#define LAYER_FN +#define LAYER_NUMPAD diff --git a/keyboards/doro67/multi/keymaps/konstantin/keymap.c b/keyboards/doro67/multi/keymaps/konstantin/keymap.c new file mode 100644 index 00000000000..2b1f06d0fb1 --- /dev/null +++ b/keyboards/doro67/multi/keymaps/konstantin/keymap.c @@ -0,0 +1,67 @@ +#include QMK_KEYBOARD_H +#include "konstantin.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │PSc│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bspc │Del│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │FnCaps│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgU│ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │LSft│RAG│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RShift│ ↑ │PgD│ + * ├────┼───┴┬──┴─┬─┴───┴───┴┬──┴─┬─┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │LCtl│LGui│LAlt│ Space │FnLk│ Fn │RAlG│RCtl│ │ ← │ ↓ │ → │ + * └────┴────┴────┴──────────┴────┴────────┴────┴────┘ └───┴───┴───┘ + */ + [L_BASE] = LAYOUT_multi( + KC_ESC, 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_BSLS, KC_GRV, KC_PSCR, + 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_BSPC, KC_DEL, + FN_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_PGUP, + KC_LSFT, RAL_RGU, 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_PGDN, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, FNLK, FN, RAL_RGU, KC_RCTL, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Fn layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Num│SLk│Pau│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │ M4 │M2 │M↑ │M1 │M3 │M5 │ │UCM│ │Stp│Ply│Prv│Nxt│Clear│Ins│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │M← │M↓ │M→ │MW↑│ │ │ │ │ │ │ │ │Top│ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │MA0│MA2│MW←│MW→│ │ │App│Vo-│Vo+│Mut│ │PgU│Btm│ + * ├────┼───┴┬──┴─┬─┴───┴───┴┬──┴─┬─┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │ │DtPR│DtNA│ MW↓ │ │ │ │ │ │Hom│PgD│End│ + * └────┴────┴────┴──────────┴────┴────────┴────┴────┘ └───┴───┴───┘ + */ + [L_FN] = LAYOUT_multi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, NUMPAD, KC_SLCK, KC_PAUS, + KC_BTN4, KC_BTN2, KC_MS_U, KC_BTN1, KC_BTN3, KC_BTN5, _______, UC_MOD, _______, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, CLEAR, KC_INS, + _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, _______, _______, _______, _______, _______, _______, _______, _______, TOP, + _______, _______, KC_ACL0, KC_ACL2, KC_WH_L, KC_WH_R, _______, _______, KC_APP, KC_VOLD, KC_VOLU, KC_MUTE, _______, KC_PGUP, BOTTOM, + _______, DST_P_R, DST_N_A, KC_WH_D, _______, _______, _______, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END + ), + + /* Numpad layer + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ │ │ │ │ │ │ │P7 │P8 │P9 │P- │ − │ = │Num│ │ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │ │ │ │ │ │ │ │P4 │P5 │P6 │P+ │ ( │ ) │ │ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │P1 │P2 │P3 │P* │ × │ PEnter │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │P0 │P0 │ , │P. │P/ │ ÷ │ │ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴┬──┴─┬─┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴──────────┴────┴────────┴────┴────┘ └───┴───┴───┘ + */ + [L_NUMPAD] = LAYOUT_multi( + _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, MINUS, EQUALS, NUMPAD, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, L_PAREN, R_PAREN, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PAST, TIMES, KC_PENT, _______, + _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_P0, COMMA, KC_PDOT, KC_PSLS, DIVIDE, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______, _______, _______ + ), +}; diff --git a/keyboards/doro67/multi/keymaps/konstantin/rules.mk b/keyboards/doro67/multi/keymaps/konstantin/rules.mk new file mode 100644 index 00000000000..041d3211459 --- /dev/null +++ b/keyboards/doro67/multi/keymaps/konstantin/rules.mk @@ -0,0 +1,10 @@ +BACKLIGHT_ENABLE = no +BOOTMAGIC_ENABLE = no +COMMAND_ENABLE = yes +CONSOLE_ENABLE = yes +EXTRAKEY_ENABLE = yes +MOUSEKEY_ENABLE = yes +NKRO_ENABLE = yes +SPACE_CADET_ENABLE = no +TAP_DANCE_ENABLE = yes +UNICODEMAP_ENABLE = yes diff --git a/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c b/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c index 00c6e59bc7d..1ca4dadb1bc 100644 --- a/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c +++ b/keyboards/kbdfans/kbd6x/keymaps/konstantin/keymap.c @@ -30,17 +30,17 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; } -static inline void fn_light() { +static inline void fn_light(void) { rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); rgblight_sethsv_noeeprom(modern_dolch_red.h, modern_dolch_red.s, rgblight_get_val()); } -static inline void caps_light() { +static inline void caps_light(void) { rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); rgblight_sethsv_noeeprom(modern_dolch_cyan.h, modern_dolch_cyan.s, rgblight_get_val()); } -static inline void restore_light() { +static inline void restore_light(void) { rgblight_config_t saved = { .raw = eeconfig_read_rgblight() }; rgblight_sethsv_noeeprom(saved.hue, saved.sat, saved.val); rgblight_mode_noeeprom(saved.mode); @@ -108,7 +108,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, KC_LGUI, KC_LALT, KC_SPC, RAL_RGU, RCTRL, XXXXXXX ), - /* Function layer + /* Fn layer * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│PSc│Ins│ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ diff --git a/keyboards/maartenwut/wasdat/keymaps/konstantin/keymap.c b/keyboards/maartenwut/wasdat/keymaps/konstantin/keymap.c index e594edcb23a..04355749ab3 100644 --- a/keyboards/maartenwut/wasdat/keymaps/konstantin/keymap.c +++ b/keyboards/maartenwut/wasdat/keymaps/konstantin/keymap.c @@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, FN_FNLK, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - /* Function layer + /* Fn layer * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐┌───┬───┬───┐ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ││ │Num│ │ * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘└───┴───┴───┘ diff --git a/keyboards/melody96/keymaps/konstantin/keymap.c b/keyboards/melody96/keymaps/konstantin/keymap.c index 13f222422d3..1ee7ca1e776 100644 --- a/keyboards/melody96/keymaps/konstantin/keymap.c +++ b/keyboards/melody96/keymaps/konstantin/keymap.c @@ -51,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, RAL_RGU, XXXXXXX, FN_FNLK, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT ), - /* Function layer + /* Fn layer * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ * │ │ │ │ │ │ │ │ │ │ │ │ │ │Sys│SLk│Pau│Brk│Top│Btm│ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ diff --git a/keyboards/whitefox/keymaps/konstantin/keymap.c b/keyboards/whitefox/keymaps/konstantin/keymap.c index 61dcbebda17..4c587dd272f 100644 --- a/keyboards/whitefox/keymaps/konstantin/keymap.c +++ b/keyboards/whitefox/keymaps/konstantin/keymap.c @@ -23,7 +23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, RAL_RGU, FN_FNLK, KC_LEFT, KC_DOWN, KC_RGHT ), - /* Function layer + /* Fn layer * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Num│SLk│Pau│ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ diff --git a/users/konstantin/konstantin.c b/users/konstantin/konstantin.c index 98b11b3a914..9cee25ac664 100644 --- a/users/konstantin/konstantin.c +++ b/users/konstantin/konstantin.c @@ -36,9 +36,15 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef LAYER_FN static bool fn_lock = false; + case FNLK: + if (record->event.pressed) { + fn_lock = !IS_LAYER_ON(L_FN); // Fn layer will be toggled after this + } + break; + case FN_FNLK: if (record->event.pressed && record->tap.count == TAPPING_TOGGLE) { - fn_lock = !IS_LAYER_ON(L_FN); // Fn layer will be toggled after this + fn_lock = !IS_LAYER_ON(L_FN); } break; #endif From 12812fa6a41ed93e243244432e8be83c201f84dd Mon Sep 17 00:00:00 2001 From: Xelus22 Date: Thu, 5 Sep 2019 13:41:01 +1000 Subject: [PATCH 07/36] led fix (#6672) --- keyboards/aeboards/ext65/keymaps/default/keymap.c | 15 +++++++-------- keyboards/aeboards/ext65/keymaps/via/keymap.c | 14 +++++++------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/keyboards/aeboards/ext65/keymaps/default/keymap.c b/keyboards/aeboards/ext65/keymaps/default/keymap.c index 79d5ecf5056..efa11cd0fd6 100644 --- a/keyboards/aeboards/ext65/keymaps/default/keymap.c +++ b/keyboards/aeboards/ext65/keymaps/default/keymap.c @@ -62,7 +62,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; - void keyboard_pre_init_user(void) { // Call the keyboard pre init code. @@ -75,19 +74,19 @@ void keyboard_pre_init_user(void) { void led_set_user(uint8_t usb_led) { if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { - writePinLow(D5); - } else { writePinHigh(D5); + } else { + writePinLow(D5); } if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { - writePinLow(D3); - } else { writePinHigh(D3); + } else { + writePinLow(D3); } if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { - writePinLow(D2); - } else { writePinHigh(D2); + } else { + writePinLow(D2); } } @@ -101,4 +100,4 @@ uint32_t layer_state_set_user(uint32_t state) { break; } return state; -} \ No newline at end of file +} diff --git a/keyboards/aeboards/ext65/keymaps/via/keymap.c b/keyboards/aeboards/ext65/keymaps/via/keymap.c index 3079c528eb5..efa11cd0fd6 100644 --- a/keyboards/aeboards/ext65/keymaps/via/keymap.c +++ b/keyboards/aeboards/ext65/keymaps/via/keymap.c @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ext65( KC_PMNS, KC_PAST, KC_PSLS, KC_NLCK, KC_ESC , 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_BSLS, KC_GRV , KC_PSCR, KC_PPLS, KC_P9 , KC_P8 , KC_P7 , 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_BSPC, KC_DEL , - KC_PPLS, KC_P6 , KC_P5 , KC_P4 , KC_LCTL, 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_PGUP, + KC_PPLS, KC_P6 , KC_P5 , KC_P4 , 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_PGUP, KC_PENT, KC_P3 , KC_P2 , KC_P1 , 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_PGDN, KC_PENT, KC_PDOT, KC_P0 , KC_P0 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , MO(1) , KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), @@ -74,19 +74,19 @@ void keyboard_pre_init_user(void) { void led_set_user(uint8_t usb_led) { if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) { - writePinLow(D5); - } else { writePinHigh(D5); + } else { + writePinLow(D5); } if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { - writePinLow(D3); - } else { writePinHigh(D3); + } else { + writePinLow(D3); } if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { - writePinLow(D2); - } else { writePinHigh(D2); + } else { + writePinLow(D2); } } From 98599173d7306d53cc8603d40bc50e229025fbdf Mon Sep 17 00:00:00 2001 From: fauxpark Date: Fri, 6 Sep 2019 07:50:43 +1000 Subject: [PATCH 08/36] Add 16U2, 16U4 and USB646 to mcu_selection.mk (#6566) --- keyboards/lfkeyboards/lfk78/rules.mk | 12 -------- keyboards/lfkeyboards/lfk87/rules.mk | 12 -------- keyboards/lfkeyboards/mini1800/rules.mk | 36 ------------------------ keyboards/lfkeyboards/smk65/rules.mk | 12 -------- keyboards/naked48/rules.mk | 1 - keyboards/sixkeyboard/rules.mk | 36 ------------------------ keyboards/xd004/v1/rules.mk | 37 ------------------------- quantum/mcu_selection.mk | 2 +- 8 files changed, 1 insertion(+), 147 deletions(-) diff --git a/keyboards/lfkeyboards/lfk78/rules.mk b/keyboards/lfkeyboards/lfk78/rules.mk index cc314c97a2c..b9cdf230762 100644 --- a/keyboards/lfkeyboards/lfk78/rules.mk +++ b/keyboards/lfkeyboards/lfk78/rules.mk @@ -21,18 +21,6 @@ OPT_DEFS += -DLFK_REV_STRING=\"Rev$(LFK_REV)\" # Extra source files for IS3731 lighting SRC = TWIlib.c issi.c lighting.c -# Processor frequency. -F_CPU = 16000000 - -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = no # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) diff --git a/keyboards/lfkeyboards/lfk87/rules.mk b/keyboards/lfkeyboards/lfk87/rules.mk index c10f4730657..bc96e3520e7 100644 --- a/keyboards/lfkeyboards/lfk87/rules.mk +++ b/keyboards/lfkeyboards/lfk87/rules.mk @@ -18,18 +18,6 @@ OPT_DEFS += -DLFK_TKL_REV_$(LFK_REV) # Extra source files for IS3731 lighting SRC = TWIlib.c issi.c lighting.c -# Processor frequency. -F_CPU = 16000000 - -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - LAYOUTS = tkl_ansi tkl_iso # Build Options diff --git a/keyboards/lfkeyboards/mini1800/rules.mk b/keyboards/lfkeyboards/mini1800/rules.mk index a1e52aae94a..a06225491f9 100644 --- a/keyboards/lfkeyboards/mini1800/rules.mk +++ b/keyboards/lfkeyboards/mini1800/rules.mk @@ -16,42 +16,6 @@ else endif OPT_DEFS += -DLFK_TKL_REV_$(LFK_REV) -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - # Extra source files for IS3731 lighting SRC = TWIlib.c issi.c lighting.c diff --git a/keyboards/lfkeyboards/smk65/rules.mk b/keyboards/lfkeyboards/smk65/rules.mk index b7f94154a45..5834cf5c3ae 100644 --- a/keyboards/lfkeyboards/smk65/rules.mk +++ b/keyboards/lfkeyboards/smk65/rules.mk @@ -3,15 +3,3 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096 # Extra source files for IS3731 lighting SRC = TWIlib.c issi.c lighting.c - -# Processor frequency. -F_CPU = 16000000 - -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT diff --git a/keyboards/naked48/rules.mk b/keyboards/naked48/rules.mk index 02a7d9ab2a0..53e2dfc21cc 100644 --- a/keyboards/naked48/rules.mk +++ b/keyboards/naked48/rules.mk @@ -3,7 +3,6 @@ QUANTUM_LIB_SRC += serial.c # SRC += ssd1306.c # MCU name -#MCU = at90usb1287 MCU = atmega32u4 # Processor frequency. diff --git a/keyboards/sixkeyboard/rules.mk b/keyboards/sixkeyboard/rules.mk index 52213f341a3..b718c7e65fb 100644 --- a/keyboards/sixkeyboard/rules.mk +++ b/keyboards/sixkeyboard/rules.mk @@ -3,42 +3,6 @@ SRC = matrix.c # MCU name MCU = atmega16u2 -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - # Boot Section Size in *bytes* # Teensy halfKay 512 diff --git a/keyboards/xd004/v1/rules.mk b/keyboards/xd004/v1/rules.mk index c55d65c0f58..9cc03498a7a 100644 --- a/keyboards/xd004/v1/rules.mk +++ b/keyboards/xd004/v1/rules.mk @@ -2,43 +2,6 @@ MCU = atmega16u2 -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# LUFA specific -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - # Boot Section Size in *bytes* # Teensy halfKay 512 # Teensy++ halfKay 2048 diff --git a/quantum/mcu_selection.mk b/quantum/mcu_selection.mk index 2d62dcbf1e3..1af0123e2bc 100644 --- a/quantum/mcu_selection.mk +++ b/quantum/mcu_selection.mk @@ -36,7 +36,7 @@ ifneq ($(findstring STM32F303, $(MCU)),) DFU_SUFFIX_ARGS = -p DF11 -v 0483 endif -ifneq (,$(filter $(MCU),atmega32u2 atmega32u4 at90usb1286)) +ifneq (,$(filter $(MCU),atmega16u2 atmega32u2 atmega16u4 atmega32u4 at90usb646 at90usb1286)) # Processor frequency. # This will define a symbol, F_CPU, in all source code files equal to the # processor frequency in Hz. You can then use this symbol in your source code to From f0ad3fc68a052be00c772b3b911079091015e57d Mon Sep 17 00:00:00 2001 From: Danny Date: Thu, 5 Sep 2019 23:10:57 -0400 Subject: [PATCH 09/36] [Keyboard] Add Iris Rev 4 (#6660) * Add Iris Rev. 4 * Fix EEPROM addresses --- keyboards/keebio/iris/iris.h | 4 +- .../keebio/iris/keymaps/default/keymap.c | 17 ++++ keyboards/keebio/iris/rev4/config.h | 95 +++++++++++++++++++ keyboards/keebio/iris/rev4/rev4.c | 1 + keyboards/keebio/iris/rev4/rev4.h | 33 +++++++ keyboards/keebio/iris/rev4/rules.mk | 3 + keyboards/keebio/iris/rules.mk | 6 +- 7 files changed, 156 insertions(+), 3 deletions(-) create mode 100644 keyboards/keebio/iris/rev4/config.h create mode 100644 keyboards/keebio/iris/rev4/rev4.c create mode 100644 keyboards/keebio/iris/rev4/rev4.h create mode 100644 keyboards/keebio/iris/rev4/rules.mk diff --git a/keyboards/keebio/iris/iris.h b/keyboards/keebio/iris/iris.h index 949405d55fe..5e6bc5b582d 100644 --- a/keyboards/keebio/iris/iris.h +++ b/keyboards/keebio/iris/iris.h @@ -6,8 +6,10 @@ #include "rev1_led.h" #elif KEYBOARD_keebio_iris_rev2 #include "rev2.h" -#else +#elif KEYBOARD_keebio_iris_rev3 #include "rev3.h" +#elif KEYBOARD_keebio_iris_rev4 + #include "rev4.h" #endif #include "quantum.h" diff --git a/keyboards/keebio/iris/keymaps/default/keymap.c b/keyboards/keebio/iris/keymaps/default/keymap.c index 758b842f75b..942f9631223 100644 --- a/keyboards/keebio/iris/keymaps/default/keymap.c +++ b/keyboards/keebio/iris/keymaps/default/keymap.c @@ -112,3 +112,20 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } return true; } + +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } + else if (index == 1) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } +} diff --git a/keyboards/keebio/iris/rev4/config.h b/keyboards/keebio/iris/rev4/config.h new file mode 100644 index 00000000000..b4bcd6139b9 --- /dev/null +++ b/keyboards/keebio/iris/rev4/config.h @@ -0,0 +1,95 @@ +/* +Copyright 2019 Danny Nguyen + +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 0xCB10 +#define PRODUCT_ID 0x1256 +#define DEVICE_VER 0x0400 +#define MANUFACTURER Keebio +#define PRODUCT Iris Keyboard +#define DESCRIPTION Split 50 percent ergonomic keyboard + +/* key matrix size */ +// Rows are doubled-up +#define MATRIX_ROWS 10 +#define MATRIX_COLS 6 + +// wiring of each half +#define MATRIX_ROW_PINS { B1, F0, F5, F6, F7 } +#define MATRIX_COL_PINS { F1, F4, D3, D2, B7, D4 } +#define MATRIX_ROW_PINS_RIGHT { B1, B2, D2, F1, F4 } +#define MATRIX_COL_PINS_RIGHT { D4, D7, D3, B7, F0, B3 } +#define SPLIT_HAND_PIN D5 +#define QMK_ESC_OUTPUT F1 +#define QMK_ESC_INPUT B1 +#define QMK_LED B0 +#define QMK_SPEAKER C6 + +#define ENCODERS_PAD_A { B2 } +#define ENCODERS_PAD_B { B3 } +#define ENCODERS_PAD_A_RIGHT { F7 } +#define ENCODERS_PAD_B_RIGHT { F6 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* define if matrix has ghost */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +// #define BACKLIGHT_LEVELS 3 + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* serial.c configuration for split keyboard */ +#define SOFT_SERIAL_PIN D0 + +/* 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 + +#define BACKLIGHT_PIN B5 +#define BACKLIGHT_LEVELS 5 + +/* ws2812 RGB LED */ +#define RGB_DI_PIN D6 +#define RGBLED_NUM 12 // Number of LEDs +#define RGBLED_SPLIT { 6, 6 } + +#define DYNAMIC_KEYMAP_LAYER_COUNT 4 + +// EEPROM usage + +// TODO: refactor with new user EEPROM code (coming soon) +#define EEPROM_MAGIC 0x451F +#define EEPROM_MAGIC_ADDR 34 +// Bump this every time we change what we store +// This will automatically reset the EEPROM with defaults +// and avoid loading invalid data from the EEPROM +#define EEPROM_VERSION 0x08 +#define EEPROM_VERSION_ADDR 36 + +// Dynamic keymap starts after EEPROM version +#define DYNAMIC_KEYMAP_EEPROM_ADDR 37 +// Dynamic macro starts after dynamic keymaps (37+(4*10*6*2)) = (37+480) +#define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR 517 +#define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE 507 // 1024-DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR +#define DYNAMIC_KEYMAP_MACRO_COUNT 16 diff --git a/keyboards/keebio/iris/rev4/rev4.c b/keyboards/keebio/iris/rev4/rev4.c new file mode 100644 index 00000000000..bd0989acb30 --- /dev/null +++ b/keyboards/keebio/iris/rev4/rev4.c @@ -0,0 +1 @@ +#include "rev4.h" diff --git a/keyboards/keebio/iris/rev4/rev4.h b/keyboards/keebio/iris/rev4/rev4.h new file mode 100644 index 00000000000..d8623348e4e --- /dev/null +++ b/keyboards/keebio/iris/rev4/rev4.h @@ -0,0 +1,33 @@ +#pragma once + +#include "iris.h" +#include "quantum.h" + + +#ifdef USE_I2C +#include +#ifdef __AVR__ + #include + #include +#endif +#endif + +#define LAYOUT( \ + LA1, LA2, LA3, LA4, LA5, LA6, RA6, RA5, RA4, RA3, RA2, RA1, \ + LB1, LB2, LB3, LB4, LB5, LB6, RB6, RB5, RB4, RB3, RB2, RB1, \ + LC1, LC2, LC3, LC4, LC5, LC6, RC6, RC5, RC4, RC3, RC2, RC1, \ + LD1, LD2, LD3, LD4, LD5, LD6, LE6, RE6, RD6, RD5, RD4, RD3, RD2, RD1, \ + LE3, LE4, LE5, RE5, RE4, RE3 \ + ) \ + { \ + { LA1, LA2, LA3, LA4, LA5, LA6 }, \ + { LB1, LB2, LB3, LB4, LB5, LB6 }, \ + { LC1, LC2, LC3, LC4, LC5, LC6 }, \ + { LD1, LD2, LD3, LD4, LD5, LD6 }, \ + { KC_NO, KC_NO, LE3, LE4, LE5, LE6 }, \ + { RA1, RA2, RA3, RA4, RA5, RA6 }, \ + { RB1, RB2, RB3, RB4, RB5, RB6 }, \ + { RC1, RC2, RC3, RC4, RC5, RC6 }, \ + { RD1, RD2, RD3, RD4, RD5, RD6 }, \ + { KC_NO, KC_NO, RE3, RE4, RE5, RE6 } \ + } diff --git a/keyboards/keebio/iris/rev4/rules.mk b/keyboards/keebio/iris/rev4/rules.mk new file mode 100644 index 00000000000..d7e0da93675 --- /dev/null +++ b/keyboards/keebio/iris/rev4/rules.mk @@ -0,0 +1,3 @@ +RGBLIGHT_ENABLE = yes +BACKLIGHT_ENABLE = yes +ENCODER_ENABLE = yes diff --git a/keyboards/keebio/iris/rules.mk b/keyboards/keebio/iris/rules.mk index b0012e16114..83b13b16031 100644 --- a/keyboards/keebio/iris/rules.mk +++ b/keyboards/keebio/iris/rules.mk @@ -9,6 +9,8 @@ F_USB = $(F_CPU) # automatically (+60). See bootloader.mk for all options. ifneq (, $(findstring rev3, $(KEYBOARD))) BOOTLOADER = qmk-dfu +else ifneq (, $(findstring rev4, $(KEYBOARD))) + BOOTLOADER = qmk-dfu else BOOTLOADER = caterina endif @@ -24,8 +26,8 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) MOUSEKEY_ENABLE = no # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = no # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality MIDI_ENABLE = no # MIDI controls From f8bf1d1b16848f2d82d4c61b6a8df3f22aa15859 Mon Sep 17 00:00:00 2001 From: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com> Date: Fri, 6 Sep 2019 06:34:37 +0200 Subject: [PATCH 10/36] Changed to 1209 PID (#6677) --- keyboards/vitamins_included/config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/vitamins_included/config.h b/keyboards/vitamins_included/config.h index 1be7f3a9023..019ca94919f 100644 --- a/keyboards/vitamins_included/config.h +++ b/keyboards/vitamins_included/config.h @@ -20,7 +20,7 @@ along with this program. If not, see . //#define USE_I2C /* Common USB Device descriptor parameters */ -#define VENDOR_ID 0xFEED +#define VENDOR_ID 0x1209 #define PRODUCT_ID 0xBEE5 #define MANUFACTURER Duckle29 #define PRODUCT Vitamins included From 7ffed07310b4dcf53235bfd8a1700aefd0437f90 Mon Sep 17 00:00:00 2001 From: fauxpark Date: Sat, 7 Sep 2019 00:41:24 +1000 Subject: [PATCH 11/36] Make USB polling rate configurable with a define (#6668) --- docs/config_options.md | 4 +++- tmk_core/protocol/usb_descriptor.c | 10 +++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/config_options.md b/docs/config_options.md index d2ae5617987..77e2368f3db 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -91,8 +91,10 @@ This is a C header file that is one of the first things included, and will persi * tries to keep switch state consistent with keyboard LED state * `#define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)` * key combination that allows the use of magic commands (useful for debugging) -* `#define USB_MAX_POWER_CONSUMPTION` +* `#define USB_MAX_POWER_CONSUMPTION 500` * sets the maximum power (in mA) over USB for the device (default: 500) +* `#define USB_POLLING_INTERVAL_MS 10` + * sets the USB polling rate in milliseconds for the keyboard, mouse, and shared (NKRO/media keys) interfaces * `#define F_SCL 100000L` * sets the I2C clock rate speed for keyboards using I2C. The default is `400000L`, except for keyboards using `split_common`, where the default is `100000L`. diff --git a/tmk_core/protocol/usb_descriptor.c b/tmk_core/protocol/usb_descriptor.c index 5349553b7a4..7d509f4ef43 100644 --- a/tmk_core/protocol/usb_descriptor.c +++ b/tmk_core/protocol/usb_descriptor.c @@ -302,6 +302,10 @@ const USB_Descriptor_Device_t PROGMEM DeviceDescriptor = {.Header = {. # define USB_MAX_POWER_CONSUMPTION 500 #endif +#ifndef USB_POLLING_INTERVAL_MS +# define USB_POLLING_INTERVAL_MS 10 +#endif + /* * Configuration descriptors */ @@ -324,7 +328,7 @@ const USB_Descriptor_Configuration_t PROGMEM .InterfaceStrIndex = NO_DESCRIPTOR}, .Keyboard_HID = {.Header = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = HID_DTYPE_HID}, .HIDSpec = VERSION_BCD(1, 1, 1), .CountryCode = 0x00, .TotalReportDescriptors = 1, .HIDReportType = HID_DTYPE_Report, .HIDReportLength = sizeof(KeyboardReport)}, - .Keyboard_INEndpoint = {.Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, .EndpointAddress = (ENDPOINT_DIR_IN | KEYBOARD_IN_EPNUM), .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), .EndpointSize = KEYBOARD_EPSIZE, .PollingIntervalMS = 0x0A}, + .Keyboard_INEndpoint = {.Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, .EndpointAddress = (ENDPOINT_DIR_IN | KEYBOARD_IN_EPNUM), .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), .EndpointSize = KEYBOARD_EPSIZE, .PollingIntervalMS = USB_POLLING_INTERVAL_MS}, #endif #if defined(MOUSE_ENABLE) && !defined(MOUSE_SHARED_EP) @@ -333,7 +337,7 @@ const USB_Descriptor_Configuration_t PROGMEM */ .Mouse_Interface = {.Header = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface}, .InterfaceNumber = MOUSE_INTERFACE, .AlternateSetting = 0x00, .TotalEndpoints = 1, .Class = HID_CSCP_HIDClass, .SubClass = HID_CSCP_BootSubclass, .Protocol = HID_CSCP_MouseBootProtocol, .InterfaceStrIndex = NO_DESCRIPTOR}, .Mouse_HID = {.Header = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = HID_DTYPE_HID}, .HIDSpec = VERSION_BCD(1, 1, 1), .CountryCode = 0x00, .TotalReportDescriptors = 1, .HIDReportType = HID_DTYPE_Report, .HIDReportLength = sizeof(MouseReport)}, - .Mouse_INEndpoint = {.Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, .EndpointAddress = (ENDPOINT_DIR_IN | MOUSE_IN_EPNUM), .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), .EndpointSize = MOUSE_EPSIZE, .PollingIntervalMS = 0x0A}, + .Mouse_INEndpoint = {.Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, .EndpointAddress = (ENDPOINT_DIR_IN | MOUSE_IN_EPNUM), .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), .EndpointSize = MOUSE_EPSIZE, .PollingIntervalMS = USB_POLLING_INTERVAL_MS}, #endif #ifdef SHARED_EP_ENABLE @@ -354,7 +358,7 @@ const USB_Descriptor_Configuration_t PROGMEM # endif .InterfaceStrIndex = NO_DESCRIPTOR}, .Shared_HID = {.Header = {.Size = sizeof(USB_HID_Descriptor_HID_t), .Type = HID_DTYPE_HID}, .HIDSpec = VERSION_BCD(1, 1, 1), .CountryCode = 0x00, .TotalReportDescriptors = 1, .HIDReportType = HID_DTYPE_Report, .HIDReportLength = sizeof(SharedReport)}, - .Shared_INEndpoint = {.Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, .EndpointAddress = (ENDPOINT_DIR_IN | SHARED_IN_EPNUM), .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), .EndpointSize = SHARED_EPSIZE, .PollingIntervalMS = 0x0A}, + .Shared_INEndpoint = {.Header = {.Size = sizeof(USB_Descriptor_Endpoint_t), .Type = DTYPE_Endpoint}, .EndpointAddress = (ENDPOINT_DIR_IN | SHARED_IN_EPNUM), .Attributes = (EP_TYPE_INTERRUPT | ENDPOINT_ATTR_NO_SYNC | ENDPOINT_USAGE_DATA), .EndpointSize = SHARED_EPSIZE, .PollingIntervalMS = USB_POLLING_INTERVAL_MS}, #endif #ifdef RAW_ENABLE From ac8f8a89141fb6830c1e510d0325092e549e9840 Mon Sep 17 00:00:00 2001 From: Silvio Gulizia Date: Fri, 6 Sep 2019 23:36:40 +0200 Subject: [PATCH 12/36] fix missing music mode legend (#6686) --- keyboards/planck/keymaps/default/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/planck/keymaps/default/keymap.c b/keyboards/planck/keymaps/default/keymap.c index 44bc7db7f24..e4f3cafbfc2 100644 --- a/keyboards/planck/keymaps/default/keymap.c +++ b/keyboards/planck/keymaps/default/keymap.c @@ -156,7 +156,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ,----------------------------------------------------------------------------------- * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del | * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | + * | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | * |------+------+------+------+------+------+------+------+------+------+------+------| * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | * |------+------+------+------+------+------+------+------+------+------+------+------| From fc5fb2fc1598bd07cafb97b35100237506592d9d Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sat, 7 Sep 2019 01:04:48 -0700 Subject: [PATCH 13/36] CA66 R1/R2 Cleanup (#6678) * fixup readme to adhere to QMK standards and to also have more information * use pragma once * strip out the custom bootmagic lite routine as it is the same as QMK's default bootmagic lite routine. Also add the caps lock led indicator * turn on bootmagic lite * update default keymap * Update keyboards/playkbtw/ca66/ca66.c Co-Authored-By: fauxpark * remove lines 4 thru 37 and add bootloader --- keyboards/playkbtw/ca66/ca66.c | 34 +++-------- keyboards/playkbtw/ca66/ca66.h | 5 +- keyboards/playkbtw/ca66/config.h | 7 +-- .../playkbtw/ca66/keymaps/default/keymap.c | 18 ------ keyboards/playkbtw/ca66/readme.md | 11 ++-- keyboards/playkbtw/ca66/rules.mk | 60 ++++--------------- 6 files changed, 28 insertions(+), 107 deletions(-) diff --git a/keyboards/playkbtw/ca66/ca66.c b/keyboards/playkbtw/ca66/ca66.c index 5f61df64e50..43a648eca0d 100644 --- a/keyboards/playkbtw/ca66/ca66.c +++ b/keyboards/playkbtw/ca66/ca66.c @@ -1,30 +1,12 @@ #include "ca66.h" -#include "config.h" -void bootmagic_lite(void) -{ - // The lite version of TMK's bootmagic. - // 100% less potential for accidentally making the - // keyboard do stupid things. +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { + writePinHigh(D1); + } else { + writePinLow(D1); + } - // We need multiple scans because debouncing can't be turned off. - matrix_scan(); - wait_ms(DEBOUNCE); - matrix_scan(); - - // If the Esc (matrix 0,0) is held down on power up, - // reset the EEPROM valid state and jump to bootloader. - if ( matrix_get_row(0) & (1<<0) ) - { - // Set the TMK/QMK EEPROM state as invalid. - eeconfig_disable(); - // Jump to bootloader. - bootloader_jump(); - } -} - -void matrix_init_kb(void) -{ - bootmagic_lite(); - matrix_init_user(); + led_set_user(usb_led); } diff --git a/keyboards/playkbtw/ca66/ca66.h b/keyboards/playkbtw/ca66/ca66.h index 0c00125a36c..e52bdea664e 100644 --- a/keyboards/playkbtw/ca66/ca66.h +++ b/keyboards/playkbtw/ca66/ca66.h @@ -1,5 +1,4 @@ -#ifndef CA66_H -#define CA66_H +#pragma once #include "quantum.h" @@ -16,5 +15,3 @@ { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \ { KC_NO, K401, K402, K403, K404, KC_NO, K406, KC_NO, K408, K409, K410, K411, K412, K413, K414 } \ } - -#endif diff --git a/keyboards/playkbtw/ca66/config.h b/keyboards/playkbtw/ca66/config.h index b4c0e623418..ff68cdac9e8 100644 --- a/keyboards/playkbtw/ca66/config.h +++ b/keyboards/playkbtw/ca66/config.h @@ -1,5 +1,4 @@ -#ifndef CONFIG_H -#define CONFIG_H +#pragma once #include "config_common.h" @@ -15,7 +14,7 @@ #define MATRIX_ROWS 5 #define MATRIX_COLS 15 -/* key matrix pins */ +/* key matrix pins 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14*/ #define MATRIX_ROW_PINS { F5, F4, F1, B0, B3 } #define MATRIX_COL_PINS { F7, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, F6, B7, E6 } #define UNUSED_PINS @@ -45,5 +44,3 @@ #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 #endif - -#endif diff --git a/keyboards/playkbtw/ca66/keymaps/default/keymap.c b/keyboards/playkbtw/ca66/keymaps/default/keymap.c index 5a3c4c86231..6f87fb0c119 100644 --- a/keyboards/playkbtw/ca66/keymaps/default/keymap.c +++ b/keyboards/playkbtw/ca66/keymaps/default/keymap.c @@ -16,21 +16,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_HUI, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAD, RGB_HUD, RGB_SAI), }; - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - return true; -} - -void led_set_user(uint8_t usb_led) { - if (usb_led & (1 << USB_LED_CAPS_LOCK)) { - DDRD |= (1 << 1); PORTD &= ~(1 << 1); - } else { - DDRD &= ~(1 << 1); PORTD &= ~(1 << 1); - } -} diff --git a/keyboards/playkbtw/ca66/readme.md b/keyboards/playkbtw/ca66/readme.md index c415efd5f7a..94bf0d537db 100644 --- a/keyboards/playkbtw/ca66/readme.md +++ b/keyboards/playkbtw/ca66/readme.md @@ -1,15 +1,16 @@ -CA66 -== +# CA66 Custom 65% +This QMK firmware handles both PCBs from Round 1 and from Round 2. + Keyboard Maintainer: QMK Community -Hardware Supported: CA66 -Hardware Availability: [Play Keyboard](http://play-keyboard.store/) +Hardware Supported: CA66 R1/R2 +Hardware Availability: [Play Keyboard](http://play-keyboard.store/) Make example for this keyboard (after setting up your build environment): make playkbtw/ca66:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +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). diff --git a/keyboards/playkbtw/ca66/rules.mk b/keyboards/playkbtw/ca66/rules.mk index 5779b2c8ada..e86f5ec038e 100644 --- a/keyboards/playkbtw/ca66/rules.mk +++ b/keyboards/playkbtw/ca66/rules.mk @@ -1,56 +1,18 @@ # MCU name MCU = atmega32u4 -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Boot Section Size in *bytes* -OPT_DEFS += -DBOOTLOADER_SIZE=4096 - +BOOTLOADER = atmel-dfu # Build Options # comment out to disable the options. # -BOOTMAGIC_ENABLE ?= no -MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) -EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) -CONSOLE_ENABLE ?= no # Console for debug(+400) -COMMAND_ENABLE ?= no # Commands for debug and configuration -SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend -NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality -AUDIO_ENABLE ?= no -RGBLIGHT_ENABLE ?= yes +BOOTMAGIC_ENABLE = lite +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +AUDIO_ENABLE = no +RGBLIGHT_ENABLE = yes From 736bdc7e97ec8f91a3bf36a6ae72d9b6729ab721 Mon Sep 17 00:00:00 2001 From: jotix <47826561+jotix@users.noreply.github.com> Date: Sat, 7 Sep 2019 08:05:15 +0000 Subject: [PATCH 14/36] Jotix (#6687) * jotix ortho_4x12 * add shifted symbols * jotix ortho_4x12 layot --- layouts/community/ortho_4x12/jotix/keymap.c | 56 ++---- layouts/community/ortho_4x12/jotix/readme.md | 2 - layouts/community/ortho_4x12/jotix/rules.mk | 1 - layouts/community/ortho_4x12/jotix/unicode.c | 200 ------------------- 4 files changed, 18 insertions(+), 241 deletions(-) delete mode 100644 layouts/community/ortho_4x12/jotix/rules.mk delete mode 100644 layouts/community/ortho_4x12/jotix/unicode.c diff --git a/layouts/community/ortho_4x12/jotix/keymap.c b/layouts/community/ortho_4x12/jotix/keymap.c index b61cf3e0685..1ba235e3a97 100644 --- a/layouts/community/ortho_4x12/jotix/keymap.c +++ b/layouts/community/ortho_4x12/jotix/keymap.c @@ -1,20 +1,16 @@ #include QMK_KEYBOARD_H -#include "unicode.c" enum layers { _QWERTY, - _FN, _LOWER, _RAISE, - _UNICODE + _GAME }; -#define FN MO(_FN) #define LOWER MO(_LOWER) #define RAISE MO(_RAISE) -#define UNICODE MO(_UNICODE) #define TGLOWER TG(_LOWER) -#define TGRAISE TG(_RAISE) +#define TGGAME TG(_GAME) static bool is_ctl_pressed; static bool is_esc_pressed; @@ -26,33 +22,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐ KC_ESC, KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_BSPC, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - KC_TAB, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN, KC_ENT, + KC_TAB, 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_UP ,KC_SLSH, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M ,KC_COMM, KC_DOT,KC_SLSH, KC_ENT, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - KC_LCTL,KC_LGUI,KC_LALT, FN , LOWER , KC_SPC, KC_SPC, RAISE ,UNICODE,KC_LEFT,KC_DOWN,KC_RGHT + KC_LCTL,KC_LGUI,KC_LALT,KC_RALT, LOWER , KC_SPC, KC_SPC, RAISE ,KC_LEFT,KC_DOWN, KC_UP ,KC_RGHT // └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ ), -[_FN] = LAYOUT_ortho_4x12 ( -// ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐ - _______, 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_PGUP,_______, -// ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______,_______,_______,_______,TGLOWER,_______,_______,TGRAISE,_______,KC_HOME,KC_PGDN, KC_END -// └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ -), - [_LOWER] = LAYOUT_ortho_4x12 ( // ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐ - _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,_______, + KC_GRV, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,_______, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______,KC_VOLD,KC_MUTE,KC_VOLU,KC_HOME,KC_PGUP,KC_LBRC,KC_RBRC,KC_BSLS,KC_QUOT,_______,_______, + _______,KC_VOLD,KC_MUTE,KC_VOLU,_______, TGGAME,_______,_______,_______,_______,_______,_______, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______,KC_MPRV,KC_MPLY,KC_MNXT, KC_END,KC_PGDN,KC_MINS, KC_EQL,_______,_______,_______,_______, + _______,KC_MPRV,KC_MPLY,KC_MNXT,_______,_______,_______,_______,_______,_______,_______,_______, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ // └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ @@ -60,25 +44,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_RAISE] = 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_DEL, + KC_TILD,KC_EXLM, KC_AT ,KC_HASH, KC_DLR,KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN, KC_DEL, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______,_______,_______,_______,_______,_______,KC_LBRC,KC_RBRC,KC_BSLS,KC_QUOT,_______,_______, + KC_CAPS, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 ,KC_MINS, KC_EQL,KC_LBRC,KC_RBRC,KC_BSLS, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______,_______,_______,_______,_______,_______,KC_MINS, KC_EQL,_______,_______,KC_VOLU,_______, + _______, KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_F11, KC_F12,KC_UNDS,KC_PLUS,KC_LCBR,KC_RCBR,KC_PIPE, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_VOLD,KC_MUTE + _______,_______,_______,_______,TGLOWER,_______,_______,_______,KC_HOME,KC_PGDN,KC_PGUP, KC_END // └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ ), -[_UNICODE] = LAYOUT_ortho_4x12 ( +[_GAME] = LAYOUT_ortho_4x12 ( // ┌───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┬───────┐ - UN_ESC, UN_Q , UN_W , UN_E , UN_R , UN_T , UN_Y , UN_U , UN_I , UN_O , UN_P ,UN_BSPC, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - UN_TAB, UN_A , UN_S , UN_D , UN_F , UN_G , UN_H , UN_J , UN_K , UN_L ,UN_SCLN, UN_ENT, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - _______, UN_Z , UN_X , UN_C , UN_V , UN_B , UN_N , UN_M ,UN_COMM, UN_DOT, UN_UP ,UN_SLSH, + _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_UP ,_______, // ├───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤ - UC_M_LN,UC_M_WI,UC_M_OS,_______,_______,_______,_______,_______,_______,UN_DOWN, UN_UP ,UN_RGHT + _______,_______,_______,_______,_______,_______,_______,_______,KC_SLSH,KC_LEFT,KC_DOWN,KC_RGHT // └───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────┘ ), @@ -95,7 +79,7 @@ uint32_t layer_state_set_user(uint32_t state) { writePinLow(JOTANCK_LED1); writePinHigh(JOTANCK_LED2); break; - case _FN: + case _GAME: writePinHigh(JOTANCK_LED1); writePinHigh(JOTANCK_LED2); break; @@ -116,10 +100,6 @@ void led_set_user(uint8_t usb_led) { } */ -void keyboard_post_init_user(void) { - set_unicode_input_mode(UC_LNX); -} - bool process_record_user(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case KC_LCTL: diff --git a/layouts/community/ortho_4x12/jotix/readme.md b/layouts/community/ortho_4x12/jotix/readme.md index dda5b81defb..1b44ca65966 100644 --- a/layouts/community/ortho_4x12/jotix/readme.md +++ b/layouts/community/ortho_4x12/jotix/readme.md @@ -1,7 +1,5 @@ # Jotix ortho 4x12 keymap -![keymap](https://i.imgur.com/hfCyDRD.png) - Tested on: * Planck/rev4 diff --git a/layouts/community/ortho_4x12/jotix/rules.mk b/layouts/community/ortho_4x12/jotix/rules.mk deleted file mode 100644 index 0517619ed13..00000000000 --- a/layouts/community/ortho_4x12/jotix/rules.mk +++ /dev/null @@ -1 +0,0 @@ -UNICODEMAP_ENABLE = yes \ No newline at end of file diff --git a/layouts/community/ortho_4x12/jotix/unicode.c b/layouts/community/ortho_4x12/jotix/unicode.c deleted file mode 100644 index 1935d3a7214..00000000000 --- a/layouts/community/ortho_4x12/jotix/unicode.c +++ /dev/null @@ -1,200 +0,0 @@ -enum unicode_names { - A_ACUTE, - A_ACUTEC, - E_ACUTE, - E_ACUTEC, - I_ACUTE, - I_ACUTEC, - O_ACUTE, - O_ACUTEC, - U_ACUTE, - U_ACUTEC, - U_DIERESIS, - U_DIERESISC, - N_TILDE, - N_TILDEC, - OPEN_EXCML, - OPEN_QUEST, - EURO, - POUND, - LEFT_ARROW, - DOWN_ARROW, - UP_ARROW, - RIGHT_ARROW, - LEFT_DARROW, - DOWN_DARROW, - UP_DARROW, - RIGHT_DAROW, - LEFT_DQUOT, - RGHT_DQUOT, - DEGREE, - DEGREE_CELCIUS, - SUPER_1, - SUPER_2, - SUPER_3, - ONE_HALF, - PER_MILLE, - PER_THOUS, - PILCROW, - COPYRIGHT, - REGISTERED, - MICRO, - MIDDLE_DOT, - BOX_CORNER_1, - BOX_CORNER_2, - BOX_CORNER_3, - BOX_CORNER_4, - BOX_HORIZONTAL, - BOX_VERTICAL, - BOX_CROSS, - BOX_UNION_1, - BOX_UNION_2, - BOX_UNION_3, - BOX_UNION_4, - DBOX_CORNER_1, - DBOX_CORNER_2, - DBOX_CORNER_3, - DBOX_CORNER_4, - DBOX_HORIZONT, - DBOX_VERTICAL, - DBOX_CROSS, - DBOX_UNION_1, - DBOX_UNION_2, - DBOX_UNION_3, - DBOX_UNION_4, - LESS_EQUAL, - MORE_EQUAL, - DIVISION, - SQUARE_ROOT, - CUBE_ROOT, - SPADE_SUIT, - TREBOL_SUIT, - HEART_SUIT, - DIAMOND_SUIT, - NARRAY_SUM, - INFINIT_SYMBOL, - DIAMOND_BULLET, - CIRCLE_BULLET, - SMILE_FACE, - SAD_FACE -}; - -const uint32_t PROGMEM unicode_map[] = { - [A_ACUTE] = 0x00E1, - [A_ACUTEC] = 0x00C1, - [E_ACUTE] = 0x00E9, - [E_ACUTEC] = 0x00C9, - [I_ACUTE] = 0x00ED, - [I_ACUTEC] = 0x00CD, - [O_ACUTE] = 0x00F3, - [O_ACUTEC] = 0x00D3, - [U_ACUTE] = 0x00FA, - [U_ACUTEC] = 0x00DA, - [U_DIERESIS] = 0x00FC, - [U_DIERESISC] = 0x00DC, - [N_TILDE] = 0x00F1, - [N_TILDEC] = 0x00D1, - [OPEN_EXCML] = 0x00A1, - [OPEN_QUEST] = 0x00BF, - [EURO] = 0x20AC, - [POUND] = 0x00A3, - [LEFT_ARROW] = 0x2190, - [DOWN_ARROW] = 0x2193, - [UP_ARROW] = 0x2191, - [RIGHT_ARROW] = 0x2192, - [LEFT_DARROW] = 0x21E6, - [DOWN_DARROW] = 0x21D3, - [UP_DARROW] = 0x21D1, - [RIGHT_DAROW] = 0x21D2, - [LEFT_DQUOT] = 0x00AB, - [RGHT_DQUOT] = 0x00BB, - [DEGREE] = 0x00B0, - [DEGREE_CELCIUS]= 0x2103, - [SUPER_1] = 0x00B9, - [SUPER_2] = 0x00B2, - [SUPER_3] = 0x00B3, - [ONE_HALF] = 0x00BD, - [PER_MILLE] = 0x0609, - [PER_THOUS] = 0x060A, - [PILCROW] = 0x00B6, - [COPYRIGHT] = 0x00A9, - [REGISTERED] = 0x00AE, - [MICRO] = 0x00B5, - [MIDDLE_DOT] = 0x00B7, - [BOX_CORNER_1] = 0x250C, - [BOX_CORNER_2] = 0x2510, - [BOX_CORNER_3] = 0x2514, - [BOX_CORNER_4] = 0x2518, - [BOX_HORIZONTAL]= 0x2500, - [BOX_VERTICAL] = 0x2502, - [BOX_CROSS] = 0x253C, - [BOX_UNION_1] = 0x2524, - [BOX_UNION_2] = 0x252C, - [BOX_UNION_3] = 0x2534, - [BOX_UNION_4] = 0x251C, - [DBOX_CORNER_1] = 0x2554, - [DBOX_CORNER_2] = 0x2557, - [DBOX_CORNER_3] = 0x255A, - [DBOX_CORNER_4] = 0x255D, - [DBOX_HORIZONT] = 0x2550, - [DBOX_VERTICAL] = 0x2551, - [DBOX_CROSS] = 0x256C, - [DBOX_UNION_1] = 0x2563, - [DBOX_UNION_2] = 0x2566, - [DBOX_UNION_3] = 0x2569, - [DBOX_UNION_4] = 0x2560, - [LESS_EQUAL] = 0x2264, - [MORE_EQUAL] = 0x2265, - [DIVISION] = 0x00F7, - [SQUARE_ROOT] = 0x221A, - [CUBE_ROOT] = 0x221B, - [SPADE_SUIT] = 0x2660, - [TREBOL_SUIT] = 0x2663, - [HEART_SUIT] = 0x2664, - [DIAMOND_SUIT] = 0x2665, - [NARRAY_SUM] = 0x2211, - [INFINIT_SYMBOL]= 0x221E, - [DIAMOND_BULLET]= 0x2B25, - [CIRCLE_BULLET] = 0x2981, - [SMILE_FACE] = 0x263A, - [SAD_FACE] = 0x2639 -}; - -#define UN_ESC XP(DEGREE, DEGREE_CELCIUS) -#define UN_Q XP(OPEN_EXCML, SUPER_1) -#define UN_W XP(SUPER_2, SUPER_3) -#define UN_E XP(E_ACUTE, E_ACUTEC) -#define UN_R XP(EURO, ONE_HALF) -#define UN_T XP(PER_MILLE, PER_THOUS) -#define UN_Y XP(U_DIERESIS, U_DIERESISC) -#define UN_U XP(U_ACUTE, U_ACUTEC) -#define UN_I XP(I_ACUTE, I_ACUTEC) -#define UN_O XP(O_ACUTE, O_ACUTEC) -#define UN_P XP(POUND, PILCROW) -#define UN_BSPC XP(BOX_CROSS, DBOX_CROSS) -#define UN_TAB XP(DIAMOND_BULLET, CIRCLE_BULLET) -#define UN_A XP(A_ACUTE, A_ACUTEC) -#define UN_S XP(BOX_CORNER_1, DBOX_CORNER_1) -#define UN_D XP(BOX_CORNER_2, DBOX_CORNER_2) -#define UN_F XP(BOX_CORNER_3, DBOX_CORNER_3) -#define UN_G XP(BOX_CORNER_4, DBOX_CORNER_4) -#define UN_H XP(BOX_UNION_1, DBOX_UNION_1) -#define UN_J XP(BOX_UNION_2, DBOX_UNION_2) -#define UN_K XP(BOX_UNION_3, DBOX_UNION_3) -#define UN_L XP(BOX_UNION_4, DBOX_UNION_4) -#define UN_SCLN XP(BOX_HORIZONTAL, DBOX_HORIZONT) -#define UN_ENT XP(BOX_VERTICAL, DBOX_VERTICAL) -#define UN_Z XP(NARRAY_SUM, INFINIT_SYMBOL) -#define UN_X XP(SMILE_FACE, SAD_FACE) -#define UN_C XP(COPYRIGHT, REGISTERED) -#define UN_V XP(SPADE_SUIT, TREBOL_SUIT) -#define UN_B XP(HEART_SUIT, DIAMOND_SUIT) -#define UN_N XP(N_TILDE, N_TILDEC) -#define UN_M XP(MICRO, MIDDLE_DOT) -#define UN_COMM XP(LESS_EQUAL, LEFT_DQUOT) -#define UN_DOT XP(MORE_EQUAL, RGHT_DQUOT) -#define UN_SLSH XP(OPEN_QUEST, DIVISION) -#define UN_LEFT XP(LEFT_ARROW, LEFT_DARROW) -#define UN_DOWN XP(DOWN_ARROW, DOWN_DARROW) -#define UN_UP XP(UP_ARROW, UP_DARROW) -#define UN_RGHT XP(RIGHT_ARROW, RIGHT_DAROW) \ No newline at end of file From 4d339b7b5d1ecc2320080798d7e07e2d43675578 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20=C4=90or=C4=91evi=C4=87?= Date: Sat, 7 Sep 2019 10:17:54 +0200 Subject: [PATCH 15/36] Update docker_build.sh: indentation fix, error echo function (#6659) * Replace spaces with tab in docker_build.sh * Use errcho instead of echo >&2 --- util/docker_build.sh | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/util/docker_build.sh b/util/docker_build.sh index f36d5bcde5f..99d59d1696e 100755 --- a/util/docker_build.sh +++ b/util/docker_build.sh @@ -1,6 +1,10 @@ #!/bin/sh # NOTE: This script uses tabs for indentation +errcho() { + echo "$@" >&2 +} + USAGE="Usage: $0 [keyboard[:keymap[:target]]]" # Check preconditions @@ -11,11 +15,11 @@ for arg; do fi done if [ $# -gt 1 ]; then - echo "$USAGE" >&2 + errcho "$USAGE" exit 1 elif ! command -v docker >/dev/null 2>&1; then - echo "Error: docker not found" >&2 - echo "See https://docs.docker.com/install/#supported-platforms for installation instructions" >&2 + errcho "Error: docker not found" + errcho "See https://docs.docker.com/install/#supported-platforms for installation instructions" exit 2 fi @@ -29,7 +33,7 @@ else $1 EOF if [ -n "$x" ]; then - echo "$USAGE" >&2 + errcho "$USAGE" exit 1 fi fi @@ -37,9 +41,9 @@ if [ -n "$target" ]; then if [ "$(uname)" = "Linux" ] || docker-machine active >/dev/null 2>&1; then usb_args="--privileged -v /dev:/dev" else - echo "Error: target requires docker-machine to work on your platform" >&2 - echo "See http://gw.tnode.com/docker/docker-machine-with-usb-support-on-windows-macos" >&2 - echo "Consider flashing with QMK Toolbox (https://github.com/qmk/qmk_toolbox) instead" >&2 + errcho "Error: target requires docker-machine to work on your platform" + errcho "See http://gw.tnode.com/docker/docker-machine-with-usb-support-on-windows-macos" + errcho "Consider flashing with QMK Toolbox (https://github.com/qmk/qmk_toolbox) instead" exit 3 fi fi @@ -47,7 +51,7 @@ dir=$(pwd -W 2>/dev/null) || dir=$PWD # Use Windows path if on Windows # Run container and build firmware docker run --rm -it $usb_args \ - -w /qmk_firmware/ \ + -w /qmk_firmware \ -v "$dir":/qmk_firmware \ -e ALT_GET_KEYBOARDS=true \ -e SKIP_GIT="$SKIP_GIT" \ From 5b7a5b2a7629fbb667d23a55836dce3c6c46a203 Mon Sep 17 00:00:00 2001 From: skullY Date: Wed, 21 Aug 2019 23:40:24 -0700 Subject: [PATCH 16/36] Setup a python test framework --- bin/qmk | 8 ++++- keyboards/handwired/onekey/pytest/config.h | 23 ++++++++++++++ keyboards/handwired/onekey/pytest/readme.md | 3 ++ keyboards/handwired/onekey/pytest/rules.mk | 2 ++ .../onekey/pytest/templates/keymap.c | 1 + lib/python/milc.py | 3 +- lib/python/qmk/cli/doctor.py | 30 ++++++++++++++----- lib/python/qmk/cli/nose2.py | 18 +++++++++++ lib/python/qmk/tests/__init__.py | 0 lib/python/qmk/tests/attrdict.py | 8 +++++ lib/python/qmk/tests/onekey_export.json | 6 ++++ lib/python/qmk/tests/test_qmk_errors.py | 7 +++++ lib/python/qmk/tests/test_qmk_keymap.py | 18 +++++++++++ lib/python/qmk/tests/test_qmk_path.py | 12 ++++++++ nose2.cfg | 2 ++ 15 files changed, 130 insertions(+), 11 deletions(-) create mode 100644 keyboards/handwired/onekey/pytest/config.h create mode 100644 keyboards/handwired/onekey/pytest/readme.md create mode 100644 keyboards/handwired/onekey/pytest/rules.mk create mode 100644 keyboards/handwired/onekey/pytest/templates/keymap.c create mode 100644 lib/python/qmk/cli/nose2.py create mode 100644 lib/python/qmk/tests/__init__.py create mode 100644 lib/python/qmk/tests/attrdict.py create mode 100644 lib/python/qmk/tests/onekey_export.json create mode 100644 lib/python/qmk/tests/test_qmk_errors.py create mode 100644 lib/python/qmk/tests/test_qmk_keymap.py create mode 100644 lib/python/qmk/tests/test_qmk_path.py create mode 100644 nose2.cfg diff --git a/bin/qmk b/bin/qmk index 3c00a675eb1..1aa16e17dcc 100755 --- a/bin/qmk +++ b/bin/qmk @@ -94,4 +94,10 @@ else: exit(1) if __name__ == '__main__': - milc.cli() + return_code = milc.cli() + if return_code is False: + exit(1) + elif return_code is not True and isinstance(return_code, int) and return_code < 256: + exit(return_code) + else: + exit(0) diff --git a/keyboards/handwired/onekey/pytest/config.h b/keyboards/handwired/onekey/pytest/config.h new file mode 100644 index 00000000000..f6bedcfe648 --- /dev/null +++ b/keyboards/handwired/onekey/pytest/config.h @@ -0,0 +1,23 @@ +/* Copyright 2019 + * + * 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 "config_common.h" + +#define MATRIX_COL_PINS { A3 } +#define MATRIX_ROW_PINS { A2 } +#define UNUSED_PINS diff --git a/keyboards/handwired/onekey/pytest/readme.md b/keyboards/handwired/onekey/pytest/readme.md new file mode 100644 index 00000000000..dbbd991f1c3 --- /dev/null +++ b/keyboards/handwired/onekey/pytest/readme.md @@ -0,0 +1,3 @@ +# PyTest onekey + +This is used by the python test framework. It's probably not useful otherwise. diff --git a/keyboards/handwired/onekey/pytest/rules.mk b/keyboards/handwired/onekey/pytest/rules.mk new file mode 100644 index 00000000000..b17a3d0316b --- /dev/null +++ b/keyboards/handwired/onekey/pytest/rules.mk @@ -0,0 +1,2 @@ +# MCU name +MCU = STM32F303 diff --git a/keyboards/handwired/onekey/pytest/templates/keymap.c b/keyboards/handwired/onekey/pytest/templates/keymap.c new file mode 100644 index 00000000000..d355210c47f --- /dev/null +++ b/keyboards/handwired/onekey/pytest/templates/keymap.c @@ -0,0 +1 @@ +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {__KEYMAP_GOES_HERE__}; diff --git a/lib/python/milc.py b/lib/python/milc.py index 6e82edf8b19..c62c1b166c4 100644 --- a/lib/python/milc.py +++ b/lib/python/milc.py @@ -534,8 +534,7 @@ class MILC(object): if not self._inside_context_manager: # If they didn't use the context manager use it ourselves with self: - self.__call__() - return + return self.__call__() if not self._entrypoint: raise RuntimeError('No entrypoint provided!') diff --git a/lib/python/qmk/cli/doctor.py b/lib/python/qmk/cli/doctor.py index 9ce765a4b51..c5a144363c9 100755 --- a/lib/python/qmk/cli/doctor.py +++ b/lib/python/qmk/cli/doctor.py @@ -2,9 +2,11 @@ Check up for QMK environment. """ -import shutil -import platform import os +import platform +import shutil +import subprocess +from glob import glob from milc import cli @@ -16,32 +18,44 @@ def main(cli): This is currently very simple, it just checks that all the expected binaries are on your system. TODO(unclaimed): - * [ ] Run the binaries to make sure they work * [ ] Compile a trivial program with each compiler * [ ] Check for udev entries on linux """ binaries = ['dfu-programmer', 'avrdude', 'dfu-util', 'avr-gcc', 'arm-none-eabi-gcc'] + binaries += glob('bin/qmk-*') - cli.log.info('QMK Doctor is Checking your environment') + cli.log.info('QMK Doctor is checking your environment') ok = True for binary in binaries: res = shutil.which(binary) if res is None: - cli.log.error('{fg_red}QMK can\'t find ' + binary + ' in your path') + cli.log.error("{fg_red}QMK can't find %s in your path", binary) ok = False + else: + try: + subprocess.run([binary, '--version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=5, check=True) + except subprocess.CalledProcessError: + cli.log.error("{fg_red}Can't run `%s --version`", binary) + ok = False OS = platform.system() if OS == "Darwin": cli.log.info("Detected {fg_cyan}macOS") elif OS == "Linux": cli.log.info("Detected {fg_cyan}linux") - test = 'systemctl list-unit-files | grep enabled | grep -i ModemManager' - if os.system(test) == 0: - cli.log.warn("{bg_yellow}Detected modem manager. Please disable it if you are using Pro Micros") + if shutil.which('systemctl'): + test = 'systemctl list-unit-files | grep enabled | grep -i ModemManager' + if os.system(test) == 0: + cli.log.warn("{bg_yellow}Detected modem manager. Please disable it if you are using Pro Micros") + else: + cli.log.warn("Can't find systemctl to check for ModemManager.") else: cli.log.info("Assuming {fg_cyan}Windows") if ok: cli.log.info('{fg_green}QMK is ready to go') + else: + cli.log.info('{fg_yellow}Problems detected, please fix these problems before proceeding.') + # FIXME(skullydazed): Link to a document about troubleshooting, or discord or something diff --git a/lib/python/qmk/cli/nose2.py b/lib/python/qmk/cli/nose2.py new file mode 100644 index 00000000000..c6c9c67b30a --- /dev/null +++ b/lib/python/qmk/cli/nose2.py @@ -0,0 +1,18 @@ +"""QMK Python Unit Tests + +QMK script to run unit and integration tests against our python code. +""" +from milc import cli + + +@cli.entrypoint('QMK Python Unit Tests') +def main(cli): + """Use nose2 to run unittests + """ + try: + import nose2 + except ImportError: + cli.log.error('Could not import nose2! Please install it with {fg_cyan}pip3 install nose2') + return False + + nose2.discover() diff --git a/lib/python/qmk/tests/__init__.py b/lib/python/qmk/tests/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/lib/python/qmk/tests/attrdict.py b/lib/python/qmk/tests/attrdict.py new file mode 100644 index 00000000000..a2584b92333 --- /dev/null +++ b/lib/python/qmk/tests/attrdict.py @@ -0,0 +1,8 @@ +class AttrDict(dict): + """A dictionary that can be accessed by attributes. + + This should only be used to mock objects for unit testing. Please do not use this outside of qmk.tests. + """ + def __init__(self, *args, **kwargs): + super(AttrDict, self).__init__(*args, **kwargs) + self.__dict__ = self diff --git a/lib/python/qmk/tests/onekey_export.json b/lib/python/qmk/tests/onekey_export.json new file mode 100644 index 00000000000..95f0a980fe6 --- /dev/null +++ b/lib/python/qmk/tests/onekey_export.json @@ -0,0 +1,6 @@ +{ + "keyboard":"handwired/onekey/pytest", + "keymap":"pytest_unittest", + "layout":"LAYOUT", + "layers":[["KC_A"]] +} diff --git a/lib/python/qmk/tests/test_qmk_errors.py b/lib/python/qmk/tests/test_qmk_errors.py new file mode 100644 index 00000000000..3f6b567137c --- /dev/null +++ b/lib/python/qmk/tests/test_qmk_errors.py @@ -0,0 +1,7 @@ +from qmk.errors import NoSuchKeyboardError + +def test_NoSuchKeyboardError(): + try: + raise(NoSuchKeyboardError("test message")) + except NoSuchKeyboardError as e: + assert e.message == 'test message' diff --git a/lib/python/qmk/tests/test_qmk_keymap.py b/lib/python/qmk/tests/test_qmk_keymap.py new file mode 100644 index 00000000000..6a565ee900c --- /dev/null +++ b/lib/python/qmk/tests/test_qmk_keymap.py @@ -0,0 +1,18 @@ +import qmk.keymap + +def test_template_onekey_proton_c(): + templ = qmk.keymap.template('handwired/onekey/proton_c') + assert templ == qmk.keymap.DEFAULT_KEYMAP_C + + +def test_template_onekey_pytest(): + templ = qmk.keymap.template('handwired/onekey/pytest') + assert templ == 'const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {__KEYMAP_GOES_HERE__};\n' + + +def test_generate_onekey_pytest(): + templ = qmk.keymap.generate('handwired/onekey/pytest', 'LAYOUT', [['KC_A']]) + assert templ == 'const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT(KC_A)};\n' + + +# FIXME(skullydazed): Add a test for qmk.keymap.write that mocks up an FD. diff --git a/lib/python/qmk/tests/test_qmk_path.py b/lib/python/qmk/tests/test_qmk_path.py new file mode 100644 index 00000000000..23816be7ede --- /dev/null +++ b/lib/python/qmk/tests/test_qmk_path.py @@ -0,0 +1,12 @@ +import os + +import qmk.path + +def test_keymap_onekey_pytest(): + path = qmk.path.keymap('handwired/onekey/pytest') + assert path == 'keyboards/handwired/onekey/keymaps' + + +def test_normpath(): + path = qmk.path.normpath('lib/python') + assert path == os.environ['ORIG_CWD'] + '/lib/python' diff --git a/nose2.cfg b/nose2.cfg new file mode 100644 index 00000000000..136354553bd --- /dev/null +++ b/nose2.cfg @@ -0,0 +1,2 @@ +[unittest] +start-dir = lib/python/qmk/tests From c7eede2249d22dd4fabed83043dcf4cc7408cf27 Mon Sep 17 00:00:00 2001 From: skullY Date: Wed, 21 Aug 2019 23:46:51 -0700 Subject: [PATCH 17/36] run yapf on the code --- lib/python/qmk/tests/attrdict.py | 1 + lib/python/qmk/tests/test_qmk_errors.py | 3 ++- lib/python/qmk/tests/test_qmk_keymap.py | 1 + lib/python/qmk/tests/test_qmk_path.py | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/python/qmk/tests/attrdict.py b/lib/python/qmk/tests/attrdict.py index a2584b92333..391c75c4e1c 100644 --- a/lib/python/qmk/tests/attrdict.py +++ b/lib/python/qmk/tests/attrdict.py @@ -3,6 +3,7 @@ class AttrDict(dict): This should only be used to mock objects for unit testing. Please do not use this outside of qmk.tests. """ + def __init__(self, *args, **kwargs): super(AttrDict, self).__init__(*args, **kwargs) self.__dict__ = self diff --git a/lib/python/qmk/tests/test_qmk_errors.py b/lib/python/qmk/tests/test_qmk_errors.py index 3f6b567137c..1d8690b7efc 100644 --- a/lib/python/qmk/tests/test_qmk_errors.py +++ b/lib/python/qmk/tests/test_qmk_errors.py @@ -1,7 +1,8 @@ from qmk.errors import NoSuchKeyboardError + def test_NoSuchKeyboardError(): try: - raise(NoSuchKeyboardError("test message")) + raise NoSuchKeyboardError("test message") except NoSuchKeyboardError as e: assert e.message == 'test message' diff --git a/lib/python/qmk/tests/test_qmk_keymap.py b/lib/python/qmk/tests/test_qmk_keymap.py index 6a565ee900c..2db625600e9 100644 --- a/lib/python/qmk/tests/test_qmk_keymap.py +++ b/lib/python/qmk/tests/test_qmk_keymap.py @@ -1,5 +1,6 @@ import qmk.keymap + def test_template_onekey_proton_c(): templ = qmk.keymap.template('handwired/onekey/proton_c') assert templ == qmk.keymap.DEFAULT_KEYMAP_C diff --git a/lib/python/qmk/tests/test_qmk_path.py b/lib/python/qmk/tests/test_qmk_path.py index 23816be7ede..94dbf3a6a6a 100644 --- a/lib/python/qmk/tests/test_qmk_path.py +++ b/lib/python/qmk/tests/test_qmk_path.py @@ -2,6 +2,7 @@ import os import qmk.path + def test_keymap_onekey_pytest(): path = qmk.path.keymap('handwired/onekey/pytest') assert path == 'keyboards/handwired/onekey/keymaps' From 533d6d6a464d41d23a39cecfe42d95d2e400d335 Mon Sep 17 00:00:00 2001 From: skullY Date: Thu, 22 Aug 2019 09:38:10 -0700 Subject: [PATCH 18/36] Make the modem manager check more pythonic --- lib/python/qmk/cli/doctor.py | 38 +++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/lib/python/qmk/cli/doctor.py b/lib/python/qmk/cli/doctor.py index c5a144363c9..5a713b20f59 100755 --- a/lib/python/qmk/cli/doctor.py +++ b/lib/python/qmk/cli/doctor.py @@ -21,17 +21,17 @@ def main(cli): * [ ] Compile a trivial program with each compiler * [ ] Check for udev entries on linux """ + cli.log.info('QMK Doctor is checking your environment.') + # Make sure the basic CLI tools we need are available and can be executed. binaries = ['dfu-programmer', 'avrdude', 'dfu-util', 'avr-gcc', 'arm-none-eabi-gcc'] binaries += glob('bin/qmk-*') - - cli.log.info('QMK Doctor is checking your environment') - ok = True + for binary in binaries: res = shutil.which(binary) if res is None: - cli.log.error("{fg_red}QMK can't find %s in your path", binary) + cli.log.error("{fg_red}QMK can't find %s in your path.", binary) ok = False else: try: @@ -40,20 +40,36 @@ def main(cli): cli.log.error("{fg_red}Can't run `%s --version`", binary) ok = False + # Determine our OS and run platform specific tests OS = platform.system() + if OS == "Darwin": - cli.log.info("Detected {fg_cyan}macOS") + cli.log.info("Detected {fg_cyan}macOS.") + elif OS == "Linux": - cli.log.info("Detected {fg_cyan}linux") + cli.log.info("Detected {fg_cyan}Linux.") if shutil.which('systemctl'): - test = 'systemctl list-unit-files | grep enabled | grep -i ModemManager' - if os.system(test) == 0: - cli.log.warn("{bg_yellow}Detected modem manager. Please disable it if you are using Pro Micros") + mm_check = subprocess.run(['systemctl', 'list-unit-files'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=10) + if mm_check.returncode == 0: + mm = True + for line in mm_check.stdout.split('\n'): + if 'ModemManager' in line and 'enabled' in line: + mm = False + + if mm: + cli.log.warn("{bg_yellow}Detected ModemManager. Please disable it if you are using a Pro-Micro.") + + else: + cli.log.error('{bg_red}Could not run `systemctl list-unit-files`:') + cli.log.error(mm_check.stderr) + else: cli.log.warn("Can't find systemctl to check for ModemManager.") - else: - cli.log.info("Assuming {fg_cyan}Windows") + else: + cli.log.info("Assuming {fg_cyan}Windows.") + + # Report a summary of our findings to the user if ok: cli.log.info('{fg_green}QMK is ready to go') else: From deb6fa6a87b12fcdbf577837c6faeb854cd287c7 Mon Sep 17 00:00:00 2001 From: skullY Date: Thu, 22 Aug 2019 09:40:12 -0700 Subject: [PATCH 19/36] Add a command to format python code --- lib/python/qmk/cli/pyformat.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100755 lib/python/qmk/cli/pyformat.py diff --git a/lib/python/qmk/cli/pyformat.py b/lib/python/qmk/cli/pyformat.py new file mode 100755 index 00000000000..b1f8c02b281 --- /dev/null +++ b/lib/python/qmk/cli/pyformat.py @@ -0,0 +1,16 @@ +"""Format python code according to QMK's style. +""" +from milc import cli + +import subprocess + + +@cli.entrypoint("Format python code according to QMK's style.") +def main(cli): + """Format python code according to QMK's style. + """ + try: + subprocess.run(['yapf', '-vv', '-ri', 'bin/qmk', 'lib/python'], check=True) + cli.log.info('Successfully formatted the python code in `bin/qmk` and `lib/python`.') + except subprocess.CalledProcessError: + cli.log.error('Error formatting python code!') From 1013ae2d34dc34e0e7d63fe875e70801ded3673c Mon Sep 17 00:00:00 2001 From: skullY Date: Thu, 29 Aug 2019 12:24:27 -0700 Subject: [PATCH 20/36] Add python tests to the travis check --- util/travis_build.sh | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/util/travis_build.sh b/util/travis_build.sh index fd5511a72ba..3fff768f6f1 100755 --- a/util/travis_build.sh +++ b/util/travis_build.sh @@ -22,7 +22,7 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then eval $MAKE_ALL : $((exit_code = $exit_code + $?)) else - NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)' | grep -Ev '^(docs/)' | wc -l) + NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)' | grep -Ev '^(docs/)' | wc -l) BRANCH=$(git rev-parse --abbrev-ref HEAD) # is this branch master or a "non docs, non keyboards" change if [ $NEFM -gt 0 -o "$BRANCH" = "master" ]; then @@ -51,6 +51,14 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then fi done fi + # Check and run python tests if necessary + PFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -E '^(lib/python/)' | wc -l) + if [ $PFM -gt 0 -o "$BRANCH" = "master" ]; then + echo + echo "Running python tests." + bin/qmk nose2 + : $((exit_code = $exit_code + $?)) + fi fi exit $exit_code fi From 18690ddaeaa66de91bcd635fb2eeee4364e1d162 Mon Sep 17 00:00:00 2001 From: skullY Date: Thu, 29 Aug 2019 12:31:16 -0700 Subject: [PATCH 21/36] filter python from the list of things that trigger default builds --- util/travis_build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/util/travis_build.sh b/util/travis_build.sh index 3fff768f6f1..81546c11561 100755 --- a/util/travis_build.sh +++ b/util/travis_build.sh @@ -22,7 +22,7 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then eval $MAKE_ALL : $((exit_code = $exit_code + $?)) else - NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)' | grep -Ev '^(docs/)' | wc -l) + NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)' | grep -Ev '^(docs/)' | grep -Ev '^(lib/python/)' | grep -Ev (^bin/qmk) | wc -l) BRANCH=$(git rev-parse --abbrev-ref HEAD) # is this branch master or a "non docs, non keyboards" change if [ $NEFM -gt 0 -o "$BRANCH" = "master" ]; then @@ -52,7 +52,7 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then done fi # Check and run python tests if necessary - PFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -E '^(lib/python/)' | wc -l) + PFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -E -e '^(lib/python/)' -e '^(bin/qmk)' | wc -l) if [ $PFM -gt 0 -o "$BRANCH" = "master" ]; then echo echo "Running python tests." From 16366dd23d2c37932e2c0975800f0a8b30d53863 Mon Sep 17 00:00:00 2001 From: skullY Date: Thu, 29 Aug 2019 12:44:08 -0700 Subject: [PATCH 22/36] add missing apostrophes --- util/travis_build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/travis_build.sh b/util/travis_build.sh index 81546c11561..9ea0c5c4b95 100755 --- a/util/travis_build.sh +++ b/util/travis_build.sh @@ -22,7 +22,7 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then eval $MAKE_ALL : $((exit_code = $exit_code + $?)) else - NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)' | grep -Ev '^(docs/)' | grep -Ev '^(lib/python/)' | grep -Ev (^bin/qmk) | wc -l) + NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)' | grep -Ev '^(docs/)' | grep -Ev '^(lib/python/)' | grep -Ev '(^bin/qmk)' | wc -l) BRANCH=$(git rev-parse --abbrev-ref HEAD) # is this branch master or a "non docs, non keyboards" change if [ $NEFM -gt 0 -o "$BRANCH" = "master" ]; then From 6ca29f2b9b02763aa3de607e8d08f14d5284918f Mon Sep 17 00:00:00 2001 From: skullY Date: Thu, 29 Aug 2019 13:05:11 -0700 Subject: [PATCH 23/36] Run the python tests inside docker --- util/travis_build.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/util/travis_build.sh b/util/travis_build.sh index 9ea0c5c4b95..605b6d5f053 100755 --- a/util/travis_build.sh +++ b/util/travis_build.sh @@ -2,9 +2,9 @@ # if docker is installed - call make within the qmk docker image if command -v docker >/dev/null; then - function make() { - docker run --rm -e MAKEFLAGS="$MAKEFLAGS" -w /qmk_firmware/ -v "$PWD":/qmk_firmware --user $(id -u):$(id -g) qmkfm/base_container make "$@" - } + function make() { + docker run --rm -e MAKEFLAGS="$MAKEFLAGS" -w /qmk_firmware/ -v "$PWD":/qmk_firmware --user $(id -u):$(id -g) qmkfm/base_container make "$@" + } fi # test force push @@ -30,7 +30,7 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then eval $MAKE_ALL : $((exit_code = $exit_code + $?)) else - # keyboards project format + # keyboards project format # /keyboards/board1/rev/keymaps/ # /keyboards/board2/keymaps/ # ensure we strip everything off after and including the keymaps folder to get board and/or revision @@ -56,7 +56,7 @@ if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then if [ $PFM -gt 0 -o "$BRANCH" = "master" ]; then echo echo "Running python tests." - bin/qmk nose2 + docker run --rm -w /qmk_firmware/ -v "$PWD":/qmk_firmware --user $(id -u):$(id -g) qmkfm/base_container bin/qmk nose2 : $((exit_code = $exit_code + $?)) fi fi From c21281c593d2eb9ef87053ef1d04d0b7d41be726 Mon Sep 17 00:00:00 2001 From: Manassarn Manoonchai Date: Sat, 7 Sep 2019 22:06:30 +0700 Subject: [PATCH 24/36] [Keymap] Add narze userspace (#6652) * Refactor & reimplement mod tap macros * Reduce tapping term * Update readme * Add narze userspace * Make use of narze userspace * Extract Superduper mode * Refactor Superduper mode * (Ergodox Infinity) Prevent stuck modifiers * Update ergodox_infinity/narze likewise * Add warning for building Infinity with docker * Fix include eeprom.h in superduper * Try enabling superduper mode with combo for ergodox infinity * Apply suggestions on #4546 * Convert to 4 spaces * Map backlight step key * Replace PLAY_NOTE_ARRAY * Fix superduper toggle * Re enable audio in planck rev4 * Use perform_space_cadet * Remove superduper mod tap triggers * Add readme for planck light firmware flashing command * Remove unused layers * Remove unused keycodes * Add backlight toggle * Remove unused songs & use DEFAULT_LAYER_SONGS * Update readme * Move includes to header file --- .../ergodox_infinity/keymaps/narze/config.h | 11 +- .../ergodox_infinity/keymaps/narze/keymap.c | 524 +++++----------- .../ergodox_infinity/keymaps/narze/readme.md | 19 +- .../ergodox_infinity/keymaps/narze/rules.mk | 5 +- keyboards/planck/keymaps/narze/config.h | 15 +- keyboards/planck/keymaps/narze/keymap.c | 583 +++++++----------- keyboards/planck/keymaps/narze/readme.md | 15 +- keyboards/planck/keymaps/narze/rules.mk | 20 +- users/narze/narze.c | 1 + users/narze/narze.h | 9 + users/narze/readme.md | 18 + users/narze/rules.mk | 5 + users/narze/superduper.c | 66 ++ users/narze/superduper.h | 7 + 14 files changed, 523 insertions(+), 775 deletions(-) create mode 100644 users/narze/narze.c create mode 100644 users/narze/narze.h create mode 100644 users/narze/readme.md create mode 100644 users/narze/rules.mk create mode 100644 users/narze/superduper.c create mode 100644 users/narze/superduper.h diff --git a/keyboards/ergodox_infinity/keymaps/narze/config.h b/keyboards/ergodox_infinity/keymaps/narze/config.h index 551327a126c..bceb14c921f 100644 --- a/keyboards/ergodox_infinity/keymaps/narze/config.h +++ b/keyboards/ergodox_infinity/keymaps/narze/config.h @@ -1,14 +1,11 @@ -#ifndef CONFIG_H_ -#define CONFIG_H_ - -#include "../../config.h" +#pragma once #undef TAPPING_TERM #define TAPPING_TERM 150 // Combos not working yet -// #define COMBO_TERM 20 -// #define COMBO_COUNT 1 +#define COMBO_TERM 20 +#define COMBO_COUNT 1 // #define COMBO_ALLOW_ACTION_KEYS #define IGNORE_MOD_TAP_INTERRUPT @@ -16,5 +13,3 @@ #undef MOUSEKEY_DELAY #define MOUSEKEY_DELAY 100 - -#endif diff --git a/keyboards/ergodox_infinity/keymaps/narze/keymap.c b/keyboards/ergodox_infinity/keymaps/narze/keymap.c index d562c4a9deb..e48db6f2827 100644 --- a/keyboards/ergodox_infinity/keymaps/narze/keymap.c +++ b/keyboards/ergodox_infinity/keymaps/narze/keymap.c @@ -1,93 +1,55 @@ #include QMK_KEYBOARD_H -// #include "debug.h" -#include "action_layer.h" +#include "narze.h" #include "version.h" -#include "eeconfig.h" -#include "eeprom.h" #include "keymap_colemak.h" extern keymap_config_t keymap_config; enum ergodox_layers { - _QWERTY, - _COLEMAK, - _QWOC, - _LOWER, - _RAISE, - _PLOVER, -// Intermediate layers for SuperDuper (Combo keys does not work on Infinity yet) - _SUPER, - _DUPER, - _SUPERDUPER, - _MOUSE, - _ADJUST, - _MDIA, - _SYMB, + _QWERTY, + _COLEMAK, + _QWOC, + _LOWER, + _RAISE, + _PLOVER, + // Intermediate layers for SuperDuper (Combo keys does not work on Infinity yet) + _SUPERDUPER, + _MOUSE, + _ADJUST, + _MDIA, + _SYMB, }; enum ergodox_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - QWOC, - PLOVER, - SUPER, - DUPER, - SUPERDUPER, - MOUSE, - LOWER, - RAISE, - BACKLIT, - EXT_PLV, - SDTOGG, // Toggle SuperDuper - EPRM, - VRSN, - RGB_SLD + QWERTY = SAFE_RANGE, + COLEMAK, + QWOC, + LOWER, + RAISE, + PLOVER, + SUPERDUPER, + MOUSE, + BACKLIT, + EXT_PLV, + SDTOGG, // Toggle SuperDuper + EPRM, + VRSN, + RGB_SLD, + GUI_UNDS, + LSFT_LPRN, + RSFT_RPRN, }; -enum functions { - M_GUI_UNDS, // Simulate GUI_T(KC_UNDS) - M_SFT_PO, // SFT_T(KC_LPRN) - M_SFT_PC, // SFT_T(KC_RPRN) -}; - -// Timer for custom mod tap -static uint16_t m_gui_unds_timer; -static uint16_t m_sft_po_timer; -static uint16_t m_sft_pc_timer; - // Narze : Custom Macros #define HPR_ESC ALL_T(KC_ESC) #define SFT_ENT SFT_T(KC_ENT) -#define SFT_PO F(M_SFT_PO) -#define SFT_PC F(M_SFT_PC) +#define SFT_PO LSFT_LPRN +#define SFT_PC RSFT_RPRN #define GUI_MINS GUI_T(KC_MINS) -#define GUI_UNDS F(M_GUI_UNDS) -// Combo : SuperDuper layer from S+D (R+S in Colemak) -// #define COMBO_COUNT 1 -// #define SUPERDUPER_COMBO_COUNT 3 -// #define EECONFIG_SUPERDUPER_INDEX (uint8_t *) 19 - -// enum process_combo_event { -// CB_SUPERDUPER, -// }; - -// const uint16_t PROGMEM superduper_combos[SUPERDUPER_COMBO_COUNT][3] = { -// [_QWERTY] = {KC_S, KC_D, COMBO_END}, -// [_COLEMAK] = {KC_R, KC_S, COMBO_END}, -// [_QWOC] = {CM_S, CM_D, COMBO_END}, -// }; - -// combo_t PROGMEM key_combos[COMBO_COUNT] = { -// [CB_SUPERDUPER] = COMBO_ACTION(superduper_combos[_QWERTY]), -// }; - -// volatile bool superduper_enabled = true; - -// const uint16_t empty_combo[] = {COMBO_END}; - -// void set_superduper_key_combos(void); -// void clear_superduper_key_combos(void); +enum process_combo_event { + CB_SUPERDUPER, +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -115,7 +77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_MDIA, KC_NO), KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, LT(_SYMB, KC_NO), - HPR_ESC, KC_A, LT(_SUPER, KC_S), LT(_DUPER, KC_D), KC_F, KC_G, + HPR_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, SFT_PO, LT(_MOUSE, KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), LT(_RAISE, KC_LBRC),KC_LCTL, KC_LALT, GUI_UNDS, LOWER, KC_ENT, KC_LGUI, @@ -156,7 +118,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_MDIA, KC_NO), KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, LT(_SYMB, KC_NO), - HPR_ESC, KC_A, LT(_SUPER,KC_R), LT(_DUPER,KC_S), KC_T, KC_D, + HPR_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, SFT_PO, LT(_MOUSE, KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), LT(_RAISE, KC_LBRC),KC_LCTL, KC_LALT, GUI_UNDS, LOWER, KC_ENT, KC_LGUI, @@ -177,7 +139,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // left hand KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, LT(_MDIA, KC_NO), KC_TAB, CM_Q, CM_W, CM_E, CM_R, CM_T, LT(_SYMB, KC_NO), - HPR_ESC, CM_A, LT(_SUPER,CM_S), LT(_DUPER,CM_D), CM_F, CM_G, + HPR_ESC, CM_A, CM_S, CM_D, CM_F, CM_G, SFT_PO, LT(_MOUSE, CM_Z), CM_X, CM_C, CM_V, CM_B, ALL_T(KC_NO), LT(_RAISE, KC_LBRC),KC_LCTL, KC_LALT, GUI_UNDS, LOWER, KC_ENT, KC_LGUI, @@ -357,47 +319,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______,_______, KC_LSFT ), -// Intermediate keymaps for SuperDuper (Combo keys does not work on Infinity yet) -[_SUPER] = LAYOUT_ergodox( - // left hand - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, DUPER, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, - _______, _______, - _______, - _______,_______,_______, - // right hand - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, - _______, _______, - _______, - _______,_______, _______ - ), -[_DUPER] = LAYOUT_ergodox( - // left hand - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, SUPER, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, - _______, _______, - _______, - _______,_______,_______, - // right hand - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, - _______, _______, - _______, - _______,_______, _______ - ), /* Mouse * @@ -452,7 +373,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * | | | | | | | | | |SDTogg| | | | | | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | | | | | | + * | | | | | | | | | | | BACKLIT| * `----------------------------------' `----------------------------------' * ,-------------. ,-------------. * | | | | | | @@ -477,7 +398,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, KC_DEL, AG_SWAP, QWERTY, COLEMAK, QWOC, PLOVER, _______, _______, SDTOGG, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, + _______, _______, _______, _______, BACKLIT, _______, _______, _______, _______,_______, _______ @@ -569,146 +490,123 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; -void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); -} - bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - persistant_default_layer_set(1UL<<_QWERTY); + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); - // key_combos[CB_SUPERDUPER].keys = superduper_combos[_QWERTY]; - // eeprom_update_byte(EECONFIG_SUPERDUPER_INDEX, _QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - persistant_default_layer_set(1UL<<_COLEMAK); + set_superduper_key_combo_layer(_QWERTY); + } + return false; - // key_combos[CB_SUPERDUPER].keys = superduper_combos[_COLEMAK]; - // eeprom_update_byte(EECONFIG_SUPERDUPER_INDEX, _COLEMAK); - } - return false; - break; - case QWOC: - if (record->event.pressed) { - persistant_default_layer_set(1UL<<_QWOC); + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); - // key_combos[CB_SUPERDUPER].keys = superduper_combos[_QWOC]; - // eeprom_update_byte(EECONFIG_SUPERDUPER_INDEX, _QWOC); - } - return false; - break; - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case SUPER: - if (record->event.pressed) { - layer_on(_SUPER); - update_tri_layer(_SUPER, _DUPER, _SUPERDUPER); - } else { - layer_off(_SUPER); - update_tri_layer(_SUPER, _DUPER, _SUPERDUPER); - } - return false; - break; - case DUPER: - if (record->event.pressed) { - layer_on(_DUPER); - update_tri_layer(_SUPER, _DUPER, _SUPERDUPER); - } else { - layer_off(_DUPER); - update_tri_layer(_SUPER, _DUPER, _SUPERDUPER); - } - return false; - break; - case BACKLIT: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - return false; - break; - case PLOVER: - if (record->event.pressed) { - layer_off(_RAISE); - layer_off(_LOWER); - layer_off(_ADJUST); - layer_on(_PLOVER); - if (!eeconfig_is_enabled()) { - eeconfig_init(); - } - keymap_config.raw = eeconfig_read_keymap(); - keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); - } - return false; - break; - case EXT_PLV: - if (record->event.pressed) { - layer_off(_PLOVER); - } - return false; - break; - case SDTOGG: - if (record->event.pressed) { - // superduper_enabled = !superduper_enabled; + set_superduper_key_combo_layer(_COLEMAK); + } + return false; - // if (superduper_enabled) { - // set_superduper_key_combos(); - // } else { - // clear_superduper_key_combos(); - // } - } - return false; - break; - case EPRM: - if (record->event.pressed) { - eeconfig_init(); - } - return false; - break; - case VRSN: - if (record->event.pressed) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); - } - return false; - break; - case RGB_SLD: - if (record->event.pressed) { - #ifdef RGBLIGHT_ENABLE - rgblight_mode(1); - #endif - } - return false; - break; - } - return true; + case QWOC: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWOC); + + set_superduper_key_combo_layer(_QWOC); + } + return false; + + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + return false; + + case PLOVER: + if (record->event.pressed) { + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + + case EXT_PLV: + if (record->event.pressed) { + layer_off(_PLOVER); + } + return false; + + case SDTOGG: + if (record->event.pressed) { + toggle_superduper_mode(); + } + return false; + + case VRSN: + if (record->event.pressed) { + SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); + } + return false; + + case RGB_SLD: + if (record->event.pressed) { + #ifdef RGBLIGHT_ENABLE + rgblight_mode(1); + #endif + } + return false; + + // Macros + + // 1. Hold for LGUI, tap for Underscore + case GUI_UNDS: + perform_space_cadet(record, KC_LGUI, KC_LSFT, KC_MINS); + return false; + + // 2. Hold for LSHIFT, tap for Parens open + case LSFT_LPRN: + perform_space_cadet(record, KC_LSFT, KC_LSFT, KC_9); + return false; + + // 3. Hold for RSHIFT, tap for Parens close + case RSFT_RPRN: + perform_space_cadet(record, KC_RSFT, KC_RSFT, KC_0); + return false; + + } + return true; } void matrix_init_user(void) { @@ -716,25 +614,9 @@ void matrix_init_user(void) { } void matrix_setup(void) { - // set_superduper_key_combos(); + set_superduper_key_combos(); } -// void set_superduper_key_combos(void) { -// uint8_t layer = eeprom_read_byte(EECONFIG_SUPERDUPER_INDEX); - -// switch (layer) { -// case _QWERTY: -// case _COLEMAK: -// case _QWOC: -// key_combos[CB_SUPERDUPER].keys = superduper_combos[layer]; -// break; -// } -// } - -// void clear_superduper_key_combos(void) { -// key_combos[CB_SUPERDUPER].keys = empty_combo; -// } - void matrix_scan_user(void) { // uint8_t layer = biton32(layer_state); @@ -758,91 +640,17 @@ void matrix_scan_user(void) { // Combos -// void process_combo_event(uint8_t combo_index, bool pressed) { -// if (pressed) { -// switch(combo_index) { -// case CB_SUPERDUPER: -// layer_on(_SUPERDUPER); -// ergodox_board_led_on(); -// break; -// } -// } else { -// layer_off(_SUPERDUPER); -// ergodox_board_led_off(); -// unregister_mods(MOD_BIT(KC_LGUI) | MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); // Sometimes mods are held, unregister them -// } -// } - -// Macros - -const uint16_t PROGMEM fn_actions[] = { - [M_GUI_UNDS] = ACTION_MACRO_TAP(M_GUI_UNDS), - [M_SFT_PO] = ACTION_MACRO_TAP(M_SFT_PO), - [M_SFT_PC] = ACTION_MACRO_TAP(M_SFT_PC), -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - bool tap_not_interrupted = record->tap.count > 0 && !record->tap.interrupted; - - switch(id) { - // Hold for LGUI, tap for Underscore - case M_GUI_UNDS: - if (record->event.pressed) { - m_gui_unds_timer = timer_read(); - - if (!tap_not_interrupted) { - register_mods(MOD_BIT(KC_LGUI)); +void process_combo_event(uint8_t combo_index, bool pressed) { + if (pressed) { + switch(combo_index) { + case CB_SUPERDUPER: + layer_on(_SUPERDUPER); + ergodox_board_led_on(); + break; } - } else { - if (tap_not_interrupted && timer_elapsed(m_gui_unds_timer) < TAPPING_TERM) { - - add_weak_mods(MOD_BIT(KC_LSFT)); - send_keyboard_report(); - register_code(KC_MINS); - unregister_code(KC_MINS); - del_weak_mods(MOD_BIT(KC_LSFT)); - send_keyboard_report(); - record->tap.count = 0; // ad hoc: cancel tap - } else { - unregister_mods(MOD_BIT(KC_LGUI)); - } - } - break; - // Hold for LSHIFT, tap for Parens open - case M_SFT_PO: - if (record->event.pressed) { - m_sft_po_timer = timer_read(); - - if (!tap_not_interrupted) { - register_mods(MOD_BIT(KC_LSFT)); - } - } else { - if (tap_not_interrupted && timer_elapsed(m_sft_po_timer) < TAPPING_TERM) { - record->tap.count = 0; - return MACRO(D(RSFT), T(9), U(RSFT), END); - } else { - unregister_mods(MOD_BIT(KC_LSFT)); - } - } - break; - // Hold for RSHIFT, tap for Parens close - case M_SFT_PC: - if (record->event.pressed) { - m_sft_pc_timer = timer_read(); - - if (!tap_not_interrupted) { - register_mods(MOD_BIT(KC_RSFT)); - } - } else { - if (tap_not_interrupted && timer_elapsed(m_sft_pc_timer) < TAPPING_TERM) { - record->tap.count = 0; - return MACRO(D(LSFT), T(0), U(LSFT), END); - } else { - unregister_mods(MOD_BIT(KC_RSFT)); - } - } - break; - } - return MACRO_NONE; -}; + } else { + layer_off(_SUPERDUPER); + ergodox_board_led_off(); + unregister_mods(MOD_BIT(KC_LGUI) | MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); // Sometimes mods are held, unregister them + } +} diff --git a/keyboards/ergodox_infinity/keymaps/narze/readme.md b/keyboards/ergodox_infinity/keymaps/narze/readme.md index 03a72f1ac34..f24fc05fe05 100644 --- a/keyboards/ergodox_infinity/keymaps/narze/readme.md +++ b/keyboards/ergodox_infinity/keymaps/narze/readme.md @@ -25,21 +25,22 @@ Press `S+D` simultaneously and hold, then... - It can be activated by holding `/` as well, but it's slower since `LT()` uses `TAPPING_TERM` of 200ms but `S+D` uses `COMBO_TERM` of only 20ms (Can be changed within config.h) ## Build instructions -- `cd /path/to/qmk_firmware` +If your environment is ready to build with `make`, don't use docker since it takes 5m+ to compile. +Use the instructions in Ergodox Infinity's readme. -#### Left side - ``` -docker run -e keymap=narze -e subproject=infinity -e keyboard=ergodox --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware +#### Left side (Docker) +``` +cd /path/to/qmk_firmware +util/docker_build.sh ergodox_infinity:narze avr-objcopy -Iihex -Obinary .build/ergodox_infinity_narze.hex .build/ergodox_infinity_narze_left.bin dfu-util --device 1c11:b007 -D .build/ergodox_infinity_narze_left.bin ``` -#### Right side +#### Right side (Docker) +You have to override `usb_args` in order to pass `MASTER=right` to docker using provided build script. ``` -docker run -e keymap=narze -e subproject=infinity -e keyboard=ergodox -e MASTER=right --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware +cd /path/to/qmk_firmware +usb_args="-e MASTER=right" util/docker_build.sh ergodox_infinity:narze avr-objcopy -Iihex -Obinary .build/ergodox_infinity_narze.hex .build/ergodox_infinity_narze_right.bin dfu-util --device 1c11:b007 -D .build/ergodox_infinity_narze_right.bin ``` - -## TODO -- [ ] Make SuperDuper mode fully-compatible in Windows by swapping GUI with Ctrl diff --git a/keyboards/ergodox_infinity/keymaps/narze/rules.mk b/keyboards/ergodox_infinity/keymaps/narze/rules.mk index bd89bb9d989..4bfa4fde264 100644 --- a/keyboards/ergodox_infinity/keymaps/narze/rules.mk +++ b/keyboards/ergodox_infinity/keymaps/narze/rules.mk @@ -15,10 +15,9 @@ MIDI_ENABLE = no # MIDI controls AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -# Combos not working yet -COMBO_ENABLE = no +COMBO_ENABLE = yes diff --git a/keyboards/planck/keymaps/narze/config.h b/keyboards/planck/keymaps/narze/config.h index 19d784b2bef..9c5876a13c3 100644 --- a/keyboards/planck/keymaps/narze/config.h +++ b/keyboards/planck/keymaps/narze/config.h @@ -1,7 +1,4 @@ -#ifndef CONFIG_USER_H -#define CONFIG_USER_H - -#include "../../config.h" +#pragma once /* * MIDI options @@ -26,7 +23,8 @@ /* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ //#define MIDI_TONE_KEYCODE_OCTAVES 2 -#define TAPPING_TERM 200 +#undef TAPPING_TERM +#define TAPPING_TERM 100 #define COMBO_TERM 20 #define COMBO_COUNT 1 @@ -38,4 +36,11 @@ #define MOUSEKEY_DELAY 100 +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PLANCK_SOUND) + + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } #endif diff --git a/keyboards/planck/keymaps/narze/keymap.c b/keyboards/planck/keymaps/narze/keymap.c index 8f6cb062630..24740f92def 100644 --- a/keyboards/planck/keymaps/narze/keymap.c +++ b/keyboards/planck/keymaps/narze/keymap.c @@ -1,89 +1,49 @@ -// This is the canonical layout file for the Quantum project. If you want to add another keyboard, -// this is the style you want to emulate. - -#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example" -#include "planck.h" -#include "action_layer.h" +#include QMK_KEYBOARD_H +#include "narze.h" #ifdef AUDIO_ENABLE - #include "audio.h" + #include "audio.h" #endif -#include "eeconfig.h" #include "keymap_colemak.h" extern keymap_config_t keymap_config; -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. - enum planck_layers { - _QWERTY, - _COLEMAK, - _QWOC, - _LOWER, - _RAISE, - _PLOVER, - _SUPERDUPER, - _MOUSE, - _ADJUST + _QWERTY, + _COLEMAK, + _QWOC, + _LOWER, + _RAISE, + _PLOVER, + _SUPERDUPER, + _MOUSE, + _ADJUST }; enum planck_keycodes { - QWERTY = SAFE_RANGE, - COLEMAK, - QWOC, - PLOVER, - SUPERDUPER, - MOUSE, - LOWER, - RAISE, - BACKLIT, - EXT_PLV, - SDTOGG, // Toggle SuperDuper + QWERTY = SAFE_RANGE, + COLEMAK, + QWOC, + PLOVER, + SUPERDUPER, + MOUSE, + LOWER, + RAISE, + BACKLIT, + EXT_PLV, + SDTOGG, // Toggle SuperDuper + GUI_UNDS, + LSFT_LPRN, }; -enum functions { - M_GUI_UNDS, // Simulate GUI_T(KC_UNDS) - M_SFT_PO, // SFT_T(KC_LPRN) -}; - -// Timer for custom mod tap -static uint16_t m_gui_unds_timer; -static uint16_t m_sft_po_timer; - // Narze : Custom Macros #define HPR_ESC ALL_T(KC_ESC) #define SFT_ENT SFT_T(KC_ENT) -#define SFT_PO F(M_SFT_PO) #define GUI_MINS GUI_T(KC_MINS) -#define GUI_UNDS F(M_GUI_UNDS) - -// Combo : SuperDuper layer from S+D (R+S in Colemak) -#define SUPERDUPER_COMBO_COUNT 3 -#define EECONFIG_SUPERDUPER_INDEX (uint8_t *) 19 enum process_combo_event { - CB_SUPERDUPER, + CB_SUPERDUPER, }; -const uint16_t PROGMEM superduper_combos[SUPERDUPER_COMBO_COUNT][3] = { - [_QWERTY] = {KC_S, KC_D, COMBO_END}, - [_COLEMAK] = {KC_R, KC_S, COMBO_END}, - [_QWOC] = {CM_S, CM_D, COMBO_END}, -}; - -combo_t key_combos[COMBO_COUNT] = { - [CB_SUPERDUPER] = COMBO_ACTION(superduper_combos[_QWERTY]), -}; - -volatile bool superduper_enabled = true; - -const uint16_t empty_combo[] = {COMBO_END}; - -void set_superduper_key_combos(void); -void clear_superduper_key_combos(void); - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Qwerty @@ -97,12 +57,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Rse/[| Ctrl | Alt | GUI/_|Lower | Space |Raise | GUI/-| Alt | Ctrl | Low/]| * `-----------------------------------------------------------------------------------' */ -[_QWERTY] = { - {KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, - {HPR_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {SFT_PO, LT(_MOUSE, KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LT(_SUPERDUPER, KC_SLSH), SFT_ENT}, - {LT(_RAISE, KC_LBRC), KC_LCTL, KC_LALT, GUI_UNDS, LOWER, KC_SPC, KC_SPC, RAISE, GUI_MINS, KC_RALT, KC_RCTL, LT(_LOWER, KC_RBRC)} -}, +[_QWERTY] = LAYOUT_planck_grid( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + HPR_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + LSFT_LPRN, LT(_MOUSE, KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, LT(_SUPERDUPER, KC_SLSH), SFT_ENT, + LT(_RAISE, KC_LBRC), KC_LCTL, KC_LALT, GUI_UNDS, LOWER, KC_SPC, KC_SPC, RAISE, GUI_MINS, KC_RALT, KC_RCTL, LT(_LOWER, KC_RBRC) +), /* Colemak * ,-----------------------------------------------------------------------------------. @@ -115,20 +75,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | Brite| Ctrl | Alt | GUI/_|Lower | Space |Raise | GUI/-| Alt | Ctrl | Low/]| * `-----------------------------------------------------------------------------------' */ -[_COLEMAK] = { - {KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, - {HPR_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, - {SFT_PO, LT(_MOUSE, KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, LT(_SUPERDUPER, KC_SLSH), SFT_ENT}, - {LT(_RAISE, KC_LBRC), KC_LCTL, KC_LALT, GUI_UNDS, LOWER, KC_SPC, KC_SPC, RAISE, GUI_MINS, KC_RALT, KC_RCTL, LT(_LOWER, KC_RBRC)} -}, +[_COLEMAK] = LAYOUT_planck_grid( + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + HPR_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + LSFT_LPRN, LT(_MOUSE, KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, LT(_SUPERDUPER, KC_SLSH), SFT_ENT, + LT(_RAISE, KC_LBRC), KC_LCTL, KC_LALT, GUI_UNDS, LOWER, KC_SPC, KC_SPC, RAISE, GUI_MINS, KC_RALT, KC_RCTL, LT(_LOWER, KC_RBRC) +), /* Qwerty on software Colemak : Useful for gaming with qwerty keymaps! */ -[_QWOC] = { - {KC_TAB, CM_Q, CM_W, CM_E, CM_R, CM_T, CM_Y, CM_U, CM_I, CM_O, CM_P, KC_BSPC}, - {HPR_ESC, CM_A, CM_S, CM_D, CM_F, CM_G, CM_H, CM_J, CM_K, CM_L, CM_SCLN, KC_QUOT}, - {SFT_PO, LT(_MOUSE, CM_Z), CM_X, CM_C, CM_V, CM_B, CM_N, CM_M, CM_COMM, CM_DOT, LT(_SUPERDUPER, CM_SLSH), SFT_ENT}, - {LT(_RAISE, KC_LBRC), KC_LCTL, KC_LALT, GUI_UNDS, LOWER, KC_SPC, KC_SPC, RAISE, GUI_MINS, KC_RALT, KC_RCTL, LT(_LOWER, KC_RBRC)} -}, +[_QWOC] = LAYOUT_planck_grid( + KC_TAB, CM_Q, CM_W, CM_E, CM_R, CM_T, CM_Y, CM_U, CM_I, CM_O, CM_P, KC_BSPC, + HPR_ESC, CM_A, CM_S, CM_D, CM_F, CM_G, CM_H, CM_J, CM_K, CM_L, CM_SCLN, KC_QUOT, + LSFT_LPRN, LT(_MOUSE, CM_Z), CM_X, CM_C, CM_V, CM_B, CM_N, CM_M, CM_COMM, CM_DOT, LT(_SUPERDUPER, CM_SLSH), SFT_ENT, + LT(_RAISE, KC_LBRC), KC_LCTL, KC_LALT, GUI_UNDS, LOWER, KC_SPC, KC_SPC, RAISE, GUI_MINS, KC_RALT, KC_RCTL, LT(_LOWER, KC_RBRC) +), /* Lower * ,-----------------------------------------------------------------------------------. @@ -136,17 +96,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Sft/Ent| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ | | | |Sft/Ent| * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_LOWER] = { - {KC_GRV, 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_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, +[_LOWER] = LAYOUT_planck_grid( + KC_GRV, 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_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),_______,_______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), /* Raise * ,-----------------------------------------------------------------------------------. @@ -154,17 +114,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+-------------+------+------+------+------+------| * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Sft/Ent| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # | | | |Sft/Ent| * |------+------+------+------+------+------+------+------+------+------+------+------| * | | | | | | | | Next | Vol- | Vol+ | Play | * `-----------------------------------------------------------------------------------' */ -[_RAISE] = { - {KC_TILD, 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_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY} -}, +[_RAISE] = LAYOUT_planck_grid( + KC_TILD, 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_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), /* Plover layer (http://opensteno.org) * ,-----------------------------------------------------------------------------------. @@ -178,12 +138,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * `-----------------------------------------------------------------------------------' */ -[_PLOVER] = { - {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, - {XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, - {XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, - {EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} -}, +[_PLOVER] = LAYOUT_planck_grid( + KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 , + XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX +), /* SuperDuper : https://gist.github.com/narze/861e2167784842d38771 * /-----------------------------------------------------------------------------------\ @@ -196,12 +156,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | Shift | | | | | | * \-----------------------------------------------------------------------------------/ */ -[_SUPERDUPER] = { - {_______, _______, _______, _______, _______, _______, _______, _______, S(LGUI(KC_LBRC)), S(LGUI(KC_RBRC)), _______, _______}, - {_______, KC_LALT, _______, _______, KC_BSPC, KC_LGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, KC_LSFT, KC_LSFT, _______, _______, _______, _______, _______} -}, +[_SUPERDUPER] = LAYOUT_planck_grid( + _______, _______, _______, _______, _______, _______, _______, _______, S(LGUI(KC_LBRC)), S(LGUI(KC_RBRC)), _______, _______, + _______, KC_LALT, _______, _______, KC_BSPC, KC_LGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, KC_LSFT, KC_LSFT, _______, _______, _______, _______, _______ +), /* Mouse * /-----------------------------------------------------------------------------------\ @@ -214,12 +174,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | M2 | LeftClick | M2 | | | | | * \-----------------------------------------------------------------------------------/ */ -[_MOUSE] = { - {_______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, _______, _______, KC_WH_U, KC_WH_D, _______, _______}, - {_______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______}, - {_______, _______, _______, _______, _______, KC_BTN3, KC_BTN3, _______, _______, _______, _______, _______}, - {_______, _______, _______, _______, KC_BTN2, KC_BTN1, KC_BTN1, KC_BTN2, _______, _______, _______, _______} -}, +[_MOUSE] = LAYOUT_planck_grid( + _______, _______, KC_WH_U, KC_MS_U, KC_WH_D, _______, _______, _______, KC_WH_U, KC_WH_D, _______, _______, + _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______, + _______, _______, _______, _______, _______, KC_BTN3, KC_BTN3, _______, _______, _______, _______, _______, + _______, _______, _______, _______, KC_BTN2, KC_BTN1, KC_BTN1, KC_BTN2, _______, _______, _______, _______ +), /* Adjust (Lower + Raise) * ,-----------------------------------------------------------------------------------. @@ -232,290 +192,161 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | | | | | | | | | | * `-----------------------------------------------------------------------------------' */ -[_ADJUST] = { - {_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, - {_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, QWOC, PLOVER, _______}, - {_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, SDTOGG, _______, _______, _______, _______}, - {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} -} +[_ADJUST] = LAYOUT_planck_grid( + _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, + _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, QWOC, PLOVER, _______, + _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, SDTOGG, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BACKLIT +) }; #ifdef AUDIO_ENABLE - float tone_startup[][2] = SONG(STARTUP_SOUND); - float tone_qwerty[][2] = SONG(QWERTY_SOUND); - float tone_qwoc[][2] = SONG(DVORAK_SOUND); - float tone_colemak[][2] = SONG(COLEMAK_SOUND); - float tone_plover[][2] = SONG(PLOVER_SOUND); - float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); - float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); - float tone_coin[][2] = SONG(COIN_SOUND); - float tone_sonic_ring[][2] = SONG(SONIC_RING); - - float tone_goodbye[][2] = SONG(GOODBYE_SOUND); - float tone_superduper[][2] = SONG(SUPER_DUPER_SOUND); + float tone_plover[][2] = SONG(PLOVER_SOUND); + float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); + float tone_coin[][2] = SONG(VIOLIN_SOUND); + float tone_goodbye[][2] = SONG(GOODBYE_SOUND); #endif -void persistant_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); -} - bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case QWERTY: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_qwerty, false, 0); - #endif - persistant_default_layer_set(1UL<<_QWERTY); + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); - key_combos[CB_SUPERDUPER].keys = superduper_combos[_QWERTY]; - eeprom_update_byte(EECONFIG_SUPERDUPER_INDEX, _QWERTY); - } - return false; - break; - case COLEMAK: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_colemak, false, 0); - #endif - persistant_default_layer_set(1UL<<_COLEMAK); + set_superduper_key_combo_layer(_QWERTY); + } + return false; - key_combos[CB_SUPERDUPER].keys = superduper_combos[_COLEMAK]; - eeprom_update_byte(EECONFIG_SUPERDUPER_INDEX, _COLEMAK); - } - return false; - break; - case QWOC: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_qwoc, false, 0); - #endif - persistant_default_layer_set(1UL<<_QWOC); + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); - key_combos[CB_SUPERDUPER].keys = superduper_combos[_QWOC]; - eeprom_update_byte(EECONFIG_SUPERDUPER_INDEX, _QWOC); - } - return false; - break; - case LOWER: - if (record->event.pressed) { - layer_on(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_LOWER); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case RAISE: - if (record->event.pressed) { - layer_on(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } else { - layer_off(_RAISE); - update_tri_layer(_LOWER, _RAISE, _ADJUST); - } - return false; - break; - case BACKLIT: - if (record->event.pressed) { - register_code(KC_RSFT); - #ifdef BACKLIGHT_ENABLE - backlight_step(); - #endif - } else { - unregister_code(KC_RSFT); - } - return false; - break; - case PLOVER: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - stop_all_notes(); - PLAY_NOTE_ARRAY(tone_plover, false, 0); - #endif - layer_off(_RAISE); - layer_off(_LOWER); - layer_off(_ADJUST); - layer_on(_PLOVER); - if (!eeconfig_is_enabled()) { - eeconfig_init(); - } - keymap_config.raw = eeconfig_read_keymap(); - keymap_config.nkro = 1; - eeconfig_update_keymap(keymap_config.raw); - } - return false; - break; - case EXT_PLV: - if (record->event.pressed) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); - #endif - layer_off(_PLOVER); - } - return false; - break; - case SDTOGG: - if (record->event.pressed) { - superduper_enabled = !superduper_enabled; + set_superduper_key_combo_layer(_COLEMAK); + } + return false; - if (superduper_enabled) { - set_superduper_key_combos(); + case QWOC: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWOC); - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_sonic_ring, false, 0); - #endif - } else { - clear_superduper_key_combos(); + set_superduper_key_combo_layer(_QWOC); + } + return false; - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_coin, false, 0); - #endif - } - } - return false; - break; - } - return true; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + + case BACKLIT: + if (record->event.pressed) { + register_code(KC_RSFT); + #ifdef BACKLIGHT_ENABLE + backlight_step(); + #endif + } else { + unregister_code(KC_RSFT); + } + return false; + + case PLOVER: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + stop_all_notes(); + PLAY_SONG(tone_plover); + #endif + layer_off(_RAISE); + layer_off(_LOWER); + layer_off(_ADJUST); + layer_on(_PLOVER); + if (!eeconfig_is_enabled()) { + eeconfig_init(); + } + keymap_config.raw = eeconfig_read_keymap(); + keymap_config.nkro = 1; + eeconfig_update_keymap(keymap_config.raw); + } + return false; + + case EXT_PLV: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(tone_plover_gb); + #endif + layer_off(_PLOVER); + } + return false; + + case SDTOGG: + if (record->event.pressed) { + bool enabled = toggle_superduper_mode(); + + #ifdef AUDIO_ENABLE + if (enabled) { + PLAY_SONG(tone_coin); + } else { + PLAY_SONG(tone_goodbye); + } + #endif + } + return false; + + // Macros + + // 1. Hold for LGUI, tap for Underscore + case GUI_UNDS: + perform_space_cadet(record, KC_LGUI, KC_LSFT, KC_MINS); + return false; + + // 2. Hold for LSHIFT, tap for Parens open + case LSFT_LPRN: + perform_space_cadet(record, KC_LSFT, KC_LSFT, KC_9); + return false; + + default: + return true; + } + return true; } void matrix_init_user(void) { - #ifdef AUDIO_ENABLE - startup_user(); - #endif + #ifdef AUDIO_ENABLE + startup_user(); + #endif } void matrix_setup(void) { - set_superduper_key_combos(); -} - -void set_superduper_key_combos(void) { - uint8_t layer = eeprom_read_byte(EECONFIG_SUPERDUPER_INDEX); - - switch (layer) { - case _QWERTY: - case _COLEMAK: - case _QWOC: - key_combos[CB_SUPERDUPER].keys = superduper_combos[layer]; - break; - } -} - -void clear_superduper_key_combos(void) { - key_combos[CB_SUPERDUPER].keys = empty_combo; + set_superduper_key_combos(); } void matrix_scan_user(void) { } -#ifdef AUDIO_ENABLE - -void startup_user() -{ - _delay_ms(20); // gets rid of tick - PLAY_NOTE_ARRAY(tone_startup, false, 0); -} - -void shutdown_user() -{ - PLAY_NOTE_ARRAY(tone_goodbye, false, 0); - _delay_ms(150); - stop_all_notes(); -} - -void music_on_user(void) -{ - music_scale_user(); -} - -void music_scale_user(void) -{ - PLAY_NOTE_ARRAY(music_scale, false, 0); -} - -#endif - -// Combos - void process_combo_event(uint8_t combo_index, bool pressed) { - if (pressed) { - switch(combo_index) { - case CB_SUPERDUPER: - layer_on(_SUPERDUPER); - - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_superduper, false, 0); - #endif - break; + if (pressed) { + switch(combo_index) { + case CB_SUPERDUPER: + layer_on(_SUPERDUPER); + break; + } + } else { + layer_off(_SUPERDUPER); + unregister_mods(MOD_BIT(KC_LGUI) | MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); // Sometimes mods are held, unregister them } - } else { - layer_off(_SUPERDUPER); - unregister_mods(MOD_BIT(KC_LGUI) | MOD_BIT(KC_LCTL) | MOD_BIT(KC_LALT)); // Sometimes mods are held, unregister them - } } - -// Macros - -const uint16_t PROGMEM fn_actions[] = { - [M_GUI_UNDS] = ACTION_MACRO_TAP(M_GUI_UNDS), - [M_SFT_PO] = ACTION_MACRO_TAP(M_SFT_PO), -}; - -const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) -{ - bool tap_not_interrupted = record->tap.count > 0 && !record->tap.interrupted; - - switch(id) { - // Hold for LGUI, tap for Underscore - case M_GUI_UNDS: - if (record->event.pressed) { - m_gui_unds_timer = timer_read(); - - if (!tap_not_interrupted) { - register_mods(MOD_BIT(KC_LGUI)); - } - } else { - if (tap_not_interrupted && timer_elapsed(m_gui_unds_timer) < TAPPING_TERM) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_superduper, false, 0); - #endif - - add_weak_mods(MOD_BIT(KC_LSFT)); - send_keyboard_report(); - register_code(KC_MINS); - unregister_code(KC_MINS); - del_weak_mods(MOD_BIT(KC_LSFT)); - send_keyboard_report(); - record->tap.count = 0; // ad hoc: cancel tap - } else { - unregister_mods(MOD_BIT(KC_LGUI)); - } - } - break; - // Hold for LSHIFT, tap for Parens open - case M_SFT_PO: - if (record->event.pressed) { - m_sft_po_timer = timer_read(); - - if (!tap_not_interrupted) { - register_mods(MOD_BIT(KC_LSFT)); - } - } else { - if (tap_not_interrupted && timer_elapsed(m_sft_po_timer) < TAPPING_TERM) { - #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_superduper, false, 0); - #endif - - record->tap.count = 0; - return MACRO(D(RSFT), T(9), U(RSFT), END); - } else { - unregister_mods(MOD_BIT(KC_LSFT)); - } - } - break; - } - return MACRO_NONE; -}; diff --git a/keyboards/planck/keymaps/narze/readme.md b/keyboards/planck/keymaps/narze/readme.md index 6824251e880..737171bca94 100644 --- a/keyboards/planck/keymaps/narze/readme.md +++ b/keyboards/planck/keymaps/narze/readme.md @@ -22,10 +22,11 @@ Press `S+D` simultaneously and hold, then... ## Build instructions - `cd /path/to/qmk_firmware` -- `docker run -e keymap=narze -e subproject=rev4 -e keyboard=planck --rm -v $('pwd'):/qmk:rw edasque/qmk_firmware` -- `dfu-programmer atmega32u4 erase && dfu-programmer atmega32u4 flash .build/planck_rev4_narze.hex` - -## TODO -- [] Make SuperDuper mode fully-compatible in Windows by swapping GUI with Ctrl - - +- Ensure latest libraries are loaded `make git-submodule` +- Build with docker + - Planck Rev. 4 : `util/docker_build.sh planck/rev4:narze` + - Planck Light : `util/docker_build.sh planck/light:narze` +- Flash hex file + - Using dfu-programmer `dfu-programmer atmega32u4 erase --force && dfu-programmer atmega32u4 flash .build/planck_rev4_narze.hex` + - For Planck Light change the target microcontroller `dfu-programmer at90usb1286 erase --force && dfu-programmer at90usb1286 flash .build/planck_light_narze.hex` + - Use [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) diff --git a/keyboards/planck/keymaps/narze/rules.mk b/keyboards/planck/keymaps/narze/rules.mk index 286a2ffdc10..9b56dc18f9a 100644 --- a/keyboards/planck/keymaps/narze/rules.mk +++ b/keyboards/planck/keymaps/narze/rules.mk @@ -1,23 +1,25 @@ -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) EXTRAKEY_ENABLE = yes # Audio control and System control(+450) CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = yes # Commands for debug and configuration -NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality -MIDI_ENABLE = no # MIDI controls -AUDIO_ENABLE = no # Audio output on port C6 UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +AUDIO_ENABLE = yes # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend COMBO_ENABLE = yes + +ifeq ($(strip $(KEYBOARD)), planck/rev4) + MOUSEKEY_ENABLE = no # Mouse keys(+4700) + MIDI_ENABLE = no +else + MOUSEKEY_ENABLE = yes + MIDI_ENABLE = yes +endif diff --git a/users/narze/narze.c b/users/narze/narze.c new file mode 100644 index 00000000000..6ec30344926 --- /dev/null +++ b/users/narze/narze.c @@ -0,0 +1 @@ +#include "narze.h" diff --git a/users/narze/narze.h b/users/narze/narze.h new file mode 100644 index 00000000000..036539a9cd9 --- /dev/null +++ b/users/narze/narze.h @@ -0,0 +1,9 @@ +#pragma once + +#include "quantum.h" +#include "eeconfig.h" +#include "keymap_colemak.h" + +#ifdef COMBO_ENABLE +# include "superduper.h" +#endif diff --git a/users/narze/readme.md b/users/narze/readme.md new file mode 100644 index 00000000000..124b84e6be1 --- /dev/null +++ b/users/narze/readme.md @@ -0,0 +1,18 @@ +# TODO +- [ ] Make SuperDuper mode fully-compatible in Windows by swapping GUI with Ctrl + +# LICENSE +Copyright 2019 Manassarn Manoonchai manassarn@gmail.com @narze + +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 . diff --git a/users/narze/rules.mk b/users/narze/rules.mk new file mode 100644 index 00000000000..565a4a7a63d --- /dev/null +++ b/users/narze/rules.mk @@ -0,0 +1,5 @@ +SRC += narze.c + +ifeq ($(strip $(COMBO_ENABLE)), yes) + SRC += superduper.c +endif diff --git a/users/narze/superduper.c b/users/narze/superduper.c new file mode 100644 index 00000000000..b497ce2e68e --- /dev/null +++ b/users/narze/superduper.c @@ -0,0 +1,66 @@ +#include "superduper.h" +#include "eeconfig.h" +#include "eeprom.h" +#include "keymap_colemak.h" + +// SuperDuper + +#define SUPERDUPER_COMBO_COUNT 3 +#define EECONFIG_SUPERDUPER_INDEX (uint8_t *) 19 + +enum process_combo_event { + CB_SUPERDUPER, +}; + +enum supported_layers { + _QWERTY, + _COLEMAK, + _QWOC +}; + +const uint16_t PROGMEM superduper_combos[SUPERDUPER_COMBO_COUNT][3] = { + [_QWERTY] = {KC_S, KC_D, COMBO_END}, + [_COLEMAK] = {KC_R, KC_S, COMBO_END}, + [_QWOC] = {CM_S, CM_D, COMBO_END}, +}; + +combo_t key_combos[COMBO_COUNT] = { + [CB_SUPERDUPER] = COMBO_ACTION(superduper_combos[_QWERTY]), +}; + +volatile bool superduper_enabled = true; + +const uint16_t PROGMEM empty_combo[] = {COMBO_END}; + +bool toggle_superduper_mode(void) { + superduper_enabled = !superduper_enabled; + + if (superduper_enabled) { + set_superduper_key_combos(); + } else { + clear_superduper_key_combos(); + } + + return superduper_enabled; +} + +void set_superduper_key_combo_layer(uint16_t layer) { + key_combos[CB_SUPERDUPER].keys = superduper_combos[layer]; + eeprom_update_byte(EECONFIG_SUPERDUPER_INDEX, layer); +} + +void set_superduper_key_combos(void) { + uint8_t layer = eeprom_read_byte(EECONFIG_SUPERDUPER_INDEX); + + switch (layer) { + case _QWERTY: + case _COLEMAK: + case _QWOC: + key_combos[CB_SUPERDUPER].keys = superduper_combos[layer]; + break; + } +} + +void clear_superduper_key_combos(void) { + key_combos[CB_SUPERDUPER].keys = empty_combo; +} diff --git a/users/narze/superduper.h b/users/narze/superduper.h new file mode 100644 index 00000000000..f8df2e1afbf --- /dev/null +++ b/users/narze/superduper.h @@ -0,0 +1,7 @@ +#pragma once +#include "narze.h" + +bool toggle_superduper_mode(void); +void set_superduper_key_combo_layer(uint16_t layer); +void set_superduper_key_combos(void); +void clear_superduper_key_combos(void); From 91bd2117df4cc4d2be6c840103614f2245e54bd1 Mon Sep 17 00:00:00 2001 From: fauxpark Date: Sun, 8 Sep 2019 01:12:46 +1000 Subject: [PATCH 25/36] Banish some more magic numbers (#6662) --- tmk_core/common/avr/bootloader.c | 11 +++-------- tmk_core/common/avr/timer.c | 21 ++++++++++----------- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/tmk_core/common/avr/bootloader.c b/tmk_core/common/avr/bootloader.c index 5f9ecc51018..ca9746f327d 100644 --- a/tmk_core/common/avr/bootloader.c +++ b/tmk_core/common/avr/bootloader.c @@ -59,11 +59,6 @@ uint16_t bootloader_start; #endif -#define BOOT_SIZE_256 0b110 -#define BOOT_SIZE_512 0b100 -#define BOOT_SIZE_1024 0b010 -#define BOOT_SIZE_2048 0b000 - // compatibility between ATMega8 and ATMega88 #if !defined(MCUCSR) # if defined(MCUSR) @@ -86,11 +81,11 @@ void bootloader_jump(void) { #if !defined(BOOTLOADER_SIZE) uint8_t high_fuse = boot_lock_fuse_bits_get(GET_HIGH_FUSE_BITS); - if (high_fuse & BOOT_SIZE_256) { + if (high_fuse & ~(FUSE_BOOTSZ0 & FUSE_BOOTSZ1)) { bootloader_start = (FLASH_SIZE - 512) >> 1; - } else if (high_fuse & BOOT_SIZE_512) { + } else if (high_fuse & ~(FUSE_BOOTSZ1)) { bootloader_start = (FLASH_SIZE - 1024) >> 1; - } else if (high_fuse & BOOT_SIZE_1024) { + } else if (high_fuse & ~(FUSE_BOOTSZ0)) { bootloader_start = (FLASH_SIZE - 2048) >> 1; } else { bootloader_start = (FLASH_SIZE - 4096) >> 1; diff --git a/tmk_core/common/avr/timer.c b/tmk_core/common/avr/timer.c index 63ec549dff1..88fa1dfa65f 100644 --- a/tmk_core/common/avr/timer.c +++ b/tmk_core/common/avr/timer.c @@ -32,33 +32,32 @@ volatile uint32_t timer_count; */ void timer_init(void) { #if TIMER_PRESCALER == 1 - uint8_t prescaler = 0x01; + uint8_t prescaler = _BV(CS00); #elif TIMER_PRESCALER == 8 - uint8_t prescaler = 0x02; + uint8_t prescaler = _BV(CS01); #elif TIMER_PRESCALER == 64 - uint8_t prescaler = 0x03; + uint8_t prescaler = _BV(CS00) | _BV(CS01); #elif TIMER_PRESCALER == 256 - uint8_t prescaler = 0x04; + uint8_t prescaler = _BV(CS02); #elif TIMER_PRESCALER == 1024 - uint8_t prescaler = 0x05; + uint8_t prescaler = _BV(CS00) | _BV(CS02); #else -# error "Timer prescaler value is NOT vaild." +# error "Timer prescaler value is not valid" #endif #ifndef __AVR_ATmega32A__ // Timer0 CTC mode - TCCR0A = 0x02; - + TCCR0A = _BV(WGM01); TCCR0B = prescaler; OCR0A = TIMER_RAW_TOP; - TIMSK0 = (1 << OCIE0A); + TIMSK0 = _BV(OCIE0A); #else // Timer0 CTC mode - TCCR0 = (1 << WGM01) | prescaler; + TCCR0 = _BV(WGM01) | prescaler; OCR0 = TIMER_RAW_TOP; - TIMSK = (1 << OCIE0); + TIMSK = _BV(OCIE0); #endif } From 0d94730da05c9ba1375357cebedd54648463b0b8 Mon Sep 17 00:00:00 2001 From: fauxpark Date: Sun, 8 Sep 2019 01:18:05 +1000 Subject: [PATCH 26/36] Adafruit BLE: Set SPI2X bit only when F_CPU is 8MHz (#6671) --- tmk_core/protocol/lufa/adafruit_ble.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tmk_core/protocol/lufa/adafruit_ble.cpp b/tmk_core/protocol/lufa/adafruit_ble.cpp index 1d8ae1038ba..505794a80c9 100644 --- a/tmk_core/protocol/lufa/adafruit_ble.cpp +++ b/tmk_core/protocol/lufa/adafruit_ble.cpp @@ -151,9 +151,10 @@ static struct SPI_Settings spi; // Initialize 4Mhz MSBFIRST MODE0 void SPI_init(struct SPI_Settings *spi) { spi->spcr = _BV(SPE) | _BV(MSTR); +#if F_CPU == 8000000 + // For MCUs running at 8MHz (such as Feather 32U4, or 3.3V Pro Micros) we set the SPI doublespeed bit spi->spsr = _BV(SPI2X); - - static_assert(SpiBusSpeed == F_CPU / 2, "hard coded at 4Mhz"); +#endif ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { // Ensure that SS is OUTPUT High From 490a13a02e0e247d07644a64f6df7e4ec9a628a3 Mon Sep 17 00:00:00 2001 From: fauxpark Date: Sun, 8 Sep 2019 01:24:19 +1000 Subject: [PATCH 27/36] Add 328P to mcu_selection.mk (#6682) --- keyboards/gingham/rules.mk | 47 ----------------------------- keyboards/handwired/hnah40/rules.mk | 39 ------------------------ keyboards/plaid/rules.mk | 43 -------------------------- quantum/mcu_selection.mk | 15 +++++++++ 4 files changed, 15 insertions(+), 129 deletions(-) diff --git a/keyboards/gingham/rules.mk b/keyboards/gingham/rules.mk index 83f424ba032..9afbd09644a 100644 --- a/keyboards/gingham/rules.mk +++ b/keyboards/gingham/rules.mk @@ -3,42 +3,6 @@ SRC = matrix.c \ # MCU name MCU = atmega328p -PROTOCOL = VUSB - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # Bootloader selection # Teensy halfkay @@ -51,14 +15,6 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # This uses usbaspbootloader BOOTLOADER = USBasp -# If you don't know the bootloader type, then you can specify the -# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 - # Flash program via avrdude, but default command is not suitable. # You can use plaid:default:program PROGRAM_CMD = avrdude -c usbasp -p m328p -U flash:w:$(BUILD_DIR)/$(TARGET).hex @@ -87,7 +43,4 @@ AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) -# unsupported features for now -NO_UART = yes -NO_SUSPEND_POWER_DOWN = yes CUSTOM_MATRIX = yes diff --git a/keyboards/handwired/hnah40/rules.mk b/keyboards/handwired/hnah40/rules.mk index efd11bfa5c3..341b8d03d90 100644 --- a/keyboards/handwired/hnah40/rules.mk +++ b/keyboards/handwired/hnah40/rules.mk @@ -1,42 +1,5 @@ # MCU name MCU = atmega328p -PROTOCOL = VUSB - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT BOOTLOADER = bootloadHID @@ -69,5 +32,3 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) -NO_UART = yes -NO_SUSPEND_POWER_DOWN = yes \ No newline at end of file diff --git a/keyboards/plaid/rules.mk b/keyboards/plaid/rules.mk index c54b1ea5849..755a4f89946 100644 --- a/keyboards/plaid/rules.mk +++ b/keyboards/plaid/rules.mk @@ -1,43 +1,5 @@ # MCU name MCU = atmega328p -PROTOCOL = VUSB - -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - # Bootloader selection # Teensy halfkay @@ -91,10 +53,5 @@ AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) -# unsupported features for now -NO_UART = yes -NO_SUSPEND_POWER_DOWN = yes - - LAYOUTS = ortho_4x12 planck_mit LAYOUTS_HAS_RGB = no diff --git a/quantum/mcu_selection.mk b/quantum/mcu_selection.mk index 1af0123e2bc..5102010c7bd 100644 --- a/quantum/mcu_selection.mk +++ b/quantum/mcu_selection.mk @@ -91,3 +91,18 @@ ifneq (,$(filter $(MCU),atmega32a)) # Programming options PROGRAM_CMD ?= ./util/atmega32a_program.py $(TARGET).hex endif + +ifneq (,$(filter $(MCU),atmega328p)) + PROTOCOL = VUSB + + # Processor frequency. + # This will define a symbol, F_CPU, in all source code files equal to the + # processor frequency in Hz. You can then use this symbol in your source code to + # calculate timings. Do NOT tack on a 'UL' at the end, this will be done + # automatically to create a 32-bit value in your source code. + F_CPU ?= 16000000 + + # unsupported features for now + NO_UART ?= yes + NO_SUSPEND_POWER_DOWN ?= yes +endif From 79a6c6eda50671b28f32dfb73728fcc1671fe4fc Mon Sep 17 00:00:00 2001 From: Nshan Petrosyan <38868907+nshanpetrosyan@users.noreply.github.com> Date: Sat, 7 Sep 2019 08:25:25 -0700 Subject: [PATCH 28/36] [Keymap] Update nshanpetrosyan keymap (#6683) * Update keymap.c Additional functionality added to layers. * Error fix Fixed missing key in layer 5, fixed brightness keys with universal codes, made code more readable. * fix missing commas fixed missing commas on line 19 and line 23 * fix Indicator LED sticking on RGB off toggle. fixes issue: LED indicators stay on when toggling RGB off --- .../dztech/dz60rgb/keymaps/mekanist/keymap.c | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c b/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c index 11afb22d9b0..a7c63605684 100644 --- a/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c +++ b/keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c @@ -8,42 +8,42 @@ #define _LAYER6 6 #define _LAYER7 7 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT( /* Base */ - KC_GESC, 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_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_BSLASH, \ - CTL_T(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, RSFT_T(KC_SLSH), KC_UP, LT(2, KC_DEL), \ - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, MO(1) , KC_LEFT, KC_DOWN, KC_RIGHT), + [_LAYER0] = LAYOUT( /* MAC */ + KC_GESC, 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_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, + CTL_T(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, RSFT_T(KC_SLSH), KC_UP, LT(2, KC_DEL), + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(1) , KC_LEFT, KC_DOWN, KC_RGHT), [_LAYER1] = LAYOUT( /* FN */ - TO(3), 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_DEL , \ - KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET , \ - KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDOWN, KC_VOLU, KC_MUTE, \ - KC_TRNS, KC_TRNS, KC_TRNS, TO(4), KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), + TO(3), 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_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, LGUI(LSFT(KC_5)), KC_SLCK, KC_PAUS, _______, _______, RESET, + _______, KC_VOLU, KC_VOLD, KC_MUTE, KC_EJCT, _______, KC_ASTR, KC_PSLS, KC_HOME, KC_PGUP, _______, _______, _______, _______, + _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, MO(5), KC_MPLY, _______, + _______, _______, _______, TO(4), _______, _______, KC_MPRV, KC_MSTP, KC_MFFD), [_LAYER2] = LAYOUT( /* LIGHT */ - KC_TRNS, 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_DEL , \ - KC_TRNS, RGB_TOG, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, RESET , \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, 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), + RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, _______, _______, _______, _______, _______, + _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, RGB_MOD, _______, + _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_RMOD, RGB_SPI), [_LAYER3] = LAYOUT( /* NUMPAD */ - KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_TRNS, \ - KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_TRNS, KC_TRNS, TO(0), \ - KC_TRNS, KC_P4, KC_P5, KC_P6, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_TRNS, KC_PENT, \ - KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_TRNS, KC_TRNS, \ - KC_TRNS, KC_P0, KC_PDOT, KC_PENT, KC_P0, KC_PDOT, KC_TRNS, KC_TRNS, KC_TRNS), - [_LAYER4] = LAYOUT( /* MAC */ - KC_GESC, 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_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_BSLASH, \ - CTL_T(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, RSFT_T(KC_SLSH), KC_UP, LT(2, KC_DEL), \ + KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, _______, _______, _______, _______, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, _______, + _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, TO(0), + _______, KC_P4, KC_P5, KC_P6, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, KC_PENT, + _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, + _______, KC_P0, KC_PDOT, KC_ENT, KC_P0, KC_PDOT, _______, _______, _______), + [_LAYER4] = LAYOUT( /* WIN */ + KC_GESC, 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_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_BSLASH, + CTL_T(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, RSFT_T(KC_SLSH), KC_UP, LT(2, KC_DEL), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(5) , KC_LEFT, KC_DOWN, KC_RIGHT), [_LAYER5] = LAYOUT( /* FN */ - TO(3), 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_DEL , \ - KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET , \ - KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, \ - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDOWN, KC_VOLU, KC_MUTE, \ - KC_TRNS, KC_TRNS, KC_TRNS, TO(0), KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), + _______, KC_BRID, KC_BRIU, LCTL(KC_UP), LSFT(KC_F12), KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, _______, KC_UP, _______, _______, _______, KC_CALC, _______, KC_INS, _______, KC_PSCR, KC_SLCK, KC_PAUS, RESET, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDOWN, KC_VOLU, KC_MUTE, + _______, _______, _______, TO(0), _______, _______, KC_MPRV, KC_VOLD, KC_MNXT), } ; @@ -61,7 +61,7 @@ void rgb_matrix_indicators_user(void) { uint8_t this_led = host_keyboard_leds(); - if (!g_suspend_state) { + if (!g_suspend_state && rgb_matrix_config.enable) { switch (biton32(layer_state)) { case _LAYER1: rgb_matrix_layer_helper(0xFF, 0x00, 0x00); break; From e88f80a891138d40acddcdd2b3dface8b2a57404 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sat, 7 Sep 2019 08:57:30 -0700 Subject: [PATCH 29/36] [Keymap] Big Drashna code update (#6639) * Add a quefrency keymap * New Alt-ernate layouts * Enable Per Key Tapping Term to preserve sanity * Use underglow and mod lights for status on Corne * Update the drashna_ms keymap for quefrency * Disable Audio since there isn't enough space * Update KC_MAKE to ues :flash target * Cleanup ergodox layout * Enable i2c support for Iris * Add keymap support for CG_SWAP * Enable RGB Matrix Shutdown mode * enable heatmap * Update gitlab CI to install python3 * Remove game macros These are no longer needed, and haven't been used in ages * Cleanup planck layout * Add RGB Matrix fun and RGB cleanup * Add keycode and config for RGB Matrix idle animations * Clean up rgb idle animation code * Add rgb idle keycode to keymaps * Fix issues with rgb matrix idle animation * Fix some handling for idle animation * Reduce idle animation timeout to 15s to be more reasonable * fix up rgb stuff * Fix isses with rgb functions not being called for matrix * Use custom EEPROM Magic Number so testing is easier * Extend Default Layer macro to support a lot more layers * Fix bjohnson macropad * Adjust KC_MAKE to process mods for more consistent behavior * Fix up rgb stuff on corne * Corne OLED Overhaul * Fixes a number of issues with weirdness. * Fixes issues with keylogger (should be more reliable now) * Modulaize the OLED render sections * Rewrite layer display code * Update URL for Font Editor Due to odd issues, I ended up rewriting from scratch. And using PROGMEM versions, since I think I was getting memory overflows. * Update polling rate on all keebs * Fix planck ez layout config * Remove macros from Viterbi --- keyboards/crkbd/keymaps/drashna/glcdfont.c | 4 +- keyboards/crkbd/keymaps/drashna/keymap.c | 337 ++++++++---------- keyboards/gergo/keymaps/drashna/keymap.c | 2 +- .../keebio/iris/keymaps/drashna/config.h | 4 +- .../keebio/iris/keymaps/drashna/keymap.c | 2 +- .../keebio/iris/keymaps/drashna/rules.mk | 3 +- .../quefrency/keymaps/drashna_ms/config.h | 39 ++ .../quefrency/keymaps/drashna_ms/keymap.c | 43 +++ .../quefrency/keymaps/drashna_ms/rules.mk | 5 + .../keebio/viterbi/keymaps/drashna/keymap.c | 14 +- .../keebio/viterbi/keymaps/drashna/rules.mk | 1 - keyboards/orthodox/keymaps/drashna/keymap.c | 2 +- keyboards/orthodox/keymaps/drashna/rules.mk | 1 - layouts/community/ergodox/drashna/config.h | 2 + layouts/community/ergodox/drashna/keymap.c | 21 +- layouts/community/ergodox/drashna/rules.mk | 1 - .../community/numpad_5x6/bjohnson/config.h | 2 +- .../community/numpad_5x6/bjohnson/keymap.c | 7 +- layouts/community/numpad_5x6/drashna/rules.mk | 1 - layouts/community/ortho_4x12/drashna/config.h | 1 + layouts/community/ortho_4x12/drashna/keymap.c | 42 ++- layouts/community/ortho_4x12/drashna/rules.mk | 3 - layouts/community/ortho_5x12/drashna/keymap.c | 7 +- layouts/community/ortho_5x12/drashna/rules.mk | 3 - users/drashna/.gitlab-ci.yml | 2 +- users/drashna/config.h | 6 + users/drashna/drashna.c | 37 +- users/drashna/drashna.h | 16 +- users/drashna/process_records.c | 63 +--- users/drashna/process_records.h | 17 +- users/drashna/rgb_stuff.c | 97 ++++- users/drashna/rgb_stuff.h | 15 +- users/drashna/rules.mk | 4 - users/drashna/wrappers.h | 4 +- 34 files changed, 440 insertions(+), 368 deletions(-) create mode 100644 keyboards/keebio/quefrency/keymaps/drashna_ms/config.h create mode 100644 keyboards/keebio/quefrency/keymaps/drashna_ms/keymap.c create mode 100644 keyboards/keebio/quefrency/keymaps/drashna_ms/rules.mk diff --git a/keyboards/crkbd/keymaps/drashna/glcdfont.c b/keyboards/crkbd/keymaps/drashna/glcdfont.c index 28521b42892..998b5c408ae 100644 --- a/keyboards/crkbd/keymaps/drashna/glcdfont.c +++ b/keyboards/crkbd/keymaps/drashna/glcdfont.c @@ -9,8 +9,8 @@ #define PROGMEM #endif -// Helidox 8x6 font with QMK Firmware Logo -// Online editor: http://teripom.x0.com/ +// Corne 8x6 font with QMK Firmware Logo +// Online editor: https://helixfonteditor.netlify.com/ const unsigned char font[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, diff --git a/keyboards/crkbd/keymaps/drashna/keymap.c b/keyboards/crkbd/keymaps/drashna/keymap.c index 693c53b1675..36a5f5dd337 100644 --- a/keyboards/crkbd/keymaps/drashna/keymap.c +++ b/keyboards/crkbd/keymaps/drashna/keymap.c @@ -8,6 +8,14 @@ extern uint8_t is_master; // Following line allows macro to read current RGB settings extern rgblight_config_t rgblight_config; #endif +#ifdef OLED_DRIVER_ENABLE +static uint32_t oled_timer = 0; +static char keylog_str[6] = {}; +static uint16_t log_timer = 0; +static const char code_to_name[60] = {' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; + +void add_keylog(uint16_t keycode); +#endif enum crkbd_keycodes { RGBRST = NEW_SAFE_RANGE }; @@ -19,7 +27,7 @@ enum crkbd_keycodes { RGBRST = NEW_SAFE_RANGE }; ) \ LAYOUT_wrapper( \ KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_MINS, \ - KC_TAB, ALT_T(K11), K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \ + KC_TAB, ALT_T(K11), K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \ OS_LSFT, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ KC_GRV, KC_SPC, BK_LWER, DL_RAIS, KC_ENT, OS_RGUI \ ) @@ -98,34 +106,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_wrapper( \ KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RESET, VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST, - _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, KC_MPLY, + MG_NKRO, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, RGB_IDL, _______, KC_NUKE, _______, _______, TG_MODS, _______ ) }; // clang-format on +bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { +#ifdef OLED_DRIVER_ENABLE + oled_timer = timer_read32(); + add_keylog(keycode); +#endif +#ifndef SPLIT_KEYBOARD + if (keycode == RESET && !is_master) { + return false; + } +#endif + } + return true; +} + #ifdef OLED_DRIVER_ENABLE oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; } -uint16_t oled_timer; - -char keylog_str[5] = {}; -uint8_t keylogs_str_idx = 0; -uint16_t log_timer = 0; - -const char code_to_name[60] = {' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'R', 'E', 'B', 'T', '_', '-', '=', '[', ']', '\\', '#', ';', '\'', '`', ',', '.', '/', ' ', ' ', ' '}; void add_keylog(uint16_t keycode) { if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { keycode = keycode & 0xFF; } - for (uint8_t i = 4; i > 0; i--) { + for (uint8_t i = 4; i > 0; --i) { keylog_str[i] = keylog_str[i - 1]; } + if (keycode < 60) { keylog_str[0] = code_to_name[keycode]; } - keylog_str[5] = 0; log_timer = timer_read(); } @@ -136,149 +152,118 @@ void update_log(void) { } } -bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - add_keylog(keycode); - oled_timer = timer_read(); - } - return true; +void render_keylogger_status(void) { + oled_write_P(PSTR("KLogr"), false); + oled_write(keylog_str, false); } -void render_rgb_status(void) { - oled_write_ln("RGB:", false); - static char temp[20] = {0}; - snprintf(temp, sizeof(temp) + 1, "M:%3dH:%3dS:%3dV:%3d", rgb_matrix_config.mode, rgb_matrix_config.hsv.h, rgb_matrix_config.hsv.s, rgb_matrix_config.hsv.v); - oled_write(temp, false); +void render_default_layer_state(void) { + oled_write_P(PSTR("Lyout"), false); + switch (biton32(default_layer_state)) { + case _QWERTY: + oled_write_P(PSTR(" QRTY"), false); + break; + case _COLEMAK: + oled_write_P(PSTR(" COLE"), false); + break; + case _DVORAK: + oled_write_P(PSTR(" DVRK"), false); + break; + case _WORKMAN: + oled_write_P(PSTR(" WKMN"), false); + break; + case _NORMAN: + oled_write_P(PSTR(" NORM"), false); + break; + case _MALTRON: + oled_write_P(PSTR(" MLTN"), false); + break; + case _EUCALYN: + oled_write_P(PSTR(" ECLN"), false); + break; + case _CARPLAX: + oled_write_P(PSTR(" CRPX"), false); + break; + } +} + +void render_layer_state(void) { + oled_write_P(PSTR("LAYER"), false); + oled_write_P(PSTR("Lower"), layer_state_is(_LOWER)); + oled_write_P(PSTR("Raise"), layer_state_is(_RAISE)); + oled_write_P(PSTR(" Mods"), layer_state_is(_MODS)); +} + +void render_keylock_status(uint8_t led_usb_state) { + oled_write_P(PSTR("Lock:"), false); + oled_write_P(PSTR(" "), false); + oled_write_P(PSTR("NUM "), led_usb_state & (1 << USB_LED_NUM_LOCK)); + oled_write_P(PSTR(" "), false); + oled_write_P(PSTR("CAPS"), led_usb_state & (1 << USB_LED_CAPS_LOCK)); + oled_write_P(PSTR(" "), false); + oled_write_P(PSTR("SCRL"), led_usb_state & (1 << USB_LED_SCROLL_LOCK)); +} + +void render_mod_status(uint8_t modifiers) { + oled_write_P(PSTR("Mods:"), false); + oled_write_P(PSTR(" SHFT"), (modifiers & MOD_MASK_SHIFT)); + oled_write_P(PSTR(" CTRL"), (modifiers & MOD_MASK_CTRL)); + oled_write_P(PSTR(" ALT "), (modifiers & MOD_MASK_ALT)); + oled_write_P(PSTR(" GUI "), (modifiers & MOD_MASK_GUI)); +} + +void render_bootmagic_status(void) { + /* Show Ctrl-Gui Swap options */ + static const char PROGMEM logo[][2][3] = { + {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, + {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, + }; + oled_write_P(PSTR("BTMGK"), false); + oled_write_P(PSTR(" "), false); + oled_write_P(logo[0][0], !keymap_config.swap_lctl_lgui); + oled_write_P(logo[1][0], keymap_config.swap_lctl_lgui); + oled_write_P(PSTR(" "), false); + oled_write_P(logo[0][1], !keymap_config.swap_lctl_lgui); + oled_write_P(logo[1][1], keymap_config.swap_lctl_lgui); + oled_write_P(PSTR(" NKRO"), keymap_config.nkro); +} + +void render_user_status(void) { + oled_write_P(PSTR("USER:"), false); + oled_write_P(PSTR(" Anim"), userspace_config.rgb_matrix_idle_anim); + oled_write_P(PSTR(" Layr"), userspace_config.rgb_layer_change); + oled_write_P(PSTR(" Nuke"), userspace_config.nuke_switch); } void render_status_main(void) { /* Show Keyboard Layout */ - oled_write("Lyout", false); - switch (biton32(default_layer_state)) { - case _QWERTY: - oled_write(" QRTY", false); - break; - case _COLEMAK: - oled_write(" COLE", false); - break; - case _DVORAK: - oled_write(" DVRK", false); - break; - case _WORKMAN: - oled_write(" WKMN", false); - break; - case _NORMAN: - oled_write(" NORM", false); - break; - case _MALTRON: - oled_write(" MLTN", false); - break; - case _EUCALYN: - oled_write(" ECLN", false); - break; - case _CARPLAX: - oled_write(" CRPX", false); - break; - } + render_default_layer_state(); + render_keylock_status(host_keyboard_leds()); + render_bootmagic_status(); + render_user_status(); - /* Show Lock Status (only work on master side) */ - uint8_t led_usb_state = host_keyboard_leds(); - oled_write("Lock:", false); - oled_write(" ", false); - oled_write_ln("NUM", led_usb_state & (1 << USB_LED_NUM_LOCK)); - oled_write(" ", false); - oled_write("CAPS", led_usb_state & (1 << USB_LED_CAPS_LOCK)); - oled_write(" ", false); - oled_write("SCRL", led_usb_state & (1 << USB_LED_SCROLL_LOCK)); - - /* Show Alt-Gui Swap options */ - oled_write("BTMGK", false); - oled_write(" ", false); - oled_write_ln("Win", !keymap_config.swap_lalt_lgui); - oled_write(" ", false); - oled_write_ln("Mac", keymap_config.swap_lalt_lgui); - -# if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) - /* Show RGB Options */ - render_rgb_status(); -# endif - - oled_write(keylog_str, false); + render_keylogger_status(); } void render_status_secondary(void) { /* Show Keyboard Layout */ - oled_write("Lyout", false); - switch (biton32(default_layer_state)) { - case _QWERTY: - oled_write(" QRTY", false); - break; - case _COLEMAK: - oled_write(" COLE", false); - break; - case _DVORAK: - oled_write(" DVRK", false); - break; - case _WORKMAN: - oled_write(" WKMN", false); - break; - case _NORMAN: - oled_write(" NORM", false); - break; - case _MALTRON: - oled_write(" MLTN", false); - break; - case _EUCALYN: - oled_write(" ECLN", false); - break; - case _CARPLAX: - oled_write(" CRPX", false); - break; - } + render_default_layer_state(); + render_layer_state(); + render_mod_status(get_mods()|get_oneshot_mods()); - /* Show Activate layer */ - oled_write("Layer", false); - switch (biton32(layer_state)) { - case _RAISE: - oled_write("Raise", false); - break; - case _LOWER: - oled_write("Lower", false); - break; - case _ADJUST: - oled_write("Adjst", false); - break; - default: - oled_write("Dflt ", false); - break; - } - - /* Show Mod */ - uint8_t modifiers = get_mods() | get_oneshot_mods(); - - oled_write("Mods:", false); - oled_write(" ", false); - oled_write_ln("SFT", (modifiers & MOD_MASK_SHIFT)); - oled_write(" ", false); - oled_write_ln("CTL", (modifiers & MOD_MASK_CTRL)); - oled_write(" ", false); - oled_write_ln("ALT", (modifiers & MOD_MASK_ALT)); - oled_write(" ", false); - oled_write_ln("GUI", (modifiers & MOD_MASK_GUI)); - -# if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) - render_rgb_status(); -# endif - - /* Show logged Keys */ - oled_write(keylog_str, false); + render_keylogger_status(); } void oled_task_user(void) { - if (timer_elapsed(oled_timer) > 60000) { + if (timer_elapsed32(oled_timer) > 30000) { oled_off(); return; } +#ifndef SPLIT_KEYBOARD + else { oled_on(); } +#endif + + update_log(); if (is_master) { render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) } else { @@ -286,7 +271,6 @@ void oled_task_user(void) { } } -void matrix_scan_keymap(void) { update_log(); } #endif uint16_t get_tapping_term(uint16_t keycode) { @@ -300,25 +284,43 @@ uint16_t get_tapping_term(uint16_t keycode) { #ifdef RGB_MATRIX_ENABLE -static bool is_suspended; -static bool rgb_matrix_enabled; - void suspend_power_down_keymap(void) { rgb_matrix_set_suspend_state(true); - if (!is_suspended) { - is_suspended = true; - rgb_matrix_enabled = (bool)rgb_matrix_config.enable; - rgb_matrix_disable_noeeprom(); - } } void suspend_wakeup_init_keymap(void) { rgb_matrix_set_suspend_state(false); - is_suspended = false; - if (rgb_matrix_enabled) { - rgb_matrix_enable_noeeprom(); +} + +void check_default_layer(uint8_t mode, uint8_t type) { + switch (biton32(default_layer_state)) { + case _QWERTY: + rgb_matrix_layer_helper(HSV_CYAN, mode, rgb_matrix_config.speed, type); + break; + case _COLEMAK: + rgb_matrix_layer_helper(HSV_MAGENTA, mode, rgb_matrix_config.speed, type); + break; + case _DVORAK: + rgb_matrix_layer_helper(HSV_SPRINGGREEN, mode, rgb_matrix_config.speed, type); + break; + case _WORKMAN: + rgb_matrix_layer_helper(HSV_GOLDENROD, mode, rgb_matrix_config.speed, type); + break; + case _NORMAN: + rgb_matrix_layer_helper(HSV_CORAL, mode, rgb_matrix_config.speed, type); + break; + case _MALTRON: + rgb_matrix_layer_helper(HSV_YELLOW, mode, rgb_matrix_config.speed, type); + break; + case _EUCALYN: + rgb_matrix_layer_helper(HSV_PINK, mode, rgb_matrix_config.speed, type); + break; + case _CARPLAX: + rgb_matrix_layer_helper(HSV_BLUE, mode, rgb_matrix_config.speed, type); + break; } } + void rgb_matrix_indicators_user(void) { if (userspace_config.rgb_layer_change && # ifdef RGB_DISABLE_WHEN_USB_SUSPENDED @@ -332,51 +334,26 @@ void rgb_matrix_indicators_user(void) { ) { switch (biton32(layer_state)) { case _GAMEPAD: - rgb_matrix_layer_helper(HSV_ORANGE, 1, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); + rgb_matrix_layer_helper(HSV_ORANGE, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); break; case _DIABLO: - rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); + rgb_matrix_layer_helper(HSV_RED, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); break; case _RAISE: - rgb_matrix_layer_helper(HSV_YELLOW, 1, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); + rgb_matrix_layer_helper(HSV_YELLOW, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); break; case _LOWER: - rgb_matrix_layer_helper(HSV_GREEN, 1, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); + rgb_matrix_layer_helper(HSV_GREEN, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); break; case _ADJUST: - rgb_matrix_layer_helper(HSV_RED, 1, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); + rgb_matrix_layer_helper(HSV_RED, 0, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); break; default: { - bool mods_enabled = IS_LAYER_ON(_MODS); - switch (biton32(default_layer_state)) { - case _QWERTY: - rgb_matrix_layer_helper(HSV_CYAN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); - break; - case _COLEMAK: - rgb_matrix_layer_helper(HSV_MAGENTA, mods_enabled, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); - break; - case _DVORAK: - rgb_matrix_layer_helper(HSV_SPRINGGREEN, mods_enabled, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); - break; - case _WORKMAN: - rgb_matrix_layer_helper(HSV_GOLDENROD, mods_enabled, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); - break; - case _NORMAN: - rgb_matrix_layer_helper(HSV_CORAL, mods_enabled, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); - break; - case _MALTRON: - rgb_matrix_layer_helper(HSV_YELLOW, mods_enabled, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); - break; - case _EUCALYN: - rgb_matrix_layer_helper(HSV_PINK, mods_enabled, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); - break; - case _CARPLAX: - rgb_matrix_layer_helper(HSV_BLUE, mods_enabled, rgb_matrix_config.speed, LED_FLAG_UNDERGLOW); - break; - } + check_default_layer(IS_LAYER_ON(_MODS), LED_FLAG_UNDERGLOW); break; } } + check_default_layer(0, LED_FLAG_MODIFIER); } } #endif diff --git a/keyboards/gergo/keymaps/drashna/keymap.c b/keyboards/gergo/keymaps/drashna/keymap.c index 2843b332a5f..edc5a9e997a 100644 --- a/keyboards/gergo/keymaps/drashna/keymap.c +++ b/keyboards/gergo/keymaps/drashna/keymap.c @@ -17,7 +17,7 @@ ) \ LAYOUT_gergo_wrapper( \ KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_PIPE, \ - KC_TAB, K11, K12, K13, K14, K15, _______, _______, K16, K17, K18, K19, K1A, KC_QUOT, \ + KC_TAB, K11, K12, K13, K14, K15, _______, _______, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \ OS_LSFT, CTL_T(K21), K22, K23, K24, K25, _______, _______, _______, _______, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ KC_GRV, KC_SPC, BK_LWER, OS_LALT, OS_RGUI, DL_RAIS, KC_ENT, _______ \ ) diff --git a/keyboards/keebio/iris/keymaps/drashna/config.h b/keyboards/keebio/iris/keymaps/drashna/config.h index ee8ac8aff8b..6fff5d72c69 100644 --- a/keyboards/keebio/iris/keymaps/drashna/config.h +++ b/keyboards/keebio/iris/keymaps/drashna/config.h @@ -19,8 +19,8 @@ along with this program. If not, see . /* Use I2C or Serial, not both */ -#define USE_SERIAL -// #define USE_I2C +// #define USE_SERIAL +#define USE_I2C /* Select hand configuration */ diff --git a/keyboards/keebio/iris/keymaps/drashna/keymap.c b/keyboards/keebio/iris/keymaps/drashna/keymap.c index fe10cb27510..28783dd8af5 100644 --- a/keyboards/keebio/iris/keymaps/drashna/keymap.c +++ b/keyboards/keebio/iris/keymaps/drashna/keymap.c @@ -11,7 +11,7 @@ LAYOUT_wrapper( \ KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, \ KC_TAB , K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSLS, \ - KC_C1R3, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \ + KC_C1R3, ALT_T(K11), K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \ OS_LSFT, CTL_T(K21), K22, K23, K24, K25, OS_LALT, OS_RGUI, K26, K27, K28, K29, RCTL_T(K2A), OS_RSFT, \ KC_GRV, KC_SPC, LT(_LOWER,KC_BSPC), LT(_RAISE,KC_DEL), KC_ENT, RAISE \ ) diff --git a/keyboards/keebio/iris/keymaps/drashna/rules.mk b/keyboards/keebio/iris/keymaps/drashna/rules.mk index 17acd32be05..cb398cd4eb1 100644 --- a/keyboards/keebio/iris/keymaps/drashna/rules.mk +++ b/keyboards/keebio/iris/keymaps/drashna/rules.mk @@ -5,14 +5,13 @@ CONSOLE_ENABLE = no # Console for debug(+400) COMMAND_ENABLE = no # Commands for debug and configuration TAP_DANCE_ENABLE = no RGBLIGHT_ENABLE = yes -AUDIO_ENABLE = yes +AUDIO_ENABLE = no NKRO_ENABLE = yes BACKLIGHT_ENABLE = no SWAP_HANDS_ENABLE = no SPACE_CADET_ENABLE = no INDICATOR_LIGHTS = no -MACROS_ENABLED = no RGBLIGHT_TWINKLE = no RGBLIGHT_STARTUP_ANIMATION = no diff --git a/keyboards/keebio/quefrency/keymaps/drashna_ms/config.h b/keyboards/keebio/quefrency/keymaps/drashna_ms/config.h new file mode 100644 index 00000000000..ec2a2ea164e --- /dev/null +++ b/keyboards/keebio/quefrency/keymaps/drashna_ms/config.h @@ -0,0 +1,39 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert +Copyright 2018 Danny Nguyen + +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 + +// #define USE_I2C +#define EE_HANDS + + +#ifdef RGBLIGHT_ENABLE + #define RGBLIGHT_SPLIT + #undef RGBLED_NUM + #define RGBLED_NUM 17 + #define RGBLED_SPLIT { 9, 8 } + #define RGBLIGHT_SLEEP +#endif + +#ifdef AUDIO_ENABLE + #define B7_AUDIO + #define AUDIO_CLICKY +#endif diff --git a/keyboards/keebio/quefrency/keymaps/drashna_ms/keymap.c b/keyboards/keebio/quefrency/keymaps/drashna_ms/keymap.c new file mode 100644 index 00000000000..445709bc3d2 --- /dev/null +++ b/keyboards/keebio/quefrency/keymaps/drashna_ms/keymap.c @@ -0,0 +1,43 @@ +#include QMK_KEYBOARD_H +#include "version.h" + +enum layers { + _BASE, + _FN1, +}; + +enum custom_keycodes { + KC_MAKE = SAFE_RANGE, +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_65_with_macro( + KC_F1, KC_F2, KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, XXXXXXX, KC_BSPC, KC_HOME, \ + KC_F3, KC_F4, 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_END, \ + KC_F5, KC_F6, 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_PGUP, \ + KC_F7, KC_F8, 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_PGDN, \ + KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FN1), KC_SPC, XXXXXXX, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_65_with_macro( + _______, _______, KC_GESC, 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_DEL, KC_BSPC, RESET, \ + _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, EEP_RST, \ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, _______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______, \ + _______, _______, KC_TILD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + + + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader + if (!record->event.pressed) + send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP ":dfu" SS_TAP(X_ENTER)), 10); + + break; + } + return true; +} diff --git a/keyboards/keebio/quefrency/keymaps/drashna_ms/rules.mk b/keyboards/keebio/quefrency/keymaps/drashna_ms/rules.mk new file mode 100644 index 00000000000..1b8b582abc3 --- /dev/null +++ b/keyboards/keebio/quefrency/keymaps/drashna_ms/rules.mk @@ -0,0 +1,5 @@ +LINK_TIME_OPTIMIZATION_ENABLE = yes +RGBLIGHT_ENABLE = yes +EXTRAKEY_ENABLE = yes +AUDIO_ENABLE = yes +BOOTLOADER = qmk-dfu diff --git a/keyboards/keebio/viterbi/keymaps/drashna/keymap.c b/keyboards/keebio/viterbi/keymaps/drashna/keymap.c index 1afc59fb90d..9c17c5a5775 100644 --- a/keyboards/keebio/viterbi/keymaps/drashna/keymap.c +++ b/keyboards/keebio/viterbi/keymaps/drashna/keymap.c @@ -10,7 +10,6 @@ extern keymap_config_t keymap_config; // Fillers to make layering more clear -#define LMACRO OSL(_MACROS) #define DIABLO TG(_DIABLO) #define GAMEPAD TG(_GAMEPAD) #define MEDIA TT(_MEDIA) @@ -23,7 +22,7 @@ extern keymap_config_t keymap_config; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_NUMLOCK] = LAYOUT_ortho_5x7( - LMACRO, DIABLO, GAMEPAD, KC_NLCK, KC_SLCK, KC_COLN, KC_PSLS, + KC_NO, DIABLO, GAMEPAD, KC_NLCK, KC_SLCK, KC_COLN, KC_PSLS, MEDIA, KC_CALC, XXXXXXX, KC_P7, KC_P8, KC_P9, KC_PAST, KC_HOME, KC_DEL, KC_PGUP, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_END, KC_UP, KC_PGDN, KC_P1, KC_P2, KC_P3, KC_PPLS, @@ -39,22 +38,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [_GAMEPAD] = LAYOUT_ortho_5x7( // Game pad layout designed primarily for Overwatch - LMACRO, KC_ESC, GAMEPAD, KC_1, KC_2, KC_3, KC_4, + KC_NO, KC_ESC, GAMEPAD, KC_1, KC_2, KC_3, KC_4, MEDIA, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Z, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_Y, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F1, KC_U, KC_I, KC_Y, KC_V, KC_SPC, KC_V ), - [_MACROS] = LAYOUT_ortho_5x7( - LMACRO, KC_OVERWATCH,GAMEPAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_C9, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_SYMM, KC_TORB, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_GLHF, KC_GOODGAME, KC_GGEZ, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_SALT, KC_MORESALT, KC_SALTHARD, KC_JUSTGAME, KC_AIM, XXXXXXX, KC_PENT - ), - - [_MEDIA] = LAYOUT_ortho_5x7( KC_MAKE, KC_RESET,MU_TOG, AU_ON, AU_OFF, CK_TOGG, RGB_SAD, MEDIA, EEP_RST, KC_RGB_T,RGB_M_P, RGB_M_B, RGB_M_R, RGB_SAI, diff --git a/keyboards/keebio/viterbi/keymaps/drashna/rules.mk b/keyboards/keebio/viterbi/keymaps/drashna/rules.mk index f42e065d51e..3246c180789 100644 --- a/keyboards/keebio/viterbi/keymaps/drashna/rules.mk +++ b/keyboards/keebio/viterbi/keymaps/drashna/rules.mk @@ -11,7 +11,6 @@ SPLIT_KEYBOARD = no SPACE_CADET_ENABLE = no NO_SECRETS = yes -MACROS_ENABLED = yes INDICATOR_LIGHTS = no RGBLIGHT_TWINKLE = no LAYOUTS = ortho_5x7 diff --git a/keyboards/orthodox/keymaps/drashna/keymap.c b/keyboards/orthodox/keymaps/drashna/keymap.c index 56799ae2c01..bf6b62b41ff 100644 --- a/keyboards/orthodox/keymaps/drashna/keymap.c +++ b/keyboards/orthodox/keymaps/drashna/keymap.c @@ -38,7 +38,7 @@ uint8_t last_osm; ) \ LAYOUT_wrapper( \ KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \ - KC_TAB, K11, K12, K13, K14, K15, OS_LALT, OS_LGUI, OS_RALT, RAISE, K16, K17, K18, K19, K1A, KC_QUOT, \ + KC_TAB, ALT_T(K11), K12, K13, K14, K15, OS_LALT, OS_LGUI, OS_RALT, RAISE, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \ KC_MLSF, CTL_T(K21), K22, K23, K24, K25, LOWER, KC_SPACE,KC_BSPC, KC_DEL, KC_ENT, RAISE, K26, K27, K28, K29, RCTL_T(K2A), KC_MRSF \ ) #define LAYOUT_orthodox_base_wrapper(...) LAYOUT_orthodox_base(__VA_ARGS__) diff --git a/keyboards/orthodox/keymaps/drashna/rules.mk b/keyboards/orthodox/keymaps/drashna/rules.mk index a122b9e0f15..0d28c44a716 100644 --- a/keyboards/orthodox/keymaps/drashna/rules.mk +++ b/keyboards/orthodox/keymaps/drashna/rules.mk @@ -10,7 +10,6 @@ NKRO_ENABLE = yes SPACE_CADET_ENABLE = no INDICATOR_LIGHTS = yes -MACROS_ENABLED = no RGBLIGHT_TWINKLE = no RGBLIGHT_STARTUP_ANIMATION = yes diff --git a/layouts/community/ergodox/drashna/config.h b/layouts/community/ergodox/drashna/config.h index 821710ed8e8..0ccf10c31c2 100644 --- a/layouts/community/ergodox/drashna/config.h +++ b/layouts/community/ergodox/drashna/config.h @@ -14,3 +14,5 @@ #undef DEBOUNCE #define DEBOUNCE 15 + +#define TAPPING_TERM_PER_KEY diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c index 763b218f747..6ed4558e273 100644 --- a/layouts/community/ergodox/drashna/keymap.c +++ b/layouts/community/ergodox/drashna/keymap.c @@ -23,8 +23,9 @@ along with this program. If not, see . #ifndef UNICODE_ENABLE # define UC(x) KC_NO #endif - -extern userspace_config_t userspace_config; +#ifdef RGBLIGHT_ENABLE +extern rgblight_config_t rgblight_config; +#endif enum more_custom_keycodes { KC_SWAP_NUM = NEW_SAFE_RANGE }; @@ -40,7 +41,7 @@ bool skip_leds = false; LAYOUT_ergodox_pretty_wrapper( \ KC_ESC, ________________NUMBER_LEFT________________, UC_FLIP, UC_TABL, ________________NUMBER_RIGHT_______________, KC_MINS, \ KC_TAB, K01, K02, K03, K04, K05, TG(_DIABLO), TG(_DIABLO), K06, K07, K08, K09, K0A, KC_BSLS, \ - KC_C1R3, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \ + KC_C1R3, ALT_T(K11), K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \ KC_MLSF, CTL_T(K21), K22, K23, K24, K25, TG(_GAMEPAD), TG(_GAMEPAD), K26, K27, K28, K29, RCTL_T(K2A), KC_MRSF, \ KC_GRV, OS_MEH, OS_HYPR, KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, UC(0x2E2E), \ OS_LALT, OS_LGUI, OS_RGUI, CTL_T(KC_ESCAPE), \ @@ -291,8 +292,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_ergodox_pretty_wrapper( KC_MAKE, _______, _______, _______, _______, _______, _______, KC_NUKE, _________________ADJUST_R1_________________, KC_RST, VRSN, _________________ADJUST_L1_________________, _______, _______, _______, _______, _______, _______, _______, EEP_RST, - _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, TG(_MODS), - _______, _________________ADJUST_L3_________________, _______, _______, _________________ADJUST_R3_________________, KC_MPLY, + _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, RGB_IDL, + _______, _________________ADJUST_L3_________________, _______, _______, _________________ADJUST_R3_________________, TG(_MODS), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -464,3 +465,13 @@ void rgb_matrix_indicators_user(void) { } #endif // RGB_MATRIX_INIT + + +uint16_t get_tapping_term(uint16_t keycode) { + if (keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) { + if (mod_config(keycode & 0xf) & MOD_MASK_ALT) { + return (2 * TAPPING_TERM); + } + } + return TAPPING_TERM; +} diff --git a/layouts/community/ergodox/drashna/rules.mk b/layouts/community/ergodox/drashna/rules.mk index f3cd55ea8fe..f14353f4c6a 100644 --- a/layouts/community/ergodox/drashna/rules.mk +++ b/layouts/community/ergodox/drashna/rules.mk @@ -12,7 +12,6 @@ BOOTMAGIC_ENABLE = yes UNICODE_ENABLE = yes UNICDOEMAP_ENABLE = no -MACROS_ENABLED = no RGBLIGHT_TWINKLE = no INDICATOR_LIGHTS = no RGBLIGHT_STARTUP_ANIMATION = yes diff --git a/layouts/community/numpad_5x6/bjohnson/config.h b/layouts/community/numpad_5x6/bjohnson/config.h index fe2cffec785..668450d88da 100644 --- a/layouts/community/numpad_5x6/bjohnson/config.h +++ b/layouts/community/numpad_5x6/bjohnson/config.h @@ -4,7 +4,7 @@ #if defined(RGBLIGHT_ENABLE) && !defined(RGBLED_NUM) #define RGB_DI_PIN B7 -#define RGBLED_NUM 16 // Number of LEDs +#define RGBLED_NUM 13 // Number of LEDs #define RGBLIGHT_ANIMATIONS #define RGBLIGHT_HUE_STEP 12 diff --git a/layouts/community/numpad_5x6/bjohnson/keymap.c b/layouts/community/numpad_5x6/bjohnson/keymap.c index 79e87e69f4c..4b15ccdfb9c 100644 --- a/layouts/community/numpad_5x6/bjohnson/keymap.c +++ b/layouts/community/numpad_5x6/bjohnson/keymap.c @@ -25,9 +25,10 @@ void keyboard_post_init_user(void) { uint8_t temp_mode = rgblight_config.mode; rgblight_enable_noeeprom(); rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - for (uint16_t i = 360; i > 0; i--) { - rgblight_sethsv_noeeprom( ( i + 180) % 360, 255, 255); - wait_ms(8); + for (uint16_t i = 255; i > 0; i--) { + rgblight_sethsv_noeeprom( ( i + 128) % 255, 255, 255); + matrix_scan(); + wait_ms(10); } led_set_user(host_keyboard_leds()); rgblight_mode_noeeprom(temp_mode); diff --git a/layouts/community/numpad_5x6/drashna/rules.mk b/layouts/community/numpad_5x6/drashna/rules.mk index 62bbc365d17..0bdf97bae56 100644 --- a/layouts/community/numpad_5x6/drashna/rules.mk +++ b/layouts/community/numpad_5x6/drashna/rules.mk @@ -5,6 +5,5 @@ NO_SECRETS = yes BOOTMAGIC_ENABLE = lite INDICATOR_LIGHTS = no RGBLIGHT_TWINKLE = yes -MACROS_ENABLED = no MAKE_BOOTLOADER = yes RGBLIGHT_STARTUP_ANIMATION = yes diff --git a/layouts/community/ortho_4x12/drashna/config.h b/layouts/community/ortho_4x12/drashna/config.h index 30db12965d7..9f3d2b82d6c 100644 --- a/layouts/community/ortho_4x12/drashna/config.h +++ b/layouts/community/ortho_4x12/drashna/config.h @@ -17,6 +17,7 @@ #ifdef RGB_MATRIX_ENABLE # define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot) // #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened) +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS // #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects // #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255 # define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended diff --git a/layouts/community/ortho_4x12/drashna/keymap.c b/layouts/community/ortho_4x12/drashna/keymap.c index 3e26b93fcdb..26f611c0889 100644 --- a/layouts/community/ortho_4x12/drashna/keymap.c +++ b/layouts/community/ortho_4x12/drashna/keymap.c @@ -27,6 +27,9 @@ enum planck_keycodes { }; #else # define BACKLIT OSM(MOD_LSFT) +enum planck_keycodes { + TH_LVL = NEW_SAFE_RANGE, +}; #endif #ifdef KEYBOARD_planck_ez @@ -48,8 +51,8 @@ enum planck_keycodes { K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ ) \ LAYOUT_ortho_4x12_wrapper( \ - KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \ - KC_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \ + KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_DEL, \ + KC_TAB, ALT_T(K11), K12, K13, K14, K15, K16, K17, K18, K19, K1A, RALT_T(KC_QUOT), \ KC_MLSF, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, RCTL_T(K2A), KC_ENT, \ BACKLIT, OS_LCTL, OS_LALT, OS_LGUI, PLNK_1, PLNK_2, PLNK_3, PLNK_4, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ ) @@ -117,7 +120,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC, KC_DEL, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE, _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), [_RAISE] = LAYOUT_ortho_4x12_wrapper( @@ -130,8 +133,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_ortho_4x12_wrapper( KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RST, VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST, - _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NUKE + TH_LVL, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, RGB_IDL, + _______, _______, _______, _______, _______, KC_NUKE, _______, _______, _______, _______, _______, TG_MODS ) }; @@ -149,7 +152,20 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { } else { unregister_code(KC_RSFT); } - return false; + break; +#endif +#ifdef KEYBOARD_planck_ez + case TH_LVL: + if (record->event.pressed) { + keyboard_config.led_level++; + if (keyboard_config.led_level > 4) { + keyboard_config.led_level = 0; + } + planck_ez_right_led_level((uint8_t)keyboard_config.led_level * 255 / 4 ); + planck_ez_left_led_level((uint8_t)keyboard_config.led_level * 255 / 4 ); + eeconfig_update_kb(keyboard_config.raw); + layer_state_set_kb(layer_state); + } break; #endif } @@ -265,7 +281,7 @@ void rgb_matrix_indicators_user(void) { break; } if ((this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1 << USB_LED_CAPS_LOCK)) { - rgb_matrix_set_color(24, 0x00, 0xFF, 0x00); + if (!layer_state_cmp(layer_state, _ADJUST)) { rgb_matrix_set_color(24, 0x00, 0xFF, 0x00); } rgb_matrix_set_color(36, 0x00, 0xFF, 0x00); } if ((this_mod | this_osm) & MOD_MASK_CTRL) { @@ -353,18 +369,18 @@ void dip_update(uint8_t index, bool active) { #ifdef KEYBOARD_planck_ez layer_state_t layer_state_set_keymap(layer_state_t state) { - palClearPad(GPIOB, 8); - palClearPad(GPIOB, 9); + planck_ez_left_led_off(); + planck_ez_right_led_off(); switch (biton32(state)) { case _LOWER: - palSetPad(GPIOB, 9); + planck_ez_left_led_on(); break; case _RAISE: - palSetPad(GPIOB, 8); + planck_ez_right_led_on(); break; case _ADJUST: - palSetPad(GPIOB, 9); - palSetPad(GPIOB, 8); + planck_ez_right_led_on(); + planck_ez_left_led_on(); break; default: break; diff --git a/layouts/community/ortho_4x12/drashna/rules.mk b/layouts/community/ortho_4x12/drashna/rules.mk index 21ce7ebb1c7..55f3acd70ec 100644 --- a/layouts/community/ortho_4x12/drashna/rules.mk +++ b/layouts/community/ortho_4x12/drashna/rules.mk @@ -33,6 +33,3 @@ NKRO_ENABLE = no else NKRO_ENABLE = yes endif - - -MACROS_ENABLED = no diff --git a/layouts/community/ortho_5x12/drashna/keymap.c b/layouts/community/ortho_5x12/drashna/keymap.c index 26be99af5c3..86a78336c85 100644 --- a/layouts/community/ortho_5x12/drashna/keymap.c +++ b/layouts/community/ortho_5x12/drashna/keymap.c @@ -29,10 +29,11 @@ LAYOUT_ortho_5x12_wrapper( \ KC_GRV, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \ KC_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_BSPC, \ - KC_ESC, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, KC_QUOT, \ - KC_MLSF, CTL_T(K31), K32, K33, K34, K35, K36, K37, K38, K39, CTL_T(K3A), KC_ENT, \ + KC_ESC, ALT_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, K2A, RALT_T(KC_QUOT), \ + KC_MLSF, CTL_T(K31), K32, K33, K34, K35, K36, K37, K38, K39, RCTL_T(K3A), KC_ENT, \ KC_NO, OS_LCTL, OS_LALT, OS_LGUI, SP_LWER, BK_LWER, DL_RAIS, ET_RAIS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \ ) + #define LAYOUT_ortho_5x12_base_wrapper(...) LAYOUT_ortho_5x12_base(__VA_ARGS__) @@ -132,7 +133,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_ADJUST] = LAYOUT_ortho_5x12_wrapper( \ KC_MAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RST, VRSN, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, EEP_RST, - _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, _______, + _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, RGB_IDL, _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) diff --git a/layouts/community/ortho_5x12/drashna/rules.mk b/layouts/community/ortho_5x12/drashna/rules.mk index ee7c2ad63ce..0606f3e5225 100644 --- a/layouts/community/ortho_5x12/drashna/rules.mk +++ b/layouts/community/ortho_5x12/drashna/rules.mk @@ -18,6 +18,3 @@ NKRO_ENABLE = no else NKRO_ENABLE = yes endif - - -MACROS_ENABLED = no diff --git a/users/drashna/.gitlab-ci.yml b/users/drashna/.gitlab-ci.yml index 679bdf4351d..7218a21bec4 100644 --- a/users/drashna/.gitlab-ci.yml +++ b/users/drashna/.gitlab-ci.yml @@ -10,7 +10,7 @@ QMK Firmware: image: ubuntu:18.10 before_script: - apt-get update -qy - - apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi git libnewlib-arm-none-eabi gcc-avr unzip wget zip + - apt-get install -y build-essential avr-libc binutils-arm-none-eabi binutils-avr dfu-programmer dfu-util gcc gcc-arm-none-eabi git libnewlib-arm-none-eabi gcc-avr python3 unzip wget zip - avr-gcc --version - uname -a script: diff --git a/users/drashna/config.h b/users/drashna/config.h index 8f6e700d2bd..a0f92d8f389 100644 --- a/users/drashna/config.h +++ b/users/drashna/config.h @@ -1,5 +1,11 @@ #pragma once +// Use custom magic number so that when switching branches, EEPROM always gets reset +#define EECONFIG_MAGIC_NUMBER (uint16_t)0x1337 + +/* Set Polling rate to 1000Hz */ +#define USB_POLLING_INTERVAL_MS 1 + #ifdef AUDIO_ENABLE # if __GNUC__ > 7 # if __has_include("drashna_song_list.h") diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c index c1809dad0a3..6a436e0af0e 100644 --- a/users/drashna/drashna.c +++ b/users/drashna/drashna.c @@ -25,26 +25,7 @@ userspace_config_t userspace_config; # define DRASHNA_UNICODE_MODE 2 #endif -// This block is for all of the gaming macros, as they were all doing -// the same thing, but with differring text sent. -bool send_game_macro(const char *str, keyrecord_t *record, bool override) { - if (!record->event.pressed || override) { - uint16_t keycode; - if (userspace_config.is_overwatch) { - keycode = KC_BSPC; - } else { - keycode = KC_ENTER; - } - clear_keyboard(); - tap_code(keycode); - wait_ms(TAP_CODE_DELAY); - send_string_with_delay(str, TAP_CODE_DELAY); - wait_ms(TAP_CODE_DELAY); - tap_code(KC_ENTER); - } - if (override) wait_ms(3000); - return false; -} + bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed) { static uint16_t this_timer; @@ -123,7 +104,7 @@ __attribute__((weak)) void keyboard_post_init_keymap(void) {} void keyboard_post_init_user(void) { -#ifdef RGBLIGHT_ENABLE +#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) keyboard_post_init_rgb(); #endif keyboard_post_init_keymap(); @@ -132,6 +113,8 @@ void keyboard_post_init_user(void) { __attribute__((weak)) void shutdown_keymap(void) {} + void rgb_matrix_update_pwm_buffers(void); + void shutdown_user(void) { #ifdef RGBLIGHT_ENABLE rgblight_enable_noeeprom(); @@ -139,9 +122,9 @@ void shutdown_user(void) { rgblight_setrgb_red(); #endif // RGBLIGHT_ENABLE #ifdef RGB_MATRIX_ENABLE - // uint16_t timer_start = timer_read(); - // rgb_matrix_set_color_all( 0xFF, 0x00, 0x00 ); - // while(timer_elapsed(timer_start) < 250) { wait_ms(1); } + rgb_matrix_set_color_all( 0xFF, 0x00, 0x00 ); + rgb_matrix_update_pwm_buffers(); + #endif // RGB_MATRIX_ENABLE shutdown_keymap(); } @@ -176,7 +159,7 @@ void matrix_scan_user(void) { run_diablo_macro_check(); #endif // TAP_DANCE_ENABLE -#ifdef RGBLIGHT_ENABLE +#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) matrix_scan_rgb(); #endif // RGBLIGHT_ENABLE @@ -190,7 +173,7 @@ layer_state_t layer_state_set_keymap(layer_state_t state) { return state; } // Then runs keymap's layer change check layer_state_t layer_state_set_user(layer_state_t state) { state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); -#ifdef RGBLIGHT_ENABLE +#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) state = layer_state_set_rgb(state); #endif // RGBLIGHT_ENABLE return layer_state_set_keymap(state); @@ -203,7 +186,7 @@ layer_state_t default_layer_state_set_keymap(layer_state_t state) { return state layer_state_t default_layer_state_set_user(layer_state_t state) { state = default_layer_state_set_keymap(state); #if 0 -# ifdef RGBLIGHT_ENABLE +#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) state = default_layer_state_set_rgb(state); # endif // RGBLIGHT_ENABLE #endif diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h index 0d6dac380be..e3edf811241 100644 --- a/users/drashna/drashna.h +++ b/users/drashna/drashna.h @@ -49,13 +49,8 @@ enum userspace_layers { _ADJUST, }; -/* -define modifiers here, since MOD_* doesn't seem to work for these - */ - bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed); bool mod_key_press(uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer); -bool send_game_macro(const char *str, keyrecord_t *record, bool override); void matrix_init_keymap(void); void shutdown_keymap(void); void suspend_power_down_keymap(void); @@ -69,11 +64,12 @@ void eeconfig_init_keymap(void); typedef union { uint32_t raw; struct { - bool rgb_layer_change :1; - bool is_overwatch :1; - bool nuke_switch :1; - uint8_t unicode_mod :4; - bool swapped_numbers :1; + bool rgb_layer_change :1; + bool is_overwatch :1; + bool nuke_switch :1; + uint8_t unicode_mod :4; + bool swapped_numbers :1; + bool rgb_matrix_idle_anim :1; }; } userspace_config_t; diff --git a/users/drashna/process_records.c b/users/drashna/process_records.c index 5666d052dcd..6eb21d2f270 100644 --- a/users/drashna/process_records.c +++ b/users/drashna/process_records.c @@ -21,16 +21,23 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #endif // KEYLOGGER_ENABLE switch (keycode) { - case KC_QWERTY ... KC_CARPLAX: + case KC_QWERTY ... KC_WORKMAN: if (record->event.pressed) { - set_single_persistent_default_layer(keycode - KC_QWERTY); + uint8_t mods = mod_config(get_mods()|get_oneshot_mods()); + if (!mods) { + set_single_persistent_default_layer(keycode - KC_QWERTY); + } else if (mods & MOD_MASK_SHIFT) { + set_single_persistent_default_layer(keycode - KC_QWERTY + 4); + } else if (mods & MOD_MASK_CTRL) { + set_single_persistent_default_layer(keycode - KC_QWERTY + 8); + } } break; case KC_MAKE: // Compiles the firmware, and adds the flash command based on keyboard bootloader if (!record->event.pressed) { - uint8_t temp_mod = get_mods(); - uint8_t temp_osm = get_oneshot_mods(); + uint8_t temp_mod = mod_config(get_mods()); + uint8_t temp_osm = mod_config(get_oneshot_mods()); clear_mods(); clear_oneshot_mods(); send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP), TAP_CODE_DELAY); @@ -38,15 +45,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if ((temp_mod | temp_osm) & MOD_MASK_SHIFT) #endif { -#if defined(__arm__) - send_string_with_delay_P(PSTR(":dfu-util"), TAP_CODE_DELAY); -#elif defined(BOOTLOADER_DFU) - send_string_with_delay_P(PSTR(":dfu"), TAP_CODE_DELAY); -#elif defined(BOOTLOADER_HALFKAY) - send_string_with_delay_P(PSTR(":teensy"), TAP_CODE_DELAY); -#elif defined(BOOTLOADER_CATERINA) - send_string_with_delay_P(PSTR(":avrdude"), TAP_CODE_DELAY); -#endif // bootloader options + send_string_with_delay_P(PSTR(":flash"), TAP_CODE_DELAY); } if ((temp_mod | temp_osm) & MOD_MASK_CTRL) { send_string_with_delay_P(PSTR(" -j8 --output-sync"), TAP_CODE_DELAY); @@ -68,44 +67,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } break; - // These are a serious of gaming macros. - // Only enables for the viterbi, basically, - // to save on firmware space, since it's limited. -#ifdef MACROS_ENABLED - case KC_OVERWATCH: // Toggle's if we hit "ENTER" or "BACKSPACE" to input macros - if (record->event.pressed) { - userspace_config.is_overwatch ^= 1; - eeconfig_update_user(userspace_config.raw); - } -# ifdef RGBLIGHT_ENABLE - userspace_config.is_overwatch ? rgblight_mode_noeeprom(17) : rgblight_mode_noeeprom(18); -# endif // RGBLIGHT_ENABLE - break; - case KC_SALT: - return send_game_macro("Salt, salt, salt...", record, false); - case KC_MORESALT: - return send_game_macro("Please sir, can I have some more salt?!", record, false); - case KC_SALTHARD: - return send_game_macro("Your salt only makes me harder, and even more aggressive!", record, false); - case KC_GOODGAME: - return send_game_macro("Good game, everyone!", record, false); - case KC_GLHF: - return send_game_macro("Good luck, have fun!!!", record, false); - case KC_SYMM: - return send_game_macro("Left click to win!", record, false); - case KC_JUSTGAME: - return send_game_macro("It may be a game, but if you don't want to actually try, please go play AI, so that people that actually want to take the game seriously and \"get good\" have a place to do so without trolls like you throwing games.", record, false); - case KC_TORB: - return send_game_macro("That was positively riveting!", record, false); - case KC_AIM: - send_game_macro("That aim is absolutely amazing. It's almost like you're a machine!", record, true); - return send_game_macro("Wait! That aim is TOO good! You're clearly using an aim hack! CHEATER!", record, false); - case KC_C9: - return send_game_macro("OMG!!! C9!!!", record, false); - case KC_GGEZ: - return send_game_macro("That was a fantastic game, though it was a bit easy. Try harder next time!", record, false); -#endif // MACROS_ENABLED - case KC_DIABLO_CLEAR: // reset all Diablo timers, disabling them #ifdef TAP_DANCE_ENABLE if (record->event.pressed) { diff --git a/users/drashna/process_records.h b/users/drashna/process_records.h index 8901a6f91c8..0ae468a04ed 100644 --- a/users/drashna/process_records.h +++ b/users/drashna/process_records.h @@ -13,25 +13,10 @@ enum userspace_custom_keycodes { KC_COLEMAK, // Sets default layer to COLEMAK KC_DVORAK, // Sets default layer to DVORAK KC_WORKMAN, // Sets default layer to WORKMAN - KC_NORMAN, // Sets default layer to NORMAN - KC_MALTRON, // Sets default layer to MALTRON - KC_EUCALYN, // Sets default layer to EUCALYN - KC_CARPLAX, // Sets default layer to CARPLAX KC_DIABLO_CLEAR, // Clears all Diablo Timers - KC_OVERWATCH, // Toggles game macro input mode (so in OW, it defaults to game chat) - KC_SALT, // See drashna.c for details - KC_MORESALT, - KC_SALTHARD, - KC_GOODGAME, - KC_SYMM, - KC_JUSTGAME, - KC_GLHF, - KC_TORB, - KC_AIM, - KC_C9, - KC_GGEZ, KC_MAKE, // Run keyboard's customized make command KC_RGB_T, // Toggles RGB Layer Indication mode + RGB_IDL, // RGB Idling animations KC_SECRET_1, // test1 KC_SECRET_2, // test2 KC_SECRET_3, // test3 diff --git a/users/drashna/rgb_stuff.c b/users/drashna/rgb_stuff.c index 12851e2616c..a9af0566e36 100644 --- a/users/drashna/rgb_stuff.c +++ b/users/drashna/rgb_stuff.c @@ -5,12 +5,24 @@ #if defined(RGBLIGHT_ENABLE) extern rgblight_config_t rgblight_config; bool has_initialized; -#endif -#ifdef RGBLIGHT_ENABLE void rgblight_sethsv_default_helper(uint8_t index) { rgblight_sethsv_at(rgblight_config.hue, rgblight_config.sat, rgblight_config.val, index); } #endif // RGBLIGHT_ENABLE +#if defined(RGB_MATRIX_ENABLE) +static uint32_t hypno_timer; +# if defined(SPLIT_KEYBOARD) || defined(KEYBOARD_ergodox_ez) || defined(KEYBOARD_crkbd) +# define RGB_MATRIX_REST_MODE RGB_MATRIX_CYCLE_OUT_IN_DUAL +# else +# define RGB_MATRIX_REST_MODE RGB_MATRIX_CYCLE_OUT_IN +# endif +#endif + +/* Custom indicators for modifiers. + * This allows for certain lights to be lit up, based on what mods are active, giving some visual feedback. + * This is especially useful for One Shot Mods, since it's not always obvious if they're still lit up. + */ +#ifdef RGBLIGHT_ENABLE #ifdef INDICATOR_LIGHTS void set_rgb_indicators(uint8_t this_mod, uint8_t this_led, uint8_t this_osm) { if (userspace_config.rgb_layer_change && biton32(layer_state) == 0) { @@ -77,6 +89,7 @@ void set_rgb_indicators(uint8_t this_mod, uint8_t this_led, uint8_t this_osm) { } } +/* Function for the indicators */ void matrix_scan_indicator(void) { if (has_initialized) { set_rgb_indicators(get_mods(), host_keyboard_leds(), get_oneshot_mods()); @@ -89,6 +102,7 @@ static rgblight_fadeout lights[RGBLED_NUM]; __attribute__((weak)) bool rgblight_twinkle_is_led_used_keymap(uint8_t index) { return false; } +/* This function checks for used LEDs. This way, collisions don't occur and cause weird rendering */ bool rgblight_twinkle_is_led_used(uint8_t index) { switch (index) { # ifdef INDICATOR_LIGHTS @@ -130,6 +144,7 @@ bool rgblight_twinkle_is_led_used(uint8_t index) { } } +/* Handler for fading/twinkling effect */ void scan_rgblight_fadeout(void) { // Don't effing change this function .... rgblight_sethsv is supppppper intensive bool litup = false; for (uint8_t light_index = 0; light_index < RGBLED_NUM; ++light_index) { @@ -156,6 +171,9 @@ void scan_rgblight_fadeout(void) { // Don't effing change this function .... rg } } +/* Triggers a LED to fade/twinkle. + * This function handles the selection of the LED and prepres for it to be used. + */ void start_rgb_light(void) { uint8_t indices[RGBLED_NUM]; uint8_t indices_count = 0; @@ -194,12 +212,23 @@ void start_rgb_light(void) { rgblight_sethsv_at(light->hue, 255, light->life, light_index); } #endif +#endif // RGBLIGHT_ENABLE bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) { + uint16_t temp_keycode = keycode; + // Filter out the actual keycode from MT and LT keys. if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) { - keycode = keycode & 0xFF; + temp_keycode &= 0xFF; } - switch (keycode) { + +#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) + hypno_timer = timer_read32(); + if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_REST_MODE) { + rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP); + } +#endif + + switch (temp_keycode) { #ifdef RGBLIGHT_TWINKLE case KC_A ... KC_SLASH: case KC_F1 ... KC_F12: @@ -210,40 +239,58 @@ bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { start_rgb_light(); } - return true; break; #endif // RGBLIGHT_TWINKLE case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal #if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE) if (record->event.pressed) { userspace_config.rgb_layer_change ^= 1; - xprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change); + dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change); eeconfig_update_user(userspace_config.raw); if (userspace_config.rgb_layer_change) { layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better) } } #endif // RGBLIGHT_ENABLE - return false; break; -#ifdef RGBLIGHT_ENABLE + case RGB_IDL: // This allows me to use underglow as layer indication, or as normal +#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) + if (record->event.pressed) { + userspace_config.rgb_matrix_idle_anim ^= 1; + dprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim); + eeconfig_update_user(userspace_config.raw); + if (userspace_config.rgb_matrix_idle_anim) { rgb_matrix_mode_noeeprom(RGB_MATRIX_TYPING_HEATMAP); } + } +#endif + break; case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions - if (record->event.pressed) { // This disables layer indication, as it's assumed that if you're changing this ... you want that disabled + if (record->event.pressed) { + bool is_eeprom_updated = false; +#ifdef RGBLIGHT_ENABLE + // This disables layer indication, as it's assumed that if you're changing this ... you want that disabled if (userspace_config.rgb_layer_change) { userspace_config.rgb_layer_change = false; - xprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change); - eeconfig_update_user(userspace_config.raw); + dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change); + is_eeprom_updated = true; } +#endif +#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) + if (userspace_config.rgb_matrix_idle_anim) { + userspace_config.rgb_matrix_idle_anim = false; + dprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim); + is_eeprom_updated = true; + } +#endif + if (is_eeprom_updated) { eeconfig_update_user(userspace_config.raw); } } - return true; break; -#endif // RGBLIGHT_ENABLE } return true; } void keyboard_post_init_rgb(void) { -#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_STARTUP_ANIMATION) +#if defined(RGBLIGHT_ENABLE) +# if defined(RGBLIGHT_STARTUP_ANIMATION) bool is_enabled = rgblight_config.enable; if (userspace_config.rgb_layer_change) { rgblight_enable_noeeprom(); @@ -262,17 +309,31 @@ void keyboard_post_init_rgb(void) { rgblight_disable_noeeprom(); } -#endif +# endif layer_state_set_user(layer_state); +#endif +#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) + if (userspace_config.rgb_matrix_idle_anim) { + rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE); + } +#endif } void matrix_scan_rgb(void) { -#ifdef RGBLIGHT_TWINKLE +#ifdef RGBLIGHT_ENABLE +# ifdef RGBLIGHT_TWINKLE scan_rgblight_fadeout(); -#endif // RGBLIGHT_ENABLE +# endif // RGBLIGHT_ENABLE -#ifdef INDICATOR_LIGHTS +# ifdef INDICATOR_LIGHTS matrix_scan_indicator(); +# endif +#endif + +#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS) + if (userspace_config.rgb_matrix_idle_anim && rgb_matrix_get_mode() == RGB_MATRIX_TYPING_HEATMAP && timer_elapsed32(hypno_timer) > 15000) { + rgb_matrix_mode_noeeprom(RGB_MATRIX_REST_MODE); + } #endif } diff --git a/users/drashna/rgb_stuff.h b/users/drashna/rgb_stuff.h index ce45d6a00bb..7e34c93c114 100644 --- a/users/drashna/rgb_stuff.h +++ b/users/drashna/rgb_stuff.h @@ -4,20 +4,29 @@ # include "rgb_matrix.h" #endif +#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_TWINKLE) typedef struct { bool enabled; uint8_t hue; uint16_t timer; uint8_t life; } rgblight_fadeout; +#endif bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record); -void scan_rgblight_fadeout(void); void keyboard_post_init_rgb(void); void matrix_scan_rgb(void); layer_state_t layer_state_set_rgb(layer_state_t state); layer_state_t default_layer_state_set_rgb(layer_state_t state); -void rgblight_sethsv_default_helper(uint8_t index); -void rgb_matrix_set_color_all(uint8_t red, uint8_t green, uint8_t blue); +#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_TWINKLE) +void scan_rgblight_fadeout(void); +#endif +#if defined(RGBLIGHT_ENABLE) +void rgblight_sethsv_default_helper(uint8_t index); +#endif + +#ifdef RGB_MATRIX_ENABLE +void rgb_matrix_set_color_all(uint8_t red, uint8_t green, uint8_t blue); void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type); +#endif diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk index b414036a473..7b77a51d963 100644 --- a/users/drashna/rules.mk +++ b/users/drashna/rules.mk @@ -40,10 +40,6 @@ ifneq ($(strip $(RGB_MATRIX_ENABLE)), no) endif -ifeq ($(strip $(MACROS_ENABLED)), yes) - OPT_DEFS += -DMACROS_ENABLED -endif - ifdef CONSOLE_ENABLE ifeq ($(strip $(KEYLOGGER_ENABLE)), yes) OPT_DEFS += -DKEYLOGGER_ENABLE diff --git a/users/drashna/wrappers.h b/users/drashna/wrappers.h index a87247071f3..d22e2959cfc 100644 --- a/users/drashna/wrappers.h +++ b/users/drashna/wrappers.h @@ -174,11 +174,11 @@ NOTE: These are all the same length. If you do a search/replace #define _________________ADJUST_L1_________________ RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG -#define _________________ADJUST_L2_________________ MU_TOG , CK_TOGG, AU_ON, AU_OFF, AG_NORM +#define _________________ADJUST_L2_________________ MU_TOG , CK_TOGG, AU_ON, AU_OFF, CG_NORM #define _________________ADJUST_L3_________________ RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T #define _________________ADJUST_R1_________________ KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5 -#define _________________ADJUST_R2_________________ AG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN +#define _________________ADJUST_R2_________________ CG_SWAP, QWERTY, COLEMAK, DVORAK, WORKMAN #define _________________ADJUST_R3_________________ MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT // clang-format on From d90038eb9cc62ffd4f0e4a6a3c6de54a8670f51b Mon Sep 17 00:00:00 2001 From: Jonathan Rascher Date: Sat, 7 Sep 2019 10:58:17 -0500 Subject: [PATCH 30/36] [Keymap] Assorted personal keymap/userspace updates (#6691) * Turn off more unnecessary features by default * Double TAP_CODE_DELAY due to more media key issues Even with this change, some of the rotary encoder turns on my BDN9's volume knob still seem to get dropped. It's possible there's something wrong with the encoder itself. (Maybe the TAP_CODE_DELAY actually causes QMK to miss an encoder turn? Unclear.) The other knob (backlight brightness) works fine, FWIW.... * Restructure userspace config.h a bit * Hack around Instant60 Via EEPROM conflict Remove this when #6589 is fixed for Via boards. * Add backlight breathing and (EEPROM) reset to BDN9 * Add keymap for 9-Key macropad --- keyboards/9key/keymaps/bcat/keymap.c | 26 +++++++ keyboards/9key/keymaps/bcat/readme.md | 5 ++ keyboards/9key/keymaps/bcat/rules.mk | 1 + keyboards/keebio/bdn9/keymaps/bcat/keymap.c | 4 +- users/bcat/config.h | 84 ++++++++++++++------- users/bcat/rules.mk | 2 + 6 files changed, 93 insertions(+), 29 deletions(-) create mode 100644 keyboards/9key/keymaps/bcat/keymap.c create mode 100644 keyboards/9key/keymaps/bcat/readme.md create mode 100644 keyboards/9key/keymaps/bcat/rules.mk diff --git a/keyboards/9key/keymaps/bcat/keymap.c b/keyboards/9key/keymaps/bcat/keymap.c new file mode 100644 index 00000000000..c42bc76c254 --- /dev/null +++ b/keyboards/9key/keymaps/bcat/keymap.c @@ -0,0 +1,26 @@ +#include QMK_KEYBOARD_H + +enum layer { + LAYER_DEFAULT, + LAYER_FUNCTION, +}; + +/* Switch to function layer when held. */ +#define LY_FUNC MO(LAYER_FUNCTION) + +/* Send Ctrl+Alt+L (Cinnamon screen lock shortcut) when pressed. */ +#define KY_LOCK LCA(KC_L) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [LAYER_DEFAULT] = LAYOUT( + KC_MPLY, KC_VOLU, KC_MSTP, + KC_MPRV, KC_VOLD, KC_MNXT, + KY_LOCK, KC_MUTE, LY_FUNC + ), + + [LAYER_FUNCTION] = LAYOUT( + EEP_RST, _______, RESET, + _______, _______, _______, + _______, _______, _______ + ), +}; diff --git a/keyboards/9key/keymaps/bcat/readme.md b/keyboards/9key/keymaps/bcat/readme.md new file mode 100644 index 00000000000..2dee51de8b5 --- /dev/null +++ b/keyboards/9key/keymaps/bcat/readme.md @@ -0,0 +1,5 @@ +# bcat's 9-Key layout + +This is a super simple PCB-mount macropad with nine keys, used at work for +media keys and quick access to screen lock on Linux (Cinnamon desktop +environment). diff --git a/keyboards/9key/keymaps/bcat/rules.mk b/keyboards/9key/keymaps/bcat/rules.mk new file mode 100644 index 00000000000..0ecc2bd6614 --- /dev/null +++ b/keyboards/9key/keymaps/bcat/rules.mk @@ -0,0 +1 @@ +BOOTLOADER = caterina # Pro Micro diff --git a/keyboards/keebio/bdn9/keymaps/bcat/keymap.c b/keyboards/keebio/bdn9/keymaps/bcat/keymap.c index 3507aaedec4..7eab7217343 100644 --- a/keyboards/keebio/bdn9/keymaps/bcat/keymap.c +++ b/keyboards/keebio/bdn9/keymaps/bcat/keymap.c @@ -11,14 +11,14 @@ enum layer { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* First layer (F1-F6) */ [LAYER_FIRST] = LAYOUT( - KC_MUTE, LY_SECND, BL_TOGG, + KC_MUTE, LY_SECND, BL_BRTG, KC_F4, KC_F5, KC_F6, KC_F1, KC_F2, KC_F3 ), /* Second layer (F7-F12) */ [LAYER_SECOND] = LAYOUT( - _______, _______, _______, + EEP_RST, _______, RESET, KC_F10, KC_F11, KC_F12, KC_F7, KC_F8, KC_F9 ), diff --git a/users/bcat/config.h b/users/bcat/config.h index 7d420089556..990fda68cad 100644 --- a/users/bcat/config.h +++ b/users/bcat/config.h @@ -1,36 +1,66 @@ -/* Delay between tap_code register and unregister to fix flaky media keys. */ +/* Wait between tap_code register and unregister to fix flaky media keys. */ #undef TAP_CODE_DELAY -#define TAP_CODE_DELAY 10 +#define TAP_CODE_DELAY 20 -/* Turn off RGB lighting when the host goes to sleep. */ -#define RGBLIGHT_SLEEP +#if defined(RGBLIGHT_ENABLE) + /* Turn off RGB underglow when the host goes to sleep. */ + #define RGBLIGHT_SLEEP -/* Keep backlight and RGB level increments consistent across keyboards. */ -#undef BACKLIGHT_LEVELS -#undef RGBLIGHT_HUE_STEP -#undef RGBLIGHT_SAT_STEP -#undef RGBLIGHT_VAL_STEP + /* Keep RGB underglow level increments consistent across keyboards. */ + #undef RGBLIGHT_HUE_STEP + #undef RGBLIGHT_SAT_STEP + #undef RGBLIGHT_VAL_STEP -#define BACKLIGHT_LEVELS 7 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 17 -#define RGBLIGHT_VAL_STEP 17 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 17 + #define RGBLIGHT_VAL_STEP 17 +#endif -/* Make mouse operation smoother. */ -#undef MOUSEKEY_DELAY -#undef MOUSEKEY_INTERVAL +#if defined(BACKLIGHT_ENABLE) + /* Enable backlight breathing across the board. */ + #define BACKLIGHT_BREATHING -#define MOUSEKEY_DELAY 0 -#define MOUSEKEY_INTERVAL 16 + /* Keep backlight level increments consistent across keyboards. */ + #undef BACKLIGHT_LEVELS -/* Lower mouse speed to adjust for reduced MOUSEKEY_INTERVAL. */ -#undef MOUSEKEY_MAX_SPEED -#undef MOUSEKEY_TIME_TO_MAX -#undef MOUSEKEY_WHEEL_MAX_SPEED -#undef MOUSEKEY_WHEEL_TIME_TO_MAX + #define BACKLIGHT_LEVELS 7 +#endif -#define MOUSEKEY_MAX_SPEED 7 -#define MOUSEKEY_TIME_TO_MAX 150 -#define MOUSEKEY_WHEEL_MAX_SPEED 3 -#define MOUSEKEY_WHEEL_TIME_TO_MAX 150 +#if defined(MOUSEKEY_ENABLE) + /* Make mouse operation smoother. */ + #undef MOUSEKEY_DELAY + #undef MOUSEKEY_INTERVAL + + #define MOUSEKEY_DELAY 0 + #define MOUSEKEY_INTERVAL 16 + + /* Lower mouse speed to adjust for reduced MOUSEKEY_INTERVAL. */ + #undef MOUSEKEY_MAX_SPEED + #undef MOUSEKEY_TIME_TO_MAX + #undef MOUSEKEY_WHEEL_MAX_SPEED + #undef MOUSEKEY_WHEEL_TIME_TO_MAX + + #define MOUSEKEY_MAX_SPEED 7 + #define MOUSEKEY_TIME_TO_MAX 150 + #define MOUSEKEY_WHEEL_MAX_SPEED 3 + #define MOUSEKEY_WHEEL_TIME_TO_MAX 150 +#endif + +#if defined(KEYBOARD_cannonkeys_instant60) + /* + * Work around EEPROM incompatibility with VIA: + * https://github.com/qmk/qmk_firmware/issues/6589#issuecomment-524042457. + */ + #undef EEPROM_MAGIC_ADDR + #undef EEPROM_VERSION_ADDR + #undef DYNAMIC_KEYMAP_EEPROM_ADDR + #undef EEPROM_CUSTOM_BACKLIGHT + #undef DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + + #define EEPROM_MAGIC_ADDR 34 + #define EEPROM_VERSION_ADDR 36 + #define DYNAMIC_KEYMAP_EEPROM_ADDR 37 + #define EEPROM_CUSTOM_BACKLIGHT 637 + #define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR 638 +#endif diff --git a/users/bcat/rules.mk b/users/bcat/rules.mk index 59f82709ad3..407729c82bb 100644 --- a/users/bcat/rules.mk +++ b/users/bcat/rules.mk @@ -9,3 +9,5 @@ EXTRAKEY_ENABLE = yes CONSOLE_ENABLE = no COMMAND_ENABLE = no NKRO_ENABLE = no +UNICODE_ENABLE = no +API_SYSEX_ENABLE = no From 0728c0fa4eec9999a4b1268aa6196d7a4c31e721 Mon Sep 17 00:00:00 2001 From: Annihilator6000 <8xovermsoctober@gmail.com> Date: Sat, 7 Sep 2019 12:04:31 -0400 Subject: [PATCH 31/36] [Keymap] UT47.2 Planck-style layout switching (#6669) * UT47.2 keymap/updates for Planck style layout switching * UT47.2 keymap for Planck-style layout switching / code clean up * UT47.2 keymap for Planck-style layout switching: Qwerty, Workman, Colemak, Colemak Mod-DH, and Dvorak added / code clean up * Change the layout info to match the keymap * Edit readme to contain relevant info for layout switching * Edit readme to contain relevant info for layout switching * Edit readme to contain relevant info for layout switching * Edit readme to contain relevant info for layout switching. Add QMK Configurator file. * Update readme.md with make information * Undo breaking change in config.h * Code cleanup * Code cleanup * Code cleanup * More code cleanup --- ...472_Annihilator6000_Configurator_file.json | 1 + .../ut472/keymaps/annihilator6000/config.h | 19 ++ .../ut472/keymaps/annihilator6000/keymap.c | 256 ++++++++++++++++++ .../ut472/keymaps/annihilator6000/readme.md | 15 + keyboards/ut472/rules.mk | 1 + keyboards/ut472/ut472.h | 1 - 6 files changed, 292 insertions(+), 1 deletion(-) create mode 100755 keyboards/ut472/keymaps/annihilator6000/UT472_Annihilator6000_Configurator_file.json create mode 100644 keyboards/ut472/keymaps/annihilator6000/config.h create mode 100644 keyboards/ut472/keymaps/annihilator6000/keymap.c create mode 100644 keyboards/ut472/keymaps/annihilator6000/readme.md diff --git a/keyboards/ut472/keymaps/annihilator6000/UT472_Annihilator6000_Configurator_file.json b/keyboards/ut472/keymaps/annihilator6000/UT472_Annihilator6000_Configurator_file.json new file mode 100755 index 00000000000..45569d55888 --- /dev/null +++ b/keyboards/ut472/keymaps/annihilator6000/UT472_Annihilator6000_Configurator_file.json @@ -0,0 +1 @@ +{"keyboard":"ut472","keymap":"ut472_layout_switching","layout":"LAYOUT","layers":[["KC_ESC","KC_Q","KC_W","KC_E","KC_R","KC_T","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_BSPC","LT(3,KC_TAB)","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_LCTL","KC_LALT","KC_LGUI","KC_APP","MO(2)","KC_SPC","MO(1)","KC_LEFT","KC_DOWN","KC_UP","KC_RGHT"],["KC_ESC","KC_Q","KC_D","KC_R","KC_W","KC_B","KC_J","KC_F","KC_U","KC_P","KC_SCLN","KC_BSPC","LT(3,KC_TAB)","KC_A","KC_S","KC_H","KC_T","KC_G","KC_Y","KC_N","KC_E","KC_O","KC_I","KC_QUOT","KC_LSFT","KC_Z","KC_X","KC_M","KC_C","KC_V","KC_K","KC_L","KC_COMM","KC_DOT","KC_SLSH","KC_SFTENT","KC_LCTL","KC_LALT","KC_LGUI","KC_APP","MO(2)","KC_SPC","MO(1)","KC_LEFT","KC_DOWN","KC_UP","KC_RGHT"],["KC_ESC","KC_Q","KC_W","KC_F","KC_P","KC_G","KC_J","KC_L","KC_U","KC_Y","KC_SCLN","KC_BSPC","LT(3,KC_TAB)","KC_A","KC_R","KC_S","KC_T","KC_D","KC_H","KC_N","KC_E","KC_I","KC_O","KC_QUOT","KC_LSFT","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_K","KC_M","KC_COMM","KC_DOT","KC_SLSH","KC_SFTENT","KC_LCTL","KC_LALT","KC_LGUI","KC_APP","MO(2)","KC_SPC","MO(1)","KC_LEFT","KC_DOWN","KC_UP","KC_RGHT"],["KC_ESC","KC_Q","KC_W","KC_F","KC_P","KC_B","KC_J","KC_L","KC_U","KC_Y","KC_SCLN","KC_BSPC","LT(3,KC_TAB)","KC_A","KC_R","KC_S","KC_T","KC_G","KC_K","KC_N","KC_E","KC_I","KC_O","KC_QUOT","KC_LSFT","KC_X","KC_C","KC_D","KC_V","KC_Z","KC_M","KC_H","KC_COMM","KC_DOT","KC_SLSH","KC_SFTENT","KC_LCTL","KC_LALT","KC_LGUI","KC_APP","MO(2)","KC_SPC","MO(1)","KC_LEFT","KC_DOWN","KC_UP","KC_RGHT"],["KC_ESC","KC_QUOT","KC_COMM","KC_DOT","KC_P","KC_Y","KC_F","KC_G","KC_C","KC_R","KC_L","KC_BSPC","LT(3,KC_TAB)","KC_A","KC_O","KC_E","KC_U","KC_I","KC_D","KC_H","KC_T","KC_N","KC_S","KC_SLSH","KC_LSFT","KC_SCLN","KC_Q","KC_J","KC_K","KC_X","KC_B","KC_M","KC_W","KC_V","KC_Z","KC_SFTENT","KC_LCTL","KC_LALT","KC_LGUI","KC_APP","MO(2)","KC_SPC","MO(1)","KC_LEFT","KC_DOWN","KC_UP","KC_RGHT"],["KC_GRV","KC_1","KC_2","KC_3","KC_4","KC_5","KC_6","KC_7","KC_8","KC_9","KC_0","KC_DEL","KC_NO","RGB_TOG","RGB_MOD","RGB_VAI","RGB_VAD","KC_NO","KC_NO","KC_MINS","KC_EQL","KC_LBRC","KC_RBRC","KC_BSLS","KC_NO","KC_F11","KC_F12","KC_F13","KC_F14","KC_F15","KC_F16","KC_F17","KC_F18","KC_F19","KC_F20","KC_NO","KC_NO","KC_NO","KC_NO","KC_CAPS","KC_NO","KC_NO","KC_TRNS","KC_HOME","KC_PGDN","KC_PGUP","KC_END"],["KC_TILD","KC_EXLM","KC_AT","KC_HASH","KC_DLR","KC_PERC","KC_CIRC","KC_AMPR","KC_ASTR","KC_LPRN","KC_RPRN","KC_DEL","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_UNDS","KC_PLUS","KC_LCBR","KC_RCBR","KC_PIPE","KC_NO","KC_F1","KC_F2","KC_F3","KC_F4","KC_F5","KC_F6","KC_F7","KC_F8","KC_F9","KC_F10","KC_NO","KC_NO","KC_NO","KC_NO","KC_CAPS","KC_TRNS","KC_NO","KC_NO","KC_HOME","KC_PGDN","KC_PGUP","KC_END"],["KC_ESC","KC_CALC","KC_WHOM","KC_MAIL","KC_MYCM","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_PSCR","KC_NO","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_WH_L","KC_WH_D","KC_WH_U","KC_WH_R"],["RESET","KC_NO","KC_NO","RGB_TOG","RGB_MOD","RGB_HUI","RGB_HUD","RGB_SAI","RGB_SAD","RGB_VAI","RGB_VAD","KC_DEL","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","ANY(Qwerty)","ANY(Workman)","ANY(Colemak)","ANY(Colemak Mod-DH)","ANY(Dvorak)","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","DEBUG","KC_NO","KC_NO","KC_NO","KC_TRNS","KC_NO","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO"]],"author":"Annihilator6000","notes":"Layer 0 = Qwerty\nLayer 1 = Workman\nLayer 2 = Colemak\nLayer 3 = Colemak Mod-DH\nLayer 4 = Dvorak\nLayer 5 = Function Layer 1 (MO 1)\nLayer 6 = Function Layer 2 (MO 2)\nLayer 7 = Function Layer 3 (LT 3: Hold Tab)\nLayer 8 = Planck-style Adjust Layer (Hold MO 1 and MO 2 at the same time)"} \ No newline at end of file diff --git a/keyboards/ut472/keymaps/annihilator6000/config.h b/keyboards/ut472/keymaps/annihilator6000/config.h new file mode 100644 index 00000000000..023c753c27a --- /dev/null +++ b/keyboards/ut472/keymaps/annihilator6000/config.h @@ -0,0 +1,19 @@ +/* Copyright 2018 Carlos Filoteo + * + * 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 + +// place overrides here diff --git a/keyboards/ut472/keymaps/annihilator6000/keymap.c b/keyboards/ut472/keymaps/annihilator6000/keymap.c new file mode 100644 index 00000000000..c4453279d2e --- /dev/null +++ b/keyboards/ut472/keymaps/annihilator6000/keymap.c @@ -0,0 +1,256 @@ +/* Copyright 2018 Carlos Filoteo + * + * 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 LT3_TAB LT(3, KC_TAB) + +enum ut472_layers { + _QWERTY, + _WORKMAN, + _COLEMAK, + _COLEMAK_MOD_DH, + _DVORAK, + _LOWER, + _RAISE, + _TAB, + _ADJUST +}; + +enum ut472_keycodes { + QWERTY = SAFE_RANGE, + WORKMAN, + COLEMAK, + COLEMAK_MOD_DH, + DVORAK +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Base Layer - QWERTY + * ,-------------------------------------------------------------------------. + * | Esc | Q | W | E | R | T | Y | U | I | O | P |Bspace | + * |-------------------------------------------------------------------------+ + * |Tab/L3| A | S | D | F | G | H | J | K | L | ; | ' | + * |-------------------------------------------------------------------------+ + * | Shift | Z | X | C | V | B | N | M | , | . | / |Sh/En| + * |-------------------------------------------------------------------------+ + * | Ctrl| Alt | Gui | App | L2 | Space | L1 | Left| Down| Up |Right| + * `-------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + LT3_TAB, 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_LCTL, KC_LALT, KC_LGUI, KC_APP, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + + /* Workman + * ,-------------------------------------------------------------------------. + * | Esc | Q | D | R | W | B | J | F | U | P | ; |Bspace | + * |-------------------------------------------------------------------------+ + * |Tab/L3| A | S | H | T | G | Y | N | E | O | I | ' | + * |-------------------------------------------------------------------------+ + * | Shift | Z | X | M | C | V | K | L | , | . | / |Sh/En| + * |-------------------------------------------------------------------------+ + * | Ctrl| Alt | Gui | App | L2 | Space | L1 | Left| Down| Up |Right| + * `-------------------------------------------------------------------------' + */ +[_WORKMAN] = LAYOUT( + KC_ESC, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSPC, + LT3_TAB, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, KC_SFTENT, + KC_LCTL, KC_LALT, KC_LGUI, KC_APP, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + + /* Colemak + * ,---------------------------------------------------------------------------. + * | Esc | Q | W | F | P | G | J | L | U | Y | ; | Bksp | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---------| + * |Tab/L3| A | R | S | T | D | H | N | E | I | O | " | + * |------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--------| + * | Shift | Z | X | C | V | B | K | M | , | . | / | Sh/En | + * |-------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-------| + * | Ctrl| Alt | GUI | App | L2 | Space | L1 | Left | Down | Up |Right | + * `---------------------------------------------------------------------------' + */ +[_COLEMAK] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + LT3_TAB, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , + KC_LCTL, KC_LALT, KC_LGUI, KC_APP, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + + /* Colemak Mod-DH + * https://colemakmods.github.io/mod-dh/keyboards.html + * ,---------------------------------------------------------------------------. + * | Esc | Q | W | F | P | B | J | L | U | Y | ; | Bksp | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---------| + * |Tab/L3| A | R | S | T | G | K | N | E | I | O | ' | + * |------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--------| + * | Shift | X | C | D | V | Z | M | H | , | . | / | Sh/En | + * |-------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-------| + * | Ctrl| Alt | GUI | App | L2 | Space | L1 | Left | Down | Up |Right | + * `---------------------------------------------------------------------------' + */ +[_COLEMAK_MOD_DH] = LAYOUT( + KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, + LT3_TAB, KC_A, KC_R, KC_S, KC_T, KC_G, KC_K, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_X, KC_C, KC_D, KC_V, KC_Z, KC_M, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTL, KC_LALT, KC_LGUI, KC_APP, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + + /* Dvorak + * ,--------------------------------------------------------------------------. + * | Esc | " | , | . | P | Y | F | G | C | R | L | Bksp | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+--------| + * |Tab/L3| A | O | E | U | I | D | H | T | N | S | / | + * |------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-------| + * | Shift | ; | Q | J | K | X | B | M | W | V | Z |Sh/En | + * |-------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------| + * | Ctrl| Alt | GUI | App | L2 | Space | L1 | Left | Down | Up |Right | + * `--------------------------------------------------------------------------' + */ +[_DVORAK] = LAYOUT( + KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, + LT3_TAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , + KC_LCTL, KC_LALT, KC_LGUI, KC_APP, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + + /* FN Layer 1 - LOWER + * ,-------------------------------------------------------------------------. + * | ` ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Delete| + * |-------------------------------------------------------------------------+ + * | | | | | | | | - | = | [ | ] | \ | + * |-------------------------------------------------------------------------+ + * | | F11 | F12 | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | | + * |-------------------------------------------------------------------------+ + * | | | |Capsl| | | | Home| PgDn| PgUp| End | + * `-------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DELETE, + _______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, _______, + _______, _______, _______, KC_CAPS, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END +), + + /* FN Layer 2 - RAISE + * ,-------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) |Delete| + * |-------------------------------------------------------------------------+ + * | | | | | | | | _ | + | { | } | | | + * |-------------------------------------------------------------------------+ + * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | | + * |-------------------------------------------------------------------------+ + * | | | |Capsl| | | | Home| PgDn| PgUp| End | + * `-------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT( + KC_TILDE, KC_EXCLAIM, KC_AT, KC_HASH, KC_DOLLAR, KC_PERCENT, KC_CIRCUMFLEX, KC_AMPERSAND, KC_ASTERISK, KC_LEFT_PAREN, KC_RIGHT_PAREN, KC_DELETE, + _______, _______, _______, _______, _______, _______, _______, KC_UNDERSCORE, KC_PLUS, KC_LEFT_CURLY_BRACE, KC_RIGHT_CURLY_BRACE, KC_PIPE, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + _______, _______, _______, KC_CAPS, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END +), + + /* FN Layer 3 - Hold Tab + * ,-------------------------------------------------------------------------. + * | Esc | Calc|Webhm| Mail| Comp| | | | | |PrtSc| | + * |-------------------------------------------------------------------------+ + * | | | | | | | | | | | | | + * |-------------------------------------------------------------------------+ + * | | | | | | | | | | | | | + * |-------------------------------------------------------------------------+ + * | | | | | | | |MousL|MousD|MousU|MousR| + * `-------------------------------------------------------------------------' + */ +[_TAB] = LAYOUT( + KC_ESC, KC_CALC, KC_WHOM, KC_MAIL, KC_MYCM, _______, _______, _______, _______, _______, KC_PSCR, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R +), + + /* Adjust (L1 + L2) + * v-----------------------RGB CONTROL---------------------v + * ,-------------------------------------------------------------------------- + * |Reset| | | RGB |RGBMO|HUE+ |HUE- |SAT+ |SAT- |BRT+ |BRT- | Del | + * |-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-------| + * | | | | | | |Qwert|Wrkmn|ModDH|Colmk|Dvork| | + * |------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------| + * | | | | | | | | | | | | | + * |-------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----| + * | Dbg | | | | | | | | | | | + * `-------------------------------------------------------------------------' + */ +[_ADJUST] = LAYOUT( + RESET, _______, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL, + _______, _______, _______, _______, _______, _______, QWERTY, WORKMAN, COLEMAK, COLEMAK_MOD_DH, DVORAK, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) +/* QWERTY = H + WORKMAN = J + COLEMAK = K + -MOD-DH = L + DVORAK = ; */ +}; + + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case QWERTY: + if (record->event.pressed) { + print("mode just switched to qwerty and this is a huge string\n"); + set_single_persistent_default_layer(_QWERTY); + } + return false; + break; + case WORKMAN: + if (record->event.pressed) { + set_single_persistent_default_layer(_WORKMAN); + } + return false; + break; + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + break; + case COLEMAK_MOD_DH: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK_MOD_DH); + } + return false; + break; + case DVORAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_DVORAK); + } + return false; + break; + } + return true; +} diff --git a/keyboards/ut472/keymaps/annihilator6000/readme.md b/keyboards/ut472/keymaps/annihilator6000/readme.md new file mode 100644 index 00000000000..59469b7b553 --- /dev/null +++ b/keyboards/ut472/keymaps/annihilator6000/readme.md @@ -0,0 +1,15 @@ +# UT47.2 Planck-style layout switching + +Has layouts for Qwerty, Workman, Colemak, Colemak-Mod-DH, and Dvorak. Qwerty is the default layout. Layouts are switched Planck-style using momentary layer keys 1 and 2 (MO(1) and MO(2)) at the same time and pressing one of the H, J, K, L, or ; keys (this is while on the Qwerty layout - adjust if on another layout). See Layer 8 below for layout keys. + +You can load the UT472_Annihilator6000_Configurator_file.json file in the [QMK Configurator](https://config.qmk.fm/#/ut472/LAYOUT) if you want to check out the configuration there or easily modify it. + +Make example for this keyboard (after setting up your build environment): + + make ut472:Annihilator6000 + +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). + +![UT47.2 layout image](https://i.imgur.com/lICX4uz.png) + +[KLE](http://www.keyboard-layout-editor.com/##@@_y:0%3B&=Esc&=Q&=W&=E&=R&=T&=Y&=U&=I&=O&=P&_w:1.5%3B&=Back%20Space&_x:0.25&a:4&f:4&w:4&h:4&d:true%3B&=%3Cb%3EGNAP!%3C%2F%2Fb%3E%3Cp%3E%3Cp%3EMinimum%20stagger%3Cp%3E47%20key%20layout%3B&@_a:7&f:3&w:1.25%3B&=Tab&=A&=S&=D&=F&=G&=H&=J&=K&=L&=%2F%3B&_w:1.25%3B&=%27%3B&@_w:1.5%3B&=Shift&=Z&=X&=C&=V&=B&=N&=M&=,&=.&=%2F%2F&=Return%3B&@=Ctrl&=Alt&=Super&=Menu&_w:1.25%3B&=%2F&dArr%2F%3B&_w:2%3B&=&_w:1.25%3B&=%2F&uArr%2F%3B&=%2F&larr%2F%3B&=%2F&darr%2F%3B&=%2F&uarr%2F%3B&=%2F&rarr%2F%3B%3B&=undefined) diff --git a/keyboards/ut472/rules.mk b/keyboards/ut472/rules.mk index c7b2efedca3..6398eab21d5 100644 --- a/keyboards/ut472/rules.mk +++ b/keyboards/ut472/rules.mk @@ -67,3 +67,4 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output on port C6 FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches RGBLIGHT_ENABLE = yes +TAP_DANCE_ENABLE = no # Enable tap dance feature diff --git a/keyboards/ut472/ut472.h b/keyboards/ut472/ut472.h index 1068dd7041f..391392896a1 100644 --- a/keyboards/ut472/ut472.h +++ b/keyboards/ut472/ut472.h @@ -31,4 +31,3 @@ { K30, K31, K32, K33, K34, K35, K35, K37, K38, K39, K3a, K3b } \ } - From 44fd317a8793753b2af1bab8e4a4700024a768a5 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sat, 7 Sep 2019 09:06:39 -0700 Subject: [PATCH 32/36] Move Bootloader not found message to global variable (#6688) * Move Bootloader not found message to global variable * Apply suggestions from code review Co-Authored-By: fauxpark --- message.mk | 1 + tmk_core/avr.mk | 4 ++-- tmk_core/chibios.mk | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/message.mk b/message.mk index c8d2135d5c0..dfbde2845be 100644 --- a/message.mk +++ b/message.mk @@ -87,3 +87,4 @@ MSG_PYTHON_MISSING = $(WARN_COLOR)WARNING:$(NO_COLOR)\n \ Please run $(BOLD)util/qmk_install.sh$(NO_COLOR) to install all the dependencies QMK requires.\n\n MSG_FLASH_BOOTLOADER = $(WARN_COLOR)WARNING:$(NO_COLOR) This board's bootloader is not specified or is not supported by the \":flash\" target at this time.\n\n MSG_FLASH_ARCH = $(WARN_COLOR)WARNING:$(NO_COLOR) This board's architecture is not supported by the \":flash\" target at this time.\n\n +MSG_BOOTLOADER_NOT_FOUND = $(ERROR_COLOR)ERROR:$(NO_COLOR) Bootloader not found. Trying again in 5s.\n diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index 775f2a996dc..40dcdc3f68f 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk @@ -147,7 +147,7 @@ define EXEC_DFU echo "Flashing '$(1)' for EE_HANDS split keyboard support." ;\ fi; \ until $(DFU_PROGRAMMER) $(MCU) get bootloader-version; do\ - echo "Error: Bootloader not found. Trying again in 5s." ;\ + printf "$(MSG_FLASH_BOOTLOADER)" ;\ sleep 5 ;\ done; \ if $(DFU_PROGRAMMER) --version 2>&1 | $(GREP) -q 0.7 ; then\ @@ -252,7 +252,7 @@ define EXEC_BOOTLOADHID # bootloadHid executable has no cross platform detect methods # so keep running bootloadHid if the output contains "The specified device was not found" until $(BOOTLOADHID_PROGRAMMER) -r $(BUILD_DIR)/$(TARGET).hex 2>&1 | tee /dev/stderr | grep -v "device was not found"; do\ - echo "Error: Bootloader not found. Trying again in 5s." ;\ + printf "$(MSG_FLASH_BOOTLOADER)" ;\ sleep 5 ;\ done endef diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk index 4b5b6d00b5a..5c757ec899c 100644 --- a/tmk_core/chibios.mk +++ b/tmk_core/chibios.mk @@ -236,7 +236,7 @@ qmk: $(BUILD_DIR)/$(TARGET).bin define EXEC_DFU_UTIL until $(DFU_UTIL) -l | grep -q "Found DFU"; do\ - echo "Error: Bootloader not found. Trying again in 5s." ;\ + printf "$(MSG_FLASH_BOOTLOADER)" ;\ sleep 5 ;\ done $(DFU_UTIL) $(DFU_ARGS) -D $(BUILD_DIR)/$(TARGET).bin From 02f77e7215a0ee9bb4ba1054dbdec75a4843bb99 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sat, 7 Sep 2019 16:55:18 -0700 Subject: [PATCH 33/36] Actually use correct bootloader not found message (#6695) --- tmk_core/avr.mk | 4 ++-- tmk_core/chibios.mk | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index 40dcdc3f68f..1846a9b4bc4 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk @@ -147,7 +147,7 @@ define EXEC_DFU echo "Flashing '$(1)' for EE_HANDS split keyboard support." ;\ fi; \ until $(DFU_PROGRAMMER) $(MCU) get bootloader-version; do\ - printf "$(MSG_FLASH_BOOTLOADER)" ;\ + printf "$(MSG_BOOTLOADER_NOT_FOUND)" ;\ sleep 5 ;\ done; \ if $(DFU_PROGRAMMER) --version 2>&1 | $(GREP) -q 0.7 ; then\ @@ -252,7 +252,7 @@ define EXEC_BOOTLOADHID # bootloadHid executable has no cross platform detect methods # so keep running bootloadHid if the output contains "The specified device was not found" until $(BOOTLOADHID_PROGRAMMER) -r $(BUILD_DIR)/$(TARGET).hex 2>&1 | tee /dev/stderr | grep -v "device was not found"; do\ - printf "$(MSG_FLASH_BOOTLOADER)" ;\ + printf "$(MSG_BOOTLOADER_NOT_FOUND)" ;\ sleep 5 ;\ done endef diff --git a/tmk_core/chibios.mk b/tmk_core/chibios.mk index 5c757ec899c..c25e287071f 100644 --- a/tmk_core/chibios.mk +++ b/tmk_core/chibios.mk @@ -236,7 +236,7 @@ qmk: $(BUILD_DIR)/$(TARGET).bin define EXEC_DFU_UTIL until $(DFU_UTIL) -l | grep -q "Found DFU"; do\ - printf "$(MSG_FLASH_BOOTLOADER)" ;\ + printf "$(MSG_BOOTLOADER_NOT_FOUND)" ;\ sleep 5 ;\ done $(DFU_UTIL) $(DFU_ARGS) -D $(BUILD_DIR)/$(TARGET).bin From ff118bce6ab5f83adf9def19f0ccbae3b5939f9a Mon Sep 17 00:00:00 2001 From: Callum Hart Date: Sun, 8 Sep 2019 01:34:39 +0100 Subject: [PATCH 34/36] Add Copenhagen Click Pad (#6681) * Add Copenhagen Click Pad * Update keyboards/copenhagen_click/click_pad_v1/rules.mk Co-Authored-By: fauxpark * Removing left over boilerplate * Update keyboards/copenhagen_click/click_pad_v1/config.h Co-Authored-By: Drashna Jaelre * Update keyboards/copenhagen_click/click_pad_v1/readme.md Co-Authored-By: fauxpark * Update readme.md --- .../click_pad_v1/click_pad_v1.c | 16 ++ .../click_pad_v1/click_pad_v1.h | 28 ++ .../copenhagen_click/click_pad_v1/config.h | 251 ++++++++++++++++++ .../copenhagen_click/click_pad_v1/info.json | 12 + .../click_pad_v1/keymaps/default/config.h | 19 ++ .../click_pad_v1/keymaps/default/keymap.c | 53 ++++ .../click_pad_v1/keymaps/default/readme.md | 1 + .../copenhagen_click/click_pad_v1/readme.md | 15 ++ .../copenhagen_click/click_pad_v1/rules.mk | 43 +++ 9 files changed, 438 insertions(+) create mode 100755 keyboards/copenhagen_click/click_pad_v1/click_pad_v1.c create mode 100755 keyboards/copenhagen_click/click_pad_v1/click_pad_v1.h create mode 100755 keyboards/copenhagen_click/click_pad_v1/config.h create mode 100755 keyboards/copenhagen_click/click_pad_v1/info.json create mode 100755 keyboards/copenhagen_click/click_pad_v1/keymaps/default/config.h create mode 100755 keyboards/copenhagen_click/click_pad_v1/keymaps/default/keymap.c create mode 100755 keyboards/copenhagen_click/click_pad_v1/keymaps/default/readme.md create mode 100755 keyboards/copenhagen_click/click_pad_v1/readme.md create mode 100755 keyboards/copenhagen_click/click_pad_v1/rules.mk diff --git a/keyboards/copenhagen_click/click_pad_v1/click_pad_v1.c b/keyboards/copenhagen_click/click_pad_v1/click_pad_v1.c new file mode 100755 index 00000000000..aab96c93888 --- /dev/null +++ b/keyboards/copenhagen_click/click_pad_v1/click_pad_v1.c @@ -0,0 +1,16 @@ +/* Copyright 2019 mini-ninja-64 + * + * 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 "click_pad_v1.h" diff --git a/keyboards/copenhagen_click/click_pad_v1/click_pad_v1.h b/keyboards/copenhagen_click/click_pad_v1/click_pad_v1.h new file mode 100755 index 00000000000..a5a8d9d6994 --- /dev/null +++ b/keyboards/copenhagen_click/click_pad_v1/click_pad_v1.h @@ -0,0 +1,28 @@ +/* Copyright 2019 mini-ninja-64 + * + * 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" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( k00 ) { { k00 } } \ No newline at end of file diff --git a/keyboards/copenhagen_click/click_pad_v1/config.h b/keyboards/copenhagen_click/click_pad_v1/config.h new file mode 100755 index 00000000000..552c73cf120 --- /dev/null +++ b/keyboards/copenhagen_click/click_pad_v1/config.h @@ -0,0 +1,251 @@ +/* +Copyright 2019 mini-ninja-64 + +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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x27DB +#define DEVICE_VER 0x0001 +#define MANUFACTURER Copenhagen Click +#define PRODUCT Click Pad V1 +#define DESCRIPTION A single switch macropad given out at the Copenhagen Click 2019 meetup. + +/* key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 1 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { B5 } +#define MATRIX_COL_PINS { B4 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ +#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 + +#define BACKLIGHT_PIN E6 +#define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 3 + +// #define RGB_DI_PIN E2 +// #ifdef RGB_DI_PIN +// #define RGBLED_NUM 16 +// #define RGBLIGHT_HUE_STEP 8 +// #define RGBLIGHT_SAT_STEP 8 +// #define RGBLIGHT_VAL_STEP 8 +// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ +// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ +// #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +// #endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ + +/* 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 + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +// #define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +/* defined by default; to change, uncomment and set to the combination you want */ +// #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP H +//#define MAGIC_KEY_HELP_ALT SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER0_ALT GRAVE +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER B +//#define MAGIC_KEY_BOOTLOADER_ALT ESC +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_EEPROM_CLEAR BSPACE +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION + +/* + * MIDI options + */ + +/* Prevent use of disabled MIDI features in the keymap */ +//#define MIDI_ENABLE_STRICT 1 + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ +//#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ +//#define MIDI_TONE_KEYCODE_OCTAVES 1 + +/* + * HD44780 LCD Display Configuration + */ +/* +#define LCD_LINES 2 //< number of visible lines of the display +#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display + +#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode + +#if LCD_IO_MODE +#define LCD_PORT PORTB //< port for the LCD lines +#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0 +#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1 +#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2 +#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3 +#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0 +#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1 +#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2 +#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3 +#define LCD_RS_PORT LCD_PORT //< port for RS line +#define LCD_RS_PIN 3 //< pin for RS line +#define LCD_RW_PORT LCD_PORT //< port for RW line +#define LCD_RW_PIN 2 //< pin for RW line +#define LCD_E_PORT LCD_PORT //< port for Enable line +#define LCD_E_PIN 1 //< pin for Enable line +#endif +*/ + +/* Bootmagic Lite key configuration */ +// #define BOOTMAGIC_LITE_ROW 0 +// #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/copenhagen_click/click_pad_v1/info.json b/keyboards/copenhagen_click/click_pad_v1/info.json new file mode 100755 index 00000000000..b3327e88097 --- /dev/null +++ b/keyboards/copenhagen_click/click_pad_v1/info.json @@ -0,0 +1,12 @@ +{ + "keyboard_name": "CopenhagenClickPad-V1", + "url": "http://copenhagenclick.com/ClickPad-V1/", + "maintainer": "mini-ninja-64", + "width": 1, + "height": 1, + "layouts": { + "LAYOUT": { + "layout": [{"x":0, "y":0}] + } + } +} \ No newline at end of file diff --git a/keyboards/copenhagen_click/click_pad_v1/keymaps/default/config.h b/keyboards/copenhagen_click/click_pad_v1/keymaps/default/config.h new file mode 100755 index 00000000000..3b73639db25 --- /dev/null +++ b/keyboards/copenhagen_click/click_pad_v1/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2019 mini-ninja-64 + * + * 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 + +// place overrides here diff --git a/keyboards/copenhagen_click/click_pad_v1/keymaps/default/keymap.c b/keyboards/copenhagen_click/click_pad_v1/keymaps/default/keymap.c new file mode 100755 index 00000000000..a1187278261 --- /dev/null +++ b/keyboards/copenhagen_click/click_pad_v1/keymaps/default/keymap.c @@ -0,0 +1,53 @@ +/* Copyright 2019 mini-ninja-64 + * + * 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 + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + COPENHAGEN = SAFE_RANGE +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( COPENHAGEN ), +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case COPENHAGEN: + if (record->event.pressed) { + // when keycode COPENHAGEN is pressed + SEND_STRING("Copenhagen Click!"); + } else { + // when keycode COPENHAGEN is released + } + break; + } + return true; +} + +void matrix_init_user(void) { + backlight_enable(); + breathing_enable(); + +} + +void matrix_scan_user(void) { + +} + +void led_set_user(uint8_t usb_led) { + +} diff --git a/keyboards/copenhagen_click/click_pad_v1/keymaps/default/readme.md b/keyboards/copenhagen_click/click_pad_v1/keymaps/default/readme.md new file mode 100755 index 00000000000..97b159b94e0 --- /dev/null +++ b/keyboards/copenhagen_click/click_pad_v1/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for CopenhagenClickPad-V1 diff --git a/keyboards/copenhagen_click/click_pad_v1/readme.md b/keyboards/copenhagen_click/click_pad_v1/readme.md new file mode 100755 index 00000000000..48f07a21494 --- /dev/null +++ b/keyboards/copenhagen_click/click_pad_v1/readme.md @@ -0,0 +1,15 @@ +# CopenhagenClickPad-V1 + +![ClickPad](https://i.imgur.com/de8Z0wj.jpg) + +A single switch macropad given out at the Copenhagen Click 2019 meetup. + +Keyboard Maintainer: [mini-ninja-64](https://github.com/mini-ninja-64) +Hardware Supported: Copenhagen Click Pad V1 +Hardware Availability: Copenhagen Click 2019 + +Make example for this keyboard (after setting up your build environment): + + make copenhagen_click/click_pad_v1: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). diff --git a/keyboards/copenhagen_click/click_pad_v1/rules.mk b/keyboards/copenhagen_click/click_pad_v1/rules.mk new file mode 100755 index 00000000000..381604ac5b4 --- /dev/null +++ b/keyboards/copenhagen_click/click_pad_v1/rules.mk @@ -0,0 +1,43 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = atmel-dfu + + +# If you don't know the bootloader type, then you can specify the +# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +# OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = yes # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) From d2f87df7f47926fbb5c98a6a3d242afd7a78f31b Mon Sep 17 00:00:00 2001 From: vuhopkep Date: Sun, 8 Sep 2019 22:48:54 +0700 Subject: [PATCH 35/36] [Keyboard] Add Freyr keyboard (#6664) * Add Freyr keyboard Add new Freyr tkl keyboard * add comunity layout * Update info.json * Update readme.md * Update info.json * Update keymap.c --- keyboards/freyr/config.h | 65 ++++++++++++++++++++ keyboards/freyr/freyr.c | 45 ++++++++++++++ keyboards/freyr/freyr.h | 72 +++++++++++++++++++++++ keyboards/freyr/info.json | 18 ++++++ keyboards/freyr/keymaps/default/config.h | 19 ++++++ keyboards/freyr/keymaps/default/keymap.c | 44 ++++++++++++++ keyboards/freyr/keymaps/default/readme.md | 1 + keyboards/freyr/readme.md | 15 +++++ keyboards/freyr/rules.mk | 47 +++++++++++++++ 9 files changed, 326 insertions(+) create mode 100644 keyboards/freyr/config.h create mode 100644 keyboards/freyr/freyr.c create mode 100644 keyboards/freyr/freyr.h create mode 100644 keyboards/freyr/info.json create mode 100644 keyboards/freyr/keymaps/default/config.h create mode 100644 keyboards/freyr/keymaps/default/keymap.c create mode 100644 keyboards/freyr/keymaps/default/readme.md create mode 100644 keyboards/freyr/readme.md create mode 100644 keyboards/freyr/rules.mk diff --git a/keyboards/freyr/config.h b/keyboards/freyr/config.h new file mode 100644 index 00000000000..ce30fd5344f --- /dev/null +++ b/keyboards/freyr/config.h @@ -0,0 +1,65 @@ +/* +Copyright 2019 HnahKB + +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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x0000 +#define DEVICE_VER 0x0002 +#define MANUFACTURER HnahKB +#define PRODUCT Freyr +#define DESCRIPTION Custom PCB TKL keyboard + +/* key matrix size */ +#define MATRIX_ROWS 10 +#define MATRIX_COLS 10 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { D3, B2, B1, B0, E6, F0, D2, D5, F4, F1 } +#define MATRIX_COL_PINS { B4, D7, D6, D4, B5, C7, C6, F5, F6, F7 } +#define UNUSED_PINS + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +/* + * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. + */ + +#define BACKLIGHT_PIN B6 +#define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 3 + + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/freyr/freyr.c b/keyboards/freyr/freyr.c new file mode 100644 index 00000000000..68c26294f54 --- /dev/null +++ b/keyboards/freyr/freyr.c @@ -0,0 +1,45 @@ +/* Copyright 2019 HnahKB + * + * 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 "freyr.h" + + +void matrix_init_kb(void) { + matrix_init_user(); + led_init_ports(); +}; + +void led_init_ports(void) { + setPinOutput(B3); + setPinOutput(B7); +} + +void led_set_kb(uint8_t usb_led) { + if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) { + // Turn Caps Lock LED on + writePinLow(B3); + } else { + // Turn Caps Lock LED off + writePinHigh(B3); + } + if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) { + // Turn Scroll Lock LED on + writePinLow(B7); + } else { + // Turn Scroll Lock LED off + writePinHigh(B7); + } + led_set_user(usb_led); +} diff --git a/keyboards/freyr/freyr.h b/keyboards/freyr/freyr.h new file mode 100644 index 00000000000..f18e74432f9 --- /dev/null +++ b/keyboards/freyr/freyr.h @@ -0,0 +1,72 @@ +/* Copyright 2019 HnahKB + * + * 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 LAYOUT_all( \ + k00, k01, k02, k03, k04, k06, k07, k08,k09, k60, k61, k62, k63, k64, k65, k66, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k70, k71, k72, k73, k74, k75, k76, k67, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k80, k81, k82, k83, k78, k77, k68, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k90, k91, k92, k84, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k95, k94, k85, k93, k79, \ + k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k69 \ +) { \ + { k00, k01, k02, k03, k04, KC_NO, k06, k07, k08, k09 }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39 }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49}, \ + { k50, k51, k52, k53, k54, k55, k56, k57, k58, k59 }, \ + { k60, k61, k62, k63, k64, k65, k66, k67, k68, k69 }, \ + { k70, k71, k72, k73, k74, k75, k76, k77, k78, k79 }, \ + { k80, k81, k82, k83, k84, k85, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { k90, k91, k92, k93, k94, k95, KC_NO, KC_NO, KC_NO, KC_NO } \ +} + +#define LAYOUT_tkl_ansi( \ + k00, k01, k02, k03, k04, k06, k07, k08,k09, k60, k61, k62, k63, k64, k65, k66, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k70, k71, k72, k73, k75, k76, k67, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k80, k81, k82, k83, k78, k77, k68, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k90, k91, k84, \ + k40, k42, k43, k44, k45, k46, k47, k48, k49, k95, k94, k93, k79, \ + k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k69 \ +) LAYOUT_all( \ + k00, k01, k02, k03, k04, k06, k07, k08,k09, k60, k61, k62, k63, k64, k65, k66, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k70, k71, k72, k73, KC_NO, k75, k76, k67, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k80, k81, k82, k83, k78, k77, k68, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k90, k91, KC_NO, k84, \ + k40, KC_NO, k42, k43, k44, k45, k46, k47, k48, k49, k95, k94, KC_NO, k93, k79, \ + k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k69 \ +) + +#define LAYOUT_tkl_iso( \ + k00, k01, k02, k03, k04, k06, k07, k08,k09, k60, k61, k62, k63, k64, k65, k66, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k70, k71, k72, k73, k75, k76, k67, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k80, k81, k82, k78, k77, k68, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k90, k91, k92, k84, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k95, k94, k93, k79, \ + k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k69 \ +) LAYOUT_all( \ + k00, k01, k02, k03, k04, k06, k07, k08,k09, k60, k61, k62, k63, k64, k65, k66, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k70, k71, k72, k73, KC_NO, k75, k76, k67, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k80, k81, k82, KC_NO, k78, k77, k68, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k90, k91, k92, k84, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k95, k94, KC_NO, k93, k79, \ + k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k69 \ +) + diff --git a/keyboards/freyr/info.json b/keyboards/freyr/info.json new file mode 100644 index 00000000000..f201aec1e4f --- /dev/null +++ b/keyboards/freyr/info.json @@ -0,0 +1,18 @@ +{ + "keyboard_name": "freyr", + "url": "", + "maintainer": "qmk", + "width": 21.25, + "height": 6.5, + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"Esc", "x":3, "y":0.25}, {"label":"F1", "x":5, "y":0.25}, {"label":"F2", "x":6, "y":0.25}, {"label":"F3", "x":7, "y":0.25}, {"label":"F4", "x":8, "y":0.25}, {"label":"F5", "x":9.5, "y":0.25}, {"label":"F6", "x":10.5, "y":0.25}, {"label":"F7", "x":11.5, "y":0.25}, {"label":"F8", "x":12.5, "y":0.25}, {"label":"F9", "x":14, "y":0.25}, {"label":"F10", "x":15, "y":0.25}, {"label":"F11", "x":16, "y":0.25}, {"label":"F12", "x":17, "y":0.25}, {"label":"PrtSc", "x":18.25, "y":0.25}, {"label":"Scroll Lock", "x":19.25, "y":0.25}, {"label":"Pause", "x":20.25, "y":0.25}, {"label":"~", "x":3, "y":1.5}, {"label":"!", "x":4, "y":1.5}, {"label":"@", "x":5, "y":1.5}, {"label":"#", "x":6, "y":1.5}, {"label":"$", "x":7, "y":1.5}, {"label":"%", "x":8, "y":1.5}, {"label":"^", "x":9, "y":1.5}, {"label":"&", "x":10, "y":1.5}, {"label":"*", "x":11, "y":1.5}, {"label":"(", "x":12, "y":1.5}, {"label":")", "x":13, "y":1.5}, {"label":"_", "x":14, "y":1.5}, {"label":"+", "x":15, "y":1.5}, {"label":"Backspace", "x":16, "y":1.5, "w":2}, {"label":"Insert", "x":18.25, "y":1.5}, {"label":"Home", "x":19.25, "y":1.5}, {"label":"PgUp", "x":20.25, "y":1.5}, {"label":"Tab", "x":3, "y":2.5, "w":1.5}, {"label":"Q", "x":4.5, "y":2.5}, {"label":"W", "x":5.5, "y":2.5}, {"label":"E", "x":6.5, "y":2.5}, {"label":"R", "x":7.5, "y":2.5}, {"label":"T", "x":8.5, "y":2.5}, {"label":"Y", "x":9.5, "y":2.5}, {"label":"U", "x":10.5, "y":2.5}, {"label":"I", "x":11.5, "y":2.5}, {"label":"O", "x":12.5, "y":2.5}, {"label":"P", "x":13.5, "y":2.5}, {"label":"{", "x":14.5, "y":2.5}, {"label":"}", "x":15.5, "y":2.5}, {"label":"Enter", "x":16.75, "y":2.5, "w":1.25, "h":2}, {"label":"Delete", "x":18.25, "y":2.5}, {"label":"End", "x":19.25, "y":2.5}, {"label":"PgDn", "x":20.25, "y":2.5}, {"label":"Caps", "x":3, "y":3.5, "w":1.25}, {"label":"A", "x":4.75, "y":3.5}, {"label":"S", "x":5.75, "y":3.5}, {"label":"D", "x":6.75, "y":3.5}, {"label":"F", "x":7.75, "y":3.5}, {"label":"G", "x":8.75, "y":3.5}, {"label":"H", "x":9.75, "y":3.5}, {"label":"J", "x":10.75, "y":3.5}, {"label":"K", "x":11.75, "y":3.5}, {"label":"L", "x":12.75, "y":3.5}, {"label":":", "x":13.75, "y":3.5}, {"label":"\"", "x":14.75, "y":3.5}, {"x":15.75, "y":3.5}, {"label":"Shift", "x":3, "y":4.5, "w":1.25}, {"x":4.25, "y":4.5}, {"label":"Z", "x":5.25, "y":4.5}, {"label":"X", "x":6.25, "y":4.5}, {"label":"C", "x":7.25, "y":4.5}, {"label":"V", "x":8.25, "y":4.5}, {"label":"B", "x":9.25, "y":4.5}, {"label":"N", "x":10.25, "y":4.5}, {"label":"M", "x":11.25, "y":4.5}, {"label":"<", "x":12.25, "y":4.5}, {"label":">", "x":13.25, "y":4.5}, {"label":"?", "x":14.25, "y":4.5}, {"x":15.25, "y":4.5}, {"x":16.25, "y":4.5, "w":1.75}, {"label":"\u2191", "x":19.25, "y":4.5}, {"label":"Ctrl", "x":3, "y":5.5, "w":1.25}, {"label":"Win", "x":4.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":5.5, "y":5.5, "w":1.25}, {"x":6.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":13, "y":5.5, "w":1.25}, {"label":"Win", "x":14.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":15.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":16.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":18.25, "y":5.5}, {"label":"\u2193", "x":19.25, "y":5.5}, {"label":"\u2192", "x":20.25, "y":5.5}] + }, + "LAYOUT_tkl_ansi": { + "layout": [{"label":"Esc", "x":3, "y":0.25}, {"label":"F1", "x":5, "y":0.25}, {"label":"F2", "x":6, "y":0.25}, {"label":"F3", "x":7, "y":0.25}, {"label":"F4", "x":8, "y":0.25}, {"label":"F5", "x":9.5, "y":0.25}, {"label":"F6", "x":10.5, "y":0.25}, {"label":"F7", "x":11.5, "y":0.25}, {"label":"F8", "x":12.5, "y":0.25}, {"label":"F9", "x":14, "y":0.25}, {"label":"F10", "x":15, "y":0.25}, {"label":"F11", "x":16, "y":0.25}, {"label":"F12", "x":17, "y":0.25}, {"label":"PrtSc", "x":18.25, "y":0.25}, {"label":"Scroll Lock", "x":19.25, "y":0.25}, {"label":"Pause", "x":20.25, "y":0.25}, {"label":"~", "x":3, "y":1.5}, {"label":"!", "x":4, "y":1.5}, {"label":"@", "x":5, "y":1.5}, {"label":"#", "x":6, "y":1.5}, {"label":"$", "x":7, "y":1.5}, {"label":"%", "x":8, "y":1.5}, {"label":"^", "x":9, "y":1.5}, {"label":"&", "x":10, "y":1.5}, {"label":"*", "x":11, "y":1.5}, {"label":"(", "x":12, "y":1.5}, {"label":")", "x":13, "y":1.5}, {"label":"_", "x":14, "y":1.5}, {"label":"+", "x":15, "y":1.5}, {"label":"Backspace", "x":16, "y":1.5, "w":2}, {"label":"Insert", "x":18.25, "y":1.5}, {"label":"Home", "x":19.25, "y":1.5}, {"label":"PgUp", "x":20.25, "y":1.5}, {"label":"Tab", "x":3, "y":2.5, "w":1.5}, {"label":"Q", "x":4.5, "y":2.5}, {"label":"W", "x":5.5, "y":2.5}, {"label":"E", "x":6.5, "y":2.5}, {"label":"R", "x":7.5, "y":2.5}, {"label":"T", "x":8.5, "y":2.5}, {"label":"Y", "x":9.5, "y":2.5}, {"label":"U", "x":10.5, "y":2.5}, {"label":"I", "x":11.5, "y":2.5}, {"label":"O", "x":12.5, "y":2.5}, {"label":"P", "x":13.5, "y":2.5}, {"label":"{", "x":14.5, "y":2.5}, {"label":"}", "x":15.5, "y":2.5}, {"label":"|", "x":16.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":18.25, "y":2.5}, {"label":"End", "x":19.25, "y":2.5}, {"label":"PgDn", "x":20.25, "y":2.5}, {"label":"Caps Lock", "x":3, "y":3.5, "w":1.75}, {"label":"A", "x":4.75, "y":3.5}, {"label":"S", "x":5.75, "y":3.5}, {"label":"D", "x":6.75, "y":3.5}, {"label":"F", "x":7.75, "y":3.5}, {"label":"G", "x":8.75, "y":3.5}, {"label":"H", "x":9.75, "y":3.5}, {"label":"J", "x":10.75, "y":3.5}, {"label":"K", "x":11.75, "y":3.5}, {"label":"L", "x":12.75, "y":3.5}, {"label":":", "x":13.75, "y":3.5}, {"label":"\"", "x":14.75, "y":3.5}, {"label":"Enter", "x":15.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":3, "y":4.5, "w":2.25}, {"label":"Z", "x":5.25, "y":4.5}, {"label":"X", "x":6.25, "y":4.5}, {"label":"C", "x":7.25, "y":4.5}, {"label":"V", "x":8.25, "y":4.5}, {"label":"B", "x":9.25, "y":4.5}, {"label":"N", "x":10.25, "y":4.5}, {"label":"M", "x":11.25, "y":4.5}, {"label":"<", "x":12.25, "y":4.5}, {"label":">", "x":13.25, "y":4.5}, {"label":"?", "x":14.25, "y":4.5}, {"label":"Shift", "x":15.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":19.25, "y":4.5}, {"label":"Ctrl", "x":3, "y":5.5, "w":1.25}, {"label":"Win", "x":4.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":5.5, "y":5.5, "w":1.25}, {"x":6.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":13, "y":5.5, "w":1.25}, {"label":"Win", "x":14.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":15.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":16.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":18.25, "y":5.5}, {"label":"\u2193", "x":19.25, "y":5.5}, {"label":"\u2192", "x":20.25, "y":5.5}] + }, + "LAYOUT_tkl_iso": { + "layout": [{"label":"Esc", "x":3, "y":0.25}, {"label":"F1", "x":5, "y":0.25}, {"label":"F2", "x":6, "y":0.25}, {"label":"F3", "x":7, "y":0.25}, {"label":"F4", "x":8, "y":0.25}, {"label":"F5", "x":9.5, "y":0.25}, {"label":"F6", "x":10.5, "y":0.25}, {"label":"F7", "x":11.5, "y":0.25}, {"label":"F8", "x":12.5, "y":0.25}, {"label":"F9", "x":14, "y":0.25}, {"label":"F10", "x":15, "y":0.25}, {"label":"F11", "x":16, "y":0.25}, {"label":"F12", "x":17, "y":0.25}, {"label":"PrtSc", "x":18.25, "y":0.25}, {"label":"Scroll Lock", "x":19.25, "y":0.25}, {"label":"Pause", "x":20.25, "y":0.25}, {"label":"~", "x":3, "y":1.5}, {"label":"!", "x":4, "y":1.5}, {"label":"@", "x":5, "y":1.5}, {"label":"#", "x":6, "y":1.5}, {"label":"$", "x":7, "y":1.5}, {"label":"%", "x":8, "y":1.5}, {"label":"^", "x":9, "y":1.5}, {"label":"&", "x":10, "y":1.5}, {"label":"*", "x":11, "y":1.5}, {"label":"(", "x":12, "y":1.5}, {"label":")", "x":13, "y":1.5}, {"label":"_", "x":14, "y":1.5}, {"label":"+", "x":15, "y":1.5}, {"label":"Backspace", "x":16, "y":1.5, "w":2}, {"label":"Insert", "x":18.25, "y":1.5}, {"label":"Home", "x":19.25, "y":1.5}, {"label":"PgUp", "x":20.25, "y":1.5}, {"label":"Tab", "x":3, "y":2.5, "w":1.5}, {"label":"Q", "x":4.5, "y":2.5}, {"label":"W", "x":5.5, "y":2.5}, {"label":"E", "x":6.5, "y":2.5}, {"label":"R", "x":7.5, "y":2.5}, {"label":"T", "x":8.5, "y":2.5}, {"label":"Y", "x":9.5, "y":2.5}, {"label":"U", "x":10.5, "y":2.5}, {"label":"I", "x":11.5, "y":2.5}, {"label":"O", "x":12.5, "y":2.5}, {"label":"P", "x":13.5, "y":2.5}, {"label":"{", "x":14.5, "y":2.5}, {"label":"}", "x":15.5, "y":2.5}, {"label":"Enter", "x":16.75, "y":2.5, "w":1.25, "h":2}, {"label":"Delete", "x":18.25, "y":2.5}, {"label":"End", "x":19.25, "y":2.5}, {"label":"PgDn", "x":20.25, "y":2.5}, {"label":"Caps Lock", "x":3, "y":3.5, "w":1.75}, {"label":"A", "x":4.75, "y":3.5}, {"label":"S", "x":5.75, "y":3.5}, {"label":"D", "x":6.75, "y":3.5}, {"label":"F", "x":7.75, "y":3.5}, {"label":"G", "x":8.75, "y":3.5}, {"label":"H", "x":9.75, "y":3.5}, {"label":"J", "x":10.75, "y":3.5}, {"label":"K", "x":11.75, "y":3.5}, {"label":"L", "x":12.75, "y":3.5}, {"label":":", "x":13.75, "y":3.5}, {"label":"\"", "x":14.75, "y":3.5}, {"x":15.75, "y":3.5}, {"label":"Shift", "x":3, "y":4.5, "w":1.25}, {"x":4.25, "y":4.5}, {"label":"Z", "x":5.25, "y":4.5}, {"label":"X", "x":6.25, "y":4.5}, {"label":"C", "x":7.25, "y":4.5}, {"label":"V", "x":8.25, "y":4.5}, {"label":"B", "x":9.25, "y":4.5}, {"label":"N", "x":10.25, "y":4.5}, {"label":"M", "x":11.25, "y":4.5}, {"label":"<", "x":12.25, "y":4.5}, {"label":">", "x":13.25, "y":4.5}, {"label":"?", "x":14.25, "y":4.5}, {"label":"Shift", "x":15.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":19.25, "y":4.5}, {"label":"Ctrl", "x":3, "y":5.5, "w":1.25}, {"label":"Win", "x":4.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":5.5, "y":5.5, "w":1.25}, {"x":6.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":13, "y":5.5, "w":1.25}, {"label":"Win", "x":14.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":15.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":16.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":18.25, "y":5.5}, {"label":"\u2193", "x":19.25, "y":5.5}, {"label":"\u2192", "x":20.25, "y":5.5}] + } + } +} diff --git a/keyboards/freyr/keymaps/default/config.h b/keyboards/freyr/keymaps/default/config.h new file mode 100644 index 00000000000..348d7c5513b --- /dev/null +++ b/keyboards/freyr/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2019 HnahKB + * + * 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 + +// place overrides here diff --git a/keyboards/freyr/keymaps/default/keymap.c b/keyboards/freyr/keymaps/default/keymap.c new file mode 100644 index 00000000000..008ae47d4a3 --- /dev/null +++ b/keyboards/freyr/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +/* Copyright 2019 HnahKB + * + * 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 hnah_layers{ + _QWERTY, + _LOWER +}; + +#define LOWER MO(_LOWER) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = 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_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_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_SPACE, KC_RALT, KC_APP, LOWER, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \ + ), + [_LOWER] = LAYOUT_tkl_iso( + RESET, 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/freyr/keymaps/default/readme.md b/keyboards/freyr/keymaps/default/readme.md new file mode 100644 index 00000000000..7a41bdd766c --- /dev/null +++ b/keyboards/freyr/keymaps/default/readme.md @@ -0,0 +1 @@ +# The default keymap for freyr \ No newline at end of file diff --git a/keyboards/freyr/readme.md b/keyboards/freyr/readme.md new file mode 100644 index 00000000000..c6ddc304112 --- /dev/null +++ b/keyboards/freyr/readme.md @@ -0,0 +1,15 @@ +# freyr + +![Freyr](https://i.imgur.com/MeOrzoI.jpg) + +Freyr is a tenkeyless keyboard, support ansi and iso layout. +[Full layout here](http://www.keyboard-layout-editor.com/#/gists/438ef0c58c46ec28c80d9894ffcff177) + +Keyboard Maintainer: [HnahKB](https://github.com/vuhopkep) +Hardware Supported: Freyr.revB PCB + +Make example for this keyboard (after setting up your build environment): + + make freyr: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). diff --git a/keyboards/freyr/rules.mk b/keyboards/freyr/rules.mk new file mode 100644 index 00000000000..d017c9195fe --- /dev/null +++ b/keyboards/freyr/rules.mk @@ -0,0 +1,47 @@ +# MCU name +MCU = atmega32u4 + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = atmel-dfu + + +# If you don't know the bootloader type, then you can specify the +# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +# OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) + +# Supported layouts +LAYOUTS = tkl_ansi tkl_iso From 99e58eab0fad1e81e5592e002f85aeea2563d272 Mon Sep 17 00:00:00 2001 From: MechMerlin <30334081+mechmerlin@users.noreply.github.com> Date: Sun, 8 Sep 2019 10:27:01 -0700 Subject: [PATCH 36/36] [Keyboard] Feature/dz60rgb cleanups (#6697) * change LAYOUT_ANSI to LAYOUT_60_ansi * change QMK Configurator layout to LAYOUT_60_ansi as well * add 60_ansi support so I can make my userspace =) * update readme * Very strange. ISO keymap is still using 60_ansi LAYOUT macro. But then again....no ISO hottswap dz60 has been released --- keyboards/dztech/dz60rgb/dz60rgb.h | 2 +- keyboards/dztech/dz60rgb/info.json | 2 +- keyboards/dztech/dz60rgb/keymaps/ansi/keymap.c | 10 +++++----- keyboards/dztech/dz60rgb/keymaps/iso/keymap.c | 10 +++++----- keyboards/dztech/dz60rgb/readme.md | 6 +++--- keyboards/dztech/dz60rgb/rules.mk | 2 ++ 6 files changed, 17 insertions(+), 15 deletions(-) diff --git a/keyboards/dztech/dz60rgb/dz60rgb.h b/keyboards/dztech/dz60rgb/dz60rgb.h index 1884ddfb0b8..7cb8a43e402 100644 --- a/keyboards/dztech/dz60rgb/dz60rgb.h +++ b/keyboards/dztech/dz60rgb/dz60rgb.h @@ -57,7 +57,7 @@ { K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, XXX, K4A, K4B, XXX, K4D } \ } -#define LAYOUT_ANSI( \ +#define LAYOUT_60_ansi( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ diff --git a/keyboards/dztech/dz60rgb/info.json b/keyboards/dztech/dz60rgb/info.json index d615fe53db5..2fbe5a74890 100644 --- a/keyboards/dztech/dz60rgb/info.json +++ b/keyboards/dztech/dz60rgb/info.json @@ -9,7 +9,7 @@ "key_count": 63, "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"Shift", "x":11.25, "y":3, "w":1.75}, {"label":"\u2191", "x":13, "y":3},{"label":"?", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Ctrl", "x":11, "y":4}, {"label":"\u2190", "x":12, "y":4}, {"label":"\u2193", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}] }, - "LAYOUT_ANSI": { + "LAYOUT_60_ansi": { "key_count": 61, "layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] } diff --git a/keyboards/dztech/dz60rgb/keymaps/ansi/keymap.c b/keyboards/dztech/dz60rgb/keymaps/ansi/keymap.c index 8633b1836a9..97133d42969 100644 --- a/keyboards/dztech/dz60rgb/keymaps/ansi/keymap.c +++ b/keyboards/dztech/dz60rgb/keymaps/ansi/keymap.c @@ -5,31 +5,31 @@ #define _LAYER3 3 #define _LAYER4 4 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT_ANSI( /* Base */ + [_LAYER0] = LAYOUT_60_ansi( /* Base */ KC_GESC, 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_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_BSLASH,\ CTL_T(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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), MO(2), KC_RCTL), - [_LAYER1] = LAYOUT_ANSI( /* FN */ + [_LAYER1] = LAYOUT_60_ansi( /* FN */ KC_GESC, 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_DEL ,\ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET ,\ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS,\ KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDOWN,KC_MNXT, \ KC_TRNS, KC_TRNS, KC_TRNS, TO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [_LAYER2] = LAYOUT_ANSI( /* FN2 */ + [_LAYER2] = LAYOUT_60_ansi( /* FN2 */ KC_TRNS, 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_DEL ,\ KC_TRNS, RGB_TOG, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, RESET ,\ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, 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), - [_LAYER3] = LAYOUT_ANSI( /* FN3 */ + [_LAYER3] = LAYOUT_60_ansi( /* FN3 */ KC_GESC, 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_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_BSLASH,\ CTL_T(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_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_TRNS,MO(4), KC_RALT, KC_RCTL), - [_LAYER4] = LAYOUT_ANSI( /* FN4 */ + [_LAYER4] = LAYOUT_60_ansi( /* FN4 */ KC_GESC, 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_DEL ,\ KC_TRNS, RGB_TOG, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_PSCR, KC_SLCK, KC_PAUS, RESET ,\ KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, KC_HOME, KC_PGUP, KC_TRNS,\ diff --git a/keyboards/dztech/dz60rgb/keymaps/iso/keymap.c b/keyboards/dztech/dz60rgb/keymaps/iso/keymap.c index 61a3a228644..0b16445066e 100644 --- a/keyboards/dztech/dz60rgb/keymaps/iso/keymap.c +++ b/keyboards/dztech/dz60rgb/keymaps/iso/keymap.c @@ -5,31 +5,31 @@ #define _LAYER3 3 #define _LAYER4 4 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = LAYOUT_ANSI( /* Base */ + [_LAYER0] = LAYOUT_60_ansi( /* Base */ KC_GESC, 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_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_BSLASH,\ CTL_T(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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), MO(2), KC_RCTL), - [_LAYER1] = LAYOUT_ANSI( /* FN */ + [_LAYER1] = LAYOUT_60_ansi( /* FN */ TO(3), 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_DEL,\ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_CALC, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET,\ KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS,\ KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDOWN,KC_MNXT, \ KC_TRNS, KC_TRNS, KC_TRNS, TO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), - [_LAYER2] = LAYOUT_ANSI( /* FN2 */ + [_LAYER2] = LAYOUT_60_ansi( /* FN2 */ KC_TRNS, 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_DEL,\ KC_TRNS, RGB_TOG, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, RESET,\ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, 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), - [_LAYER3] = LAYOUT_ANSI( /* FN3 */ + [_LAYER3] = LAYOUT_60_ansi( /* FN3 */ KC_GESC, 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_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_BSLASH,\ CTL_T(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_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_TRNS,MO(4), KC_RALT, KC_RCTL), - [_LAYER4] = LAYOUT_ANSI( /* FN4 */ + [_LAYER4] = LAYOUT_60_ansi( /* FN4 */ KC_GESC, 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_DEL ,\ KC_TRNS, RGB_TOG, KC_TRNS, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_MOD, KC_PSCR, KC_SLCK, KC_PAUS, RESET,\ KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPI, RGB_SPD, KC_HOME, KC_PGUP, KC_TRNS,\ diff --git a/keyboards/dztech/dz60rgb/readme.md b/keyboards/dztech/dz60rgb/readme.md index a8dbb5af645..2fffa413b69 100644 --- a/keyboards/dztech/dz60rgb/readme.md +++ b/keyboards/dztech/dz60rgb/readme.md @@ -2,14 +2,14 @@ ![dz60rgb](https://cdn.shopify.com/s/files/1/0043/9140/3591/products/TIM_20190130170231_grande.jpg?v=1548839053) -A customizable 60% RGB keyboard. +A hotswap 60% RGB keyboard. Keyboard Maintainer: DZtech -Hardware Supported: DZtech +Hardware Supported: DZtech dz60rgb, dz60rgb-ansi Hardware Availability: [kbdfans](https://kbdfans.myshopify.com/) Make example for this keyboard (after setting up your build environment): make dztech/dz60rgb:default -See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. +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). diff --git a/keyboards/dztech/dz60rgb/rules.mk b/keyboards/dztech/dz60rgb/rules.mk index 8ff1cbdc296..006541504a1 100644 --- a/keyboards/dztech/dz60rgb/rules.mk +++ b/keyboards/dztech/dz60rgb/rules.mk @@ -12,3 +12,5 @@ NKRO_ENABLE = no # USB Nkey Rollover AUDIO_ENABLE = no RGB_MATRIX_ENABLE = IS31FL3733 # Use RGB matrix NO_USB_STARTUP_CHECK = no # Disable initialization only when usb is plugged in + +LAYOUTS = 60_ansi \ No newline at end of file