]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Added choromanski keymap (#2528)
authorBrian Choromanski <BrianChoromanski@gmail.com>
Fri, 16 Mar 2018 20:35:44 +0000 (16:35 -0400)
committerJack Humbert <jack.humb@gmail.com>
Fri, 16 Mar 2018 20:35:44 +0000 (16:35 -0400)
* Added ergodox layout

* Added preonic layout

* Added readme for exgodox layout

* fixed errors with formatting readme

* Added edited preonic keymap & readme

keyboards/preonic/keymaps/choromanski/config.h [new file with mode: 0644]
keyboards/preonic/keymaps/choromanski/keymap.c [new file with mode: 0644]
keyboards/preonic/keymaps/choromanski/readme.md [new file with mode: 0644]
keyboards/preonic/keymaps/choromanski/rules.mk [new file with mode: 0644]
layouts/community/ergodox/choromanski/keymap.c [new file with mode: 0644]
layouts/community/ergodox/choromanski/readme.md [new file with mode: 0644]
layouts/community/ergodox/choromanski/visualizer.c [new file with mode: 0644]

diff --git a/keyboards/preonic/keymaps/choromanski/config.h b/keyboards/preonic/keymaps/choromanski/config.h
new file mode 100644 (file)
index 0000000..600cbea
--- /dev/null
@@ -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
\ No newline at end of file
diff --git a/keyboards/preonic/keymaps/choromanski/keymap.c b/keyboards/preonic/keymaps/choromanski/keymap.c
new file mode 100644 (file)
index 0000000..195fbee
--- /dev/null
@@ -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;
+};
\ No newline at end of file
diff --git a/keyboards/preonic/keymaps/choromanski/readme.md b/keyboards/preonic/keymaps/choromanski/readme.md
new file mode 100644 (file)
index 0000000..5b8d359
--- /dev/null
@@ -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  |
+`-----------------------------------------------------------------------------------'
+```
\ No newline at end of file
diff --git a/keyboards/preonic/keymaps/choromanski/rules.mk b/keyboards/preonic/keymaps/choromanski/rules.mk
new file mode 100644 (file)
index 0000000..9aae19d
--- /dev/null
@@ -0,0 +1,3 @@
+TAP_DANCE_ENABLE = yes
+MOUSEKEY_ENABLE = yes
+AUDIO_ENABLE = yes
diff --git a/layouts/community/ergodox/choromanski/keymap.c b/layouts/community/ergodox/choromanski/keymap.c
new file mode 100644 (file)
index 0000000..8be3c7e
--- /dev/null
@@ -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 (file)
index 0000000..848a667
--- /dev/null
@@ -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 (file)
index 0000000..e207c66
--- /dev/null
@@ -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";
+    }
+}
+