Răsfoiți Sursa

Added choromanski keymap (#2528)

* Added ergodox layout

* Added preonic layout

* Added readme for exgodox layout

* fixed errors with formatting readme

* Added edited preonic keymap & readme
Brian Choromanski 7 ani în urmă
părinte
comite
a3047f1ab3

+ 52 - 0
keyboards/preonic/keymaps/choromanski/config.h

@@ -0,0 +1,52 @@
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "config_common.h"
+
+
+#ifdef AUDIO_ENABLE
+    #define STARTUP_SONG SONG(PREONIC_SOUND)
+    // #define STARTUP_SONG SONG(NO_SOUND)
+
+    #define DEFAULT_LAYER_SONGS { SONG(COLEMAK_SOUND), \
+                                  SONG(QWERTY_SOUND), \
+                                  SONG(AUDIO_ON_SOUND), \
+                                  SONG(TERMINAL_SOUND), \
+                                  SONG(NO_SOUND), \
+                                  SONG(MUSIC_ON_SOUND) \
+                                }
+#endif
+
+#define MUSIC_MASK (keycode != MU_TOG)
+
+
+/*
+ * MIDI options
+ */
+
+/* Prevent use of disabled MIDI features in the keymap */
+//#define MIDI_ENABLE_STRICT 1
+
+/* enable basic MIDI features:
+   - MIDI notes can be sent when in Music mode is on
+*/
+
+#define MIDI_BASIC
+
+/* enable advanced MIDI features:
+   - MIDI notes can be added to the keymap
+   - Octave shift and transpose
+   - Virtual sustain, portamento, and modulation wheel
+   - etc.
+*/
+//#define MIDI_ADVANCED
+
+/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
+//#define MIDI_TONE_KEYCODE_OCTAVES 2
+
+#endif
+
+#ifndef TAPPING_TERM
+#define TAPPING_TERM 200
+
+#endif

+ 175 - 0
keyboards/preonic/keymaps/choromanski/keymap.c

@@ -0,0 +1,175 @@
+#include "preonic.h"
+#include "action_layer.h"
+
+enum preonic_layers {
+  _COLEMAK,
+  _QWERTY,
+  _FUNCT,
+  _NUMPAD,
+  _SYMB,
+  _MUSIC
+};
+
+enum preonic_keycodes {
+  FUNCT
+};
+
+//Tap Dance Declarations
+enum {
+  G1 = 0,
+  BRC,
+  EQ
+};
+
+//Tap Dance Definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+  //Tap once for 1, twice for Grave
+  [G1] = ACTION_TAP_DANCE_DOUBLE(KC_1, KC_GRV),
+  //Tap once for [, twice for ]
+  [BRC] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC),
+  //Tap once for = twice for Backslash
+  [EQ] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_BSLS)
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Colemak
+ * ,-----------------------------------------------------------------------------------.
+ * |  1 ` |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  |   -  |  = \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab  |   Q  |   W  |   F  |   P  |   G  |   J  |   L  |   U  |   Y  |   ;  |  [ ] |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc  |   A  |   R  |   S  |   T  |   D  |   H  |   N  |   E  |   I  |   O  |  "   |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift|   Z  |   X  |   C  |   V  |   B  |   K  |   M  |   ,  |   .  |   /  |Numpad|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |Symbol| Ctrl | Alt  | GUI  | Bksp | Del  |Enter |Space | Left | Down |  Up  |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_COLEMAK] = {
+	{TD(G1),		KC_2,		KC_3,		KC_4,		KC_5,		KC_6,	KC_7,	KC_8,	KC_9,		KC_0,		KC_MINS,	TD(EQ)},
+	{KC_TAB,		KC_Q,		KC_W,		KC_F,		KC_P,		KC_G,	KC_J,	KC_L,	KC_U,		KC_Y,		KC_SCLN,	TD(BRC)},
+	{KC_ESC,		KC_A,		KC_R,		KC_S,		KC_T,		KC_D,	KC_H,	KC_N,	KC_E,		KC_I,		KC_O,		KC_QUOT},
+	{KC_LSFT,		KC_Z,		KC_X,		KC_C,		KC_V,		KC_B,	KC_K,	KC_M,	KC_COMM,	KC_DOT,		KC_SLSH,	TG(_NUMPAD)},
+	{OSL(_SYMB),	KC_LCTL,	KC_LALT,	KC_LGUI,	KC_BSPC,	KC_DEL,	KC_ENT,	KC_SPC,	KC_LEFT,	KC_DOWN,	KC_UP,		KC_RGHT}
+},
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * |  1 ` |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  |   -  |  = \ |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab  |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  |  [ ] |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc  |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |   ;  |  "   |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift|   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   /  |Numpad|
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |Symbol| Ctrl | Alt  | GUI  | Bksp | Del  |Enter |Space | Left | Down |  Up  |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = {
+	{TD(G1),		KC_2,		KC_3,		KC_4,		KC_5,		KC_6,	KC_7,	KC_8,	KC_9,		KC_0,		KC_MINS,	TD(EQ)},
+	{KC_TAB,		KC_Q,		KC_W,		KC_E,		KC_R,		KC_T,	KC_Y,	KC_U,	KC_I,		KC_O,		KC_P,		TD(BRC)},
+	{KC_ESC,		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,	TG(_NUMPAD)},
+	{OSL(_SYMB),	KC_LCTL,	KC_LALT,	KC_LGUI,	KC_BSPC,	KC_DEL,	KC_ENT,	KC_SPC,	KC_LEFT,	KC_DOWN,	KC_UP,		KC_RGHT}
+},
+
+/* Function
+ * ,-----------------------------------------------------------------------------------.
+ * |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |      |      |      |      |      |      |      |      |      |      |      |      |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |      |      |      |      |      |      |      |      |      |      |      |      |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |      |      |      |      |      |      |      |      |      |      |      |      |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |Symbol|      |      |      |      |      |      |      |      |      |      |      |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_FUNCT] = {
+	{KC_F1,		KC_F2,		KC_F3,		KC_F4,		KC_F5,		KC_F6,		KC_F7,		KC_F8,		KC_F9,		KC_F10,		KC_F11,		KC_F12},
+	{_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______},
+	{_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______},
+	{_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______},
+	{_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______}
+},
+
+/* Numpad & Mouse
+ * ,-----------------------------------------------------------------------------------.
+ * |   `  |      |      |M-clic|      |      |      |      |   /  |   *  |   -  |  \   |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |      | ACL0 |L-clck|  Up  |R-clck|Scrl U|      |   7  |   8  |   9  |   +  |  ]   |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |      | ACL1 | Left | Down |Right |Scrl D|      |   4  |   5  |   6  |   +  |      |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |      | ACL2 | VOLU | PREV |PAUSE | NEXT |      |   1  |   2  |   3  |Enter | Back |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |Symbol|      | VOLD | MUTE | Bksp | Del  |Enter |Space |   0  |   .  |Enter |      |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_NUMPAD] = {
+	{KC_GRV,		_______,	_______,	KC_BTN3,	_______,	_______,	_______,	KC_NLCK,	KC_SLSH,	KC_ASTR,	KC_MINS,	KC_BSLS},
+	{_______,		KC_ACL0,	KC_BTN1,	KC_MS_U,	KC_BTN2,	KC_WH_U,	_______,	KC_7,		KC_8,		KC_9,		KC_PLUS,	KC_RBRC},
+	{_______,		KC_ACL1,	KC_MS_L,	KC_MS_D,	KC_MS_R,	KC_WH_D,	_______,	KC_4,		KC_5,		KC_6,		KC_PLUS,	_______},
+	{_______,		KC_ACL2,	KC_VOLU,	KC_MPRV,	KC_MPLY,	KC_MNXT,	_______,	KC_1,		KC_2,		KC_3,		KC_ENT,		_______},
+	{OSL(_SYMB),	_______,	KC_VOLD,	KC_MUTE,	KC_BSPC,	KC_DEL,		KC_ENT,		KC_SPC,		KC_0,		KC_DOT,		KC_ENT,		_______}
+},
+
+/* Symbol
+ * ,-----------------------------------------------------------------------------------.
+ * |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |      |   |  |  +   |  <   |  >   |  #   |   ~  |   (  |   )  |   \  |   :  |      |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |      |   !  |  -   |  =   |  %   |  @   |   _  |   {  |   }  |   /  |   ?  |      |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |MUSIC |   *  |  &   |  /   |  $   |  ^   |   |  |   [  |   ]  |      |      |      |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |      |  FN  |COLMAK|QWERTY|      |      |      |      |      |      |      |      |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_SYMB] = {
+	{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_PIPE,	KC_PLUS,		KC_LABK,		KC_RABK,	KC_HASH,	KC_TILD,	KC_LPRN,	KC_RPRN,	KC_BSLS,	KC_COLN,	_______},
+	{_______,		KC_EXLM,	KC_MINS,		KC_EQL,			KC_PERC,	KC_AT,		KC_UNDS,	KC_LCBR,	KC_RCBR,	KC_SLSH,	KC_QUES,	_______},
+	{TO(_MUSIC),	KC_ASTR,	KC_AMPR,		KC_SLSH,		KC_DLR,		KC_CIRC,	KC_PIPE,	KC_LBRC,	KC_RBRC,	_______,	_______,	_______},
+	{_______,		FUNCT,		TO(_COLEMAK),	TO(_QWERTY),	_______,	_______,	_______,	_______,	_______,	_______,	_______,	_______}
+},
+
+/* Music
+ * ,-----------------------------------------------------------------------------------.
+ * |      |      |      |      |      |      |      |      |      |      |      |      |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |      |      |      |      |      |      |      |      |      |      |      |      |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |      |      |      |      |      |      |      |      |      |      |      |      |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |      |      |      |      |      |      |      |      |      |      |      |      |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |COLMAK|      |      |      |      |      |      |      |      |      | MOD  | TOG  |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_MUSIC] = {
+	{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},
+	{TO(_COLEMAK),	KC_NO,	KC_NO,	KC_NO,	KC_NO,	KC_NO,	KC_NO,	KC_NO,	KC_NO,	KC_NO,	MU_MOD,	MU_TOG}
+}
+
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+	switch (keycode) {
+		case FUNCT:
+			if (record->event.pressed) {
+				layer_off(_SYMB);
+				layer_on(_FUNCT);
+			}
+			return false;
+			break;
+	}
+	return true;
+};

+ 95 - 0
keyboards/preonic/keymaps/choromanski/readme.md

@@ -0,0 +1,95 @@
+# Choromanski
+
+## Features
+* Colemak
+* Qwerty
+* Toggable function row
+* Symbol layer programmer friendly
+* Numpad/Mouse layer with media controls
+
+## Layers
+
+### 0 Colemak
+```
+,-----------------------------------------------------------------------------------.
+|  1 ` |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  |   -  |  = \ |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| Tab  |   Q  |   W  |   F  |   P  |   G  |   J  |   L  |   U  |   Y  |   ;  |  [ ] |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| Esc  |   A  |   R  |   S  |   T  |   D  |   H  |   N  |   E  |   I  |   O  |  "   |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| Shift|   Z  |   X  |   C  |   V  |   B  |   K  |   M  |   ,  |   .  |   /  |Numpad|
+|------+------+------+------+------+------+------+------+------+------+------+------|
+|Symbol| Ctrl | Alt  | GUI  | Bksp | Del  |Enter |Space | Left | Down |  Up  |Right |
+`-----------------------------------------------------------------------------------'
+```
+### 1 Qwerty
+```
+,-----------------------------------------------------------------------------------.
+|  1 ` |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  |   -  |  = \ |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| Tab  |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  |  [ ] |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| Esc  |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |   ;  |  "   |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+| Shift|   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   /  |Numpad|
+|------+------+------+------+------+------+------+------+------+------+------+------|
+|Symbol| Ctrl | Alt  | GUI  | Bksp | Del  |Enter |Space | Left | Down |  Up  |Right |
+`-----------------------------------------------------------------------------------'
+```
+### 2 Function Lock
+```
+,-----------------------------------------------------------------------------------.
+|  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+|      |      |      |      |      |      |      |      |      |      |      |      |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+|      |      |      |      |      |      |      |      |      |      |      |      |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+|      |      |      |      |      |      |      |      |      |      |      |      |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+|Symbol|      |      |      |      |      |      |      |      |      |      |      |
+`-----------------------------------------------------------------------------------'
+```
+### 3 Numpad/Mouse with Media Controls
+```
+,-----------------------------------------------------------------------------------.
+|   `  |      |      |M-clic|      |      |      |      |   /  |   |   -  |  \   |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+|      | ACL0 |L-clck|  Up  |R-clck|Scrl U|      |   7  |   8  |   9  |   +  |  ]   |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+|      | ACL1 | Left | Down |Right |Scrl D|      |   4  |   5  |   6  |   +  |      |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+|      | ACL2 | VOLU | PREV |PAUSE | NEXT |      |   1  |   2  |   3  |Enter | Back |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+|Symbol|      | VOLD | MUTE | Bksp | Del  |Enter |Space |   0  |   .  |Enter |      |
+`-----------------------------------------------------------------------------------'
+```
+### 4 Symbols
+```
+,-----------------------------------------------------------------------------------.
+|  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+|      |   |  |  +   |  <   |  >   |  #   |   ~  |   (  |   )  |   \  |   :  |      |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+|      |   !  |  -   |  =   |  %   |  @   |   _  |   {  |   }  |   /  |   ?  |      |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+|MUSIC |   *  |  &   |  /   |  $   |  ^   |   |  |   [  |   ]  |      |      |      |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+|      |  FN  |COLMAK|QWERTY|      |      |      |      |      |      |      |      |
+`-----------------------------------------------------------------------------------'
+```
+### 5 Music
+```
+,-----------------------------------------------------------------------------------.
+|      |      |      |      |      |      |      |      |      |      |      |      |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+|      |      |      |      |      |      |      |      |      |      |      |      |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+|      |      |      |      |      |      |      |      |      |      |      |      |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+|      |      |      |      |      |      |      |      |      |      |      |      |
+|------+------+------+------+------+------+------+------+------+------+------+------|
+|COLMAK|      |      |      |      |      |      |      |      |      | MOD  | TOG  |
+`-----------------------------------------------------------------------------------'
+```

+ 3 - 0
keyboards/preonic/keymaps/choromanski/rules.mk

@@ -0,0 +1,3 @@
+TAP_DANCE_ENABLE = yes
+MOUSEKEY_ENABLE = yes
+AUDIO_ENABLE = yes

+ 284 - 0
layouts/community/ergodox/choromanski/keymap.c

@@ -0,0 +1,284 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Keymap 0: Colemak
+ * ,--------------------------------------------------.         ,--------------------------------------------------.
+ * |   ` ~  |  1 ! | 2 @  | 3 #  | 4 $  | 5 %  |  6 ^ |         | 7 &  |  8 * | 9 (  |  0 ) | - _  | = +  | BSPACE |
+ * |--------+------+------+------+------+-------------|         |------+------+------+------+------+------+--------|
+ * |   TAB  |   Q  |   W  |   F  |   P  |   G  |      |         |      |   J  |   L  |   U  |   Y  |  ; : |  \ |   |
+ * |--------+------+------+------+------+------|  (   |         |   )  |------+------+------+------+------+--------|
+ * |   ESC  |   A  |   R  |   S  |   T  |   D  |------|         |------|   H  |   N  |   E  |   I  |   O  |  ' "   |
+ * |--------+------+------+------+------+------|  {   |         |   }  |------+------+------+------+------+--------|
+ * | Shift  |CTR(Z)|GUI(X)|ALT(C)|   V  |   B  |  [   |         |   ]  |   K  |   M  |  , < |ALT(.)|CTR(/)| Shift  |
+ * `--------+------+------+------+------+-------------'         `-------------+------+------+------+------+--------'
+ *   |OSL(3)| TG(2)| TO(5)| TO(1)| CAPS |                                      | LEFT | DOWN |  UP  |RIGHT |TG(4)|
+ *   `----------------------------------'                                      `---------------------------------'
+ *                                      ,--------------.       ,--------------.
+ *                                      | LCTR | LALT  |       | RALT | RCTR  |
+ *                               ,------|------|-------|       |------+-------+------.
+ *                               |      |      | MUTE  |       |SCROLU|       |      |
+ *                               |BSPACE|DELETE|-------|       |------| ENTER |SPACE |
+ *                               |      |      |  GUI  |       |SCROLD|       |      |
+ *                               `---------------------'       `---------------------'
+ */
+  [0] = LAYOUT_ergodox(
+	KC_GRV,		KC_1,			KC_2,			KC_3,			KC_4,		KC_5,		KC_6,
+	KC_TAB,		KC_Q,			KC_W,			KC_F,			KC_P,		KC_G,		KC_LPRN,
+	KC_ESC,		KC_A,			KC_R,			KC_S,			KC_T,		KC_D,
+	KC_LSFT,	CTL_T(KC_Z),	GUI_T(KC_X),	ALT_T(KC_C),	KC_V,		KC_B,		KC_LBRC,
+	OSL(3),		TG(2),			TO(5),			TO(1),			KC_CAPS,
+																			KC_LCTL,	KC_LALT,
+																						KC_MUTE,
+																KC_BSPC,	KC_DEL,		KC_LGUI,			
+
+	KC_7,		KC_8,		KC_9,		KC_0,		KC_MINS,		KC_EQL,			KC_BSPC,	
+	KC_RPRN,	KC_J,		KC_L,		KC_U,		KC_Y,			KC_SCLN,		KC_BSLS,
+				KC_H,		KC_N,		KC_E,		KC_I,			KC_O,			KC_QUOT,			
+	KC_RBRC,	KC_K,		KC_M,		KC_COMM,	ALT_T(KC_DOT),	CTL_T(KC_SLSH),	KC_RSFT,
+							KC_LEFT,	KC_DOWN,	KC_UP,			KC_RGHT,		TG(4),			
+	KC_RALT,	KC_RCTL,			
+	KC_WH_U,			
+	KC_WH_D,	KC_ENT,		KC_SPC
+  ),
+
+/* Keymap 1: QWERTY
+ *
+ * ,--------------------------------------------------.         ,--------------------------------------------------.
+ * |        |      |      |      |      |      |      |         |      |      |      |      |      |      |   ESC  |
+ * |--------+------+------+------+------+-------------|         |------+------+------+------+------+------+--------|
+ * |        |   Q  |   W  |   E  |   R  |   T  |      |         |      |   Y  |   U  |   I  |   O  |   P  |        |
+ * |--------+------+------+------+------+------|      |         |      |------+------+------+------+------+--------|
+ * |  CAPS  |   A  |   S  |   D  |   F  |   G  |------|         |------|   H  |   J  |   K  |   L  |   ;  |        |
+ * |--------+------+------+------+------+------|      |         |      |------+------+------+------+------+--------|
+ * |        |CTL(Z)|GUI(X)|ALT(C)|   V  |   B  |      |         |      |   N  |   M  |  , < |ALT(.)|CTL(/)|        |
+ * `--------+------+------+------+------+-------------'         `-------------+------+------+------+------+--------'
+ *   |OSL(3)| TG(2)| TO(5)| TO(0)|      |                                     |      |      |      |      | TG(4)|
+ *   `----------------------------------'                                     `----------------------------------'
+ *                                      ,-------------.        ,--------------.
+ *                                      |      |      |        |      |       |
+ *                               ,------|------|------|        |------+-------+------.
+ *                               |      |      |      |        |      |       |      |
+ *                               |      |      |------|        |------|       |      |
+ *                               |      |      |      |        |      |       |      |
+ *                               `--------------------'        `---------------------'
+ */
+  [1] = LAYOUT_ergodox(
+	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,	KC_TRNS,	KC_TRNS,
+	KC_TRNS,	KC_Q,			KC_W,			KC_E,			KC_R,		KC_T,		KC_TRNS,
+	KC_CAPS,	KC_A,			KC_S,			KC_D,			KC_F,		KC_G,
+	KC_TRNS,	CTL_T(KC_Z),	GUI_T(KC_X),	ALT_T(KC_C),	KC_V,		KC_B,		KC_TRNS,
+	OSL(3),		TG(2),			TO(5),			TO(0),			KC_TRNS,
+																			KC_TRNS,	KC_TRNS,
+																						KC_TRNS,
+													KC_TRNS,				KC_TRNS,	KC_TRNS,
+
+	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		KC_ESC,
+	KC_RPRN,	KC_Y,		KC_U,		KC_I,		KC_O,			KC_P,			KC_TRNS,
+				KC_H,		KC_J,		KC_K,		KC_L,			KC_SCLN,		KC_TRNS,
+	KC_RBRC,	KC_N,		KC_M,		KC_COMM,	ALT_T(KC_DOT),	CTL_T(KC_SLSH),	KC_TRNS,
+							KC_TRNS,	KC_TRNS,	KC_TRNS,		KC_TRNS,		TG(4),
+	KC_TRNS,	KC_TRNS,
+	KC_TRNS,
+	KC_TRNS,	KC_TRNS,	KC_TRNS
+  ),
+
+/* Keymap 2: Function Row
+ *
+ * ,--------------------------------------------------.         ,--------------------------------------------------.
+ * |        |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |         |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |        |
+ * |--------+------+------+------+------+-------------|         |------+------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |      |         |      |      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |         |      |------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |------|         |------|      |      |      |      |      |        |
+ * |--------+------+------+------+------+------|      |         |      |------+------+------+------+------+--------|
+ * |        |      |      |      |      |      |      |         |      |      |      |      |      |      |        |
+ * `--------+------+------+------+------+-------------'         `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                     |      |      |      |      |      |
+ *   `----------------------------------'                                     `----------------------------------'
+ *                                      ,-------------.        ,--------------.
+ *                                      |      |      |        |      |       |
+ *                               ,------|------|------|        |------+-------+------.
+ *                               |      |      |      |        |      |       |      |
+ *                               |      |      |------|        |------|       |      |
+ *                               |      |      |      |        |      |       |      |
+ *                               `--------------------'        `---------------------'
+ */
+  [2] = LAYOUT_ergodox(
+	KC_TRNS,		KC_F1,			KC_F2,			KC_F3,			KC_F4,			KC_F5,			KC_F6,
+	KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,	
+	KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		
+	KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,	
+	KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,
+																					KC_TRNS,		KC_TRNS,
+																									KC_TRNS,
+																	KC_TRNS,		KC_TRNS,		KC_TRNS,
+
+	KC_F7,			KC_F8,			KC_F9,			KC_F10,			KC_F11,			KC_F12,			KC_TRNS,	
+	KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,
+					KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		
+	KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,
+									KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,	
+	KC_TRNS,		KC_TRNS,		
+	KC_TRNS,		
+	KC_TRNS,		KC_TRNS,		KC_TRNS	
+  ),
+
+  /* Keymap 3: Symbols
+ *
+ * ,--------------------------------------------------.         ,--------------------------------------------------.
+ * |        |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |         |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |        |
+ * |--------+------+------+------+------+-------------|         |------+------+------+------+------+------+--------|
+ * |        |  |   |  +   |  <   |  >   |  #   |      |         |      |   ~  |   (  |   )  |   \  |   :  |        |
+ * |--------+------+------+------+------+------|      |         |      |------+------+------+------+------+--------|
+ * |        |  !   |  -   |  =   |  %   |  @   |------|         |------|   _  |   {  |   }  |   /  |   ?  |        |
+ * |--------+------+------+------+------+------|      |         |      |------+------+------+------+------+--------|
+ * |        |  *   |  &   |  /   |  $   |  ^   |      |         |      |   |  |   [  |   ]  |      |      |        |
+ * `--------+------+------+------+------+-------------'         `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                     |      |      |      |      |      |
+ *   `----------------------------------'                                     `----------------------------------'
+ *                                      ,-------------.        ,--------------.
+ *                                      |      |      |        |      |       |
+ *                               ,------|------|------|        |------+-------+------.
+ *                               |      |      |      |        |      |       |      |
+ *                               |      |      |------|        |------|       |      |
+ *                               |      |      |      |        |      |       |      |
+ *                               `--------------------'        `---------------------'
+ */
+  [3] = LAYOUT_ergodox(
+	KC_TRNS,	KC_F1,		KC_F2,		KC_F3,		KC_F4,		KC_F5,		KC_F6,
+	KC_TRNS,	KC_PIPE,	KC_PLUS,	KC_LABK,	KC_RABK,	KC_HASH,	KC_TRNS,	
+	KC_TRNS,	KC_EXLM,	KC_MINS,	KC_EQL,		KC_PERC,	KC_AT,			
+	KC_TRNS,	KC_ASTR,	KC_AMPR,	KC_SLSH,	KC_DLR,		KC_CIRC,	KC_TRNS,	
+	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,
+																KC_TRNS,	KC_TRNS,
+																			KC_TRNS,
+														KC_TRNS,KC_TRNS,	KC_TRNS,
+
+	KC_F7,		KC_F8,		KC_F9,		KC_F10,		KC_F11,		KC_F12,		KC_TRNS,
+	KC_TRNS,	KC_TILD,	KC_LPRN,	KC_RPRN,	KC_BSLS,	KC_COLN,	KC_TRNS,
+				KC_UNDS,	KC_LCBR,	KC_RCBR,	KC_SLSH,	KC_QUES,	KC_TRNS,
+	KC_TRNS,	KC_PIPE,	KC_LBRC,	KC_RBRC,	KC_TRNS,	KC_TRNS,	KC_TRNS,
+							KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,
+	KC_TRNS,	KC_TRNS,
+	KC_TRNS,
+	KC_TRNS,	KC_TRNS,	KC_TRNS
+  ),
+
+/* Keymap 4: Numlock
+ *
+ * ,--------------------------------------------------.         ,--------------------------------------------------.
+ * | POWER  |SLEEP |      |MOUSE3|      |      | RESET|         |RESET |SCROL | NUML |  /   |  *   |  -   |        |
+ * |--------+------+------+------+------+-------------|         |------+------+------+------+------+------+--------|
+ * |        |      |MOUSE1|MOUSEU|MOUSE2|SCROLU|      |         |      |      |  7   |  8   |  9   |  +   | ACCEL0 |
+ * |--------+------+------+------+------+------|      |         |      |------+------+------+------+------+--------|
+ * |        |      |MOUSEL|MOUSED|MOUSER|SCROLD|------|         |------|      |  4   |  5   |  6   |  +   | ACCEL1 |
+ * |--------+------+------+------+------+------|      |         |      |------+------+------+------+------+--------|
+ * |        |      |ACCEL0|ACCEL1|ACCEL2|      |      |         |      |      |  1   |  2   |  3   |ENTER | ACCEL2 |
+ * `--------+------+------+------+------+-------------'         `-------------+------+------+------+------+--------'
+ *   |      |      |      |      |      |                                     |  0   |  0   |  .   |ENTER |      |
+ *   `----------------------------------'                                     `----------------------------------'
+ *                                      ,-------------.        ,-------------.
+ *                                      | VOL+ | VOL- |        |MEDIA<|MEDIA>|
+ *                               ,------|------|------|        |------+------+------.
+ *                               |      |      | MUTE |        |Pause |      |      |
+ *                               |      |      |------|        |------|      |      |
+ *                               |      |      |FILES |        | CALC |      |      |
+ *                               `--------------------'        `--------------------'
+ */
+  [4] = LAYOUT_ergodox(
+	KC_PWR,		KC_SLEP,	KC_TRNS,	KC_BTN3,	KC_TRNS,	KC_TRNS,	RESET,
+	KC_TRNS,	KC_TRNS,	KC_BTN1,	KC_MS_U,	KC_BTN2,	KC_WH_U,	KC_TRNS,
+	KC_TRNS,	KC_TRNS,	KC_MS_L,	KC_MS_D,	KC_MS_R,	KC_WH_D,
+	KC_TRNS,	KC_TRNS,	KC_ACL0,	KC_ACL1,	KC_ACL2,	KC_TRNS,	KC_TRNS,
+	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,
+																KC_VOLD,	KC_VOLU,
+																			KC_MUTE,
+													KC_TRNS,	KC_TRNS,	KC_MYCM,
+
+	RESET,		KC_SLCK,	KC_NLCK,	KC_SLSH,	KC_ASTR,	KC_MINS,	KC_TRNS,
+	KC_TRNS,	KC_TRNS,	KC_7,		KC_8,		KC_9,		KC_PLUS,	KC_ACL2,
+				KC_TRNS,	KC_4,		KC_5,		KC_6,		KC_PLUS,	KC_ACL1,
+	KC_TRNS,	KC_TRNS,	KC_1,		KC_2,		KC_3,		KC_ENT,		KC_ACL0,
+							KC_0,		KC_0,		KC_DOT,		KC_ENT,		KC_TRNS,
+	KC_MPRV,	KC_MNXT,
+	KC_MPLY,
+	KC_CALC,	KC_TRNS,	KC_TRNS
+  ),
+
+/* Keymap 5: Gaming
+ * ,--------------------------------------------------.        ,--------------------------------------------------.
+ * |   ` ~  |  1 ! | 2 @  | 3 #  | 4 $  | 5 %  |  6 ^ |        | 7 &  |  8 * | 9 (  |  0 ) | - _  | = +  |  ESC   |
+ * |--------+------+------+------+------+-------------|        |------+------+------+------+------+------+--------|
+ * |   TAB  |   Q  |   W  |   E  |   R  |   T  |      |        |      |   Y  |   U  |   I  |   O  |  P   |  \ |   |
+ * |--------+------+------+------+------+------|  (   |        |   )  |------+------+------+------+------+--------|
+ * |   LCTR |   A  |   S  |   D  |   F  |   G  |------|        |------|   H  |   J  |   K  |   L  |  ; : |  ' "   |
+ * |--------+------+------+------+------+------| MEDIA|        |   }  |------+------+------+------+------+--------|
+ * | LShift |   Z  |   X  |   C  |   V  |   B  |  P/P |        |   ]  |   K  |   M  |  UP  |  . > |  / ? | Shift  |
+ * `--------+------+------+------+------+-------------'        `-------------+------+------+------+------+--------'
+ *   | LCTR |ALTTAB| TO(0)| ALT  | SPACE|                                    | LEFT | DOWN | RIGHT|  , < |TO(0) |
+ *   `----------------------------------'                                    `----------------------------------'
+ *                                      ,--------------.       ,--------------.
+ *                                      |MEDIA<| MEDIA>|       | RALT | RCTR  |
+ *                               ,------|------|-------|       |------+-------+------.
+ *                               |      |      | VOL+  |       | PGUP |       |      |
+ *                               |SPACE |ENTER |-------|       |------|BSPACE |DELETE|
+ *                               |      |      | VOL-  |       | PGDWN|       |      |
+ *                               `---------------------'       `---------------------'
+ */
+  [5] = LAYOUT_ergodox(
+	KC_GRV,		KC_1,			KC_2,	KC_3,		KC_4,		KC_5,		KC_6,
+	KC_TAB,		KC_Q,			KC_W,	KC_E,		KC_R,		KC_T,		KC_TRNS,
+	KC_LCTL,	KC_A,			KC_S,	KC_D,		KC_F,		KC_G,			
+	KC_LSFT,	KC_Z,			KC_X,	KC_C,		KC_V,		KC_B,		KC_MPLY,		
+	KC_LCTL,	LALT(KC_TAB),	TO(0),	KC_LALT,	KC_SPC,
+																KC_MPRV,	KC_MNXT,
+																  			KC_VOLU,
+										  			KC_SPC,		KC_ENT,		KC_VOLD,
+
+	KC_7,		KC_8,		KC_9,		KC_0,		KC_MINS,	KC_EQL,		KC_ESC,
+	KC_TRNS,	KC_Y,		KC_U,		KC_I,		KC_O,		KC_P,		KC_BSLS,
+				KC_H,		KC_J,		KC_K,		KC_L,		KC_SCLN,	KC_QUOTE,
+	KC_TRNS,	KC_N,		KC_M,		KC_UP,		KC_DOT,		KC_SLSH,	KC_LSFT,
+							KC_LEFT,	KC_DOWN,	KC_RGHT,	KC_COMM,	TO(0),
+	KC_LALT,	KC_LCTL,
+	KC_PGUP,
+	KC_PGDOWN,	KC_BSPC,	KC_DEL
+  ),
+};
+
+void matrix_scan_user(void) {
+
+	uint8_t layer = biton32(layer_state);
+
+	ergodox_board_led_off();
+	ergodox_right_led_1_off();
+	ergodox_right_led_2_off();
+	ergodox_right_led_3_off();
+	switch (layer) {
+		case 1:
+			ergodox_right_led_1_on();
+			break;
+		case 2:
+			ergodox_right_led_2_on();
+			break;
+		case 3:
+			ergodox_right_led_3_on();
+			break;
+		case 4:
+			ergodox_right_led_1_on();
+			ergodox_right_led_2_on();
+			break;
+		case 5:
+			ergodox_right_led_1_on();
+			ergodox_right_led_3_on();
+			break;
+		case 6:
+			ergodox_right_led_2_on();
+			ergodox_right_led_3_on();
+			break;
+		default:
+			break;
+	}
+
+};

+ 138 - 0
layouts/community/ergodox/choromanski/readme.md

@@ -0,0 +1,138 @@
+# Choromanski
+
+## Features
+* Colemak
+* Qwerty
+* Toggable function row
+* Symbol layer programmer friendly
+* Numpad/Mouse layer with media controls
+* Gaming friendly layer
+
+## Layers
+
+### 0 Colemak
+```
+,--------------------------------------------------.         ,--------------------------------------------------.
+|   ` ~  |  1 ! | 2 @  | 3 #  | 4 $  | 5 %  |  6 ^ |         | 7 &  |  8 * | 9 (  |  0 ) | - _  | = +  | BSPACE |
+|--------+------+------+------+------+-------------|         |------+------+------+------+------+------+--------|
+|   TAB  |   Q  |   W  |   F  |   P  |   G  |      |         |      |   J  |   L  |   U  |   Y  |  ; : |  \ |   |
+|--------+------+------+------+------+------|  (   |         |   )  |------+------+------+------+------+--------|
+|   ESC  |   A  |   R  |   S  |   T  |   D  |------|         |------|   H  |   N  |   E  |   I  |   O  |  ' "   |
+|--------+------+------+------+------+------|  {   |         |   }  |------+------+------+------+------+--------|
+| Shift  |CTR(Z)|GUI(X)|ALT(C)|   V  |   B  |  [   |         |   ]  |   K  |   M  |  , < |ALT(.)|CTR(/)| Shift  |
+`--------+------+------+------+------+-------------'         `-------------+------+------+------+------+--------'
+  |OSL(3)| TG(2)| TO(5)| TO(1)| CAPS |                                      | LEFT | DOWN |  UP  |RIGHT |TG(4)|
+  `----------------------------------'                                      `---------------------------------'
+                                     ,--------------.       ,--------------.
+                                     | LCTR | LALT  |       | RALT | RCTR  |
+                              ,------|------|-------|       |------+-------+------.
+                              |      |      | MUTE  |       |SCROLU|       |      |
+                              |BSPACE|DELETE|-------|       |------| ENTER |SPACE |
+                              |      |      |  GUI  |       |SCROLD|       |      |
+                              `---------------------'       `---------------------'
+```
+### 1 Qwerty
+```
+,--------------------------------------------------.         ,--------------------------------------------------.
+|        |      |      |      |      |      |      |         |      |      |      |      |      |      |   ESC  |
+|--------+------+------+------+------+-------------|         |------+------+------+------+------+------+--------|
+|        |   Q  |   W  |   E  |   R  |   T  |      |         |      |   Y  |   U  |   I  |   O  |   P  |        |
+|--------+------+------+------+------+------|      |         |      |------+------+------+------+------+--------|
+|  CAPS  |   A  |   S  |   D  |   F  |   G  |------|         |------|   H  |   J  |   K  |   L  |   ;  |        |
+|--------+------+------+------+------+------|      |         |      |------+------+------+------+------+--------|
+|        |CTL(Z)|GUI(X)|ALT(C)|   V  |   B  |      |         |      |   N  |   M  |  , < |ALT(.)|CTL(/)|        |
+`--------+------+------+------+------+-------------'         `-------------+------+------+------+------+--------'
+  |OSL(3)| TG(2)| TO(5)| TO(0)|      |                                     |      |      |      |      | TG(4)|
+  `----------------------------------'                                     `----------------------------------'
+                                     ,-------------.        ,--------------.
+                                     |      |      |        |      |       |
+                              ,------|------|------|        |------+-------+------.
+                              |      |      |      |        |      |       |      |
+                              |      |      |------|        |------|       |      |
+                              |      |      |      |        |      |       |      |
+                              `--------------------'        `---------------------'
+```
+### 2 Function Lock
+```
+,--------------------------------------------------.         ,--------------------------------------------------.
+|        |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |         |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |        |
+|--------+------+------+------+------+-------------|         |------+------+------+------+------+------+--------|
+|        |      |      |      |      |      |      |         |      |      |      |      |      |      |        |
+|--------+------+------+------+------+------|      |         |      |------+------+------+------+------+--------|
+|        |      |      |      |      |      |------|         |------|      |      |      |      |      |        |
+|--------+------+------+------+------+------|      |         |      |------+------+------+------+------+--------|
+|        |      |      |      |      |      |      |         |      |      |      |      |      |      |        |
+`--------+------+------+------+------+-------------'         `-------------+------+------+------+------+--------'
+  |      |      |      |      |      |                                     |      |      |      |      |      |
+  `----------------------------------'                                     `----------------------------------'
+                                     ,-------------.        ,--------------.
+                                     |      |      |        |      |       |
+                              ,------|------|------|        |------+-------+------.
+                              |      |      |      |        |      |       |      |
+                              |      |      |------|        |------|       |      |
+                              |      |      |      |        |      |       |      |
+                              `--------------------'        `---------------------'
+```
+### 3 Symbols
+```
+,--------------------------------------------------.         ,--------------------------------------------------.
+|        |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |         |  F7  |  F8  |  F9  |  F10 |  F11 |  F12 |        |
+|--------+------+------+------+------+-------------|         |------+------+------+------+------+------+--------|
+|        |  |   |  +   |  <   |  >   |  #   |      |         |      |   ~  |   (  |   )  |   \  |   :  |        |
+|--------+------+------+------+------+------|      |         |      |------+------+------+------+------+--------|
+|        |  !   |  -   |  =   |  %   |  @   |------|         |------|   _  |   {  |   }  |   /  |   ?  |        |
+|--------+------+------+------+------+------|      |         |      |------+------+------+------+------+--------|
+|        |  *   |  &   |  /   |  $   |  ^   |      |         |      |   |  |   [  |   ]  |      |      |        |
+`--------+------+------+------+------+-------------'         `-------------+------+------+------+------+--------'
+  |      |      |      |      |      |                                     |      |      |      |      |      |
+  `----------------------------------'                                     `----------------------------------'
+                                     ,-------------.        ,--------------.
+                                     |      |      |        |      |       |
+                              ,------|------|------|        |------+-------+------.
+                              |      |      |      |        |      |       |      |
+                              |      |      |------|        |------|       |      |
+                              |      |      |      |        |      |       |      |
+                              `--------------------'        `---------------------'
+```
+### 4 Numpad/Mouse with Media Controls
+```
+,--------------------------------------------------.         ,--------------------------------------------------.
+| POWER  |SLEEP |      |MOUSE3|      |      | RESET|         |RESET |SCROL | NUML |  /   |   |  -   |        |
+|--------+------+------+------+------+-------------|         |------+------+------+------+------+------+--------|
+|        |      |MOUSE1|MOUSEU|MOUSE2|SCROLU|      |         |      |      |  7   |  8   |  9   |  +   | ACCEL0 |
+|--------+------+------+------+------+------|      |         |      |------+------+------+------+------+--------|
+|        |      |MOUSEL|MOUSED|MOUSER|SCROLD|------|         |------|      |  4   |  5   |  6   |  +   | ACCEL1 |
+|--------+------+------+------+------+------|      |         |      |------+------+------+------+------+--------|
+|        |      |ACCEL0|ACCEL1|ACCEL2|      |      |         |      |      |  1   |  2   |  3   |ENTER | ACCEL2 |
+`--------+------+------+------+------+-------------'         `-------------+------+------+------+------+--------'
+  |      |      |      |      |      |                                     |  0   |  0   |  .   |ENTER |      |
+  `----------------------------------'                                     `----------------------------------'
+                                     ,-------------.        ,-------------.
+                                     | VOL+ | VOL- |        |MEDIA<|MEDIA>|
+                              ,------|------|------|        |------+------+------.
+                              |      |      | MUTE |        |Pause |      |      |
+                              |      |      |------|        |------|      |      |
+                              |      |      |FILES |        | CALC |      |      |
+                              `--------------------'        `--------------------'
+```
+### 5 Gaming
+```
+,--------------------------------------------------.        ,--------------------------------------------------.
+|   ` ~  |  1 ! | 2 @  | 3 #  | 4 $  | 5 %  |  6 ^ |        | 7 &  |  8 * | 9 (  |  0 ) | - _  | = +  |  ESC   |
+|--------+------+------+------+------+-------------|        |------+------+------+------+------+------+--------|
+|   TAB  |   Q  |   W  |   E  |   R  |   T  |      |        |      |   Y  |   U  |   I  |   O  |  P   |  \ |   |
+|--------+------+------+------+------+------|  (   |        |   )  |------+------+------+------+------+--------|
+|   LCTR |   A  |   S  |   D  |   F  |   G  |------|        |------|   H  |   J  |   K  |   L  |  ; : |  ' "   |
+|--------+------+------+------+------+------| MEDIA|        |   }  |------+------+------+------+------+--------|
+| LShift |   Z  |   X  |   C  |   V  |   B  |  P/P |        |   ]  |   K  |   M  |  UP  |  . > |  / ? | Shift  |
+`--------+------+------+------+------+-------------'        `-------------+------+------+------+------+--------'
+  | LCTR |ALTTAB| TO(0)| ALT  | SPACE|                                    | LEFT | DOWN | RIGHT|  , < |TO(0) |
+  `----------------------------------'                                    `----------------------------------'
+                                     ,--------------.       ,--------------.
+                                     |MEDIA<| MEDIA>|       | RALT | RCTR  |
+                              ,------|------|-------|       |------+-------+------.
+                              |      |      | VOL+  |       | PGUP |       |      |
+                              |SPACE |ENTER |-------|       |------|BSPACE |DELETE|
+                              |      |      | VOL-  |       | PGDWN|       |      |
+                              `---------------------'       `---------------------'
+```

+ 62 - 0
layouts/community/ergodox/choromanski/visualizer.c

@@ -0,0 +1,62 @@
+/*
+Copyright 2017 Fred Sundvik
+
+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 "simple_visualizer.h"
+
+// This function should be implemented by the keymap visualizer
+// Don't change anything else than state->target_lcd_color and state->layer_text as that's the only thing
+// that the simple_visualizer assumes that you are updating
+// Also make sure that the buffer passed to state->layer_text remains valid until the previous animation is
+// stopped. This can be done by either double buffering it or by using constant strings
+static void get_visualizer_layer_and_color(visualizer_state_t* state) {
+
+    if (state->status.layer & 0x20) {
+        //GREEN
+        state->target_lcd_color = LCD_COLOR(85, 255, 128);
+        state->layer_text = "Gaming";
+    }
+    else if (state->status.layer & 0x10) {
+        //ORANGE
+        state->target_lcd_color = LCD_COLOR(28, 255, 230);
+        state->layer_text = "Numpad & Mouse";
+    }
+    else if (state->status.layer & 0x8) {
+        //YELLOW
+        state->target_lcd_color = LCD_COLOR(38, 255, 230);
+        state->layer_text = "Symbols";
+    }
+    else if (state->status.layer & 0x4) {
+        //RED
+        state->target_lcd_color = LCD_COLOR(0, 255, 95);
+        if (state->status.layer & 0x2){
+            state->layer_text = "Qwerty - Fn";
+        }else{
+            state->layer_text = "Colemak - Fn";
+        }
+    }
+    else if (state->status.layer & 0x2) {
+        //BLUE
+        state->target_lcd_color = LCD_COLOR(149, 255, 192);
+        state->layer_text = "Qwerty";
+    }
+    else {
+        //PURPLE
+        state->target_lcd_color = LCD_COLOR(200, 255, 192);
+        state->layer_text = "Colemak";
+    }
+}
+