summary refs log tree commit diff
path: root/layouts
diff options
context:
space:
mode:
authorBrian Choromanski <BrianChoromanski@gmail.com>2018-03-16 16:35:44 -0400
committerJack Humbert <jack.humb@gmail.com>2018-03-16 16:35:44 -0400
commita3047f1ab35e2e9543dae78cd3336f2cd13e596c (patch)
treef676328608f669813bd52922c9e189d27a02704b /layouts
parent5d771039adf23fe9cb8de5843a3d799dc73a2fc7 (diff)
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
Diffstat (limited to 'layouts')
-rw-r--r--layouts/community/ergodox/choromanski/keymap.c284
-rw-r--r--layouts/community/ergodox/choromanski/readme.md138
-rw-r--r--layouts/community/ergodox/choromanski/visualizer.c62
3 files changed, 484 insertions, 0 deletions
diff --git a/layouts/community/ergodox/choromanski/keymap.c b/layouts/community/ergodox/choromanski/keymap.c
new file mode 100644
index 0000000000..8be3c7ea7e
--- /dev/null
+++ b/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;
+	}
+
+};
diff --git a/layouts/community/ergodox/choromanski/readme.md b/layouts/community/ergodox/choromanski/readme.md
new file mode 100644
index 0000000000..848a6670c9
--- /dev/null
+++ b/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|       |      |
+                              `---------------------'       `---------------------'
+```
\ No newline at end of file
diff --git a/layouts/community/ergodox/choromanski/visualizer.c b/layouts/community/ergodox/choromanski/visualizer.c
new file mode 100644
index 0000000000..e207c66822
--- /dev/null
+++ b/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";
+    }
+}
+