From 88555d8e18e90c2571c5d6553aae46c697c3341b Mon Sep 17 00:00:00 2001
From: Jacqueline Liang <8636194+Bratzworth@users.noreply.github.com>
Date: Fri, 9 Sep 2022 05:41:18 -0700
Subject: [PATCH] Add via support for 6key (#18082)
---
keyboards/handwired/6key/6key.c | 38 +++++++++++--------
keyboards/handwired/6key/6key.h | 30 +++++++--------
keyboards/handwired/6key/config.h | 28 +++++++-------
keyboards/handwired/6key/info.json | 9 +++--
.../handwired/6key/keymaps/default/keymap.c | 27 +++----------
keyboards/handwired/6key/keymaps/via/keymap.c | 35 +++++++++++++++++
keyboards/handwired/6key/keymaps/via/rules.mk | 2 +
keyboards/handwired/6key/rules.mk | 2 +-
8 files changed, 102 insertions(+), 69 deletions(-)
create mode 100644 keyboards/handwired/6key/keymaps/via/keymap.c
create mode 100644 keyboards/handwired/6key/keymaps/via/rules.mk
diff --git a/keyboards/handwired/6key/6key.c b/keyboards/handwired/6key/6key.c
index ab4263bde4f..22c766a30f6 100644
--- a/keyboards/handwired/6key/6key.c
+++ b/keyboards/handwired/6key/6key.c
@@ -1,16 +1,24 @@
- /* Copyright 2020 Bratzworth
- *
- * 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 .
- */
+ /* Copyright 2020 Bratzworth
+ *
+ * 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 "6key.h"
+
+bool dip_switch_update_kb(uint8_t index, bool active) {
+ if (!dip_switch_update_user(index, active)) { return false; }
+ if (index == 0) {
+ default_layer_set(1UL << (active ? 1 : 0));
+ }
+ return true;
+}
diff --git a/keyboards/handwired/6key/6key.h b/keyboards/handwired/6key/6key.h
index fe02df44e9f..f63abc35d2a 100644
--- a/keyboards/handwired/6key/6key.h
+++ b/keyboards/handwired/6key/6key.h
@@ -1,17 +1,17 @@
- /* Copyright 2020 Bratzworth
- *
- * 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 .
+ /* Copyright 2020 Bratzworth
+ *
+ * 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
@@ -24,4 +24,4 @@
{ \
{ k00, k01, k02 }, \
{ k03, k04, k05 } \
-}
+}
diff --git a/keyboards/handwired/6key/config.h b/keyboards/handwired/6key/config.h
index b7d983d75fa..42d7a5cb32a 100644
--- a/keyboards/handwired/6key/config.h
+++ b/keyboards/handwired/6key/config.h
@@ -1,17 +1,17 @@
- /* Copyright 2020 Bratzworth
- *
- * 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 .
+ /* Copyright 2020 Bratzworth
+ *
+ * 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
diff --git a/keyboards/handwired/6key/info.json b/keyboards/handwired/6key/info.json
index 4b1e69de86a..b069f067c5f 100644
--- a/keyboards/handwired/6key/info.json
+++ b/keyboards/handwired/6key/info.json
@@ -1,16 +1,19 @@
{
"keyboard_name": "6key",
- "manufacturer": "Bratzworth",
+ "manufacturer": "bratzworth",
"url": "https://github.com/Bratzworth/6key",
"maintainer": "bratzworth",
"usb": {
- "vid": "0xBEED",
+ "vid": "0xD143",
"pid": "0x0007",
"device_version": "0.0.1"
},
"layouts": {
"LAYOUT": {
- "layout": [{"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0}, {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}]
+ "layout": [
+ {"label":"k00", "x":0, "y":0}, {"label":"k01", "x":1, "y":0}, {"label":"k02", "x":2, "y":0},
+ {"label":"k10", "x":0, "y":1}, {"label":"k11", "x":1, "y":1}, {"label":"k12", "x":2, "y":1}
+ ]
}
}
}
diff --git a/keyboards/handwired/6key/keymaps/default/keymap.c b/keyboards/handwired/6key/keymaps/default/keymap.c
index ad73597bab7..ab930240640 100644
--- a/keyboards/handwired/6key/keymaps/default/keymap.c
+++ b/keyboards/handwired/6key/keymaps/default/keymap.c
@@ -15,33 +15,18 @@
*/
#include QMK_KEYBOARD_H
-#define _MAIN 0
-#define _FN 1
-
-#define KC_UNDO LCTL(KC_Z)
-#define KC_REDO LCTL(KC_Y)
+enum layers{
+ _MAIN,
+ _FN
+};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_MAIN] = LAYOUT(
- KC_UNDO, KC_REDO, KC_A,
- KC_C, KC_D, KC_S
+ KC_Z, KC_Y, KC_A,
+ KC_C, KC_D, KC_S
),
-
[_FN] = LAYOUT(
KC_F13, KC_F14, KC_F15,
KC_F16, KC_F17, KC_F18
)
};
-
-bool dip_switch_update_user(uint8_t index, bool active) {
- switch (index) {
- case 0: {
- if (active) {
- set_single_persistent_default_layer(_FN);
- } else {
- set_single_persistent_default_layer(_MAIN);
- }
- }
- }
- return true;
-}
diff --git a/keyboards/handwired/6key/keymaps/via/keymap.c b/keyboards/handwired/6key/keymaps/via/keymap.c
new file mode 100644
index 00000000000..4e1922da567
--- /dev/null
+++ b/keyboards/handwired/6key/keymaps/via/keymap.c
@@ -0,0 +1,35 @@
+ /* Copyright 2022 Bratzworth
+ *
+ * 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
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT(
+ LCTL(KC_Z), LCTL(KC_Y), KC_A,
+ KC_C, KC_D, KC_S
+ ),
+ [1] = LAYOUT(
+ KC_F13, KC_F14, KC_F15,
+ KC_F16, KC_F17, KC_F18
+ ),
+ [2] = LAYOUT(
+ 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
+ ),
+};
diff --git a/keyboards/handwired/6key/keymaps/via/rules.mk b/keyboards/handwired/6key/keymaps/via/rules.mk
new file mode 100644
index 00000000000..36b7ba9cbc9
--- /dev/null
+++ b/keyboards/handwired/6key/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/handwired/6key/rules.mk b/keyboards/handwired/6key/rules.mk
index 5be28d8a57f..3cb12386cc9 100644
--- a/keyboards/handwired/6key/rules.mk
+++ b/keyboards/handwired/6key/rules.mk
@@ -7,7 +7,7 @@ BOOTLOADER = caterina
# Build Options
# change yes to no to disable
#
-BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE = no # Console for debug