ソースを参照

Merge branch 'master' of github.com:qmk/qmk_firmware into handwire

Jack Humbert 8 年 前
コミット
4bdde668e1
65 ファイル変更2504 行追加482 行削除
  1. 22 23
      docs/faq_build.md
  2. 4 1
      docs/getting_started_build_tools.md
  3. 1 1
      docs/keymap.md
  4. 1 0
      keyboards/1up60rgb/1up60rgb.c
  5. 20 0
      keyboards/1up60rgb/1up60rgb.h
  6. 58 0
      keyboards/1up60rgb/config.h
  7. 72 0
      keyboards/1up60rgb/keymaps/default/keymap.c
  8. 72 0
      keyboards/1up60rgb/keymaps/iso/keymap.c
  9. 72 0
      keyboards/1up60rgb/keymaps/tsangan/keymap.c
  10. 13 0
      keyboards/1up60rgb/readme.md
  11. 56 0
      keyboards/1up60rgb/rules.mk
  12. 31 0
      keyboards/chimera_ergo/chimera_ergo.c
  13. 82 0
      keyboards/chimera_ergo/chimera_ergo.h
  14. 87 0
      keyboards/chimera_ergo/config.h
  15. 206 0
      keyboards/chimera_ergo/keymaps/default/keymap.c
  16. 164 0
      keyboards/chimera_ergo/matrix.c
  17. 19 0
      keyboards/chimera_ergo/readme.md
  18. 82 0
      keyboards/chimera_ergo/rules.mk
  19. 31 0
      keyboards/chimera_ls/chimera_ls.c
  20. 82 0
      keyboards/chimera_ls/chimera_ls.h
  21. 87 0
      keyboards/chimera_ls/config.h
  22. 191 0
      keyboards/chimera_ls/keymaps/default/keymap.c
  23. 168 0
      keyboards/chimera_ls/matrix.c
  24. 19 0
      keyboards/chimera_ls/readme.md
  25. 82 0
      keyboards/chimera_ls/rules.mk
  26. 14 1
      keyboards/chimera_ortho/chimera_ortho.h
  27. 6 6
      keyboards/chimera_ortho/keymaps/default/keymap.c
  28. 8 8
      keyboards/chimera_ortho/keymaps/gordon/keymap.c
  29. 1 4
      keyboards/deltasplit75/split_util.h
  30. 14 0
      keyboards/dilly/README.md
  31. 62 0
      keyboards/dilly/config.h
  32. 1 0
      keyboards/dilly/dilly.c
  33. 31 0
      keyboards/dilly/dilly.h
  34. 6 0
      keyboards/dilly/keymaps/default/config.h
  35. 107 0
      keyboards/dilly/keymaps/default/keymap.c
  36. 1 0
      keyboards/dilly/keymaps/default/rules.mk
  37. 56 0
      keyboards/dilly/rules.mk
  38. 1 5
      keyboards/helix/rev1/split_util.h
  39. 1 5
      keyboards/helix/rev2/split_util.h
  40. 16 0
      keyboards/iris/info.json
  41. 43 0
      keyboards/iris/keymaps/yanfali/config.h
  42. 145 0
      keyboards/iris/keymaps/yanfali/keymap.c
  43. 17 0
      keyboards/iris/keymaps/yanfali/readme.md
  44. 1 0
      keyboards/iris/keymaps/yanfali/rules.mk
  45. 3 2
      keyboards/jc65/readme.md
  46. 26 23
      keyboards/jc65/v32a/keymaps/naut/keymap.c
  47. 2 0
      keyboards/jc65/v32a/readme.md
  48. 93 0
      keyboards/jc65/v32u4/keymaps/naut/keymap.c
  49. 18 0
      keyboards/jc65/v32u4/keymaps/naut/readme.md
  50. 2 0
      keyboards/jc65/v32u4/keymaps/naut/rules.mk
  51. 1 1
      keyboards/jc65/v32u4/readme.md
  52. 5 5
      keyboards/lets_split/keymaps/default/keymap.c
  53. 0 26
      keyboards/lets_split/keymaps/hexwire/config.h
  54. 0 5
      keyboards/lets_split/keymaps/hexwire/rules.mk
  55. 0 108
      keyboards/levinson/keymaps/hexwire/README.md
  56. 0 206
      keyboards/levinson/keymaps/hexwire/keymap.c
  57. 42 0
      keyboards/nyquist/keymaps/pitty/keymap.c
  58. 1 5
      keyboards/nyquist/split_util.h
  59. 1 4
      keyboards/orthodox/split_util.h
  60. 15 0
      keyboards/planck/planck.h
  61. 1 4
      keyboards/viterbi/split_util.h
  62. 1 1
      layouts/community/ortho_4x12/bakingpy/config.h
  63. 25 27
      layouts/community/ortho_4x12/bakingpy/keymap.c
  64. 11 11
      layouts/community/ortho_4x12/bakingpy/readme.md
  65. 4 0
      layouts/community/ortho_4x12/bakingpy/rules.mk

+ 22 - 23
docs/faq_build.md

@@ -1,40 +1,25 @@
 # Frequently Asked Build Questions
 # Frequently Asked Build Questions
 
 
-This page covers questions about building QMK. If you have not yet you should read the [Build Environment Setup](getting_started_build_tools.md) and [Make Instructions](getting_started_make_guide.md) guides.
+This page covers questions about building QMK. If you haven't yet done so, you should read the [Build Environment Setup](getting_started_build_tools.md) and [Make Instructions](getting_started_make_guide.md) guides.
 
 
 ## Can't Program on Linux
 ## Can't Program on Linux
-You will need proper permission to operate a device. For Linux users see udev rules below. Easy way is to use `sudo` command, if you are not familiar with this command check its manual with `man sudo` or this page on line.
+You will need proper permissions to operate a device. For Linux users, see the instructions regarding `udev` rules, below. If you have issues with `udev`, a work-around is to use the `sudo` command. If you are not familiar with this command, check its manual with `man sudo` or [see this webpage](https://linux.die.net/man/8/sudo).
 
 
-In short when your controller is ATMega32u4,
+An example of using `sudo`, when your controller is ATMega32u4:
 
 
     $ sudo dfu-programmer atmega32u4 erase --force
     $ sudo dfu-programmer atmega32u4 erase --force
     $ sudo dfu-programmer atmega32u4 flash your.hex
     $ sudo dfu-programmer atmega32u4 flash your.hex
     $ sudo dfu-programmer atmega32u4 reset
     $ sudo dfu-programmer atmega32u4 reset
 
 
-or just
+or just:
 
 
     $ sudo make <keyboard>:<keymap>:dfu
     $ sudo make <keyboard>:<keymap>:dfu
 
 
-But to run `make` with root privilege is not good idea. Use former method if possible.
-
-## WINAVR is Obsolete
-It is no longer recommended and may cause some problem.
-See [TMK Issue #99](https://github.com/tmk/tmk_keyboard/issues/99).
-
-## USB VID and PID
-You can use any ID you want with editing `config.h`. Using any presumably unused ID will be no problem in fact except for very low chance of collision with other product.
-
-Most boards in QMK use `0xFEED` as the vendor ID. You should look through other keyboards to make sure you pick a unique Product ID.
-
-Also see this.
-https://github.com/tmk/tmk_keyboard/issues/150
-
-You can buy a really unique VID:PID here. I don't think you need this for personal use.
-- http://www.obdev.at/products/vusb/license.html
-- http://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1
+Note that running `make` with `sudo` is generally *not* a good idea, and you should use one of the former methods, if possible.
 
 
 ## Linux `udev` Rules
 ## Linux `udev` Rules
-On Linux you need proper privilege to access device file of MCU, you'll have to use `sudo` when flashing firmware. You can circumvent this with placing these files in `/etc/udev/rules.d/`.
+On Linux, you'll need proper privileges to access the MCU. You can either use
+`sudo` when flashing firmware, or place these files in `/etc/udev/rules.d/`.
 
 
 **/etc/udev/rules.d/50-atmel-dfu.rules:**
 **/etc/udev/rules.d/50-atmel-dfu.rules:**
 ```
 ```
@@ -52,6 +37,21 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", MODE:="066
 SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666"
 SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666"
 ```
 ```
 
 
+## WINAVR is Obsolete
+It is no longer recommended and may cause some problem.
+See [TMK Issue #99](https://github.com/tmk/tmk_keyboard/issues/99).
+
+## USB VID and PID
+You can use any ID you want with editing `config.h`. Using any presumably unused ID will be no problem in fact except for very low chance of collision with other product.
+
+Most boards in QMK use `0xFEED` as the vendor ID. You should look through other keyboards to make sure you pick a unique Product ID.
+
+Also see this.
+https://github.com/tmk/tmk_keyboard/issues/150
+
+You can buy a really unique VID:PID here. I don't think you need this for personal use.
+- http://www.obdev.at/products/vusb/license.html
+- http://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1
 
 
 ## Cortex: `cstddef: No such file or directory`
 ## Cortex: `cstddef: No such file or directory`
 GCC 4.8 of Ubuntu 14.04 had this problem and had to update to 4.9 with this PPA.
 GCC 4.8 of Ubuntu 14.04 had this problem and had to update to 4.9 with this PPA.
@@ -61,7 +61,6 @@ https://github.com/tmk/tmk_keyboard/issues/212
 https://github.com/tmk/tmk_keyboard/wiki/mbed-cortex-porting#compile-error-cstddef
 https://github.com/tmk/tmk_keyboard/wiki/mbed-cortex-porting#compile-error-cstddef
 https://developer.mbed.org/forum/mbed/topic/5205/
 https://developer.mbed.org/forum/mbed/topic/5205/
 
 
-
 ## `clock_prescale_set` and `clock_div_1` Not Available
 ## `clock_prescale_set` and `clock_div_1` Not Available
 Your toolchain is too old to support the MCU. For example WinAVR 20100110 doesn't support ATMega32u2.
 Your toolchain is too old to support the MCU. For example WinAVR 20100110 doesn't support ATMega32u2.
 
 

+ 4 - 1
docs/getting_started_build_tools.md

@@ -31,11 +31,14 @@ git
 
 
 Install the dependencies with your favorite package manager.
 Install the dependencies with your favorite package manager.
 
 
-Debian/Ubuntu example:
+Debian / Ubuntu example:
 
 
     sudo apt-get update
     sudo apt-get update
     sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi
     sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi
 
 
+Fedora / Red Hat example:
+    sudo dnf install gcc unzip wget zip dfu-util dfu-programmer avr-gcc avr-libc binutils-avr32-linux-gnu arm-none-eabi-gcc-cs arm-none-eabi-binutils-cs arm-none-eabi-newlib
+
 ## Nix
 ## Nix
 
 
 If you're on [NixOS](https://nixos.org/), or have Nix installed on Linux or macOS, run `nix-shell` from the repository root to get a build environment.
 If you're on [NixOS](https://nixos.org/), or have Nix installed on Linux or macOS, run `nix-shell` from the repository root to get a build environment.

+ 1 - 1
docs/keymap.md

@@ -33,7 +33,7 @@ The state of the Keymap layer is determined by two 32 bit parameters:
 * **`default_layer_state`** indicates a base keymap layer (0-31) which is always valid and to be referred (the default layer).
 * **`default_layer_state`** indicates a base keymap layer (0-31) which is always valid and to be referred (the default layer).
 * **`layer_state`** has current on/off status of each layer in its bits.
 * **`layer_state`** has current on/off status of each layer in its bits.
 
 
-Keymap layer '0' is usually `default_layer`, wither other layers initially off after booting up the firmware, although this can configured differently in `config.h`. It is useful to change `default_layer` when you completely switch a key layout, for example, if you want to switch to Colemak instead of Qwerty.
+Keymap layer '0' is usually the `default_layer`, with other layers initially off after booting up the firmware, although this can configured differently in `config.h`. It is useful to change `default_layer` when you completely switch a key layout, for example, if you want to switch to Colemak instead of Qwerty.
 
 
     Initial state of Keymap          Change base layout
     Initial state of Keymap          Change base layout
     -----------------------          ------------------
     -----------------------          ------------------

+ 1 - 0
keyboards/1up60rgb/1up60rgb.c

@@ -0,0 +1 @@
+#include "1up60rgb.h"

+ 20 - 0
keyboards/1up60rgb/1up60rgb.h

@@ -0,0 +1,20 @@
+#ifndef KB_H
+#define KB_H
+
+#include "quantum.h"
+
+#define KEYMAP( \
+	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
+	K100,       K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
+	K200,       K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \
+	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311,       K313, K314, \
+	K400, K401,       K403,             K406,                   K410, K411,       K413, K414  \
+) { \
+	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014 }, \
+	{ K100,  KC_NO, K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  K113,  K114 }, \
+	{ K200,  KC_NO, K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  K213,  K214 }, \
+	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  KC_NO, K313,  K314 }, \
+	{ K400,  K401,  KC_NO, K403,  KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  K411,  KC_NO, K413,  K414 }  \
+}
+
+#endif

+ 58 - 0
keyboards/1up60rgb/config.h

@@ -0,0 +1,58 @@
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID       0xFEED
+#define PRODUCT_ID      0x6060
+#define DEVICE_VER      0x0001
+#define MANUFACTURER    1upkeyboards
+#define PRODUCT         1UP RGB Underglow PCB
+#define DESCRIPTION     60% keyboard with RGB underglow
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 15
+
+/* key matrix pins */
+#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
+#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B7, D4, B1, B0, B5, B4, D7, D6, B3, F4 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* number of backlight levels */
+#define BACKLIGHT_PIN B6
+#ifdef BACKLIGHT_PIN
+#define BACKLIGHT_LEVELS 5
+#endif
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* 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
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+    keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* prevent stuck modifiers */
+#define PREVENT_STUCK_MODIFIERS
+
+#define RGB_DI_PIN E2
+#ifdef RGB_DI_PIN
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 20
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+#endif
+
+#endif

+ 72 - 0
keyboards/1up60rgb/keymaps/default/keymap.c

@@ -0,0 +1,72 @@
+#include "1up60rgb.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+	KEYMAP(
+		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_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,
+		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_ENT,
+		KC_LSFT, 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_RSFT,
+		KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL),
+
+	KEYMAP(
+		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
+
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+	;
+
+	switch (id) {
+
+	}
+	return MACRO_NONE;
+}
+
+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_NUM_LOCK)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
+		DDRB |= (1 << 2); PORTB &= ~(1 << 2);
+	} else {
+		DDRB &= ~(1 << 2); PORTB &= ~(1 << 2);
+	}
+
+	if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_COMPOSE)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_KANA)) {
+
+	} else {
+
+	}
+
+}

+ 72 - 0
keyboards/1up60rgb/keymaps/iso/keymap.c

@@ -0,0 +1,72 @@
+#include "1up60rgb.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+	KEYMAP(
+		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_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_ENT,
+		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_RSFT,
+		KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL),
+
+	KEYMAP(
+		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
+
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+	;
+
+	switch (id) {
+
+	}
+	return MACRO_NONE;
+}
+
+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_NUM_LOCK)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
+		DDRB |= (1 << 2); PORTB &= ~(1 << 2);
+	} else {
+		DDRB &= ~(1 << 2); PORTB &= ~(1 << 2);
+	}
+
+	if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_COMPOSE)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_KANA)) {
+
+	} else {
+
+	}
+
+}

+ 72 - 0
keyboards/1up60rgb/keymaps/tsangan/keymap.c

@@ -0,0 +1,72 @@
+#include "1up60rgb.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+	KEYMAP(
+		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_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_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_ENT,
+		KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
+		KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT, KC_RGUI, KC_RCTL),
+
+	KEYMAP(
+		RESET, 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_DEL,
+		KC_TRNS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_UP, KC_TRNS, KC_TRNS,
+		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS,
+		KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_DOWN, KC_TRNS, KC_TRNS,
+		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
+
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+	;
+
+	switch (id) {
+
+	}
+	return MACRO_NONE;
+}
+
+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_NUM_LOCK)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
+		DDRB |= (1 << 2); PORTB &= ~(1 << 2);
+	} else {
+		DDRB &= ~(1 << 2); PORTB &= ~(1 << 2);
+	}
+
+	if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_COMPOSE)) {
+
+	} else {
+
+	}
+
+	if (usb_led & (1 << USB_LED_KANA)) {
+
+	} else {
+
+	}
+
+}

+ 13 - 0
keyboards/1up60rgb/readme.md

@@ -0,0 +1,13 @@
+# 1upkeyboards 60% RGB
+
+Firmware for custom keyboard PCB with 60% key layout.
+
+Keyboard Maintainer: [rempired](https://github.com/rempired)  
+Hardware Supported: 1upkeyboards 60% RGB  
+Hardware Availability: [1upkeyboards](https://1upkeyboards.com/rgb-underglow-1up-pcb.html)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make 1up60rgb: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.

+ 56 - 0
keyboards/1up60rgb/rules.mk

@@ -0,0 +1,56 @@
+# 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
+
+
+# Build Options
+#   comment out to disable the options.
+#
+BOOTMAGIC_ENABLE ?= yes	# 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
+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

+ 31 - 0
keyboards/chimera_ergo/chimera_ergo.c

@@ -0,0 +1,31 @@
+#include "chimera_ergo.h"
+
+void uart_init(void) {
+	SERIAL_UART_INIT();
+}
+
+void led_init(void) {
+	DDRD  |= (1<<1);
+	PORTD |= (1<<1);
+	DDRF  |= (1<<4) | (1<<5);
+	PORTF |= (1<<4) | (1<<5);
+}
+
+
+void matrix_init_kb(void) {
+	// put your keyboard start-up code here
+	// runs once when the firmware starts up
+	matrix_init_user();
+	uart_init();
+	led_init();
+}
+
+void matrix_scan_kb(void) {
+	// put your looping keyboard code here
+	// runs every cycle (a lot)
+	matrix_scan_user();
+}
+
+void led_set_kb(uint8_t usb_led) {
+
+}

+ 82 - 0
keyboards/chimera_ergo/chimera_ergo.h

@@ -0,0 +1,82 @@
+#ifndef CHIMERA_ERGO_H
+#define CHIMERA_ERGO_H
+
+#include "quantum.h"
+#include "matrix.h"
+#include "backlight.h"
+#include <stddef.h>
+
+#define red_led_off   PORTF |= (1<<5)
+#define red_led_on    PORTF &= ~(1<<5)
+#define blu_led_off   PORTF |= (1<<4)
+#define blu_led_on    PORTF &= ~(1<<4)
+#define grn_led_off   PORTD |= (1<<1)
+#define grn_led_on    PORTD &= ~(1<<1)
+
+#define set_led_off     red_led_off; grn_led_off; blu_led_off
+#define set_led_red     red_led_on;  grn_led_off; blu_led_off
+#define set_led_blue    red_led_off; grn_led_off; blu_led_on
+#define set_led_green   red_led_off; grn_led_on;  blu_led_off
+#define set_led_yellow  red_led_on;  grn_led_on;  blu_led_off
+#define set_led_magenta red_led_on;  grn_led_off; blu_led_on
+#define set_led_cyan    red_led_off; grn_led_on;  blu_led_on
+#define set_led_white   red_led_on;  grn_led_on;  blu_led_on
+
+/*
+#define LED_B 5
+#define LED_R 6
+#define LED_G 7
+
+#define all_leds_off PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
+
+#define red_led_on   PORTF |= (1<<LED_R)
+#define red_led_off  PORTF &= ~(1<<LED_R)
+#define grn_led_on   PORTF |= (1<<LED_G)
+#define grn_led_off  PORTF &= ~(1<<LED_G)
+#define blu_led_on   PORTF |= (1<<LED_B)
+#define blu_led_off  PORTF &= ~(1<<LED_B)
+
+#define set_led_off     PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
+#define set_led_red     PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_G) | (1<<LED_R)
+#define set_led_blue    PORTF = PORTF & ~(1<<LED_G) & ~(1<<LED_R) | (1<<LED_B)
+#define set_led_green   PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_R) | (1<<LED_G)
+#define set_led_yellow  PORTF = PORTF & ~(1<<LED_B) | (1<<LED_R) | (1<<LED_G)
+#define set_led_magenta PORTF = PORTF & ~(1<<LED_G) | (1<<LED_R) | (1<<LED_B)
+#define set_led_cyan    PORTF = PORTF & ~(1<<LED_R) | (1<<LED_B) | (1<<LED_G)
+#define set_led_white   PORTF |= (1<<LED_B) | (1<<LED_R) | (1<<LED_G)
+*/
+
+// This a shortcut to help you visually see your layout.
+// The first section contains all of the arguements
+// The second converts the arguments into a two-dimensional array
+#define KC_KEYMAP( \
+  k00, k01, k02, k03, k04, k05,      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 \
+) \
+{ \
+	{ KC_NO,    KC_NO,    KC_##k26, KC_##k15, KC_##k28, KC_##k01,      KC_##k42, KC_##k31, KC_##k20, KC_##k33, KC_NO,    KC_NO     }, \
+	{ KC_##k00, KC_NO,    KC_##k14, KC_##k27, KC_##k16, KC_##k36,      KC_##k47, KC_##k19, KC_##k32, KC_##k21, KC_NO,    KC_##k11  }, \
+	{ KC_##k12, KC_##k25, KC_##k02, KC_##k39, KC_##k17, KC_##k49,      KC_##k50, KC_##k18, KC_##k44, KC_##k09, KC_##k34, KC_##k23  }, \
+	{ KC_##k24, KC_##k13, KC_##k38, KC_##k04, KC_##k05, KC_##k48,      KC_##k51, KC_##k06, KC_##k07, KC_##k45, KC_##k22, KC_##k35  },  \
+	{ KC_##k29, KC_##k41, KC_##k03, KC_##k40, KC_##k37, KC_NO,         KC_##k30, KC_##k43, KC_##k08, KC_##k10, KC_##k46, KC_NO     }, \
+}
+
+#define KEYMAP( \
+  k00, k01, k02, k03, k04, k05,      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 \
+) \
+{ \
+	{ KC_NO, KC_NO, k26, k15, k28, k01,      k42, k31, k20, k33, KC_NO, KC_NO  }, \
+	{ k00,   KC_NO, k14, k27, k16, k36,      k47, k19, k32, k21, KC_NO, k11    }, \
+	{ k12,   k25,   k02, k39, k17, k49,      k50, k18, k44, k09, k34,   k23    }, \
+	{ k24,   k13,   k38, k04, k05, k48,      k51, k06, k07, k45, k22,   k35    },  \
+	{ k29,   k41,   k03, k40, k37, KC_NO,    k30, k43, k08, k10, k46,   KC_NO  }, \
+}
+
+#endif

+ 87 - 0
keyboards/chimera_ergo/config.h

@@ -0,0 +1,87 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+
+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 <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+
+#define VENDOR_ID       0xFEED
+#define PRODUCT_ID      0x6060
+#define DEVICE_VER      0x0001
+#define MANUFACTURER    unknown
+#define PRODUCT         Chimera Ergo
+#define DESCRIPTION     q.m.k. keyboard firmware for Chimera Ergo
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 12
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+//#define BACKLIGHT_LEVELS 3
+
+#define ONESHOT_TIMEOUT 500
+
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+    keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/*
+ * Feature disable options
+ *  These options are also useful to firmware size reduction.
+ */
+
+#define PREVENT_STUCK_MODIFIERS
+
+/* 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
+
+//UART settings for communication with the RF microcontroller
+#define SERIAL_UART_BAUD 1000000
+#define SERIAL_UART_DATA UDR1
+#define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1)
+#define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1))
+#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1))
+#define SERIAL_UART_INIT() do { \
+    	/* baud rate */ \
+    	UBRR1L = SERIAL_UART_UBRR; \
+    	/* baud rate */ \
+    	UBRR1H = SERIAL_UART_UBRR >> 8; \
+    	/* enable TX and RX */ \
+    	UCSR1B = _BV(TXEN1) | _BV(RXEN1); \
+    	/* 8-bit data */ \
+    	UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \
+  	} while(0)
+
+#endif

+ 206 - 0
keyboards/chimera_ergo/keymaps/default/keymap.c

@@ -0,0 +1,206 @@
+// this is the style you want to emulate.
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+
+#include "chimera_ergo.h"
+
+// 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 chimera_ergo_layers
+{
+	_QWERTY,
+	_CAPS,
+	_NUMPAD,
+	_SYMBOLS,
+	_MACROS,
+	_NAV
+};
+
+#define KC_NMPD TG(_NUMPAD)
+#define KC_SYMB TG(_SYMBOLS)
+#define KC_SPFN LT(_NAV,KC_EQL)
+#define KC_SCTL MT(MOD_LCTL, KC_LBRC)
+#define KC_SCTR MT(MOD_LCTL, KC_RBRC)
+#define KC_SPLT MT(MOD_LALT, KC_MINS)
+#define KC_SPRT MT(MOD_LALT, KC_1)
+#define KC_GBRC MT(MOD_RGUI, KC_RBRC)
+#define KC_GQOT MT(MOD_LGUI, KC_QUOT)
+#define KC_MESC LT(_MACROS, KC_ESC)
+#define KC_INCL M(0)
+#define KC_PULL M(1)
+#define KC_PUSH M(2)
+#define KC_SCAP M(3)
+#define KC_SCOF M(4)
+#define KC_CAD LALT(LCTL(KC_DEL))
+
+#define LONGPRESS_DELAY 150
+//#define LAYER_TOGGLE_DELAY 300
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+#define KC_ KC_TRNS 
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+  [_QWERTY] = KC_KEYMAP(
+  //,----+----+----+----+----+----.     ,----+----+----+----+----+----.
+     LBRC, 1  ,SCTL,SPLT,SPFN, 5  ,       6  ,GBRC,SPRT,SCTR, 0  ,RBRC,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+     MESC, Q  , W  , E  , R  , T  ,       Y  , U  , I  , O  , P  ,QUOT,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+     TAB , A  , S  , D  , F  , G  ,       H  , J  , K  , L  ,SCLN,ENT ,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+     LSPO, Z  , X  , C  , V  , B  ,       N  , M  ,COMM,DOT ,SLSH,RSPC,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+                         NMPD,BSPC,      SPC ,SYMB
+  // \------------------+----+----/      \---+----+----+--------------/
+  ),
+
+  [_CAPS] = KC_KEYMAP(
+  //,----+----+----+----+----+----.     ,----+----+----+----+----+----.
+         ,UNDS,    ,    ,    ,    ,          ,    ,    ,    ,    ,    ,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+         ,    ,    ,    ,    ,    ,          ,    ,    ,    ,    ,    ,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+         ,    ,    ,    ,    ,    ,          ,    ,    ,    ,COLN,    ,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+     SCOF,    ,    ,    ,    ,    ,          ,    ,    ,    ,    ,SCOF,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+                             ,    ,          ,
+  // \------------------+----+----/      \---+----+----+--------------/
+  ),
+
+  [_NUMPAD] = KC_KEYMAP(
+  //,----+----+----+----+----+----.     ,----+----+----+----+----+----.
+         ,    ,    ,    ,    ,    ,          ,    ,    ,    ,MINS,    ,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+         ,    ,COLN,    ,    ,    ,          , 7  , 8  , 9  ,ASTR,    ,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+         ,    ,DOT ,    ,    ,    ,          , 4  , 5  , 6  ,PLUS,    ,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+         ,    ,    ,    ,    ,    ,          , 1  , 2  , 3  ,SLSH,    ,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+                             ,    ,          , 0
+  // \------------------+----+----/      \---+----+----+--------------/
+  ),
+
+  [_SYMBOLS] = KC_KEYMAP(
+  //,----+----+----+----+----+----.     ,----+----+----+----+----+----.
+         ,    ,    ,    ,    ,    ,          ,    ,    ,    ,    ,    ,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+         ,EXLM, AT ,HASH,DLR ,PERC,      CIRC,AMPR,ASTR,LPRN,RPRN,BSLS,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+      F1 , F2 , F3 , F4 , F5 , F6 ,      TILD,EQL ,UNDS,LCBR,RCBR,    ,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+      F7 , F8 , F9 ,F10 ,F11 ,F12 ,      GRV ,PLUS,MINS,LBRC,RBRC,    ,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+                         PIPE,    ,          ,
+  // \------------------+----+----/      \---+----+----+--------------/
+  ),
+
+  [_MACROS] = KC_KEYMAP(  
+  //,----+----+----+----+----+----.     ,----+----+----+----+----+----.
+         ,    ,    ,    ,    ,    ,          ,    ,    ,    ,    ,    ,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+         ,    ,    ,    ,    ,    ,          ,    ,INCL,    ,    ,    ,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+         ,    ,    ,CAD ,    ,    ,          ,    ,    ,    ,    ,    ,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+     SCAP,    ,    ,    ,    ,    ,          ,    ,PULL,PUSH,    ,    ,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+                             ,    ,          ,    
+  // \------------------+----+----/      \---+----+----+--------------/
+  ),
+
+  [_NAV] = KC_KEYMAP(  
+  //,----+----+----+----+----+----.     ,----+----+----+----+----+----.
+         ,    ,    ,    ,    ,    ,          ,    ,    ,    ,    ,    ,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+         ,    ,    ,    ,    ,    ,          ,PGUP, UP ,PGDN,PSCR,    ,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+         ,    ,    ,    ,    ,    ,          ,LEFT,DOWN,RGHT,    ,    ,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+         ,    ,    ,    ,    ,    ,          ,    ,    ,    ,    ,    ,
+  //|----+----+----+----+----+----|     |----+----+----+----+----+----|
+                             ,DEL ,          ,    
+  // \------------------+----+----/      \---+----+----+--------------/
+  ),
+
+
+};
+
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+  switch(id) {
+    /* include some kind of library or header */
+    case 0:
+      if (record->event.pressed) {
+        SEND_STRING("#include <>");
+        return MACRO( T(LEFT), END);
+      }
+      break;
+    case 1:
+      if (record->event.pressed) {
+        SEND_STRING("git pull");
+        return MACRO( T(ENT), END );
+      }
+      break;
+    case 2:
+      if (record->event.pressed){
+        SEND_STRING("git push");
+        return MACRO( T(ENT), END );
+      }
+      break;
+    case 3:
+      if (record->event.pressed){
+        layer_on(_CAPS);
+        register_code(KC_CAPSLOCK);
+        unregister_code(KC_CAPSLOCK);
+      }
+      break;
+    case 4:
+      if (record->event.pressed){
+        layer_off(_CAPS);
+        register_code(KC_CAPSLOCK);
+        unregister_code(KC_CAPSLOCK);
+      }
+      break;
+  }
+  return MACRO_NONE;
+};
+ 
+
+void matrix_scan_user(void) {
+    uint8_t layer = biton32(layer_state);
+    
+    switch (layer) {
+    	case _QWERTY:
+    	    set_led_green;
+    	    break;
+        case _CAPS:
+	    set_led_white;
+	    break;
+        case _NUMPAD:
+            set_led_blue;
+            break;
+        case _SYMBOLS:
+            set_led_red;
+            break;
+        case _NAV:
+	    set_led_magenta;
+	    break;
+        case _MACROS:
+	    set_led_cyan;
+	    break;
+       default:
+            set_led_green;
+            break;
+    }
+};

+ 164 - 0
keyboards/chimera_ergo/matrix.c

@@ -0,0 +1,164 @@
+/*
+Copyright 2012 Jun Wako
+Copyright 2014 Jack Humbert
+
+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 <http://www.gnu.org/licenses/>.
+*/
+#include <stdint.h>
+#include <stdbool.h>
+#if defined(__AVR__)
+#include <avr/io.h>
+#endif
+#include "wait.h"
+#include "print.h"
+#include "debug.h"
+#include "util.h"
+#include "matrix.h"
+#include "timer.h"
+
+#if (MATRIX_COLS <= 8)
+#    define print_matrix_header()  print("\nr/c 01234567\n")
+#    define print_matrix_row(row)  print_bin_reverse8(matrix_get_row(row))
+#    define matrix_bitpop(i)       bitpop(matrix[i])
+#    define ROW_SHIFTER ((uint8_t)1)
+#elif (MATRIX_COLS <= 16)
+#    define print_matrix_header()  print("\nr/c 0123456789ABCDEF\n")
+#    define print_matrix_row(row)  print_bin_reverse16(matrix_get_row(row))
+#    define matrix_bitpop(i)       bitpop16(matrix[i])
+#    define ROW_SHIFTER ((uint16_t)1)
+#elif (MATRIX_COLS <= 32)
+#    define print_matrix_header()  print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n")
+#    define print_matrix_row(row)  print_bin_reverse32(matrix_get_row(row))
+#    define matrix_bitpop(i)       bitpop32(matrix[i])
+#    define ROW_SHIFTER  ((uint32_t)1)
+#endif
+
+/* matrix state(1:on, 0:off) */
+static matrix_row_t matrix[MATRIX_ROWS];
+
+__attribute__ ((weak))
+void matrix_init_quantum(void) {
+    matrix_init_kb();
+}
+
+__attribute__ ((weak))
+void matrix_scan_quantum(void) {
+    matrix_scan_kb();
+}
+
+__attribute__ ((weak))
+void matrix_init_kb(void) {
+    matrix_init_user();
+}
+
+__attribute__ ((weak))
+void matrix_scan_kb(void) {
+    matrix_scan_user();
+}
+
+__attribute__ ((weak))
+void matrix_init_user(void) {
+}
+
+__attribute__ ((weak))
+void matrix_scan_user(void) {
+}
+
+inline
+uint8_t matrix_rows(void) {
+    return MATRIX_ROWS;
+}
+
+inline
+uint8_t matrix_cols(void) {
+    return MATRIX_COLS;
+}
+
+void matrix_init(void) {
+
+    matrix_init_quantum();
+}
+
+uint8_t matrix_scan(void)
+{
+    SERIAL_UART_INIT();
+
+    uint32_t timeout = 0;
+
+    //the s character requests the RF slave to send the matrix
+    SERIAL_UART_DATA = 's';
+
+    //trust the external keystates entirely, erase the last data
+    uint8_t uart_data[14] = {0};
+
+    //there are 10 bytes corresponding to 10 columns, and an end byte
+    for (uint8_t i = 0; i < 14; i++) {
+        //wait for the serial data, timeout if it's been too long
+        //this only happened in testing with a loose wire, but does no
+        //harm to leave it in here
+        while(!SERIAL_UART_RXD_PRESENT){
+            timeout++;
+            if (timeout > 10000){
+                break;
+            }
+        } 
+        uart_data[i] = SERIAL_UART_DATA;
+    }
+
+    //check for the end packet, the key state bytes use the LSBs, so 0xE0
+    //will only show up here if the correct bytes were recieved
+    if (uart_data[10] == 0xE0)
+    {
+        //shifting and transferring the keystates to the QMK matrix variable
+        for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
+            matrix[i] = (uint16_t) uart_data[i*2] | (uint16_t) uart_data[i*2+1] << 6;
+        }
+    }
+
+
+    matrix_scan_quantum();
+    return 1;
+}
+
+inline
+bool matrix_is_on(uint8_t row, uint8_t col)
+{
+    return (matrix[row] & ((matrix_row_t)1<col));
+}
+
+inline
+matrix_row_t matrix_get_row(uint8_t row)
+{
+    return matrix[row];
+}
+
+void matrix_print(void)
+{
+    print_matrix_header();
+
+    for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
+        phex(row); print(": ");
+        print_matrix_row(row);
+        print("\n");
+    }
+}
+
+uint8_t matrix_key_count(void)
+{
+    uint8_t count = 0;
+    for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
+        count += matrix_bitpop(i);
+    }
+    return count;
+}

+ 19 - 0
keyboards/chimera_ergo/readme.md

@@ -0,0 +1,19 @@
+# Chimera Ergo
+
+![Chimera Ergo](https://imgur.com/AA6ycMQ.jpg)
+
+A split wireless 40% ergonomic keyboard 
+
+Keyboard Maintainer: [William Wilson](https://github.com/GlenPickle)  
+
+
+Hardware Supported: Chimera Ergo PCB, WaveShare core nRF51822
+
+Hardware Availability: [Gerbers](https://github.com/GlenPickle/Chimera/tree/master/ergo/gerbers)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make chimera_ergo: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.
+

+ 82 - 0
keyboards/chimera_ergo/rules.mk

@@ -0,0 +1,82 @@
+
+OPT_DEFS += -DCHIMERA_ERGO_PROMICRO
+CHIMERA_ERGO_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
+                         avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
+
+# # project specific files
+SRC = matrix.c
+
+
+# MCU name
+#MCU = at90usb1287
+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)
+
+# Bootloader
+#     This definition is optional, and if your keyboard supports multiple bootloaders of
+#     different sizes, comment this out, and the correct address will be loaded 
+#     automatically (+60). See bootloader.mk for all options.
+BOOTLOADER = caterina
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+# Boot Section Size in *bytes*
+#   Teensy halfKay   512
+#   Teensy++ halfKay 1024
+#   Atmel DFU loader 4096
+#   LUFA bootloader  4096
+#   USBaspLoader     2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+#   comment out to disable the options.
+#
+#BOOTMAGIC_ENABLE = yes	# Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes	# 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
+CUSTOM_MATRIX = yes    # Remote matrix from the wireless bridge
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+# SLEEP_LED_ENABLE = yes  # Breathing sleep LED during USB suspend
+NKRO_ENABLE = yes		# USB Nkey Rollover - not yet supported in LUFA
+# BACKLIGHT_ENABLE = yes  # Enable keyboard backlight functionality
+# MIDI_ENABLE = YES 		# MIDI controls
+UNICODE_ENABLE = YES 		# Unicode
+# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
+
+USB = /dev/ttyACM0

+ 31 - 0
keyboards/chimera_ls/chimera_ls.c

@@ -0,0 +1,31 @@
+#include "chimera_ls.h"
+
+void uart_init(void) {
+	SERIAL_UART_INIT();
+}
+
+void led_init(void) {
+	DDRD  |= (1<<1);
+	PORTD |= (1<<1);
+	DDRF  |= (1<<4) | (1<<5);
+	PORTF |= (1<<4) | (1<<5);
+}
+
+
+void matrix_init_kb(void) {
+	// put your keyboard start-up code here
+	// runs once when the firmware starts up
+	matrix_init_user();
+	uart_init();
+	led_init();
+}
+
+void matrix_scan_kb(void) {
+	// put your looping keyboard code here
+	// runs every cycle (a lot)
+	matrix_scan_user();
+}
+
+void led_set_kb(uint8_t usb_led) {
+
+}

+ 82 - 0
keyboards/chimera_ls/chimera_ls.h

@@ -0,0 +1,82 @@
+#ifndef CHIMERA_LETS_SPLIT_H
+#define CHIMERA_LETS_SPLIT_H
+
+#include "quantum.h"
+#include "matrix.h"
+#include "backlight.h"
+#include <stddef.h>
+
+#define red_led_off   PORTF |= (1<<5)
+#define red_led_on    PORTF &= ~(1<<5)
+#define blu_led_off   PORTF |= (1<<4)
+#define blu_led_on    PORTF &= ~(1<<4)
+#define grn_led_off   PORTD |= (1<<1)
+#define grn_led_on    PORTD &= ~(1<<1)
+
+#define set_led_off     red_led_off; grn_led_off; blu_led_off
+#define set_led_red     red_led_on;  grn_led_off; blu_led_off
+#define set_led_blue    red_led_off; grn_led_off; blu_led_on
+#define set_led_green   red_led_off; grn_led_on;  blu_led_off
+#define set_led_yellow  red_led_on;  grn_led_on;  blu_led_off
+#define set_led_magenta red_led_on;  grn_led_off; blu_led_on
+#define set_led_cyan    red_led_off; grn_led_on;  blu_led_on
+#define set_led_white   red_led_on;  grn_led_on;  blu_led_on
+
+/*
+#define LED_B 5
+#define LED_R 6
+#define LED_G 7
+
+#define all_leds_off PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
+
+#define red_led_on   PORTF |= (1<<LED_R)
+#define red_led_off  PORTF &= ~(1<<LED_R)
+#define grn_led_on   PORTF |= (1<<LED_G)
+#define grn_led_off  PORTF &= ~(1<<LED_G)
+#define blu_led_on   PORTF |= (1<<LED_B)
+#define blu_led_off  PORTF &= ~(1<<LED_B)
+
+#define set_led_off     PORTF &= ~(1<<LED_B) & ~(1<<LED_R) & ~(1<<LED_G)
+#define set_led_red     PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_G) | (1<<LED_R)
+#define set_led_blue    PORTF = PORTF & ~(1<<LED_G) & ~(1<<LED_R) | (1<<LED_B)
+#define set_led_green   PORTF = PORTF & ~(1<<LED_B) & ~(1<<LED_R) | (1<<LED_G)
+#define set_led_yellow  PORTF = PORTF & ~(1<<LED_B) | (1<<LED_R) | (1<<LED_G)
+#define set_led_magenta PORTF = PORTF & ~(1<<LED_G) | (1<<LED_R) | (1<<LED_B)
+#define set_led_cyan    PORTF = PORTF & ~(1<<LED_R) | (1<<LED_B) | (1<<LED_G)
+#define set_led_white   PORTF |= (1<<LED_B) | (1<<LED_R) | (1<<LED_G)
+*/
+
+// This a shortcut to help you visually see your layout.
+// The first section contains all of the arguements
+// The second converts the arguments into a two-dimensional array
+
+#define KC_KEYMAP( \
+  k00, k01, k02, k03, k04, k05,           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  \
+) \
+{ \
+	{ KC_##k43, KC_##k45, KC_##k34, KC_##k11, KC_##k23, KC_##k40, KC_##k38, KC_##k25, KC_##k00, KC_##k12 }, \
+	{ KC_##k31, KC_##k44, KC_##k46, KC_##k35, KC_##k22, KC_##k28, KC_##k39, KC_##k37, KC_##k24, KC_##k13 }, \
+	{ KC_##k30, KC_##k32, KC_##k33, KC_##k47, KC_##k09, KC_##k29, KC_##k27, KC_##k26, KC_##k36, KC_##k02 }, \
+	{ KC_##k19, KC_##k20, KC_##k21, KC_##k42, KC_##k18, KC_##k16, KC_##k15, KC_##k14, KC_##k41, KC_##k17 },  \
+	{ KC_##k06, KC_##k07, KC_##k08, KC_##k10, KC_NO,    KC_##k05, KC_##k04, KC_##k03, KC_##k01, KC_NO    }, \
+}
+
+#define KEYMAP( \
+  k00, k01, k02, k03, k04, k05,           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  \
+) \
+{ \
+	{ k43, k45, k34, k11, k23, k40, k38, k25, k00, k12 }, \
+	{ k31, k44, k46, k35, k22, k28, k39, k37, k24, k13 }, \
+	{ k30, k32, k33, k47, k09, k29, k27, k26, k36, k02 }, \
+	{ k19, k20, k21, k42, k18, k16, k15, k14, k41, k17 },  \
+	{ k06, k07, k08, k10, KC_NO,    k05, k04, k03, k01, KC_NO    }, \
+}
+
+
+#endif

+ 87 - 0
keyboards/chimera_ls/config.h

@@ -0,0 +1,87 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+
+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 <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+
+#define VENDOR_ID       0xFEED
+#define PRODUCT_ID      0x6060
+#define DEVICE_VER      0x0001
+#define MANUFACTURER    unknown
+#define PRODUCT         Chimera Lets Split
+#define DESCRIPTION     q.m.k. keyboard firmware for Chimera Lets Split
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 12
+
+/* define if matrix has ghost */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+//#define BACKLIGHT_LEVELS 3
+
+#define ONESHOT_TIMEOUT 500
+
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+    keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/*
+ * Feature disable options
+ *  These options are also useful to firmware size reduction.
+ */
+
+#define PREVENT_STUCK_MODIFIERS
+
+/* 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
+
+//UART settings for communication with the RF microcontroller
+#define SERIAL_UART_BAUD 1000000
+#define SERIAL_UART_DATA UDR1
+#define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1)
+#define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1))
+#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1))
+#define SERIAL_UART_INIT() do { \
+    	/* baud rate */ \
+    	UBRR1L = SERIAL_UART_UBRR; \
+    	/* baud rate */ \
+    	UBRR1H = SERIAL_UART_UBRR >> 8; \
+    	/* enable TX and RX */ \
+    	UCSR1B = _BV(TXEN1) | _BV(RXEN1); \
+    	/* 8-bit data */ \
+    	UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \
+  	} while(0)
+
+#endif

+ 191 - 0
keyboards/chimera_ls/keymaps/default/keymap.c

@@ -0,0 +1,191 @@
+// this is the style you want to emulate.
+// This is the canonical layout file for the Quantum project. If you want to add another keyboard,
+
+#include "chimera_ls.h"
+
+// 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 chimera_lets_split_layers
+{
+	_QWERTY,
+	_CAPS,
+	_NUMPAD,
+	_SYMBOLS,
+	_MACROS,
+	_NAV
+};
+
+#define KC_NMPD TG(_NUMPAD)
+#define KC_SYMB TG(_SYMBOLS)
+#define KC_SPFN LT(_NAV,KC_EQL)
+#define KC_SCTL MT(MOD_LCTL, KC_BSLS)
+#define KC_SCTR MT(MOD_LCTL, KC_RBRC)
+#define KC_SPLT MT(MOD_LALT, KC_MINS)
+#define KC_MESC LT(_MACROS, KC_ESC)
+#define KC_INCL M(0)
+#define KC_PULL M(1)
+#define KC_PUSH M(2)
+#define KC_SCAP M(3)
+#define KC_SCOF M(4)
+#define KC_CAD LALT(LCTL(KC_DEL))
+
+#define LONGPRESS_DELAY 150
+//#define LAYER_TOGGLE_DELAY 300
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+#define KC_ KC_TRNS 
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+  [_QWERTY] = KC_KEYMAP(
+  //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
+     MESC, Q  , W  , E  , R  , T  ,      Y  , U  , I  , O  , P  ,BSPC,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+     TAB , A  , S  , D  , F  , G  ,      H  , J  , K  , L  ,SCLN, ENT,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+     LSPO, Z  , X  , C  , V  , B  ,      N  , M  ,COMM,DOT ,SLSH,RSPC,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+     SCTL,SPFN,SPLT,AMPR,NMPD,SPC ,     SPC ,SYMB,ASTR,EXLM,LBRC,SCTR
+  //`----+----+----+----+----+----'    `----+----+----+----+----+----'
+  ),
+
+  [_CAPS] = KC_KEYMAP(
+  //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
+         ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+         ,    ,    ,    ,    ,    ,         ,    ,    ,    ,COLN,    ,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+         ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+         ,    ,UNDS,    ,    ,    ,         ,    ,    ,    ,    ,    
+  //`----+----+----+----+----+----'    `----+----+----+----+----+----'
+  ),
+
+
+  [_NUMPAD] = KC_KEYMAP(
+  //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
+         ,    ,    ,    ,    ,    ,         ,  7 ,  8 ,  9 ,MINS,QUOT,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+         ,    ,    ,    ,    ,    ,         ,  4 ,  5 ,  6 ,PLUS, ENT,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+     LSFT,    ,    ,    ,    ,    ,         ,  1 ,  2 ,  3 ,ASTR, EQL,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+         ,    ,    ,    ,    ,BSPC,     SPC ,  0 ,  0 , DOT,SLSH,    
+  //`----+----+----+----+----+----'    `----+----+----+----+----+----'
+  ),
+
+  [_SYMBOLS] = KC_KEYMAP(
+  //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
+         ,EXLM, AT ,HASH,DLR ,PERC,     CIRC,AMPR,ASTR,LPRN,RPRN,QUOT,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+      F1 , F2 , F3 , F4 , F5 , F6 ,     TILD,EQL ,UNDS,LCBR,RCBR,PIPE,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+      F7 , F8 , F9 , F10, F11, F12,     GRV ,PLUS,MINS,LBRC,RBRC,BSLS,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+         ,    ,    ,    , NO ,BSPC,     SPC ,    ,    ,    ,    ,    
+  //`----+----+----+----+----+----'    `----+----+----+----+----+----'
+  ),
+
+  [_NAV] = KC_KEYMAP(
+  //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
+         ,    ,    ,    , DEL,BSPC,         ,HOME, UP , END, INS,PSCR,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+         ,    ,    ,LSFT,LCTL, ENT,         ,LEFT,DOWN,RGHT, DEL,   ,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+         ,    ,    ,    ,    ,    ,         ,PGUP,PGDN,    ,    ,    ,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+         ,    ,    ,    ,    ,DEL ,         ,    ,    ,    ,    ,   
+  //`----+----+----+----+----+----'    `----+----+----+----+----+----'
+  ),
+
+  [_MACROS] = KC_KEYMAP(
+  //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
+         ,    ,    ,    ,    ,    ,         ,    ,INCL,    ,    ,    ,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+         ,    ,    ,CAD ,    ,    ,         ,    ,    ,    ,    ,    ,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+     SCAP,    ,    ,    ,    ,    ,         ,    ,PULL,PUSH,    ,SCAP,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+         ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,   
+  //`----+----+----+----+----+----'    `----+----+----+----+----+----'
+  ),
+
+};
+
+
+const uint16_t PROGMEM fn_actions[] = {
+
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+  switch(id) {
+    /* include some kind of library or header */
+    case 0:
+      if (record->event.pressed) {
+        SEND_STRING("#include <>");
+        return MACRO( T(LEFT), END);
+      }
+      break;
+    case 1:
+      if (record->event.pressed) {
+        SEND_STRING("git pull");
+        return MACRO( T(ENT), END );
+      }
+      break;
+    case 2:
+      if (record->event.pressed){
+        SEND_STRING("git push");
+        return MACRO( T(ENT), END );
+      }
+      break;
+    case 3:
+      if (record->event.pressed){
+        layer_on(_CAPS);
+        register_code(KC_CAPSLOCK);
+        unregister_code(KC_CAPSLOCK);
+      }
+      break;
+    case 4:
+      if (record->event.pressed){
+        layer_off(_CAPS);
+        register_code(KC_CAPSLOCK);
+        unregister_code(KC_CAPSLOCK);
+      }
+      break;
+  }
+  return MACRO_NONE;
+};
+ 
+
+void matrix_scan_user(void) {
+    uint8_t layer = biton32(layer_state);
+    
+    switch (layer) {
+    	case _QWERTY:
+    	    set_led_green;
+    	    break;
+        case _CAPS:
+	    set_led_white;
+	    break;
+        case _NUMPAD:
+            set_led_blue;
+            break;
+        case _SYMBOLS:
+            set_led_red;
+            break;
+        case _NAV:
+	    set_led_magenta;
+	    break;
+        case _MACROS:
+	    set_led_cyan;
+	    break;
+       default:
+            set_led_green;
+            break;
+    }
+};

+ 168 - 0
keyboards/chimera_ls/matrix.c

@@ -0,0 +1,168 @@
+/*
+Copyright 2012 Jun Wako
+Copyright 2014 Jack Humbert
+
+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 <http://www.gnu.org/licenses/>.
+*/
+#include <stdint.h>
+#include <stdbool.h>
+#if defined(__AVR__)
+#include <avr/io.h>
+#endif
+#include "wait.h"
+#include "print.h"
+#include "debug.h"
+#include "util.h"
+#include "matrix.h"
+#include "timer.h"
+
+#if (MATRIX_COLS <= 8)
+#    define print_matrix_header()  print("\nr/c 01234567\n")
+#    define print_matrix_row(row)  print_bin_reverse8(matrix_get_row(row))
+#    define matrix_bitpop(i)       bitpop(matrix[i])
+#    define ROW_SHIFTER ((uint8_t)1)
+#elif (MATRIX_COLS <= 16)
+#    define print_matrix_header()  print("\nr/c 0123456789ABCDEF\n")
+#    define print_matrix_row(row)  print_bin_reverse16(matrix_get_row(row))
+#    define matrix_bitpop(i)       bitpop16(matrix[i])
+#    define ROW_SHIFTER ((uint16_t)1)
+#elif (MATRIX_COLS <= 32)
+#    define print_matrix_header()  print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n")
+#    define print_matrix_row(row)  print_bin_reverse32(matrix_get_row(row))
+#    define matrix_bitpop(i)       bitpop32(matrix[i])
+#    define ROW_SHIFTER  ((uint32_t)1)
+#elif (MATRIX_COLS <= 64)
+#    define print_matrix_header()  print("\nr/c 0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF\n")
+#    define print_matrix_row(row)  print_bin_reverse64(matrix_get_row(row))
+#    define matrix_bitpop(i)       bitpop64(matrix[i])
+#    define ROW_SHIFTER  ((uint64_t)1)
+#endif
+
+/* matrix state(1:on, 0:off) */
+static matrix_row_t matrix[MATRIX_ROWS];
+
+__attribute__ ((weak))
+void matrix_init_quantum(void) {
+    matrix_init_kb();
+}
+
+__attribute__ ((weak))
+void matrix_scan_quantum(void) {
+    matrix_scan_kb();
+}
+
+__attribute__ ((weak))
+void matrix_init_kb(void) {
+    matrix_init_user();
+}
+
+__attribute__ ((weak))
+void matrix_scan_kb(void) {
+    matrix_scan_user();
+}
+
+__attribute__ ((weak))
+void matrix_init_user(void) {
+}
+
+__attribute__ ((weak))
+void matrix_scan_user(void) {
+}
+
+inline
+uint8_t matrix_rows(void) {
+    return MATRIX_ROWS;
+}
+
+inline
+uint8_t matrix_cols(void) {
+    return MATRIX_COLS;
+}
+
+void matrix_init(void) {
+    matrix_init_quantum();
+}
+
+uint8_t matrix_scan(void)
+{
+    SERIAL_UART_INIT();
+
+    uint32_t timeout = 0;
+
+    //the s character requests the RF slave to send the matrix
+    SERIAL_UART_DATA = 's';
+
+    //trust the external keystates entirely, erase the last data
+    uint8_t uart_data[11] = {0};
+
+    //there are 10 bytes corresponding to 10 columns, and an end byte
+    for (uint8_t i = 0; i < 11; i++) {
+        //wait for the serial data, timeout if it's been too long
+        //this only happened in testing with a loose wire, but does no
+        //harm to leave it in here
+        while(!SERIAL_UART_RXD_PRESENT){
+            timeout++;
+            if (timeout > 10000){
+                break;
+            }
+        } 
+        uart_data[i] = SERIAL_UART_DATA;
+    }
+
+    //check for the end packet, the key state bytes use the LSBs, so 0xE0
+    //will only show up here if the correct bytes were recieved
+    if (uart_data[10] == 0xE0)
+    {
+        //shifting and transferring the keystates to the QMK matrix variable
+        for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
+            matrix[i] = (uint16_t) uart_data[i*2] | (uint16_t) uart_data[i*2+1] << 5;
+        }
+    }
+
+
+    matrix_scan_quantum();
+    return 1;
+}
+
+inline
+bool matrix_is_on(uint8_t row, uint8_t col)
+{
+    return (matrix[row] & ((matrix_row_t)1<col));
+}
+
+inline
+matrix_row_t matrix_get_row(uint8_t row)
+{
+    return matrix[row];
+}
+
+void matrix_print(void)
+{
+    print_matrix_header();
+
+    for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
+        phex(row); print(": ");
+        print_matrix_row(row);
+        print("\n");
+    }
+}
+
+uint8_t matrix_key_count(void)
+{
+    uint8_t count = 0;
+    for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
+        count += matrix_bitpop(i);
+    }
+    return count;
+}

+ 19 - 0
keyboards/chimera_ls/readme.md

@@ -0,0 +1,19 @@
+# Chimera LS
+
+![Chimera LS](https://imgur.com/FOGlO4M.jpg)
+
+A wireless version of the let's split: a split 40% ortholinear keyboard 
+
+Keyboard Maintainer: [William Wilson](https://github.com/GlenPickle)  
+
+
+Hardware Supported: Chimera LS PCB, WaveShare core nRF51822
+
+Hardware Availability: [Gerbers](https://github.com/GlenPickle/Chimera/tree/master/ls/gerbers)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make chimera_ls: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.
+

+ 82 - 0
keyboards/chimera_ls/rules.mk

@@ -0,0 +1,82 @@
+
+OPT_DEFS += -DCHIMERA_LS_PROMICRO
+CHIMERA_LS_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
+                         avrdude -p $(MCU) -c avr109 -U flash:w:$(TARGET).hex -P $(USB)
+
+# # project specific files
+SRC = matrix.c
+
+
+# MCU name
+#MCU = at90usb1287
+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)
+
+# Bootloader
+#     This definition is optional, and if your keyboard supports multiple bootloaders of
+#     different sizes, comment this out, and the correct address will be loaded 
+#     automatically (+60). See bootloader.mk for all options.
+BOOTLOADER = caterina
+
+# Interrupt driven control endpoint task(+60)
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+# Boot Section Size in *bytes*
+#   Teensy halfKay   512
+#   Teensy++ halfKay 1024
+#   Atmel DFU loader 4096
+#   LUFA bootloader  4096
+#   USBaspLoader     2048
+OPT_DEFS += -DBOOTLOADER_SIZE=4096
+
+
+# Build Options
+#   comment out to disable the options.
+#
+#BOOTMAGIC_ENABLE = yes	# Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes	# 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
+CUSTOM_MATRIX = yes    # Remote matrix from the wireless bridge
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+# SLEEP_LED_ENABLE = yes  # Breathing sleep LED during USB suspend
+NKRO_ENABLE = yes		# USB Nkey Rollover - not yet supported in LUFA
+# BACKLIGHT_ENABLE = yes  # Enable keyboard backlight functionality
+# MIDI_ENABLE = YES 		# MIDI controls
+UNICODE_ENABLE = YES 		# Unicode
+# BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
+
+USB = /dev/ttyACM0

+ 14 - 1
keyboards/chimera_ortho/chimera_ortho.h

@@ -49,7 +49,7 @@
 // This a shortcut to help you visually see your layout.
 // This a shortcut to help you visually see your layout.
 // The first section contains all of the arguements
 // The first section contains all of the arguements
 // The second converts the arguments into a two-dimensional array
 // The second converts the arguments into a two-dimensional array
-#define KEYMAP( \
+#define KC_KEYMAP( \
   k00, k01, k02, k03, k04, k05, k06,      k07, k08, k09, k10, k11, k12, k13, \
   k00, k01, k02, k03, k04, k05, k06,      k07, k08, k09, k10, k11, k12, k13, \
   k14, k15, k16, k17, k18, k19, k20,      k21, k22, k23, k24, k25, k26, k27, \
   k14, k15, k16, k17, k18, k19, k20,      k21, k22, k23, k24, k25, k26, k27, \
   k28, k29, k31, k32, k33, k34, k35,      k36, k37, k38, k41, k42, k43, k44,\
   k28, k29, k31, k32, k33, k34, k35,      k36, k37, k38, k41, k42, k43, k44,\
@@ -63,4 +63,17 @@
 	{ KC_NO,      KC_##k28, KC_##k14, KC_##k00, KC_##k45,      KC_##k48, KC_##k13, KC_##k27, KC_##k44, KC_NO }, \
 	{ KC_NO,      KC_##k28, KC_##k14, KC_##k00, KC_##k45,      KC_##k48, KC_##k13, KC_##k27, KC_##k44, KC_NO }, \
 }
 }
 
 
+#define KEYMAP( \
+  k00, k01, k02, k03, k04, k05, k06,      k07, k08, k09, k10, k11, k12, k13, \
+  k14, k15, k16, k17, k18, k19, k20,      k21, k22, k23, k24, k25, k26, k27, \
+  k28, k29, k31, k32, k33, k34, k35,      k36, k37, k38, k41, k42, k43, k44,\
+                      k45, k46,               k47, k48      \
+) \
+{ \
+	{ k01,   k02, k03, k04, k05,      k08, k09, k10, k11, k12   }, \
+	{ k15,   k16, k17, k18, k19,      k22, k23, k24, k25, k26   }, \
+	{ k29,   k31, k32, k33, k34,      k37, k38, k41, k42, k43   }, \
+	{ KC_NO,      k06, k20, k35, k46,      k47, k36, k21, k07, KC_NO },  \
+	{ KC_NO,      k28, k14, k00, k45,      k48, k13, k27, k44, KC_NO }, \
+}
 #endif
 #endif

+ 6 - 6
keyboards/chimera_ortho/keymaps/default/keymap.c

@@ -44,7 +44,7 @@ enum chimera_ortho_layers
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
 
-  [_QWERTY] = KEYMAP(  
+  [_QWERTY] = KC_KEYMAP(  
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
      MESC, Q  , W  , E  , R  , T  ,SCTL,      SCTR, Y  , U  , I  , O  , P  ,QUOT,
      MESC, Q  , W  , E  , R  , T  ,SCTL,      SCTR, Y  , U  , I  , O  , P  ,QUOT,
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
@@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   // \------------------+----+----+---/       \---+----+----+-------------------/
   // \------------------+----+----+---/       \---+----+----+-------------------/
   ),
   ),
 
 
-  [_CAPS] = KEYMAP(  
+  [_CAPS] = KC_KEYMAP(  
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
          ,    ,    ,    ,    ,    ,    ,          ,    ,    ,    ,    ,    ,    ,
          ,    ,    ,    ,    ,    ,    ,          ,    ,    ,    ,    ,    ,    ,
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
@@ -68,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   // \------------------+----+----+---/       \---+----+----+-------------------/
   // \------------------+----+----+---/       \---+----+----+-------------------/
   ),
   ),
 
 
-  [_NUMPAD] = KEYMAP(  
+  [_NUMPAD] = KC_KEYMAP(  
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
          ,    ,COLN ,    ,    ,    ,    ,          ,    , 7  , 8  , 9  ,ASTR,MINS,
          ,    ,COLN ,    ,    ,    ,    ,          ,    , 7  , 8  , 9  ,ASTR,MINS,
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
@@ -80,7 +80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   // \------------------+----+----+---/       \---+----+----+-------------------/
   // \------------------+----+----+---/       \---+----+----+-------------------/
   ),
   ),
 
 
-  [_SYMBOLS] = KEYMAP(  
+  [_SYMBOLS] = KC_KEYMAP(  
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
          ,EXLM, AT ,HASH,DLR ,PERC,    ,          ,CIRC,AMPR,ASTR,LPRN,RPRN,BSLS,
          ,EXLM, AT ,HASH,DLR ,PERC,    ,          ,CIRC,AMPR,ASTR,LPRN,RPRN,BSLS,
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
@@ -92,7 +92,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   // \------------------+----+----+---/       \---+----+----+-------------------/
   // \------------------+----+----+---/       \---+----+----+-------------------/
   ),
   ),
 
 
-  [_NAV] = KEYMAP(  
+  [_NAV] = KC_KEYMAP(  
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
          ,    ,    ,    ,    ,    ,    ,          ,    ,    , UP ,    ,PSCR,    ,
          ,    ,    ,    ,    ,    ,    ,          ,    ,    , UP ,    ,PSCR,    ,
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
@@ -104,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   // \------------------+----+----+---/       \---+----+----+-------------------/
   // \------------------+----+----+---/       \---+----+----+-------------------/
   ),
   ),
 
 
-  [_MACROS] = KEYMAP(  
+  [_MACROS] = KC_KEYMAP(  
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
          ,    ,    ,    ,    ,    ,    ,          ,    ,    ,INCL,    ,    ,    ,
          ,    ,    ,    ,    ,    ,    ,          ,    ,    ,INCL,    ,    ,    ,
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|

+ 8 - 8
keyboards/chimera_ortho/keymaps/gordon/keymap.c

@@ -206,7 +206,7 @@ qk_tap_dance_action_t tap_dance_actions[] = {
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
 
-  [_QWERTY] = KEYMAP(
+  [_QWERTY] = KC_KEYMAP(
   //,----+----+----+----+----+----+----.      ,----+----+----+----+----+----+----.
   //,----+----+----+----+----+----+----.      ,----+----+----+----+----+----+----.
      MESC, Q  ,CSHW,ENAV, R  , T  ,SPC ,       CLPS, Y  , U  ,INAV, O  , P  ,TTT,
      MESC, Q  ,CSHW,ENAV, R  , T  ,SPC ,       CLPS, Y  , U  ,INAV, O  , P  ,TTT,
   //|----+----+----+----+----+----+----|      |----+----+----+----+----+----+----|
   //|----+----+----+----+----+----+----|      |----+----+----+----+----+----+----|
@@ -218,7 +218,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   // \------------------+----+----+---/       \---+----+----+-------------------/
   // \------------------+----+----+---/       \---+----+----+-------------------/
   ),
   ),
 
 
-  [_NUMPAD] = KEYMAP(  
+  [_NUMPAD] = KC_KEYMAP(  
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
          ,    ,    ,    ,ASTR,    ,    ,          ,    , 7  , 8  , 9  ,ASTR,/**/,
          ,    ,    ,    ,ASTR,    ,    ,          ,    , 7  , 8  , 9  ,ASTR,/**/,
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
@@ -230,7 +230,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   // \------------------+----+----+---/       \---+----+----+-------------------/
   // \------------------+----+----+---/       \---+----+----+-------------------/
   ),
   ),
 
 
-  [_SYMBOLS] = KEYMAP(  
+  [_SYMBOLS] = KC_KEYMAP(  
   //,----+----+-----+----+----+----+----.     ,----+----+----+----+----+----+----.
   //,----+----+-----+----+----+----+----.     ,----+----+----+----+----+----+----.
          ,EXLM, AT  ,LCBR,RCBR,HASH,    ,          ,CIRC,AMPR,ASTR,LPRN,RPRN,/**/,
          ,EXLM, AT  ,LCBR,RCBR,HASH,    ,          ,CIRC,AMPR,ASTR,LPRN,RPRN,/**/,
   //|----+----+-----+----+----+----+----|     |----+----+----+----+----+----+----|
   //|----+----+-----+----+----+----+----|     |----+----+----+----+----+----+----|
@@ -242,7 +242,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   // \-------------------+----+----+---/       \---+----+----+-------------------/
   // \-------------------+----+----+---/       \---+----+----+-------------------/
   ),
   ),
 
 
-  [_FUNCTION] = KEYMAP(  
+  [_FUNCTION] = KC_KEYMAP(  
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
     F6F7 ,F1  ,F2  ,F3  ,ALF4,F5  ,F6  ,      F7  ,F8  ,F9  ,F10 ,F11 ,F12 ,/**/,
     F6F7 ,F1  ,F2  ,F3  ,ALF4,F5  ,F6  ,      F7  ,F8  ,F9  ,F10 ,F11 ,F12 ,/**/,
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
@@ -254,7 +254,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   // \------------------+----+----+---/       \---+----+----+-------------------/
   // \------------------+----+----+---/       \---+----+----+-------------------/
   ),
   ),
 
 
-  [_NAV] = KEYMAP(  
+  [_NAV] = KC_KEYMAP(  
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
       ,   ,SNAPLEFT,/**/,SNAPRIGHT,,  ,           ,    ,    , UP ,    ,    ,    ,
       ,   ,SNAPLEFT,/**/,SNAPRIGHT,,  ,           ,    ,    , UP ,    ,    ,    ,
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
@@ -266,7 +266,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   // \------------------+----+----+---/       \---+----+----+-------------------/
   // \------------------+----+----+---/       \---+----+----+-------------------/
   ),
   ),
 
 
-  [_TEXTNAV] = KEYMAP(  
+  [_TEXTNAV] = KC_KEYMAP(  
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
          ,   ,    ,    ,    ,    ,  ,             ,    ,    ,/**/,    ,    ,    ,
          ,   ,    ,    ,    ,    ,  ,             ,    ,    ,/**/,    ,    ,    ,
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
@@ -278,7 +278,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   // \------------------+----+----+---/       \---+----+----+-------------------/
   // \------------------+----+----+---/       \---+----+----+-------------------/
   ),
   ),
 
 
-   [_MOUSE] = KEYMAP(  
+   [_MOUSE] = KC_KEYMAP(  
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
          ,    ,    ,MS_UP,   ,   ,    ,      ,    ,    , UP ,    ,    ,    ,/**/
          ,    ,    ,MS_UP,   ,   ,    ,      ,    ,    , UP ,    ,    ,    ,/**/
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
@@ -291,7 +291,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   ), 
   ), 
 
 
 
 
-  [_MACROS] = KEYMAP(  
+  [_MACROS] = KC_KEYMAP(  
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
   //,----+----+----+----+----+----+----.     ,----+----+----+----+----+----+----.
     /**/,RESET,SECRET_2,SECRET_3,   ,   ,   ,SYSTEM_SLEEP,    ,    ,INCL,    ,    ,    ,
     /**/,RESET,SECRET_2,SECRET_3,   ,   ,   ,SYSTEM_SLEEP,    ,    ,INCL,    ,    ,    ,
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|
   //|----+----+----+----+----+----+----|     |----+----+----+----+----+----+----|

+ 1 - 4
keyboards/deltasplit75/split_util.h

@@ -2,11 +2,8 @@
 #define SPLIT_KEYBOARD_UTIL_H
 #define SPLIT_KEYBOARD_UTIL_H
 
 
 #include <stdbool.h>
 #include <stdbool.h>
+#include "eeconfig.h"
 
 
-#ifdef EE_HANDS
-	#define EECONFIG_BOOTMAGIC_END      (uint8_t *)10
-	#define EECONFIG_HANDEDNESS         EECONFIG_BOOTMAGIC_END
-#endif
 
 
 #define SLAVE_I2C_ADDRESS           0x32
 #define SLAVE_I2C_ADDRESS           0x32
 
 

+ 14 - 0
keyboards/dilly/README.md

@@ -0,0 +1,14 @@
+Dilly
+=====
+
+A 3x10 ortholinear keyboard using Kailh PG1350 Lower Profile Choc switches.
+
+Keyboard Maintainer: Keebio  
+Hardware Supported: Dilly PCB, Arduino Pro Micro  
+Hardware Availability: [Keebio](https://keeb.io)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make dilly: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.

+ 62 - 0
keyboards/dilly/config.h

@@ -0,0 +1,62 @@
+#ifndef CONFIG_H
+#define CONFIG_H
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID       0xCB10
+#define PRODUCT_ID      0x113a
+#define DEVICE_VER      0x0100
+#define MANUFACTURER    Keebio
+#define PRODUCT         Dilly
+#define DESCRIPTION     30 percent ortholinear keyboard
+
+/* key matrix size */
+#define MATRIX_ROWS 6
+#define MATRIX_COLS 5
+
+/* key matrix pins */
+#define MATRIX_ROW_PINS { D7, E6, B4, B1, B3, B2 }
+#define MATRIX_COL_PINS { D2, D4, C6, F6, F5 }
+#define UNUSED_PINS
+
+/* COL2ROW or ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+/* number of backlight levels */
+#define BACKLIGHT_PIN B5
+#ifdef BACKLIGHT_PIN
+#define BACKLIGHT_LEVELS 3
+#endif
+
+/* Set 0 if debouncing isn't needed */
+#define DEBOUNCING_DELAY 5
+
+/* 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
+
+/* key combination for command */
+#define IS_COMMAND() ( \
+    keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
+)
+
+/* prevent stuck modifiers */
+#define PREVENT_STUCK_MODIFIERS
+
+
+#ifdef RGB_DI_PIN
+#define RGBLIGHT_ANIMATIONS
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+#endif
+#define RGB_DI_PIN D3
+#define RGBLIGHT_TIMER
+#define RGBLED_NUM 10
+#define ws2812_PORTREG  PORTD
+#define ws2812_DDRREG   DDRD
+
+#endif

+ 1 - 0
keyboards/dilly/dilly.c

@@ -0,0 +1 @@
+#include "dilly.h"

+ 31 - 0
keyboards/dilly/dilly.h

@@ -0,0 +1,31 @@
+#ifndef DILLY_H
+#define DILLY_H
+
+#include "quantum.h"
+
+#define KEYMAP( \
+    A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, \
+    B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, \
+    C1, C2, C3, C4, C5, C6, C7, C8, C9, C10 \
+) { \
+    { A1, A2, A3, A4, A5 }, \
+    { B1, B2, B3, B4, B5 }, \
+    { C1, C2, C3, C4, C5 }, \
+    { A10, A9, A8, A7, A6 }, \
+    { B10, B9, B8, B7, B6 }, \
+    { C10, C9, C8, C7, C6 } \
+}
+
+// Used to create a keymap using only KC_ prefixed keys
+#define KC_KEYMAP( \
+    A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, \
+    B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, \
+    C1, C2, C3, C4, C5, C6, C7, C8, C9, C10 \
+) \
+    KEYMAP( \
+        KC_##A1, KC_##A2, KC_##A3, KC_##A4, KC_##A5, KC_##A6, KC_##A7, KC_##A8, KC_##A9, KC_##A10, \
+        KC_##B1, KC_##B2, KC_##B3, KC_##B4, KC_##B5, KC_##B6, KC_##B7, KC_##B8, KC_##B9, KC_##B10, \
+        KC_##C1, KC_##C2, KC_##C3, KC_##C4, KC_##C5, KC_##C6, KC_##C7, KC_##C8, KC_##C9, KC_##C10 \
+    )
+
+#endif

+ 6 - 0
keyboards/dilly/keymaps/default/config.h

@@ -0,0 +1,6 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+#endif

+ 107 - 0
keyboards/dilly/keymaps/default/keymap.c

@@ -0,0 +1,107 @@
+#include "dilly.h"
+#include "action_layer.h"
+
+extern keymap_config_t keymap_config;
+
+#define _BASE 0
+#define _FN1 1
+#define _FN2 2
+#define _FN3 3
+#define _FN4 4
+#define _FN5 5
+
+#define KC_ KC_TRNS
+#define _______ KC_TRNS
+
+// Tap-Hold keys
+#define KC_ASFT MT(MOD_LSFT, KC_A)
+#define KC_F_L3 LT(_FN3, KC_F)
+#define KC_ZCTL MT(MOD_LCTL, KC_Z)
+#define KC_XALT MT(MOD_LALT, KC_X)
+#define KC_CGUI MT(MOD_LGUI, KC_C)
+#define KC_V_L4 LT(_FN4, KC_V)
+#define KC_SPL2 LT(_FN2, KC_SPC)
+#define KC_B_L1 LT(_FN1, KC_B)
+#define KC_N_L5 LT(_FN5, KC_N)
+#define KC_MALT MT(MOD_RALT, KC_M)
+#define KC_BSCT MT(MOD_RCTL, KC_BSPC)
+#define KC_ENTS MT(MOD_RSFT, KC_ENT)
+#define KC_ESCS MT(MOD_RSFT, KC_ESC)
+
+#define KC_GUIC LGUI(KC_C)
+
+#define KC_RST RESET
+#define KC_BL_S BL_STEP
+#define KC_DBUG DEBUG
+#define KC_RTOG RGB_TOG
+#define KC_RMOD RGB_MOD
+#define KC_RHUI RGB_HUI
+#define KC_RHUD RGB_HUD
+#define KC_RSAI RGB_SAI
+#define KC_RSAD RGB_SAD
+#define KC_RVAI RGB_VAI
+#define KC_RVAD RGB_VAD
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+  [_BASE] = KC_KEYMAP(
+  //,----+----+----+----+----+----+----+----+----+----.
+      Q  , W  , E  , R  , T  , Y  , U  , I  , O  , P  ,
+  //|----+----+----+----+----+----+----+----+----+----|
+     ASFT, S  , D  ,F_L3, G  , H  , J  , K  , L  ,ESCS,
+  //|----+----+----+----+----+----+----+----+----+----|
+     ZCTL,XALT,CGUI,V_L4,SPL2,B_L1,N_L5,MALT,BSCT,ENTS
+  //`----+----+----+----+----+----+----+----+----+----'
+  ),
+
+  [_FN1] = KC_KEYMAP(
+  //,----+----+----+----+----+----+----+----+----+----.
+      1  , 2  , 3  , 4  , 5  , 6  , 7  , 8  , 9  , 0  ,
+  //|----+----+----+----+----+----+----+----+----+----|
+      F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,
+  //|----+----+----+----+----+----+----+----+----+----|
+         ,    ,    ,    ,BSPC,    ,    ,    ,    ,    
+  //`----+----+----+----+----+----+----+----+----+----'
+  ),
+
+  [_FN2] = KC_KEYMAP(
+  //,----+----+----+----+----+----+----+----+----+----.
+     EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN,
+  //|----+----+----+----+----+----+----+----+----+----|
+     F11 ,F12 ,    ,    ,    ,    ,    ,    ,    ,GRV ,
+  //|----+----+----+----+----+----+----+----+----+----|
+         ,    ,    ,    ,    ,DEL ,    ,    ,    ,    
+  //`----+----+----+----+----+----+----+----+----+----'
+  ),
+
+  [_FN3] = KC_KEYMAP(
+  //,----+----+----+----+----+----+----+----+----+----.
+         ,    ,    ,    ,    ,MINS,EQL ,LBRC,RBRC,BSLS,
+  //|----+----+----+----+----+----+----+----+----+----|
+     TAB ,    ,    ,    ,    ,COMM,DOT ,SLSH,SCLN,QUOT,
+  //|----+----+----+----+----+----+----+----+----+----|
+         ,    ,    ,    ,BSPC,    ,LEFT,DOWN, UP ,RGHT
+  //`----+----+----+----+----+----+----+----+----+----'
+  ),
+
+  [_FN4] = KC_KEYMAP(
+  //,----+----+----+----+----+----+----+----+----+----.
+         ,    ,    ,    ,    ,UNDS,PLUS,LCBR,RCBR,PIPE,
+  //|----+----+----+----+----+----+----+----+----+----|
+     TAB ,    ,    ,    ,    , LT , GT ,QUES,COLN,DQUO,
+  //|----+----+----+----+----+----+----+----+----+----|
+         ,    ,GUIC,    ,BSPC,    ,HOME,PGDN,PGUP,END 
+  //`----+----+----+----+----+----+----+----+----+----'
+  ),
+
+  [_FN5] = KC_KEYMAP(
+  //,----+----+----+----+----+----+----+----+----+----.
+     RTOG,RMOD,    ,RST ,RHUI,RSAI,RVAI,    ,    ,    ,
+  //|----+----+----+----+----+----+----+----+----+----|
+         ,    ,DBUG,    ,RHUD,RSAD,RVAD,    ,    ,    ,
+  //|----+----+----+----+----+----+----+----+----+----|
+     BL_S,    ,GUIC,    ,    ,    ,    ,    ,    ,    
+  //`----+----+----+----+----+----+----+----+----+----'
+  )
+
+};

+ 1 - 0
keyboards/dilly/keymaps/default/rules.mk

@@ -0,0 +1 @@
+RGBLIGHT_ENABLE = yes

+ 56 - 0
keyboards/dilly/rules.mk

@@ -0,0 +1,56 @@
+# 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
+
+
+# Build Options
+#   comment out to disable the options.
+#
+BOOTMAGIC_ENABLE = yes	# 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
+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

+ 1 - 5
keyboards/helix/rev1/split_util.h

@@ -2,11 +2,7 @@
 #define SPLIT_KEYBOARD_UTIL_H
 #define SPLIT_KEYBOARD_UTIL_H
 
 
 #include <stdbool.h>
 #include <stdbool.h>
-
-#ifdef EE_HANDS
-	#define EECONFIG_BOOTMAGIC_END      (uint8_t *)10
-	#define EECONFIG_HANDEDNESS         EECONFIG_BOOTMAGIC_END
-#endif
+#include "eeconfig.h"
 
 
 #define SLAVE_I2C_ADDRESS           0x32
 #define SLAVE_I2C_ADDRESS           0x32
 
 

+ 1 - 5
keyboards/helix/rev2/split_util.h

@@ -2,11 +2,7 @@
 #define SPLIT_KEYBOARD_UTIL_H
 #define SPLIT_KEYBOARD_UTIL_H
 
 
 #include <stdbool.h>
 #include <stdbool.h>
-
-#ifdef EE_HANDS
-	#define EECONFIG_BOOTMAGIC_END      (uint8_t *)10
-	#define EECONFIG_HANDEDNESS         EECONFIG_BOOTMAGIC_END
-#endif
+#include "eeconfig.h"
 
 
 #define SLAVE_I2C_ADDRESS           0x32
 #define SLAVE_I2C_ADDRESS           0x32
 
 

+ 16 - 0
keyboards/iris/info.json

@@ -0,0 +1,16 @@
+{
+    "keyboard_name": "Iris", 
+    "manufacturer": "Keebio", 
+    "identifier": "0x1256", 
+    "url": "Keeb.io", 
+    "maintainer": "qmk", 
+    "processor": "atmega32u4", 
+    "bootloader": "", 
+    "width": 14.5, 
+    "height": 5, 
+    "layouts": {
+        "KEYMAP": {
+            "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":10.5, "y":0}, {"x":11.5, "y":0}, {"x":12.5, "y":0}, {"x":13.5, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":8.5, "y":2}, {"x":9.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7.5, "y":3}, {"x":8.5, "y":3}, {"x":9.5, "y":3}, {"x":10.5, "y":3}, {"x":11.5, "y":3}, {"x":12.5, "y":3}, {"x":13.5, "y":3}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":7.5, "y":4}, {"x":8.5, "y":4}, {"x":9.5, "y":4}]
+        }
+    }
+}

+ 43 - 0
keyboards/iris/keymaps/yanfali/config.h

@@ -0,0 +1,43 @@
+/*
+Copyright 2017 Danny Nguyen <danny@hexwire.com>
+
+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 <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "config_common.h"
+
+/* Use I2C or Serial, not both */
+
+#define USE_SERIAL
+// #define USE_I2C
+
+/* Select hand configuration */
+
+#define MASTER_LEFT
+// #define MASTER_RIGHT
+// #define EE_HANDS
+
+#define TAPPING_TERM 150
+
+#undef RGBLED_NUM
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 12
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+
+#endif

+ 145 - 0
keyboards/iris/keymaps/yanfali/keymap.c

@@ -0,0 +1,145 @@
+#include "iris.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+#define _QWERTY 0
+#define _LOWER 1
+#define _RAISE 2
+#define _ADJUST 16
+
+enum custom_keycodes {
+  QWERTY = SAFE_RANGE,
+  LOWER,
+  RAISE,
+  ADJUST,
+};
+
+#define KC_ KC_TRNS
+#define _______ KC_TRNS
+
+#define KC_CAPW LGUI(LSFT(KC_3))        // Capture whole screen
+#define KC_CPYW LGUI(LSFT(LCTL(KC_3)))  // Copy whole screen
+#define KC_CAPP LGUI(LSFT(KC_4))        // Capture portion of screen
+#define KC_CPYP LGUI(LSFT(LCTL(KC_4)))  // Copy portion of screen
+#define KC_ESCC MT(MOD_LCTL, KC_ESC)    // Control (hold), Escape (tap)
+#define KC_BACK LGUI(KC_LEFT)           // Browser Back
+#define KC_FORW LGUI(KC_RIGHT)          // Browser Forward
+#define KC_LOWR LOWER
+#define KC_RASE RAISE
+#define KC_RST RESET
+#define KC_BL_S BL_STEP
+#define KC_ENTS MT(MOD_LSFT, KC_ENT)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+  [_QWERTY] = KC_KEYMAP(
+  //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
+     GRV , 1  , 2  , 3  , 4  , 5  ,                6  , 7  , 8  , 9  , 0  ,MINS,
+  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
+     TAB , Q  , W  , E  , R  , T  ,                Y  , U  , I  , O  , P  ,PLUS,
+  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
+     ESCC, A  , S  , D  , F  , G  ,                H  , J  , K  , L  ,SCLN,QUOT,
+  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
+     LSFT, Z  , X  , C  , V  , B  ,SPC ,     LALT, N  , M  ,COMM,DOT ,SLSH,DEL ,
+  //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
+                       LGUI,LOWR,SPC ,         BSPC,ENTS,RASE
+  //                  `----+----+----'        `----+----+----'
+  ),
+
+  [_LOWER] = KC_KEYMAP(
+  //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
+     TILD,EXLM, AT ,HASH,DLR ,PERC,               CIRC,AMPR,ASTR,LPRN,RPRN,BSPC,
+  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
+     RST , 1  , 2  , 3  , 4  , 5  ,                6  , 7  , 8  , 9  , 0  ,    ,
+  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
+     DEL ,CAPP,LEFT,RGHT, UP ,LBRC,               RBRC, P4 , P5 , P6 ,PLUS,PIPE,
+  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
+     BL_S,CPYP,    ,    ,DOWN,LCBR,LPRN,     RPRN,RCBR, P1 , P2 , P3 ,MINS,    ,
+  //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
+                           ,    ,DEL ,         DEL ,    , P0
+  //                  `----+----+----'        `----+----+----'
+  ),
+
+  [_RAISE] = KC_KEYMAP(
+  //,----+----+----+----+----+----.              ,----+----+----+----+----+----.
+     F12 , F1 , F2 , F3 , F4 , F5 ,                F6 , F7 , F8 , F9 ,F10 ,F11 ,
+  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
+         ,EXLM, AT ,HASH,DLR ,PERC,               CIRC,AMPR,ASTR,LPRN,RPRN,    ,
+  //|----+----+----+----+----+----|              |----+----+----+----+----+----|
+     DEL ,MPRV,BACK,FORW,PGUP,UNDS,               EQL ,HOME,    ,    ,    ,BSLS,
+  //|----+----+----+----+----+----+----.    ,----|----+----+----+----+----+----|
+     MUTE,MSTP,MPLY,VOLD,PGDN,MINS,    ,         ,PLUS,END ,    ,    ,    ,    ,
+  //`----+----+----+--+-+----+----+----/    \----+----+----+----+----+----+----'
+                           ,    ,    ,             ,    ,
+  //                  `----+----+----'        `----+----+----'
+  ),
+
+  [_ADJUST] = KEYMAP(
+  //,--------+--------+--------+--------+--------+--------.                          ,--------+--------+--------+--------+--------+--------.
+      _______, _______, _______, _______, _______, _______,                            _______, _______, _______, _______, _______, _______,
+  //|--------+--------+--------+--------+--------+--------|                          |--------+--------+--------+--------+--------+--------|
+      RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______,                            _______, _______, _______, _______, _______, _______,
+  //|--------+--------+--------+--------+--------+--------|                          |--------+--------+--------+--------+--------+--------|
+      RESET  , DEBUG  , RGB_HUD, RGB_SAD, RGB_VAD, _______,                            _______, _______, _______, _______, _______, _______,
+  //|--------+--------+--------+--------+--------+--------+--------.        ,--------|--------+--------+--------+--------+--------+--------|
+      _______, _______, _______, _______, _______, _______, _______,          _______, _______, _______, _______, _______, _______, _______,
+  //`--------+--------+--------+----+---+--------+--------+--------/        \--------+--------+--------+---+----+--------+--------+--------'
+                                      _______, _______, _______,                  _______, _______, _______
+  //                                `--------+--------+--------'                `--------+--------+--------'
+  )
+
+};
+
+#ifdef AUDIO_ENABLE
+float tone_qwerty[][2]     = SONG(QWERTY_SOUND);
+#endif
+
+void persistent_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_SONG(tone_qwerty);
+        #endif
+        persistent_default_layer_set(1UL<<_QWERTY);
+      }
+      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 ADJUST:
+      if (record->event.pressed) {
+        layer_on(_ADJUST);
+      } else {
+        layer_off(_ADJUST);
+      }
+      return false;
+      break;
+  }
+  return true;
+}

+ 17 - 0
keyboards/iris/keymaps/yanfali/readme.md

@@ -0,0 +1,17 @@
+## u/yanfali keymap for Iris
+
+Based heavily off Hexwire's configuration. Differs in following ways:
+
+ 1. Moved LALT to LCTL; I don't need CTL because of ESCC.
+ 1. Moved RAISE to old LALT.
+ 1. Moved ENTER to old RAISE.
+ 1. Move QUOTE to old ENTER.
+ 1. Moved PLUS to old QUOTE.
+ 1. replaced music next and volume up with browser forward and back
+    through history
+
+This configuration lets me use my thumbs for enter and backspace.
+It turns out I need `+` a lot for programming so I moved it logically
+below `-`.  I also added a couple of web specific short cuts for
+navigating previous and next in web history on OSX Chrome.
+

+ 1 - 0
keyboards/levinson/keymaps/hexwire/rules.mk → keyboards/iris/keymaps/yanfali/rules.mk

@@ -1,4 +1,5 @@
 RGBLIGHT_ENABLE = yes
 RGBLIGHT_ENABLE = yes
+BACKLIGHT_ENABLE = yes
 
 
 ifndef QUANTUM_DIR
 ifndef QUANTUM_DIR
 	include ../../../../Makefile
 	include ../../../../Makefile

+ 3 - 2
keyboards/jc65/readme.md

@@ -1,7 +1,8 @@
 JC65
 JC65
 ===
 ===
 
 
-![JC65](https://imgur.com/a/C2oa5)
+![JC65 with 32u4](https://i.imgur.com/I4hCyBI.jpg)
+![JC65 with 32a](https://i.imgur.com/9cJ9UbX.jpg)
 
 
 The JC65 PCB actually has two revisions: A QMK native version, and a PS2AVRGB version. Jchan offered both PCBs as options during the M65-A Round 1 group buy and are now currently available on [keyclack.com](https://keyclack.com/)
 The JC65 PCB actually has two revisions: A QMK native version, and a PS2AVRGB version. Jchan offered both PCBs as options during the M65-A Round 1 group buy and are now currently available on [keyclack.com](https://keyclack.com/)
 
 
@@ -11,4 +12,4 @@ Make example native QMK version (after setting up your build environment):
 
 
 Make example ps2avrGB version (after setting up your build environment):
 Make example ps2avrGB version (after setting up your build environment):
 
 
-    make jc65/v32a:default
+    make jc65/v32a:default

+ 26 - 23
keyboards/jc65/v32a/keymaps/naut/keymap.c

@@ -9,11 +9,14 @@
 // Define Macros
 // Define Macros
 #define M_PRTS  M(0)
 #define M_PRTS  M(0)
 #define M_PRTA  M(1)
 #define M_PRTA  M(1)
-#define M_MSSN  M(2)
-#define M_APPS  M(3)
-#define M_SPOT  M(4)
-#define M_LEFT  M(5)
-#define M_RGHT  M(6)
+#define M_PRTSC M(2)
+#define M_PRTAC M(3)
+#define M_MSSN  M(4)
+#define M_APPS  M(5)
+#define M_SPOT  M(6)
+#define M_LEFT  M(7)
+#define M_RGHT  M(8)
+#define RGB_WHT M(9)
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     // Base Layer
     // Base Layer
@@ -35,15 +38,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     // Mac Layer
     // Mac Layer
     [_MAC] = KEYMAP(
     [_MAC] = KEYMAP(
           TO(0), KC_F14, KC_F15, M_APPS, M_MSSN, KC_F11, KC_F12,KC_MRWD,KC_MPLY,KC_MFFD,KC_MUTE,KC_VOLD,KC_VOLU,KC_EJCT,  KC_NO,  KC_NO,
           TO(0), KC_F14, KC_F15, M_APPS, M_MSSN, KC_F11, KC_F12,KC_MRWD,KC_MPLY,KC_MFFD,KC_MUTE,KC_VOLD,KC_VOLU,KC_EJCT,  KC_NO,  KC_NO,
-        KC_TRNS, M_PRTS, M_PRTA,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,        KC_TRNS,KC_TRNS,
-        KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,        KC_TRNS,KC_TRNS,
-        KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,          TO(0), M_MSSN,KC_TRNS,
-        KC_TRNS,KC_TRNS,KC_TRNS,         M_SPOT, M_SPOT, M_SPOT,                        KC_TRNS,KC_TRNS,KC_TRNS, M_LEFT, M_APPS, M_RGHT
+          KC_NO, M_PRTS, M_PRTA,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,        KC_BSPC,  KC_NO,
+          KC_NO,M_PRTSC,M_PRTAC,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,         KC_ENT,  KC_NO,
+          KC_NO,  KC_NO,  KC_NO,   KC_X,   KC_C,   KC_V,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,          TO(0), M_MSSN,  KC_NO,
+          KC_NO,  KC_NO,KC_LGUI,         M_SPOT, M_SPOT, M_SPOT,                        KC_RGUI,  KC_NO,  KC_NO, M_LEFT, M_APPS, M_RGHT
     ),
     ),
     // RGB and BL Layer
     // RGB and BL Layer
     [_RGB] = KEYMAP(
     [_RGB] = KEYMAP(
           TO(0),  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,  TO(0),
           TO(0),  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,  TO(0),
-          KC_NO,RGB_HUD,RGB_HUI,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,          KC_NO,BL_TOGG,
+          KC_NO,RGB_HUD,RGB_HUI,RGB_WHT,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,          KC_NO,BL_TOGG,
           KC_NO,RGB_SAD,RGB_SAI,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,          KC_NO,RGB_TOG,
           KC_NO,RGB_SAD,RGB_SAI,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,          KC_NO,RGB_TOG,
           KC_NO,  KC_NO,RGB_VAD,RGB_VAI,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,RGB_MOD,RGB_RMOD,         KC_NO,RGB_M_P,RGB_M_R,
           KC_NO,  KC_NO,RGB_VAD,RGB_VAI,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,RGB_MOD,RGB_RMOD,         KC_NO,RGB_M_P,RGB_M_R,
           KC_NO,  KC_NO,  KC_NO,          KC_NO,  KC_NO,  KC_NO,                          KC_NO,  KC_NO,  KC_NO,  KC_NO,RGB_M_G,RGB_M_SW
           KC_NO,  KC_NO,  KC_NO,          KC_NO,  KC_NO,  KC_NO,                          KC_NO,  KC_NO,  KC_NO,  KC_NO,RGB_M_G,RGB_M_SW
@@ -55,25 +58,25 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
     if (record->event.pressed) {
     if (record->event.pressed) {
         switch(id) {
         switch(id) {
             case 0:
             case 0:
-                return MACRO(D(LGUI), D(LSFT), T(3), U(LSFT), U(LGUI), END); //Mac print screen
-                break;
+                return MACRO(D(LGUI), D(LSFT), T(3), U(LSFT), U(LGUI), END);                   // Mac print screen
             case 1:
             case 1:
-                return MACRO(D(LGUI), D(LSFT), T(4), U(LSFT), U(LGUI), END); //Mac print area
-                break;
+                return MACRO(D(LGUI), D(LSFT), T(4), U(LSFT), U(LGUI), END);                   // Mac print area
             case 2:
             case 2:
-                return MACRO(D(LCTL), T(UP), U(LCTL), END);                  //Mac mission control
-                break;
+                return MACRO(D(LCTL), D(LSFT), D(LGUI), T(3), D(LCTL), D(LSFT), D(LGUI), END); // Mac print screen to clipboard
             case 3:
             case 3:
-                return MACRO(D(LCTL), T(DOWN), U(LCTL), END);                //Mac applications
-                break;
+                return MACRO(D(LCTL), D(LSFT), D(LGUI), T(4), D(LCTL), D(LSFT), D(LGUI), END); // Mac print area to clipboard
             case 4:
             case 4:
-                return MACRO(D(LGUI), T(SPC), U(LGUI), END);                 //Mac spotlight search
-                break;
+                return MACRO(D(LCTL), T(UP), U(LCTL), END);                                    // Mac mission control
             case 5:
             case 5:
-                return MACRO(D(LCTL), T(LEFT), U(LCTL), END);                //Mac mission left
-                break;
+                return MACRO(D(LCTL), T(DOWN), U(LCTL), END);                                  // Mac app windows
             case 6:
             case 6:
-                return MACRO(D(LGUI), T(RGHT), U(LGUI), END);                //Mac mission right
+                return MACRO(D(LGUI), T(SPC), U(LGUI), END);                                   // Mac spotlight search
+            case 7:
+                return MACRO(D(LCTL), T(LEFT), U(LCTL), END);                                  // Mac mission left
+            case 8:
+                return MACRO(D(LCTL), T(RGHT), U(LCTL), END);                                  // Mac mission right
+            case 9:
+                rgblight_setrgb(0xff, 0xff, 0xff);                                             // White rgb shortcut
                 break;
                 break;
         }
         }
     }
     }

+ 2 - 0
keyboards/jc65/v32a/readme.md

@@ -1,6 +1,8 @@
 JC65 ps2avrGB
 JC65 ps2avrGB
 =======
 =======
 
 
+![JC65](https://i.imgur.com/9cJ9UbX.jpg)
+
 A 65% keyboard with RGB
 A 65% keyboard with RGB
 
 
 Keyboard Maintainer: [Jason Barnachea](https://github.com/nautxx)
 Keyboard Maintainer: [Jason Barnachea](https://github.com/nautxx)

+ 93 - 0
keyboards/jc65/v32u4/keymaps/naut/keymap.c

@@ -0,0 +1,93 @@
+#include "v32u4.h"
+
+// Define Layers
+#define _BASE 0
+#define _FNX  1
+#define _MAC  2
+#define _RGB  3
+#define _OFF  4
+
+// Define Macros
+#define M_PRTS  M(0)
+#define M_PRTA  M(1)
+#define M_PRTSC M(2)
+#define M_PRTAC M(3)
+#define M_MSSN  M(4)
+#define M_APPS  M(5)
+#define M_SPOT  M(6)
+#define M_LEFT  M(7)
+#define M_RGHT  M(8)
+#define RGB_WHT M(9)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+    // Base Layer
+    [_BASE] = KEYMAP(
+         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_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_LSFT,  KC_NO,   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,
+          MO(1),KC_LALT,KC_LGUI,         KC_SPC, KC_SPC, KC_SPC,                        KC_RGUI,  KC_NO,KC_RALT,KC_LEFT,KC_DOWN,KC_RGHT
+    ),
+    // Fn Layer
+    [_FNX] = KEYMAP(
+        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_TRNS,  TG(4),  TG(3),
+        KC_CAPS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,        KC_TRNS,KC_TRNS,
+        KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,                KC_TRNS,KC_TRNS,
+        KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,          TG(2),KC_VOLU,KC_MPLY,
+        KC_TRNS,KC_TRNS,KC_TRNS,        KC_TRNS,KC_TRNS,KC_TRNS,                        KC_TRNS,KC_TRNS,KC_TRNS,KC_MRWD,KC_VOLD,KC_MFFD
+    ),
+    // Mac Layer
+    [_MAC] = KEYMAP(
+          TO(0), KC_F14, KC_F15, M_APPS, M_MSSN, KC_F11, KC_F12,KC_MRWD,KC_MPLY,KC_MFFD,KC_MUTE,KC_VOLD,KC_VOLU,KC_EJCT,  KC_NO,  KC_NO,
+          KC_NO, M_PRTS, M_PRTA,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,        KC_BSPC,  KC_NO,
+          KC_NO,M_PRTSC,M_PRTAC,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,                 KC_ENT,  KC_NO,
+          KC_NO,  KC_NO,  KC_NO,   KC_X,   KC_C,   KC_V,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,          TO(0), M_MSSN,  KC_NO,
+          KC_NO,  KC_NO,KC_LGUI,         M_SPOT, M_SPOT, M_SPOT,                        KC_RGUI,  KC_NO,  KC_NO, M_LEFT, M_APPS, M_RGHT
+    ),
+    // RGB and BL Layer
+    [_RGB] = KEYMAP(
+          TO(0),  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,  TO(0),
+          KC_NO,RGB_HUD,RGB_HUI,RGB_WHT,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,          KC_NO,BL_TOGG,
+          KC_NO,RGB_SAD,RGB_SAI,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,                  KC_NO,RGB_TOG,
+          KC_NO,  KC_NO,RGB_VAD,RGB_VAI, BL_DEC, BL_INC,  KC_NO,  KC_NO,  KC_NO,  KC_NO,RGB_MOD,RGB_RMOD,         KC_NO,RGB_M_P,RGB_M_R,
+          KC_NO,  KC_NO,  KC_NO,          KC_NO,  KC_NO,  KC_NO,                          KC_NO,  KC_NO,  KC_NO,  KC_NO,RGB_M_G,RGB_M_SW
+    ),
+    // Mash Layer
+    [_OFF] = KEYMAP(
+          TO(0),  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_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,
+          RESET,  KC_NO,  KC_NO,          KC_NO,  KC_NO,  KC_NO,                          KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO
+    ),
+};
+
+// The Macros
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
+    if (record->event.pressed) {
+        switch(id) {
+            case 0:
+                return MACRO(D(LGUI), D(LSFT), T(3), U(LSFT), U(LGUI), END);                   // Mac print screen
+            case 1:
+                return MACRO(D(LGUI), D(LSFT), T(4), U(LSFT), U(LGUI), END);                   // Mac print area
+            case 2:
+                return MACRO(D(LCTL), D(LSFT), D(LGUI), T(3), D(LCTL), D(LSFT), D(LGUI), END); // Mac print screen to clipboard
+            case 3:
+                return MACRO(D(LCTL), D(LSFT), D(LGUI), T(4), D(LCTL), D(LSFT), D(LGUI), END); // Mac print area to clipboard
+            case 4:
+                return MACRO(D(LCTL), T(UP), U(LCTL), END);                                    // Mac mission control
+            case 5:
+                return MACRO(D(LCTL), T(DOWN), U(LCTL), END);                                  // Mac app windows
+            case 6:
+                return MACRO(D(LGUI), T(SPC), U(LGUI), END);                                   // Mac spotlight search
+            case 7:
+                return MACRO(D(LCTL), T(LEFT), U(LCTL), END);                                  // Mac mission left
+            case 8:
+                return MACRO(D(LCTL), T(RGHT), U(LCTL), END);                                  // Mac mission right
+            case 9:
+                rgblight_setrgb(0xff, 0xff, 0xff);                                             // White rgb shortcut
+                break;
+        }
+    }
+    return MACRO_NONE;
+};

+ 18 - 0
keyboards/jc65/v32u4/keymaps/naut/readme.md

@@ -0,0 +1,18 @@
+Naut's Keymap
+=======
+ 
+Layer 1: HHKB Split backspace, 6.25u space, control on caps, Fn on L-Ctl.
+
+Layer 2: F Row on numrow, caps on tab, media shortcuts on arrows
+
+Layer 3: Mac Media buttons on numrow
+
+Layer 4: RGB control
+
+Layer 5: Keyboard off (for mashing purposes and reset)
+
+Keymap Maintainer: [Jason Barnachea](https://github.com/nautxx)
+
+Difference from base layout: HHKBish layout. HHKB Fn layer. Mac media layer. RGB control layer. Button mashing layer.
+
+Intended usage: Daily driver for keyboard peacocking. 

+ 2 - 0
keyboards/jc65/v32u4/keymaps/naut/rules.mk

@@ -0,0 +1,2 @@
+RGBLIGHT_ENABLE = yes
+BACKLIGHT_ENABLE = yes

+ 1 - 1
keyboards/jc65/v32u4/readme.md

@@ -1,7 +1,7 @@
 JC65
 JC65
 ===
 ===
 
 
-![JC65](https://imgur.com/a/C2oa5)
+![JC65](https://i.imgur.com/I4hCyBI.jpg)
 
 
 The JC65 PCB actually has two revisions: A QMK native version, and a PS2AVRGB version. Jchan offered both PCBs as options during the M65-A Round 1 group buy, and were also available choices for the 65% acrylic case group buy. In the near future both PCB versions should be available from keyclack.com when the storefront part opens.
 The JC65 PCB actually has two revisions: A QMK native version, and a PS2AVRGB version. Jchan offered both PCBs as options during the M65-A Round 1 group buy, and were also available choices for the 65% acrylic case group buy. In the near future both PCB versions should be available from keyclack.com when the storefront part opens.
 
 

+ 5 - 5
keyboards/lets_split/keymaps/default/keymap.c

@@ -45,7 +45,7 @@ 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_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_QUOT, \
   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_ENT , \
   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_LCTRL,KC_LGUI,  KC_LALT, ADJUST,  LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT \
+  KC_LCTRL,KC_LGUI, KC_LALT, ADJUST,  LOWER,   KC_SPC,  KC_SPC,  RAISE,   KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT \
 ),
 ),
 
 
 /* Colemak
 /* Colemak
@@ -88,9 +88,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * ,-----------------------------------------------------------------------------------.
  * ,-----------------------------------------------------------------------------------.
  * |   ~  |   !  |   @  |   #  |   $  |   %  |   ^  |   &  |   *  |   (  |   )  | Del  |
  * |   ~  |   !  |   @  |   #  |   $  |   %  |   ^  |   &  |   *  |   (  |   )  | Del  |
  * |------+------+------+------+------+-------------+------+------+------+------+------|
  * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del  |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |   _  |   +  |      |   \  |  |   |
+ * | Del  |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |   _  |   +  |   {  |   }  |  |   |
  * |------+------+------+------+------+------|------+------+------+------+------+------|
  * |------+------+------+------+------+------|------+------+------+------+------+------|
- * |      |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |ISO ~ |ISO | |      |      |Enter |
+ * |      |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |ISO ~ |ISO | |      |      |      |
  * |------+------+------+------+------+------+------+------+------+------+------+------|
  * |------+------+------+------+------+------+------+------+------+------+------+------|
  * |      |      |      |      |      |             |      | Next | Vol- | Vol+ | Play |
  * |      |      |      |      |      |             |      | Next | Vol- | Vol+ | Play |
  * `-----------------------------------------------------------------------------------'
  * `-----------------------------------------------------------------------------------'
@@ -108,7 +108,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |------+------+------+------+------+-------------+------+------+------+------+------|
  * |------+------+------+------+------+-------------+------+------+------+------+------|
  * | Del  |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |   -  |   =  |   [  |   ]  |  \   |
  * | Del  |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |   -  |   =  |   [  |   ]  |  \   |
  * |------+------+------+------+------+------|------+------+------+------+------+------|
  * |------+------+------+------+------+------|------+------+------+------+------+------|
- * |      |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |ISO # |ISO / |      |      |Enter |
+ * |      |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |ISO # |ISO / |      |      |      |
  * |------+------+------+------+------+------+------+------+------+------+------+------|
  * |------+------+------+------+------+------+------+------+------+------+------+------|
  * |      |      |      |      |      |             |      | Next | Vol- | Vol+ | Play |
  * |      |      |      |      |      |             |      | Next | Vol- | Vol+ | Play |
  * `-----------------------------------------------------------------------------------'
  * `-----------------------------------------------------------------------------------'
@@ -211,4 +211,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
       break;
       break;
   }
   }
   return true;
   return true;
-}
+}

+ 0 - 26
keyboards/lets_split/keymaps/hexwire/config.h

@@ -1,26 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
-
-/* Use I2C or Serial, not both */
-
-#define USE_SERIAL
-// #define USE_I2C
-
-/* Select hand configuration */
-
-#define MASTER_LEFT
-// #define MASTER_RIGHT
-// #define EE_HANDS
-
-#define TAPPING_TERM 150
-
-#undef RGBLED_NUM
-#define RGBLIGHT_ANIMATIONS
-#define RGBLED_NUM 8
-#define RGBLIGHT_HUE_STEP 8
-#define RGBLIGHT_SAT_STEP 8
-#define RGBLIGHT_VAL_STEP 8
-
-#endif

+ 0 - 5
keyboards/lets_split/keymaps/hexwire/rules.mk

@@ -1,5 +0,0 @@
-RGBLIGHT_ENABLE = yes
-
-ifndef QUANTUM_DIR
-	include ../../../../Makefile
-endif

+ 0 - 108
keyboards/levinson/keymaps/hexwire/README.md

@@ -1,108 +0,0 @@
-Hexwire's Let's Split Layout
-============================
-
-### Changes from default layout
-
-- Main layer
-    - The right space bar key has been changed to backspace, as I only hit space with my left thumb
-    - Backtick is at the lower right and also serves goes to the 3rd function layer when held
-    - Enter key acts as shift when held
-    - Escape key acts as control when held
-    - Minus key at upper right
-- Lower layer
-    - Numbers are on the lower layer, to make it easier to use a numpad on the right hand
-    - Arrow keys
-    - Straight and curly brackets in the middle two columns
-    - Screenshot keys for MacOS
-- Upper layer
-    - Symbols are on the upper layer
-    - Media keys
-    - Page Up/Down, Home/End
-- 3rd function layer
-    - Function keys
-
-## Layouts
-
-### Qwerty
-
-```
-,----+----+----+----+----+----.    ,----+----+----+----+----+----.
- TAB , Q  , W  , E  , R  , T  ,      Y  , U  , I  , O  , P  ,MINS,
-|----+----+----+----+----+----|    |----+----+----+----+----+----|
-  X0 , A  , S  , D  , F  , G  ,      H  , J  , K  , L  ,SCLN,QUOT,
-|----+----+----+----+----+----|    |----+----+----+----+----+----|
- LSFT, Z  , X  , C  , V  , B  ,      N  , M  ,COMM,DOT ,SLSH, X4 ,
-|----+----+----+----+----+----|    |----+----+----+----+----+----|
-  X3 ,LCTL,LALT,LGUI, X1 ,SPC ,     BSPC, X2 ,LEFT,DOWN, UP ,RGHT
-`----+----+----+----+----+----'    `----+----+----+----+----+----'
-```
-
-### Colemak
-
-```
-,----+----+----+----+----+----.    ,----+----+----+----+----+----.
- TAB , Q  , W  , F  , P  , G  ,      J  , L  , U  , Y  ,SCLN,MINS,
-|----+----+----+----+----+----|    |----+----+----+----+----+----|
-  X0 , A  , R  , S  , T  , D  ,      H  , N  , E  , I  , O  ,QUOT,
-|----+----+----+----+----+----|    |----+----+----+----+----+----|
- LSFT, Z  , X  , C  , V  , B  ,      K  , M  ,COMM,DOT ,SLSH, X4 ,
-|----+----+----+----+----+----|    |----+----+----+----+----+----|
-  X3 ,LCTL,LALT,LGUI, X1 ,SPC ,     BSPC, X2 ,LEFT,DOWN, UP ,RGHT
-`----+----+----+----+----+----'    `----+----+----+----+----+----'
-```
-
-### Dvorak
-
-```
-,----+----+----+----+----+----.    ,----+----+----+----+----+----.
- TAB ,QUOT,COMM,DOT , P  , Y  ,      F  , G  , C  , R  , L  ,MINS,
-|----+----+----+----+----+----|    |----+----+----+----+----+----|
-  X0 , A  , O  , E  , U  , I  ,      D  , H  , R  , N  , S  ,SLSH,
-|----+----+----+----+----+----|    |----+----+----+----+----+----|
- LSFT,SCLN, Q  , J  , K  , X  ,      B  , M  , W  , V  , Z  , X4 ,
-|----+----+----+----+----+----|    |----+----+----+----+----+----|
-  X3 ,LCTL,LALT,LGUI, X1 ,SPC ,     BSPC, X2 ,LEFT,DOWN, UP ,RGHT
-`----+----+----+----+----+----'    `----+----+----+----+----+----'
-```
-
-### Lower
-
-```
-,----+----+----+----+----+----.    ,----+----+----+----+----+----.
-     , 1  , 2  , 3  , 4  , 5  ,      6  , 7  , 8  , 9  , 0  ,    ,
-|----+----+----+----+----+----|    |----+----+----+----+----+----|
- DEL ,CAPP,LEFT,RGHT, UP ,LBRC,     RBRC, P4 , P5 , P6 ,PLUS,PIPE,
-|----+----+----+----+----+----|    |----+----+----+----+----+----|
-     ,CPYP,    ,    ,DOWN,LCBR,     RCBR, P1 , P2 , P3 ,MINS,    ,
-|----+----+----+----+----+----|    |----+----+----+----+----+----|
-     ,    ,    ,    ,    ,    ,     DEL ,    , P0 ,PDOT,    ,
-`----+----+----+----+----+----'    `----+----+----+----+----+----'
-```
-
-### Raise
-
-```
-,----+----+----+----+----+----.    ,----+----+----+----+----+----.
-     ,EXLM, AT ,HASH,DLR ,PERC,     CIRC,AMPR,ASTR,LPRN,RPRN,    ,
-|----+----+----+----+----+----|    |----+----+----+----+----+----|
- DEL ,MPRV,MNXT,VOLU,PGUP,UNDS,     EQL ,HOME,    ,    ,    ,BSLS,
-|----+----+----+----+----+----|    |----+----+----+----+----+----|
- MUTE,MSTP,MPLY,VOLD,PGDN,MINS,     PLUS,END ,    ,    ,    ,    ,
-|----+----+----+----+----+----|    |----+----+----+----+----+----|
-     ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    
-`----+----+----+----+----+----'    `----+----+----+----+----+----'
-```
-
-### 3rd function layer
-
-```
-,----+----+----+----+----+----.    ,----+----+----+----+----+----.
- F12 , F1 , F2 , F3 , F4 , F5 ,      F6 , F7 , F8 , F9 ,F10 ,F11 ,
-|----+----+----+----+----+----|    |----+----+----+----+----+----|
-     ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,
-|----+----+----+----+----+----|    |----+----+----+----+----+----|
-     ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,
-|----+----+----+----+----+----|    |----+----+----+----+----+----|
-     ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,   
-`----+----+----+----+----+----'    `----+----+----+----+----+----'
-```

+ 0 - 206
keyboards/levinson/keymaps/hexwire/keymap.c

@@ -1,206 +0,0 @@
-#include "levinson.h"
-#include "action_layer.h"
-#include "eeconfig.h"
-
-extern keymap_config_t keymap_config;
-
-#define _QWERTY 0
-#define _COLEMAK 1
-#define _DVORAK 2
-#define _LOWER 3
-#define _RAISE 4
-#define _FN3 5
-#define _FN4 6
-#define _ADJUST 16
-
-enum custom_keycodes {
-  QWERTY = SAFE_RANGE,
-  COLEMAK,
-  DVORAK,
-  LOWER,
-  RAISE,
-  FN3,
-  FN4,
-  ADJUST,
-};
-
-#define KC_ KC_TRNS
-#define _______ KC_TRNS
-
-#define KC_CAPW LGUI(LSFT(KC_3))        // Capture whole screen
-#define KC_CPYW LGUI(LSFT(LCTL(KC_3)))  // Copy whole screen
-#define KC_CAPP LGUI(LSFT(KC_4))        // Capture portion of screen
-#define KC_CPYP LGUI(LSFT(LCTL(KC_4)))  // Copy portion of screen
-#define KC_X0 MT(MOD_LCTL, KC_ESC)
-#define KC_X1 LOWER
-#define KC_X2 RAISE
-#define KC_X3 LT(_FN3, KC_GRV)
-#define KC_X4 MT(MOD_LSFT, KC_ENT)
-#define KC_X5 BL_STEP
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
-  [_QWERTY] = KC_KEYMAP(
-  //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
-     TAB , Q  , W  , E  , R  , T  ,      Y  , U  , I  , O  , P  ,MINS,
-  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-      X0 , A  , S  , D  , F  , G  ,      H  , J  , K  , L  ,SCLN,QUOT,
-  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-     LSFT, Z  , X  , C  , V  , B  ,      N  , M  ,COMM,DOT ,SLSH, X4 ,
-  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-      X5 ,LCTL,LALT,LGUI, X1 ,SPC ,     BSPC, X2 ,LEFT,DOWN, UP ,RGHT
-  //`----+----+----+----+----+----'    `----+----+----+----+----+----'
-  ),
-
-  [_COLEMAK] = KC_KEYMAP(
-  //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
-     TAB , Q  , W  , F  , P  , G  ,      J  , L  , U  , Y  ,SCLN,MINS,
-  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-      X0 , A  , R  , S  , T  , D  ,      H  , N  , E  , I  , O  ,QUOT,
-  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-     LSFT, Z  , X  , C  , V  , B  ,      K  , M  ,COMM,DOT ,SLSH, X4 ,
-  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-      X3 ,LCTL,LALT,LGUI, X1 ,SPC ,     BSPC, X2 ,LEFT,DOWN, UP ,RGHT
-  //`----+----+----+----+----+----'    `----+----+----+----+----+----'
-  ),
-
-  [_DVORAK] = KC_KEYMAP(
-  //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
-     TAB ,QUOT,COMM,DOT , P  , Y  ,      F  , G  , C  , R  , L  ,MINS,
-  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-      X0 , A  , O  , E  , U  , I  ,      D  , H  , T  , N  , S  ,SLSH,
-  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-     LSFT,SCLN, Q  , J  , K  , X  ,      B  , M  , W  , V  , Z  , X4 ,
-  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-      X3 ,LCTL,LALT,LGUI, X1 ,SPC ,     BSPC, X2 ,LEFT,DOWN, UP ,RGHT
-  //`----+----+----+----+----+----'    `----+----+----+----+----+----'
-  ),
-
-  [_LOWER] = KC_KEYMAP(
-  //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
-         , 1  , 2  , 3  , 4  , 5  ,      6  , 7  , 8  , 9  , 0  ,    ,
-  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-     DEL ,CAPP,LEFT,RGHT, UP ,LBRC,     RBRC, P4 , P5 , P6 ,PLUS,PIPE,
-  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-         ,CPYP,    ,    ,DOWN,LCBR,     RCBR, P1 , P2 , P3 ,MINS,    ,
-  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-         ,    ,    ,    ,    ,    ,     DEL ,    , P0 ,PDOT,    ,
-  //`----+----+----+----+----+----'    `----+----+----+----+----+----'
-  ),
-
-  [_RAISE] = KC_KEYMAP(
-  //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
-         ,EXLM, AT ,HASH,DLR ,PERC,     CIRC,AMPR,ASTR,LPRN,RPRN,    ,
-  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-     DEL ,MPRV,MNXT,VOLU,PGUP,UNDS,     EQL ,HOME,    ,    ,    ,BSLS,
-  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-     MUTE,MSTP,MPLY,VOLD,PGDN,MINS,     PLUS,END ,    ,    ,    ,    ,
-  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-         ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,
-  //`----+----+----+----+----+----'    `----+----+----+----+----+----'
-  ),
-
-  [_FN3] = KC_KEYMAP(
-  //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
-     F12 , F1 , F2 , F3 , F4 , F5 ,      F6 , F7 , F8 , F9 ,F10 ,F11 ,
-  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-         ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,
-  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-         ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,
-  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-         ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,
-  //`----+----+----+----+----+----'    `----+----+----+----+----+----'
-  ),
-
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * |      | Reset|RGB Tg|RGB Md|Hue Up|Hue Dn|Sat Up|Sat Dn|Val Up|Val Dn|      |      |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * |      |      |      |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|      |      |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * |      |      |      |      |      |      |      |      |      |      |      |      |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * |      |      |      |      |      |             |      |      |      |      |      |
- * `-----------------------------------------------------------------------------------'
- */
-  [_ADJUST] = KEYMAP( \
-    _______, RESET  , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, \
-    _______, _______, _______, AU_ON,   AU_OFF,  AG_NORM, AG_SWAP, QWERTY,  COLEMAK, DVORAK,  _______, _______, \
-    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
-    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
-  )
-
-
-};
-
-#ifdef AUDIO_ENABLE
-float tone_qwerty[][2]     = SONG(QWERTY_SOUND);
-float tone_dvorak[][2]     = SONG(DVORAK_SOUND);
-float tone_colemak[][2]    = SONG(COLEMAK_SOUND);
-#endif
-
-void persistent_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_SONG(tone_qwerty);
-        #endif
-        persistent_default_layer_set(1UL<<_QWERTY);
-      }
-      return false;
-      break;
-    case COLEMAK:
-      if (record->event.pressed) {
-        #ifdef AUDIO_ENABLE
-          PLAY_SONG(tone_colemak);
-        #endif
-        persistent_default_layer_set(1UL<<_COLEMAK);
-      }
-      return false;
-      break;
-    case DVORAK:
-      if (record->event.pressed) {
-        #ifdef AUDIO_ENABLE
-          PLAY_SONG(tone_dvorak);
-        #endif
-        persistent_default_layer_set(1UL<<_DVORAK);
-      }
-      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 ADJUST:
-      if (record->event.pressed) {
-        layer_on(_ADJUST);
-      } else {
-        layer_off(_ADJUST);
-      }
-      return false;
-      break;
-  }
-  return true;
-}

+ 42 - 0
keyboards/nyquist/keymaps/pitty/keymap.c

@@ -131,3 +131,45 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
     return MACRO_NONE;
     return MACRO_NONE;
 }
 }
 
 
+#ifdef RGBLIGHT_ENABLE
+bool rgb_layer_change = true;
+#endif
+
+#define rgblight_set_blue        rgblight_sethsv (0xFF,  0xFF, 0xFF);
+#define rgblight_set_red         rgblight_sethsv (0x00,  0xFF, 0xFF);
+#define rgblight_set_green       rgblight_sethsv (0x78,  0xFF, 0xFF);
+#define rgblight_set_orange      rgblight_sethsv (0x1E,  0xFF, 0xFF);
+#define rgblight_set_teal        rgblight_sethsv (0xC3,  0xFF, 0xFF);
+#define rgblight_set_magenta     rgblight_sethsv (0x12C, 0xFF, 0xFF);
+#define rgblight_set_yellow      rgblight_sethsv (0x3C,  0xFF, 0xFF);
+#define rgblight_set_purple      rgblight_sethsv (0x10E, 0xFF, 0xFF);
+#define rgblight_set_white       rgblight_sethsv (0x00,  0x00, 0xFF);
+#define rgblight_set_black       rgblight_sethsv (0x00,  0x00, 0x00);
+
+uint32_t layer_state_set_user(uint32_t state) {
+#ifdef RGBLIGHT_ENABLE
+  uint8_t default_layer = eeconfig_read_default_layer();
+  if (rgb_layer_change) {
+    switch (biton32(state)) {
+    case _LOWER:
+      rgblight_set_purple;
+      rgblight_mode(5);
+      break;
+    case _VIM:
+	  rgblight_set_green;
+      rgblight_mode(23);
+      break;
+	case _GAME:
+      rgblight_mode(8);
+      break;
+    default:
+      if (default_layer & (1UL << _GAME)) {
+      }
+      else 
+      rgblight_mode(14);
+      break;
+    }
+  }
+#endif
+  return state;
+}

+ 1 - 5
keyboards/nyquist/split_util.h

@@ -2,11 +2,7 @@
 #define SPLIT_KEYBOARD_UTIL_H
 #define SPLIT_KEYBOARD_UTIL_H
 
 
 #include <stdbool.h>
 #include <stdbool.h>
-
-#ifdef EE_HANDS
-	#define EECONFIG_BOOTMAGIC_END      (uint8_t *)10
-	#define EECONFIG_HANDEDNESS         EECONFIG_BOOTMAGIC_END
-#endif
+#include "eeconfig.h"
 
 
 #define SLAVE_I2C_ADDRESS           0x32
 #define SLAVE_I2C_ADDRESS           0x32
 
 

+ 1 - 4
keyboards/orthodox/split_util.h

@@ -2,11 +2,8 @@
 #define SPLIT_KEYBOARD_UTIL_H
 #define SPLIT_KEYBOARD_UTIL_H
 
 
 #include <stdbool.h>
 #include <stdbool.h>
+#include "eeconfig.h"
 
 
-#ifdef EE_HANDS
-	#define EECONFIG_BOOTMAGIC_END      (uint8_t *)10
-	#define EECONFIG_HANDEDNESS         EECONFIG_BOOTMAGIC_END
-#endif
 
 
 #define SLAVE_I2C_ADDRESS           0x32
 #define SLAVE_I2C_ADDRESS           0x32
 
 

+ 15 - 0
keyboards/planck/planck.h

@@ -29,7 +29,22 @@
 	{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
 	{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b } \
 }
 }
 
 
+// Used to create a keymap using only KC_ prefixed keys
+#define KC_KEYMAP( \
+	k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
+	k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
+	k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
+	k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
+	) \
+	LAYOUT_planck_grid( \
+		KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b, \
+		KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b, \
+		KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b, \
+		KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b \
+    )
+
 #define KEYMAP LAYOUT_planck_grid
 #define KEYMAP LAYOUT_planck_grid
 #define LAYOUT_ortho_4x12 LAYOUT_planck_grid
 #define LAYOUT_ortho_4x12 LAYOUT_planck_grid
+#define KC_LAYOUT_ortho_4x12 KC_KEYMAP
 
 
 #endif
 #endif

+ 1 - 4
keyboards/viterbi/split_util.h

@@ -2,11 +2,8 @@
 #define SPLIT_KEYBOARD_UTIL_H
 #define SPLIT_KEYBOARD_UTIL_H
 
 
 #include <stdbool.h>
 #include <stdbool.h>
+#include "eeconfig.h"
 
 
-#ifdef EE_HANDS
-	#define EECONFIG_BOOTMAGIC_END      (uint8_t *)10
-	#define EECONFIG_HANDEDNESS         EECONFIG_BOOTMAGIC_END
-#endif
 
 
 #define SLAVE_I2C_ADDRESS           0x32
 #define SLAVE_I2C_ADDRESS           0x32
 
 

+ 1 - 1
keyboards/levinson/keymaps/hexwire/config.h → layouts/community/ortho_4x12/bakingpy/config.h

@@ -1,7 +1,7 @@
 #ifndef CONFIG_USER_H
 #ifndef CONFIG_USER_H
 #define CONFIG_USER_H
 #define CONFIG_USER_H
 
 
-#include "../../config.h"
+#include QMK_KEYBOARD_CONFIG_H
 
 
 /* Use I2C or Serial, not both */
 /* Use I2C or Serial, not both */
 
 

+ 25 - 27
keyboards/lets_split/keymaps/hexwire/keymap.c → layouts/community/ortho_4x12/bakingpy/keymap.c

@@ -1,4 +1,4 @@
-#include "lets_split.h"
+#include QMK_KEYBOARD_H
 #include "action_layer.h"
 #include "action_layer.h"
 #include "eeconfig.h"
 #include "eeconfig.h"
 
 
@@ -9,8 +9,7 @@ extern keymap_config_t keymap_config;
 #define _DVORAK 2
 #define _DVORAK 2
 #define _LOWER 3
 #define _LOWER 3
 #define _RAISE 4
 #define _RAISE 4
-#define _FN3 5
-#define _FN4 6
+#define _FKEYS 5
 #define _ADJUST 16
 #define _ADJUST 16
 
 
 enum custom_keycodes {
 enum custom_keycodes {
@@ -19,8 +18,6 @@ enum custom_keycodes {
   DVORAK,
   DVORAK,
   LOWER,
   LOWER,
   RAISE,
   RAISE,
-  FN3,
-  FN4,
   ADJUST,
   ADJUST,
 };
 };
 
 
@@ -31,51 +28,52 @@ enum custom_keycodes {
 #define KC_CPYW LGUI(LSFT(LCTL(KC_3)))  // Copy whole screen
 #define KC_CPYW LGUI(LSFT(LCTL(KC_3)))  // Copy whole screen
 #define KC_CAPP LGUI(LSFT(KC_4))        // Capture portion of screen
 #define KC_CAPP LGUI(LSFT(KC_4))        // Capture portion of screen
 #define KC_CPYP LGUI(LSFT(LCTL(KC_4)))  // Copy portion of screen
 #define KC_CPYP LGUI(LSFT(LCTL(KC_4)))  // Copy portion of screen
-#define KC_X0 MT(MOD_LCTL, KC_ESC)
-#define KC_X1 LOWER
-#define KC_X2 RAISE
-#define KC_X3 LT(_FN3, KC_GRV)
-#define KC_X4 MT(MOD_LSFT, KC_ENT)
+#define KC_ESCC MT(MOD_LCTL, KC_ESC)
+#define KC_LOWR LOWER
+#define KC_RASE RAISE
+#define KC_GRVF LT(_FKEYS, KC_GRV)
+#define KC_ENTS MT(MOD_LSFT, KC_ENT)
+#define KC_BL_S BL_STEP
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
 
-  [_QWERTY] = KC_KEYMAP(
+  [_QWERTY] = KC_LAYOUT_ortho_4x12(
   //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
   //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
      TAB , Q  , W  , E  , R  , T  ,      Y  , U  , I  , O  , P  ,MINS,
      TAB , Q  , W  , E  , R  , T  ,      Y  , U  , I  , O  , P  ,MINS,
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-      X0 , A  , S  , D  , F  , G  ,      H  , J  , K  , L  ,SCLN,QUOT,
+     ESCC, A  , S  , D  , F  , G  ,      H  , J  , K  , L  ,SCLN,QUOT,
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-     LSFT, Z  , X  , C  , V  , B  ,      N  , M  ,COMM,DOT ,SLSH, X4 ,
+     LSFT, Z  , X  , C  , V  , B  ,      N  , M  ,COMM,DOT ,SLSH,ENTS,
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-      X3 ,LCTL,LALT,LGUI, X1 ,SPC ,     BSPC, X2 ,LEFT,DOWN, UP ,RGHT
+     GRVF,LCTL,LALT,LGUI,LOWR,SPC ,     BSPC,RASE,LEFT,DOWN, UP ,RGHT
   //`----+----+----+----+----+----'    `----+----+----+----+----+----'
   //`----+----+----+----+----+----'    `----+----+----+----+----+----'
   ),
   ),
 
 
-  [_COLEMAK] = KC_KEYMAP(
+  [_COLEMAK] = KC_LAYOUT_ortho_4x12(
   //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
   //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
      TAB , Q  , W  , F  , P  , G  ,      J  , L  , U  , Y  ,SCLN,MINS,
      TAB , Q  , W  , F  , P  , G  ,      J  , L  , U  , Y  ,SCLN,MINS,
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-      X0 , A  , R  , S  , T  , D  ,      H  , N  , E  , I  , O  ,QUOT,
+     ESCC, A  , R  , S  , T  , D  ,      H  , N  , E  , I  , O  ,QUOT,
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-     LSFT, Z  , X  , C  , V  , B  ,      K  , M  ,COMM,DOT ,SLSH, X4 ,
+     LSFT, Z  , X  , C  , V  , B  ,      K  , M  ,COMM,DOT ,SLSH,ENTS,
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-      X3 ,LCTL,LALT,LGUI, X1 ,SPC ,     BSPC, X2 ,LEFT,DOWN, UP ,RGHT
+     GRVF,LCTL,LALT,LGUI,LOWR,SPC ,     BSPC,RASE,LEFT,DOWN, UP ,RGHT
   //`----+----+----+----+----+----'    `----+----+----+----+----+----'
   //`----+----+----+----+----+----'    `----+----+----+----+----+----'
   ),
   ),
 
 
-  [_DVORAK] = KC_KEYMAP(
+  [_DVORAK] = KC_LAYOUT_ortho_4x12(
   //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
   //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
      TAB ,QUOT,COMM,DOT , P  , Y  ,      F  , G  , C  , R  , L  ,MINS,
      TAB ,QUOT,COMM,DOT , P  , Y  ,      F  , G  , C  , R  , L  ,MINS,
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-      X0 , A  , O  , E  , U  , I  ,      D  , H  , T  , N  , S  ,SLSH,
+     ESCC, A  , O  , E  , U  , I  ,      D  , H  , T  , N  , S  ,SLSH,
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-     LSFT,SCLN, Q  , J  , K  , X  ,      B  , M  , W  , V  , Z  , X4 ,
+     LSFT,SCLN, Q  , J  , K  , X  ,      B  , M  , W  , V  , Z  ,ENTS,
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-      X3 ,LCTL,LALT,LGUI, X1 ,SPC ,     BSPC, X2 ,LEFT,DOWN, UP ,RGHT
+     GRVF,LCTL,LALT,LGUI,LOWR,SPC ,     BSPC,RASE,LEFT,DOWN, UP ,RGHT
   //`----+----+----+----+----+----'    `----+----+----+----+----+----'
   //`----+----+----+----+----+----'    `----+----+----+----+----+----'
   ),
   ),
 
 
-  [_LOWER] = KC_KEYMAP(
+  [_LOWER] = KC_LAYOUT_ortho_4x12(
   //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
   //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
          , 1  , 2  , 3  , 4  , 5  ,      6  , 7  , 8  , 9  , 0  ,    ,
          , 1  , 2  , 3  , 4  , 5  ,      6  , 7  , 8  , 9  , 0  ,    ,
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
@@ -83,11 +81,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
          ,CPYP,    ,    ,DOWN,LCBR,     RCBR, P1 , P2 , P3 ,MINS,    ,
          ,CPYP,    ,    ,DOWN,LCBR,     RCBR, P1 , P2 , P3 ,MINS,    ,
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
-         ,    ,    ,    ,    ,    ,     DEL ,    , P0 ,PDOT,    ,
+     BL_S,    ,    ,    ,    ,DEL ,     DEL ,    , P0 ,PDOT,    ,
   //`----+----+----+----+----+----'    `----+----+----+----+----+----'
   //`----+----+----+----+----+----'    `----+----+----+----+----+----'
   ),
   ),
 
 
-  [_RAISE] = KC_KEYMAP(
+  [_RAISE] = KC_LAYOUT_ortho_4x12(
   //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
   //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
          ,EXLM, AT ,HASH,DLR ,PERC,     CIRC,AMPR,ASTR,LPRN,RPRN,    ,
          ,EXLM, AT ,HASH,DLR ,PERC,     CIRC,AMPR,ASTR,LPRN,RPRN,    ,
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
@@ -99,7 +97,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   //`----+----+----+----+----+----'    `----+----+----+----+----+----'
   //`----+----+----+----+----+----'    `----+----+----+----+----+----'
   ),
   ),
 
 
-  [_FN3] = KC_KEYMAP(
+  [_FKEYS] = KC_LAYOUT_ortho_4x12(
   //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
   //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
      F12 , F1 , F2 , F3 , F4 , F5 ,      F6 , F7 , F8 , F9 ,F10 ,F11 ,
      F12 , F1 , F2 , F3 , F4 , F5 ,      F6 , F7 , F8 , F9 ,F10 ,F11 ,
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
   //|----+----+----+----+----+----|    |----+----+----+----+----+----|
@@ -122,7 +120,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |      |      |      |      |      |             |      |      |      |      |      |
  * |      |      |      |      |      |             |      |      |      |      |      |
  * `-----------------------------------------------------------------------------------'
  * `-----------------------------------------------------------------------------------'
  */
  */
-  [_ADJUST] = KEYMAP( \
+  [_ADJUST] = LAYOUT_ortho_4x12( \
     _______, RESET  , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, \
     _______, RESET  , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, \
     _______, _______, _______, AU_ON,   AU_OFF,  AG_NORM, AG_SWAP, QWERTY,  COLEMAK, DVORAK,  _______, _______, \
     _______, _______, _______, AU_ON,   AU_OFF,  AG_NORM, AG_SWAP, QWERTY,  COLEMAK, DVORAK,  _______, _______, \
     _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
     _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \

+ 11 - 11
keyboards/lets_split/keymaps/hexwire/README.md → layouts/community/ortho_4x12/bakingpy/readme.md

@@ -1,4 +1,4 @@
-Hexwire's Let's Split Layout
+Bakingpy's Let's Split Layout
 ============================
 ============================
 
 
 ### Changes from default layout
 ### Changes from default layout
@@ -29,11 +29,11 @@ Hexwire's Let's Split Layout
 ,----+----+----+----+----+----.    ,----+----+----+----+----+----.
 ,----+----+----+----+----+----.    ,----+----+----+----+----+----.
  TAB , Q  , W  , E  , R  , T  ,      Y  , U  , I  , O  , P  ,MINS,
  TAB , Q  , W  , E  , R  , T  ,      Y  , U  , I  , O  , P  ,MINS,
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
-  X0 , A  , S  , D  , F  , G  ,      H  , J  , K  , L  ,SCLN,QUOT,
+ ESCC, A  , S  , D  , F  , G  ,      H  , J  , K  , L  ,SCLN,QUOT,
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
- LSFT, Z  , X  , C  , V  , B  ,      N  , M  ,COMM,DOT ,SLSH, X4 ,
+ LSFT, Z  , X  , C  , V  , B  ,      N  , M  ,COMM,DOT ,SLSH,ENTS,
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
-  X3 ,LCTL,LALT,LGUI, X1 ,SPC ,     BSPC, X2 ,LEFT,DOWN, UP ,RGHT
+ GRVF,LCTL,LALT,LGUI,LOWR,SPC ,     BSPC,RASE,LEFT,DOWN, UP ,RGHT
 `----+----+----+----+----+----'    `----+----+----+----+----+----'
 `----+----+----+----+----+----'    `----+----+----+----+----+----'
 ```
 ```
 
 
@@ -43,11 +43,11 @@ Hexwire's Let's Split Layout
 ,----+----+----+----+----+----.    ,----+----+----+----+----+----.
 ,----+----+----+----+----+----.    ,----+----+----+----+----+----.
  TAB , Q  , W  , F  , P  , G  ,      J  , L  , U  , Y  ,SCLN,MINS,
  TAB , Q  , W  , F  , P  , G  ,      J  , L  , U  , Y  ,SCLN,MINS,
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
-  X0 , A  , R  , S  , T  , D  ,      H  , N  , E  , I  , O  ,QUOT,
+ ESCC, A  , R  , S  , T  , D  ,      H  , N  , E  , I  , O  ,QUOT,
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
- LSFT, Z  , X  , C  , V  , B  ,      K  , M  ,COMM,DOT ,SLSH, X4 ,
+ LSFT, Z  , X  , C  , V  , B  ,      K  , M  ,COMM,DOT ,SLSH,ENTS,
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
-  X3 ,LCTL,LALT,LGUI, X1 ,SPC ,     BSPC, X2 ,LEFT,DOWN, UP ,RGHT
+ GRVF,LCTL,LALT,LGUI,LOWR,SPC ,     BSPC,RASE,LEFT,DOWN, UP ,RGHT
 `----+----+----+----+----+----'    `----+----+----+----+----+----'
 `----+----+----+----+----+----'    `----+----+----+----+----+----'
 ```
 ```
 
 
@@ -57,11 +57,11 @@ Hexwire's Let's Split Layout
 ,----+----+----+----+----+----.    ,----+----+----+----+----+----.
 ,----+----+----+----+----+----.    ,----+----+----+----+----+----.
  TAB ,QUOT,COMM,DOT , P  , Y  ,      F  , G  , C  , R  , L  ,MINS,
  TAB ,QUOT,COMM,DOT , P  , Y  ,      F  , G  , C  , R  , L  ,MINS,
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
-  X0 , A  , O  , E  , U  , I  ,      D  , H  , R  , N  , S  ,SLSH,
+ ESCC, A  , O  , E  , U  , I  ,      D  , H  , R  , N  , S  ,SLSH,
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
- LSFT,SCLN, Q  , J  , K  , X  ,      B  , M  , W  , V  , Z  , X4 ,
+ LSFT,SCLN, Q  , J  , K  , X  ,      B  , M  , W  , V  , Z  ,ENTS,
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
-  X3 ,LCTL,LALT,LGUI, X1 ,SPC ,     BSPC, X2 ,LEFT,DOWN, UP ,RGHT
+ GRVF,LCTL,LALT,LGUI,LOWR,SPC ,     BSPC,RASE,LEFT,DOWN, UP ,RGHT
 `----+----+----+----+----+----'    `----+----+----+----+----+----'
 `----+----+----+----+----+----'    `----+----+----+----+----+----'
 ```
 ```
 
 
@@ -75,7 +75,7 @@ Hexwire's Let's Split Layout
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
      ,CPYP,    ,    ,DOWN,LCBR,     RCBR, P1 , P2 , P3 ,MINS,    ,
      ,CPYP,    ,    ,DOWN,LCBR,     RCBR, P1 , P2 , P3 ,MINS,    ,
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
 |----+----+----+----+----+----|    |----+----+----+----+----+----|
-     ,    ,    ,    ,    ,    ,     DEL ,    , P0 ,PDOT,    ,
+     ,    ,    ,    ,    ,DEL ,     DEL ,    , P0 ,PDOT,    ,
 `----+----+----+----+----+----'    `----+----+----+----+----+----'
 `----+----+----+----+----+----'    `----+----+----+----+----+----'
 ```
 ```
 
 

+ 4 - 0
layouts/community/ortho_4x12/bakingpy/rules.mk

@@ -0,0 +1,4 @@
+# Enable RGB if not a Planck
+ifeq (,$(findstring planck,$(KEYBOARD)))
+	RGBLIGHT_ENABLE = yes
+endif