summaryrefslogtreecommitdiffstats
path: root/keyboards
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards')
-rw-r--r--keyboards/atreus/keymaps/xyverz/keymap.c223
-rw-r--r--keyboards/atreus/keymaps/xyverz/readme.md107
-rw-r--r--keyboards/ergodox/config.h2
-rw-r--r--keyboards/ergodox/ez/rules.mk4
-rw-r--r--keyboards/ergodox/infinity/Makefile2
-rw-r--r--keyboards/ergodox/infinity/animations.c107
-rw-r--r--keyboards/ergodox/infinity/animations.h30
-rw-r--r--keyboards/ergodox/infinity/config.h4
-rw-r--r--keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c37
-rw-r--r--keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h80
-rw-r--r--keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c411
-rw-r--r--keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h11
-rw-r--r--keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h2
-rw-r--r--keyboards/ergodox/infinity/gfxconf.h2
-rw-r--r--keyboards/ergodox/infinity/infinity.c51
-rw-r--r--keyboards/ergodox/infinity/infinity.h71
-rw-r--r--keyboards/ergodox/infinity/rules.mk13
-rw-r--r--keyboards/ergodox/infinity/simple_visualizer.h123
-rw-r--r--keyboards/ergodox/infinity/visualizer.c329
-rw-r--r--keyboards/ergodox/keymaps/default/visualizer.c42
-rw-r--r--keyboards/ergodox/keymaps/familiar/README.md69
-rw-r--r--keyboards/ergodox/keymaps/familiar/familiar.pngbin0 -> 149846 bytes
-rw-r--r--keyboards/ergodox/keymaps/familiar/keymap.c267
-rw-r--r--keyboards/planck/keymaps/khord/config.h1
-rw-r--r--keyboards/planck/keymaps/khord/keymap.c42
-rw-r--r--keyboards/xd60/keymaps/default/keymap.c4
26 files changed, 1660 insertions, 374 deletions
diff --git a/keyboards/atreus/keymaps/xyverz/keymap.c b/keyboards/atreus/keymaps/xyverz/keymap.c
index 66fdebb50b..ed943eb669 100644
--- a/keyboards/atreus/keymaps/xyverz/keymap.c
+++ b/keyboards/atreus/keymaps/xyverz/keymap.c
@@ -12,49 +12,156 @@ extern keymap_config_t keymap_config;
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
-#define _DV 0
-#define _QW 1
-#define _CM 2
-#define _L1 3
-#define _L2 4
+#define _DVORAK 0
+#define _QWERTY 1
+#define _COLEMAK 2
+#define _DVORMAC 3
+#define _LOWER 4
+#define _RAISE 5
+#define _ADJUST 16
-// Macro name shortcuts
-#define DVORAK M(_DV)
-#define QWERTY M(_QW)
-#define COLEMAK M(_CM)
+enum planck_keycodes {
+ DVORAK = SAFE_RANGE,
+ QWERTY,
+ COLEMAK,
+ DVORMAC,
+ LOWER,
+ RAISE,
+ BACKLIT
+};
+
+// Adding macros to make the keymaps below much easier to read.
+#define SFTSCLN SFT_T(KC_SCLN)
+#define SFTSLSH SFT_T(KC_SLSH)
+#define SFTZED SFT_T(KC_Z)
+#define ALTENT ALT_T(KC_ENT)
+#define ESCTRL CTL_T(KC_ESC)
+#define TABALT ALT_T(KC_TAB)
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- [_DV] = { /* Dvorak */
- {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_NO, KC_F, KC_G, KC_C, KC_R, KC_L },
- {KC_A, KC_O, KC_E, KC_U, KC_I, KC_NO, KC_D, KC_H, KC_T, KC_N, KC_S },
- {SFT_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, CTL_T(KC_DEL), KC_B, KC_M, KC_W, KC_V, SFT_T(KC_Z) },
- {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_SLSH, KC_EQL}
+/* Dvorak Layer
+ ,----------------------------------. ,----------------------------------.
+ | ' | , | . | P | Y | | F | G | C | R | L |
+ |------+------+------+------+------| |------+------+------+------+------|
+ | A | O | E | U | I | | D | H | T | N | S |
+ |------+------+------+------+------|------.,------|------+------+------+------+------|
+ |SFT/ ;| Q | J | K | X | CTRL ||Alt / | B | M | W | V |SFT/ Z|
+ |------+------+------+------+------| ||Enter |------+------+------+------+------|
+ | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | / | \ |
+ `----------------------------------' `----------------------------------' */
+ [_DVORAK] = {
+ {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, XXXXXXX, KC_F, KC_G, KC_C, KC_R, KC_L },
+ {KC_A, KC_O, KC_E, KC_U, KC_I, XXXXXXX, KC_D, KC_H, KC_T, KC_N, KC_S },
+ {SFTSCLN, KC_Q, KC_J, KC_K, KC_X, KC_LCTL, KC_B, KC_M, KC_W, KC_V, SFTZED },
+ {ESCTRL, TABALT, KC_LGUI, LOWER, KC_BSPC, ALTENT, KC_SPC, RAISE, KC_MINS, KC_SLSH, KC_BSLS}
+ },
+
+/* QWERTY Layer
+ ,----------------------------------. ,----------------------------------.
+ | Q | W | E | R | T | | Y | U | I | O | P |
+ |------+------+------+------+------| |------+------+------+------+------|
+ | A | S | D | F | G | | H | J | K | L | ; |
+ |------+------+------+------+------|------.,------|------+------+------+------+------|
+ |SFT/ Z| X | C | V | B | CTRL ||Alt / | N | M | , | . |SFT/ /|
+ |------+------+------+------+------| ||Enter |------+------+------+------+------|
+ | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | ' | \ |
+ `----------------------------------' `----------------------------------' */
+ [_QWERTY] = {
+ {KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P },
+ {KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN},
+ {SFTZED, KC_X, KC_C, KC_V, KC_B, KC_LCTL, KC_N, KC_M, KC_COMM, KC_DOT, SFTSLSH},
+ {ESCTRL, TABALT, KC_LGUI, LOWER, KC_BSPC, ALTENT, KC_SPC, RAISE, KC_MINS, KC_QUOT, KC_BSLS}
+ },
+
+/* Colemak Layer
+ ,----------------------------------. ,----------------------------------.
+ | Q | W | F | P | G | | J | L | U | Y | L |
+ |------+------+------+------+------| |------+------+------+------+------|
+ | A | R | S | T | D | | H | N | E | I | S |
+ |------+------+------+------+------|------.,------|------+------+------+------+------|
+ |SFT/ Z| X | C | V | B | CTRL ||Alt / | K | M | , | . |SFT/ /|
+ |------+------+------+------+------| ||Enter |------+------+------+------+------|
+ | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | ' | \ |
+ `----------------------------------' `----------------------------------'*/
+ [_COLEMAK] = {
+ {KC_Q, KC_W, KC_F, KC_P, KC_G, XXXXXXX, KC_J, KC_L, KC_U, KC_Y, KC_SCLN},
+ {KC_A, KC_R, KC_S, KC_T, KC_D, XXXXXXX, KC_H, KC_N, KC_E, KC_I, KC_O },
+ {SFTZED, KC_X, KC_C, KC_V, KC_B, KC_LCTL, KC_K, KC_M, KC_COMM, KC_DOT, SFTSLSH},
+ {ESCTRL, TABALT, KC_LGUI, LOWER, KC_BSPC, ALTENT, KC_SPC, RAISE, KC_MINS, KC_QUOT, KC_BSLS}
},
- [_QW] = { /* Qwerty */
- {KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P },
- {KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN},
- {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_DEL), KC_N, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) },
- {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_EQL}
+
+/* Dvorak Layer with Command key on left thumb instead of Control
+ ,----------------------------------. ,----------------------------------.
+ | ' | , | . | P | Y | | F | G | C | R | L |
+ |------+------+------+------+------| |------+------+------+------+------|
+ | A | O | E | U | I | | D | H | T | N | S |
+ |------+------+------+------+------|------.,------|------+------+------+------+------|
+ |SFT/ ;| Q | J | K | X | CMD ||Alt / | B | M | W | V |SFT/ Z|
+ |------+------+------+------+------| ||Enter |------+------+------+------+------|
+ | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | / | \ |
+ `----------------------------------' `----------------------------------' */
+ [_DVORMAC] = {
+ {KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, XXXXXXX, KC_F, KC_G, KC_C, KC_R, KC_L },
+ {KC_A, KC_O, KC_E, KC_U, KC_I, XXXXXXX, KC_D, KC_H, KC_T, KC_N, KC_S },
+ {SFTSCLN, KC_Q, KC_J, KC_K, KC_X, KC_LGUI, KC_B, KC_M, KC_W, KC_V, SFTZED },
+ {ESCTRL, TABALT, KC_LGUI, LOWER, KC_BSPC, ALTENT, KC_SPC, RAISE, KC_MINS, KC_SLSH, KC_BSLS}
},
- [_CM] = { /* Colemak */
- {KC_Q, KC_W, KC_F, KC_P, KC_G, KC_NO, KC_J, KC_L, KC_U, KC_Y, KC_SCLN},
- {KC_A, KC_R, KC_S, KC_T, KC_D, KC_NO, KC_H, KC_N, KC_E, KC_I, KC_O },
- {SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, CTL_T(KC_DEL), KC_K, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH) },
- {KC_ESC, KC_TAB, KC_LGUI, MO(_L2), KC_BSPC, ALT_T(KC_ENT), KC_SPC, MO(_L1), KC_MINS, KC_QUOT, KC_EQL}
+
+/* LOWER Layer
+ ,----------------------------------. ,----------------------------------.
+ | ! | @ | # | $ | % | | ^ | & | * | ( | ) |
+ |------+------+------+------+------| |------+------+------+------+------|
+ | CAPS | | UP | | Home | | PgDn | | + | { | } |
+ |------+------+------+------+------|------.,------|------+------+------+------+------|
+ | | Left | Down | Right| End | || | PgUp | Mute | Vol- | Vol+ | |
+ |------+------+------+------+------| || |------+------+------+------+------|
+ | ~ | | | | Del |------'`------| Ins | | | | |
+ `----------------------------------' `----------------------------------'*/
+ [_LOWER] = {
+ {KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, XXXXXXX, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN},
+ {KC_CAPS, _______, KC_UP, _______, KC_HOME, XXXXXXX, KC_PGUP, _______, KC_PLUS, KC_LCBR, KC_RCBR},
+ {_______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, _______},
+ {KC_TILD, _______, _______, _______, KC_DEL, _______, KC_INS, _______, _______, _______, _______}
},
- [_L1] = { /* LAYER 1 */
- {KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0 },
- {KC_TAB, KC_INS, KC_UP, KC_DEL, KC_HOME, KC_NO, KC_PGUP, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSLS},
- {KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_LCTL, KC_PGDN, KC_MPRV, KC_MPLY, KC_MNXT, KC_BSLS},
- {KC_TRNS, KC_GRV, KC_LGUI, KC_TRNS, KC_DEL, KC_LALT, KC_SPC, KC_TRNS, KC_LBRC, KC_RBRC, KC_ENT }
+
+/* RAISE Layer
+ ,----------------------------------. ,----------------------------------.
+ | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |
+ |------+------+------+------+------| |------+------+------+------+------|
+ | CAPS | | UP | | Home | | PgDn | | = | [ | ] |
+ |------+------+------+------+------|------.,------|------+------+------+------+------|
+ | | Left | Down | Right| End | || | PgUp | Prev | Play | Next | |
+ |------+------+------+------+------| || |------+------+------+------+------|
+ | ` | | | | Del |------'`------| Ins | | | | |
+ `----------------------------------' `----------------------------------'*/
+ [_RAISE] = {
+ {KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_0 },
+ {KC_CAPS, _______, KC_UP, _______, KC_HOME, XXXXXXX, KC_PGUP, _______, KC_EQL, KC_LBRC, KC_RBRC},
+ {_______, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, KC_PGDN, KC_MPRV, KC_MPLY, KC_MNXT, _______},
+ {KC_GRV, _______, _______, _______, KC_DEL, _______, KC_INS, _______, _______, _______, _______}
},
- [_L2] = { /* LAYER 2 */
- {KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_NO, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN},
- {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_PIPE},
- {KC_TRNS, KC_TRNS, DVORAK, QWERTY, COLEMAK, KC_LCTL, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12 },
- {KC_TRNS, KC_TRNS, KC_LGUI, KC_TRNS, KC_BSPC, KC_LALT, KC_SPC, KC_TRNS, LSFT(KC_LBRC), LSFT(KC_RBRC), RESET}
+
+/* ADJUST Layer
+ ,----------------------------------. ,----------------------------------.
+ | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 |
+ |------+------+------+------+------| |------+------+------+------+------|
+ | F11 | | | | | | | PrSc | ScLk | Paus | F12 |
+ |------+------+------+------+------|------.,------|------+------+------+------+------|
+ | |QWERTY|COLEMK|DVORAK|DVORMC| || | | | | | |
+ |------+------+------+------+------| || |------+------+------+------+------|
+ | | | | | |------'`------| | | | | RESET|
+ `----------------------------------' `----------------------------------'*/
+ [_ADJUST] = {
+ {KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 },
+ {KC_F11, _______, _______, _______, _______, XXXXXXX, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_F12 },
+ {_______, QWERTY, COLEMAK, DVORAK, DVORMAC, _______, _______, _______, _______, _______, _______},
+ {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET }
}
+
};
const uint16_t PROGMEM fn_actions[] = {
@@ -66,24 +173,52 @@ void persistant_default_layer_set(uint16_t default_layer) {
default_layer_set(default_layer);
}
-const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
-{
- switch(id) {
- case _DV:
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_QWERTY);
+ }
+ return false;
+ break;
+ case COLEMAK:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_COLEMAK);
+ }
+ return false;
+ break;
+ case DVORAK:
+ if (record->event.pressed) {
+ persistant_default_layer_set(1UL<<_DVORAK);
+ }
+ return false;
+ break;
+ case DVORMAC:
if (record->event.pressed) {
- persistant_default_layer_set(1UL<<_DV);
+ persistant_default_layer_set(1UL<<_DVORMAC);
}
+ return false;
break;
- case _QW:
+ case LOWER:
if (record->event.pressed) {
- persistant_default_layer_set(1UL<<_QW);
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
+ return false;
break;
- case _CM:
+ case RAISE:
if (record->event.pressed) {
- persistant_default_layer_set(1UL<<_CM);
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
+ return false;
break;
}
- return MACRO_NONE;
+ return true;
};
diff --git a/keyboards/atreus/keymaps/xyverz/readme.md b/keyboards/atreus/keymaps/xyverz/readme.md
new file mode 100644
index 0000000000..ec7d836c17
--- /dev/null
+++ b/keyboards/atreus/keymaps/xyverz/readme.md
@@ -0,0 +1,107 @@
+# Xyverz's Atreus Keymap
+
+## About this keymap:
+
+This is the second iteration of my Atreus keymap. The first one was as close to the planck as I could get at the
+time, but still very much like the original Atreus keymap. I've managed to get things working better now and have
+implemented (more like copied) the RAISE/LOWER/ADJUST layers. This is a work in progress, but I think I'm closer
+to a final go with this.
+
+I'm using MOD_TAP quite a bit in this keymap. On all layers, R4 pinky keys use mod-tap and are SHIFT when held
+and their normal keys when tapped. In addition, ESC and TAB are also set as Ctrl and ALT respectively when held,
+and Enter/ALT on the right thumb key for all layers.
+
+I've enabled persistent keymaps for Qwerty, Dvorak and Colemak layers, similar to the default Planck layouts.
+
+Recently added: Documentation, Formatting, and another Dvorak layer that has Command on the left thumb, instead of
+Control.
+
+## Still to do:
+
+ * Enjoy this revision; figure out new things later.
+
+### Layer 0: Dvorak layer
+
+ ,----------------------------------. ,----------------------------------.
+ | ' | , | . | P | Y | | F | G | C | R | L |
+ |------+------+------+------+------| |------+------+------+------+------|
+ | A | O | E | U | I | | D | H | T | N | S |
+ |------+------+------+------+------|------.,------|------+------+------+------+------|
+ |Shft ;| Q | J | K | X | CTRL ||Alt / | B | M | W | V |Shft Z|
+ |------+------+------+------+------| ||Enter |------+------+------+------+------|
+ | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | / | \ |
+ `----------------------------------' `----------------------------------'
+
+### Layer 1: QWERTY layer
+
+ ,----------------------------------. ,----------------------------------.
+ | Q | W | E | R | T | | Y | U | I | O | P |
+ |------+------+------+------+------| |------+------+------+------+------|
+ | A | S | D | F | G | | H | J | K | L | ; |
+ |------+------+------+------+------|------.,------|------+------+------+------+------|
+ |Shft Z| X | C | V | B | CTRL ||Alt / | N | M | , | . |Shft /|
+ |------+------+------+------+------| ||Enter |------+------+------+------+------|
+ | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | ' | \ |
+ `----------------------------------' `----------------------------------'
+
+### Keymap 2: Colemak layer
+
+ ,----------------------------------. ,----------------------------------.
+ | Q | W | F | P | G | | J | L | U | Y | L |
+ |------+------+------+------+------| |------+------+------+------+------|
+ | A | R | S | T | D | | H | N | E | I | S |
+ |------+------+------+------+------|------.,------|------+------+------+------+------|
+ |Shft Z| X | C | V | B | CTRL ||Alt / | K | M | , | . |Shft /|
+ |------+------+------+------+------| ||Enter |------+------+------+------+------|
+ | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | ' | \ |
+ `----------------------------------' `----------------------------------'
+
+### Keymap 3: Dvorak for Mac layout
+
+ ,----------------------------------. ,----------------------------------.
+ | ' | , | . | P | Y | | F | G | C | R | L |
+ |------+------+------+------+------| |------+------+------+------+------|
+ | A | O | E | U | I | | D | H | T | N | S |
+ |------+------+------+------+------|------.,------|------+------+------+------+------|
+ |SFT/ ;| Q | J | K | X | CMD ||Alt / | B | M | W | V |SFT/ Z|
+ |------+------+------+------+------| ||Enter |------+------+------+------+------|
+ | Esc | Tab | GUI | LOWER| BkSp |------'`------| Spc | RAISE| - | / | \ |
+ `----------------------------------' `----------------------------------'
+
+### Keymap 4: LOWER layer
+
+ ,----------------------------------. ,----------------------------------.
+ | ! | @ | # | $ | % | | ^ | & | * | ( | ) |
+ |------+------+------+------+------| |------+------+------+------+------|
+ | CAPS | | UP | | Home | | PgDn | | + | { | } |
+ |------+------+------+------+------|------.,------|------+------+------+------+------|
+ | | Left | Down | Right| End | || | PgUp | Mute | Vol- | Vol+ | |
+ |------+------+------+------+------| || |------+------+------+------+------|
+ | ~ | | | | Del |------'`------| Ins | | | | |
+ `----------------------------------' `----------------------------------'
+
+
+### Keymap 5: RAISE layer
+
+ ,----------------------------------. ,----------------------------------.
+ | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |
+ |------+------+------+------+------| |------+------+------+------+------|
+ | CAPS | | UP | | Home | | PgDn | | = | [ | ] |
+ |------+------+------+------+------|------.,------|------+------+------+------+------|
+ | | Left | Down | Right| End | || | PgUp | Prev | Play | Next | |
+ |------+------+------+------+------| || |------+------+------+------+------|
+ | ` | | | | Del |------'`------| Ins | | | | |
+ `----------------------------------' `----------------------------------'
+
+### Keymap 6: ADJUST layer
+
+ ,----------------------------------. ,----------------------------------.
+ | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 |
+ |------+------+------+------+------| |------+------+------+------+------|
+ | F11 | | | | | | | PScr | SLck | Paus | F12 |
+ |------+------+------+------+------|------.,------|------+------+------+------+------|
+ | |QWERTY|COLEMK|DVORAK|DVORMC| || | | | | | |
+ |------+------+------+------+------| || |------+------+------+------+------|
+ | | | | | |------'`------| | | | | RESET|
+ `----------------------------------' `----------------------------------'
+
diff --git a/keyboards/ergodox/config.h b/keyboards/ergodox/config.h
index 3618598320..994a8c6433 100644
--- a/keyboards/ergodox/config.h
+++ b/keyboards/ergodox/config.h
@@ -34,4 +34,4 @@
#endif
-#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */ \ No newline at end of file
+#endif /* KEYBOARDS_ERGODOX_CONFIG_H_ */
diff --git a/keyboards/ergodox/ez/rules.mk b/keyboards/ergodox/ez/rules.mk
index 64b2db8158..6cd1c0c4f7 100644
--- a/keyboards/ergodox/ez/rules.mk
+++ b/keyboards/ergodox/ez/rules.mk
@@ -74,7 +74,3 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512
SLEEP_LED_ENABLE = no
API_SYSEX_ENABLE ?= no
RGBLIGHT_ENABLE ?= yes
-
-ifndef QUANTUM_DIR
- include ../../../Makefile
-endif
diff --git a/keyboards/ergodox/infinity/Makefile b/keyboards/ergodox/infinity/Makefile
index 191c6bb664..bd09e5885d 100644
--- a/keyboards/ergodox/infinity/Makefile
+++ b/keyboards/ergodox/infinity/Makefile
@@ -1,3 +1,3 @@
ifndef MAKEFILE_INCLUDED
include ../../../Makefile
-endif \ No newline at end of file
+endif
diff --git a/keyboards/ergodox/infinity/animations.c b/keyboards/ergodox/infinity/animations.c
new file mode 100644
index 0000000000..4c9f6d9c85
--- /dev/null
+++ b/keyboards/ergodox/infinity/animations.c
@@ -0,0 +1,107 @@
+/* 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/>.
+ */
+
+#if defined(VISUALIZER_ENABLE)
+
+#include "animations.h"
+#include "visualizer.h"
+#ifdef LCD_ENABLE
+#include "lcd_keyframes.h"
+#endif
+#ifdef LCD_BACKLIGHT_ENABLE
+#include "lcd_backlight_keyframes.h"
+#endif
+
+#ifdef LED_ENABLE
+#include "led_keyframes.h"
+#endif
+
+#include "visualizer_keyframes.h"
+
+
+#if defined(LCD_ENABLE) && defined(LCD_BACKLIGHT_ENABLE)
+
+// Don't worry, if the startup animation is long, you can use the keyboard like normal
+// during that time
+keyframe_animation_t default_startup_animation = {
+ .num_frames = 4,
+ .loop = false,
+ .frame_lengths = {0, 0, 0, gfxMillisecondsToTicks(5000), 0},
+ .frame_functions = {
+ lcd_keyframe_enable,
+ backlight_keyframe_enable,
+ lcd_keyframe_draw_logo,
+ backlight_keyframe_animate_color,
+ },
+};
+
+keyframe_animation_t default_suspend_animation = {
+ .num_frames = 4,
+ .loop = false,
+ .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0, 0},
+ .frame_functions = {
+ lcd_keyframe_display_layer_text,
+ backlight_keyframe_animate_color,
+ lcd_keyframe_disable,
+ backlight_keyframe_disable,
+ },
+};
+#endif
+
+#if defined(LED_ENABLE)
+#define CROSSFADE_TIME 1000
+#define GRADIENT_TIME 3000
+
+keyframe_animation_t led_test_animation = {
+ .num_frames = 14,
+ .loop = true,
+ .frame_lengths = {
+ gfxMillisecondsToTicks(1000), // fade in
+ gfxMillisecondsToTicks(1000), // no op (leds on)
+ gfxMillisecondsToTicks(1000), // fade out
+ gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade
+ gfxMillisecondsToTicks(GRADIENT_TIME), // left to rigt (outside in)
+ gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade
+ gfxMillisecondsToTicks(GRADIENT_TIME), // top_to_bottom
+ 0, // mirror leds
+ gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade
+ gfxMillisecondsToTicks(GRADIENT_TIME), // left_to_right (mirrored, so inside out)
+ gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade
+ gfxMillisecondsToTicks(GRADIENT_TIME), // top_to_bottom
+ 0, // normal leds
+ gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade
+
+ },
+ .frame_functions = {
+ led_keyframe_fade_in_all,
+ keyframe_no_operation,
+ led_keyframe_fade_out_all,
+ led_keyframe_crossfade,
+ led_keyframe_left_to_right_gradient,
+ led_keyframe_crossfade,
+ led_keyframe_top_to_bottom_gradient,
+ led_keyframe_mirror_orientation,
+ led_keyframe_crossfade,
+ led_keyframe_left_to_right_gradient,
+ led_keyframe_crossfade,
+ led_keyframe_top_to_bottom_gradient,
+ led_keyframe_normal_orientation,
+ led_keyframe_crossfade,
+ },
+};
+#endif
+
+#endif
diff --git a/keyboards/ergodox/infinity/animations.h b/keyboards/ergodox/infinity/animations.h
new file mode 100644
index 0000000000..6d8b9830d9
--- /dev/null
+++ b/keyboards/ergodox/infinity/animations.h
@@ -0,0 +1,30 @@
+/* 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/>.
+ */
+
+#ifndef KEYBOARDS_ERGODOX_INFINITY_ANIMATIONS_H_
+#define KEYBOARDS_ERGODOX_INFINITY_ANIMATIONS_H_
+
+#include "visualizer.h"
+
+// You can use these default animations, but of course you can also write your own custom ones instead
+extern keyframe_animation_t default_startup_animation;
+extern keyframe_animation_t default_suspend_animation;
+
+// An animation for testing and demonstrating the led support, should probably not be used for real world
+// cases
+extern keyframe_animation_t led_test_animation;
+
+#endif /* KEYBOARDS_ERGODOX_INFINITY_ANIMATIONS_H_ */
diff --git a/keyboards/ergodox/infinity/config.h b/keyboards/ergodox/infinity/config.h
index 9e264083be..95f713819e 100644
--- a/keyboards/ergodox/infinity/config.h
+++ b/keyboards/ergodox/infinity/config.h
@@ -40,7 +40,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* number of backlight levels */
#define BACKLIGHT_LEVELS 3
-#define LED_BRIGHTNESS_LO 15
+#define LED_BRIGHTNESS_LO 100
#define LED_BRIGHTNESS_HI 255
/* define if matrix has ghost */
@@ -54,6 +54,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// The visualizer needs gfx thread priorities
#define VISUALIZER_THREAD_PRIORITY (NORMAL_PRIORITY - 2)
+#define VISUALIZER_USER_DATA_SIZE 16
+
/*
* Feature disable options
* These options are also useful to firmware size reduction.
diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c
index 1d21f0c498..ea09c4bb0c 100644
--- a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c
+++ b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c
@@ -25,6 +25,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "board_IS31FL3731C.h"
+
+// Can't include led_tables from here
+extern const uint8_t CIE1931_CURVE[];
+
/*===========================================================================*/
/* Driver local definitions. */
/*===========================================================================*/
@@ -100,37 +104,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define IS31
-//Generated by http://jared.geek.nz/2013/feb/linear-led-pwm
-const unsigned char cie[256] = {
- 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 3, 3, 3, 3, 3, 3, 3,
- 3, 4, 4, 4, 4, 4, 4, 5, 5, 5,
- 5, 5, 6, 6, 6, 6, 6, 7, 7, 7,
- 7, 8, 8, 8, 8, 9, 9, 9, 10, 10,
- 10, 10, 11, 11, 11, 12, 12, 12, 13, 13,
- 13, 14, 14, 15, 15, 15, 16, 16, 17, 17,
- 17, 18, 18, 19, 19, 20, 20, 21, 21, 22,
- 22, 23, 23, 24, 24, 25, 25, 26, 26, 27,
- 28, 28, 29, 29, 30, 31, 31, 32, 32, 33,
- 34, 34, 35, 36, 37, 37, 38, 39, 39, 40,
- 41, 42, 43, 43, 44, 45, 46, 47, 47, 48,
- 49, 50, 51, 52, 53, 54, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
- 68, 70, 71, 72, 73, 74, 75, 76, 77, 79,
- 80, 81, 82, 83, 85, 86, 87, 88, 90, 91,
- 92, 94, 95, 96, 98, 99, 100, 102, 103, 105,
- 106, 108, 109, 110, 112, 113, 115, 116, 118, 120,
- 121, 123, 124, 126, 128, 129, 131, 132, 134, 136,
- 138, 139, 141, 143, 145, 146, 148, 150, 152, 154,
- 155, 157, 159, 161, 163, 165, 167, 169, 171, 173,
- 175, 177, 179, 181, 183, 185, 187, 189, 191, 193,
- 196, 198, 200, 202, 204, 207, 209, 211, 214, 216,
- 218, 220, 223, 225, 228, 230, 232, 235, 237, 240,
- 242, 245, 247, 250, 252, 255,
-};
-
-
/*===========================================================================*/
/* Driver local functions. */
/*===========================================================================*/
@@ -231,7 +204,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
uint8_t* src = PRIV(g)->frame_buffer;
for (int y=0;y<GDISP_SCREEN_HEIGHT;y++) {
for (int x=0;x<GDISP_SCREEN_WIDTH;x++) {
- PRIV(g)->write_buffer[get_led_address(g, x, y)]=cie[*src];
+ PRIV(g)->write_buffer[get_led_address(g, x, y)]=CIE1931_CURVE[*src];
++src;
}
}
diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h
index 290571ce5b..e8c17e6e33 100644
--- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h
+++ b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h
@@ -8,8 +8,6 @@
#ifndef _GDISP_LLD_BOARD_H
#define _GDISP_LLD_BOARD_H
-#include "print.h"
-
#define ST7565_LCD_BIAS ST7565_LCD_BIAS_9 // actually 6
#define ST7565_ADC ST756