From 2a6d074ba1fd6ad39ed59d27eb578e531943ebd9 Mon Sep 17 00:00:00 2001
From: Phil Hagelberg <phil@hagelb.org>
Date: Sun, 27 Jun 2021 16:07:44 -0700
Subject: [PATCH] Remap keyboard to use in-firmware dvorak layout.

Normally I keep my dvorak mapping in the OS so that I can plug in an
external keyboard and use the same mapping across both, but with the
Reform the built-in keyboard is good enough that it doesn't make me
want to use an external one. (but it still could be better!)

This layout is roughly Atreus inspired in that it puts ctrl and alt on
the middle two thumb keys, but the keyboard border cover makes those
two keys oddly difficult to hit using your thumb, so I end up using
the more conventionally-located ctrl and alt keys instead.

Future revision would add an fn key and a numpad on the fn layer, but
let's take this one step at a time.
---
 reform2-keyboard-fw/Keyboard.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/reform2-keyboard-fw/Keyboard.c b/reform2-keyboard-fw/Keyboard.c
index bc784785..db75f5f6 100644
--- a/reform2-keyboard-fw/Keyboard.c
+++ b/reform2-keyboard-fw/Keyboard.c
@@ -40,9 +40,8 @@
 #include "scancodes.h"
 #include <stdlib.h>
 
-#define KBD_FW_REV "R1 20210419"
+#define KBD_FW_REV "R1 20210627"
 //#define KBD_VARIANT_STANDALONE
-#define KBD_VARIANT_QWERTY_US
 //#define KBD_VARIANT_NEO2
 
 /** Buffer to hold the previously generated Keyboard HID report, for comparison purposes inside the HID class driver. */
@@ -77,15 +76,19 @@ USB_ClassInfo_HID_Device_t Keyboard_HID_Interface =
 uint8_t matrix[15*6] = {
   KEY_ESCAPE, KEY_F1, KEY_F2, KEY_F3, KEY_F4, KEY_F5, KEY_F6, KEY_F7, KEY_F8, KEY_F9, KEY_F10, KEY_F11, KEY_F12, HID_KEYBOARD_SC_EXSEL, HID_KEYBOARD_SC_EXSEL,
 
-  KEY_GRAVE_ACCENT_AND_TILDE, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_0, KEY_MINUS_AND_UNDERSCORE, KEY_EQUAL_AND_PLUS, KEY_BACKSPACE, 0,
+  KEY_GRAVE_ACCENT_AND_TILDE, KEY_1, KEY_2, KEY_3, KEY_4, KEY_5, KEY_6, KEY_7, KEY_8, KEY_9, KEY_0, KEY_OPENING_BRACKET_AND_OPENING_BRACE, KEY_CLOSING_BRACKET_AND_CLOSING_BRACE, KEY_BACKSPACE, 0,
 
-  KEY_TAB, KEY_Q, KEY_W, KEY_E, KEY_R, KEY_T, KEY_Y, KEY_U, KEY_I, KEY_O, KEY_P, KEY_OPENING_BRACKET_AND_OPENING_BRACE, KEY_CLOSING_BRACKET_AND_CLOSING_BRACE, KEY_BACKSLASH_AND_PIPE, 0,
+  KEY_TAB, KEY_APOSTROPHE_AND_QUOTE, HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN, HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN, KEY_P, KEY_Y,
+    KEY_F, KEY_G, KEY_C, KEY_R, KEY_L, KEY_SLASH_AND_QUESTION_MARK, KEY_EQUAL_AND_PLUS, KEY_BACKSLASH_AND_PIPE, 0,
 
-  HID_KEYBOARD_SC_LEFT_CONTROL, HID_KEYBOARD_SC_APPLICATION, KEY_A, KEY_S, KEY_D, KEY_F, KEY_G, KEY_H, KEY_J, KEY_K, KEY_L, KEY_SEMICOLON_AND_COLON, KEY_APOSTROPHE_AND_QUOTE, KEY_ENTER, 0,
+  HID_KEYBOARD_SC_LEFT_CONTROL, HID_KEYBOARD_SC_LEFT_CONTROL, KEY_A, KEY_O, KEY_E, KEY_U, KEY_I,
+    KEY_D, KEY_H, KEY_T, KEY_N, KEY_S, KEY_MINUS_AND_UNDERSCORE, KEY_ENTER, 0,
 
-  HID_KEYBOARD_SC_LEFT_SHIFT, HID_KEYBOARD_SC_NON_US_BACKSLASH_AND_PIPE, KEY_Z, KEY_X, KEY_C, KEY_V, KEY_B, KEY_N, KEY_M, HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN, HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN, KEY_SLASH_AND_QUESTION_MARK,  HID_KEYBOARD_SC_UP_ARROW, HID_KEYBOARD_SC_RIGHT_SHIFT, 0,
+  HID_KEYBOARD_SC_LEFT_SHIFT, HID_KEYBOARD_SC_LEFT_SHIFT, KEY_SEMICOLON_AND_COLON, KEY_Q, KEY_J, KEY_K, KEY_X,
+    KEY_B, KEY_M, KEY_W, KEY_V, KEY_Z, HID_KEYBOARD_SC_UP_ARROW, HID_KEYBOARD_SC_RIGHT_SHIFT, 0,
 
-  HID_KEYBOARD_SC_RIGHT_GUI, HID_KEYBOARD_SC_LEFT_GUI, HID_KEYBOARD_SC_RIGHT_CONTROL, KEY_SPACE, HID_KEYBOARD_SC_LEFT_ALT, HID_KEYBOARD_SC_RIGHT_ALT, KEY_SPACE, HID_KEYBOARD_SC_PAGE_UP, HID_KEYBOARD_SC_PAGE_DOWN, HID_KEYBOARD_SC_LEFT_ARROW, HID_KEYBOARD_SC_DOWN_ARROW, HID_KEYBOARD_SC_RIGHT_ARROW,  0,0,0
+  HID_KEYBOARD_SC_RIGHT_GUI, HID_KEYBOARD_SC_LEFT_GUI, HID_KEYBOARD_SC_LEFT_ALT, KEY_BACKSPACE, HID_KEYBOARD_SC_LEFT_CONTROL,
+  HID_KEYBOARD_SC_RIGHT_ALT, KEY_SPACE, HID_KEYBOARD_SC_PAGE_UP, HID_KEYBOARD_SC_PAGE_DOWN, HID_KEYBOARD_SC_LEFT_ARROW, HID_KEYBOARD_SC_DOWN_ARROW, HID_KEYBOARD_SC_RIGHT_ARROW,  0,0,0
 };
 
 uint8_t matrix_debounce[15*6];
@@ -742,9 +745,6 @@ void process_alerts(void) {
 
 int main(void)
 {
-#ifdef KBD_VARIANT_QWERTY_US
-  matrix[15*4+1]=KEY_DELETE;
-#endif
 #ifdef KBD_VARIANT_NEO2
   matrix[15*3+0]=HID_KEYBOARD_SC_CAPS_LOCK; // M3
   matrix[15*2+13]=KEY_ENTER;
-- 
GitLab