summaryrefslogtreecommitdiffstats
path: root/layouts
diff options
context:
space:
mode:
Diffstat (limited to 'layouts')
-rw-r--r--layouts/community/60_ansi/mechmerlin-ansi/keymap.c64
-rw-r--r--layouts/community/60_ansi/mechmerlin-ansi/readme.md11
-rw-r--r--layouts/community/60_ansi/mechmerlin-ansi/rules.mk1
-rw-r--r--layouts/community/60_ansi/talljoe-ansi/config.h1
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c35
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md3
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/rules.mk1
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/talljoe/config.h3
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c90
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/talljoe/rules.mk1
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.c23
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.h27
-rw-r--r--layouts/community/60_hhkb/talljoe-hhkb/config.h4
-rw-r--r--layouts/community/66_ansi/mechmerlin/keymap.c15
-rw-r--r--layouts/community/66_ansi/mechmerlin/rules.mk1
-rw-r--r--layouts/community/68_ansi/layout.json5
-rw-r--r--layouts/community/68_ansi/mechmerlin/keymap.c18
-rw-r--r--layouts/community/68_ansi/mechmerlin/rules.mk1
-rw-r--r--layouts/community/68_ansi/readme.md5
-rw-r--r--layouts/community/75_ansi/mechmerlin-75_ansi/keymap.c12
-rw-r--r--layouts/community/75_ansi/mechmerlin-75_ansi/rules.mk1
-rw-r--r--layouts/community/ergodox/333fred/keymap.c350
-rw-r--r--layouts/community/ergodox/333fred/visualizer.c14
-rw-r--r--layouts/community/ergodox/adam/config.h1
-rw-r--r--layouts/community/ergodox/adnw_p_u_q/config.h9
-rw-r--r--layouts/community/ergodox/adnw_p_u_q/keymap.c335
-rw-r--r--layouts/community/ergodox/adnw_p_u_q/readme.md17
-rw-r--r--layouts/community/ergodox/adnw_p_u_q/visualizer.c34
-rw-r--r--layouts/community/ergodox/albert/rules.mk3
-rw-r--r--layouts/community/ergodox/algernon/NEWS.md13
-rw-r--r--layouts/community/ergodox/algernon/images/adore-layer.pngbin0 -> 105611 bytes
-rw-r--r--layouts/community/ergodox/algernon/images/base-layer.pngbin0 -> 106956 bytes
-rw-r--r--layouts/community/ergodox/algernon/images/heatmap.pngbin0 -> 139351 bytes
-rw-r--r--layouts/community/ergodox/algernon/images/steno-layer.pngbin0 -> 64086 bytes
-rw-r--r--layouts/community/ergodox/algernon/keymap.c8
-rw-r--r--layouts/community/ergodox/algernon/readme.md12
-rw-r--r--layouts/community/ergodox/algernon/rules.mk4
-rw-r--r--layouts/community/ergodox/alphadox/config.h1
-rw-r--r--layouts/community/ergodox/alphadox/rules.mk4
-rw-r--r--layouts/community/ergodox/bepo/keymap.c2
-rw-r--r--layouts/community/ergodox/bepo_csa/keymap.c12
-rw-r--r--layouts/community/ergodox/bocaj/config.h4
-rw-r--r--layouts/community/ergodox/bocaj/keymap.c292
-rw-r--r--layouts/community/ergodox/bocaj/readme.md37
-rw-r--r--layouts/community/ergodox/bocaj/rules.mk5
-rw-r--r--layouts/community/ergodox/deadcyclo/rules.mk1
-rw-r--r--layouts/community/ergodox/drashna/config.h8
-rw-r--r--layouts/community/ergodox/drashna/keymap.c196
-rw-r--r--layouts/community/ergodox/drashna/rules.mk12
-rw-r--r--layouts/community/ergodox/drashna_glow/README.md1
-rw-r--r--layouts/community/ergodox/drashna_glow/config.h11
-rw-r--r--layouts/community/ergodox/drashna_glow/keymap.c67
-rw-r--r--layouts/community/ergodox/drashna_glow/rules.mk11
-rw-r--r--layouts/community/ergodox/dvorak_svorak_a5/keymap.c2
-rw-r--r--layouts/community/ergodox/erez_experimental/rules.mk3
-rw-r--r--layouts/community/ergodox/familiar/rules.mk1
-rw-r--r--layouts/community/ergodox/mclennon_osx/README.md4
-rw-r--r--layouts/community/ergodox/meagerfindings/README.md109
-rw-r--r--layouts/community/ergodox/meagerfindings/config.h26
-rw-r--r--layouts/community/ergodox/meagerfindings/keymap.c558
-rw-r--r--layouts/community/ergodox/meagerfindings/rules.mk3
-rw-r--r--layouts/community/ergodox/qwerty_code_friendly/keymap.c28
-rw-r--r--layouts/community/ergodox/qwerty_code_friendly/readme.md29
-rw-r--r--layouts/community/ergodox/swedish-lindhe/keymap.c2
-rw-r--r--layouts/community/ergodox/swedish/keymap.c2
-rw-r--r--layouts/community/ergodox/techtomas/readme.md2
-rw-r--r--layouts/community/ortho_3x10/wanleg/readme.md9
-rw-r--r--layouts/community/ortho_4x12/bakingpy/rules.mk8
-rw-r--r--layouts/community/ortho_4x12/buswerks/keymap.c56
-rw-r--r--layouts/community/ortho_4x12/buswerks/rules.mk9
-rw-r--r--layouts/community/ortho_4x12/drashna/config.h20
-rw-r--r--layouts/community/ortho_4x12/drashna/keymap.c240
-rw-r--r--layouts/community/ortho_4x12/drashna/rules.mk13
-rw-r--r--layouts/community/ortho_4x12/grahampheath/config.h2
-rw-r--r--layouts/community/ortho_4x12/grahampheath/keymap.c22
-rw-r--r--layouts/community/ortho_4x12/guidoism/generate_c.py59
-rw-r--r--layouts/community/ortho_4x12/guidoism/guidoism.json1
-rw-r--r--layouts/community/ortho_4x12/guidoism/keymap.c96
-rw-r--r--layouts/community/ortho_4x12/mindsound/config.h33
-rw-r--r--layouts/community/ortho_4x12/mindsound/flicker.h5
-rw-r--r--layouts/community/ortho_4x12/mindsound/keymap.c230
-rw-r--r--layouts/community/ortho_4x12/mindsound/readme.md19
-rw-r--r--layouts/community/ortho_4x12/mindsound/rules.mk26
-rw-r--r--layouts/community/ortho_4x12/symbolic/README.md70
-rw-r--r--layouts/community/ortho_4x12/symbolic/config.h43
-rw-r--r--layouts/community/ortho_4x12/symbolic/keymap.c171
-rw-r--r--layouts/community/ortho_4x12/wanleg/config.h34
-rw-r--r--layouts/community/ortho_4x12/wanleg/keymap.c32
-rw-r--r--layouts/community/ortho_4x12/wanleg/readme.md40
-rw-r--r--layouts/community/ortho_4x12/wanleg/rules.mk10
-rw-r--r--layouts/community/ortho_4x12/xyverz/rules.mk2
-rw-r--r--layouts/community/ortho_5x10/layout.json5
-rw-r--r--layouts/community/ortho_5x10/readme.md3
-rw-r--r--layouts/community/ortho_5x12/drashna/config.h16
-rw-r--r--layouts/community/ortho_5x12/drashna/keymap.c156
-rw-r--r--layouts/community/ortho_5x12/drashna/rules.mk23
-rw-r--r--layouts/community/ortho_5x12/xyverz/config.h22
-rw-r--r--layouts/community/ortho_5x15/wanleg/config.h17
-rw-r--r--layouts/community/ortho_5x15/wanleg/keymap.c188
-rw-r--r--layouts/community/ortho_5x15/wanleg/rules.mk12
-rw-r--r--layouts/community/ortho_5x5/layout.json1
-rw-r--r--layouts/community/ortho_5x5/readme.md3
-rw-r--r--layouts/community/planck_mit/guidoism/config.h (renamed from layouts/community/ortho_4x12/guidoism/config.h)22
-rw-r--r--layouts/community/planck_mit/guidoism/generate_c.py75
-rw-r--r--layouts/community/planck_mit/guidoism/guidoism.json1
-rw-r--r--layouts/community/planck_mit/guidoism/keymap.c183
-rw-r--r--layouts/community/planck_mit/guidoism/keys.json (renamed from layouts/community/ortho_4x12/guidoism/keys.json)29
-rw-r--r--layouts/community/planck_mit/guidoism/readme.md (renamed from layouts/community/ortho_4x12/guidoism/readme.md)63
-rw-r--r--layouts/community/tkl_ansi/talljoe-tkl/config.h1
-rw-r--r--layouts/community/tkl_ansi/talljoe-tkl/keymap.c90
-rw-r--r--layouts/default/60_ansi_tsangan/default_60_ansi_tsangan/keymap.c11
-rw-r--r--layouts/default/60_ansi_tsangan/layout.json5
-rw-r--r--layouts/default/60_ansi_tsangan/readme.md3
-rw-r--r--layouts/default/60_iso_tsangan/default_60_iso_tsangan/keymap.c11
-rw-r--r--layouts/default/60_iso_tsangan/layout.json5
-rw-r--r--layouts/default/60_iso_tsangan/readme.md3
-rw-r--r--layouts/default/60_tsangan_hhkb/default_60_tsangan_hhkb/keymap.c21
-rw-r--r--layouts/default/60_tsangan_hhkb/layout.json5
-rw-r--r--layouts/default/60_tsangan_hhkb/readme.md3
-rw-r--r--layouts/default/65_ansi/default_65_ansi/keymap.c11
-rw-r--r--layouts/default/65_ansi/layout.json5
-rw-r--r--layouts/default/65_ansi/readme.md5
-rw-r--r--layouts/default/68_ansi/default_68_ansi/keymap.c8
-rw-r--r--layouts/default/68_ansi/layout.json10
-rw-r--r--layouts/default/68_ansi/readme.md4
-rw-r--r--layouts/default/ortho_4x10/default_ortho_4x10/keymap.c10
-rw-r--r--layouts/default/ortho_4x10/layout.json4
-rw-r--r--layouts/default/ortho_4x10/readme.md3
-rw-r--r--layouts/default/tkl_iso/default_tkl_iso/keymap.c2
129 files changed, 3670 insertions, 1174 deletions
diff --git a/layouts/community/60_ansi/mechmerlin-ansi/keymap.c b/layouts/community/60_ansi/mechmerlin-ansi/keymap.c
index 47316915c..12ed68680 100644
--- a/layouts/community/60_ansi/mechmerlin-ansi/keymap.c
+++ b/layouts/community/60_ansi/mechmerlin-ansi/keymap.c
@@ -1,52 +1,26 @@
#include QMK_KEYBOARD_H
-
-#define BASE 0
-#define FN 1
-#define ARROWS 2
-
-enum keycodes {
- KC_FNX, // Hold for FN layer, tap to toggle ARROWS layer.
-};
+#include "mechmerlin.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[BASE] = LAYOUT_60_ansi(
- KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLASH, \
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
- KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_FNX, KC_RALT, KC_RGUI, KC_RCTL),
-
-[FN] = LAYOUT_60_ansi(
- KC_GRV, 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_DEL, \
- RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
-[ARROWS] = LAYOUT_60_ansi(
+[_BL] = LAYOUT_60_ansi(
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLASH, \
+ KC_CTCP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_FNX, KC_RALT, KC_RGUI, KC_RCTL),
+
+[_FL] = LAYOUT_60_ansi(
+ KC_GRV, 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_DEL, \
+ RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+
+[_AL] = LAYOUT_60_ansi(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RSFT_T(KC_UP), \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT)
};
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- static uint16_t fnx_layer_timer;
-
- switch (keycode){
- case KC_FNX:
- if(record->event.pressed){
- fnx_layer_timer = timer_read();
- layer_on(FN);
- } else {
- layer_off(FN);
- if (timer_elapsed(fnx_layer_timer) < 150) {
- layer_invert(ARROWS);
- }
- }
- return false;
- }
- return true;
-} \ No newline at end of file
diff --git a/layouts/community/60_ansi/mechmerlin-ansi/readme.md b/layouts/community/60_ansi/mechmerlin-ansi/readme.md
index c81a126d5..aefd6a992 100644
--- a/layouts/community/60_ansi/mechmerlin-ansi/readme.md
+++ b/layouts/community/60_ansi/mechmerlin-ansi/readme.md
@@ -5,13 +5,14 @@ This is the 60% layout used by u/merlin36, host of the [MechMerlin](www.youtube.
YouTube channel.
It is used on his
-[Duck Eagle V2](https://github.com/qmk/qmk_firmware/tree/master/keyboards/eagle_viper/v2)
-[KBP V60 Type R Polestar](https://github.com/qmk/qmk_firmware/tree/master/keyboards/v60_type_r)
-[NPKC KC60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kc60)
+[Duck Eagle V2](https://github.com/qmk/qmk_firmware/tree/master/keyboards/eagle_viper/v2)
+[NPKC KC60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kc60)
+[1up60HSE](https://github.com/qmk/qmk_firmware/tree/master/keyboards/1upkeyboards/1up60hse)
+[HS60 V1](https://github.com/qmk/qmk_firmware/tree/master/keyboards/hs60/v1)
## Keymap Notes
-- Highly influenced by the KBP V60 and WKL B.Face standard layouts
-- Arrow toggle switch is FN + Space
+- Arrow toggle switch is tapping the `FN` key once.
+- `Caps Lock` can be held to act as a `Left Control`
### Build
To build the firmware file associated with this keymap, simply run `make your_keyboard:mechmerlin-ansi`.
diff --git a/layouts/community/60_ansi/mechmerlin-ansi/rules.mk b/layouts/community/60_ansi/mechmerlin-ansi/rules.mk
new file mode 100644
index 000000000..e2ce3d773
--- /dev/null
+++ b/layouts/community/60_ansi/mechmerlin-ansi/rules.mk
@@ -0,0 +1 @@
+USER_NAME := mechmerlin \ No newline at end of file
diff --git a/layouts/community/60_ansi/talljoe-ansi/config.h b/layouts/community/60_ansi/talljoe-ansi/config.h
index 1990b0ee3..4326a2fd1 100644
--- a/layouts/community/60_ansi/talljoe-ansi/config.h
+++ b/layouts/community/60_ansi/talljoe-ansi/config.h
@@ -3,7 +3,6 @@
#include QMK_KEYBOARD_CONFIG_H
-#define PREVENT_STUCK_MODIFIERS
#define ENABLE_GAME_LAYER
#define TEMPLATE( \
diff --git a/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c b/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c
index 4c6458c9b..96c3a32f2 100644
--- a/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c
+++ b/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/keymap.c
@@ -1,29 +1,26 @@
#include QMK_KEYBOARD_H
-
-#define BASE 0
-#define FN 1
-#define ARROWS 2
+#include "mechmerlin.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[BASE] = LAYOUT_60_ansi_split_bs_rshift(
- KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_NO, KC_BSPC, \
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLASH, \
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TG(2), \
+[_BL] = LAYOUT_60_ansi_split_bs_rshift(
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLASH, \
+ KC_CTCP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TG(2), \
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(1), KC_RALT, KC_RGUI, KC_RCTL),
-[FN] = LAYOUT_60_ansi_split_bs_rshift(
- KC_GRV, 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_NO, KC_DEL, \
- RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, \
+[_FL] = LAYOUT_60_ansi_split_bs_rshift(
+ KC_GRV, 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_DEL, KC_DEL, \
+ RGB_TOG, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-[ARROWS] = LAYOUT_60_ansi_split_bs_rshift(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, \
+[_AL] = LAYOUT_60_ansi_split_bs_rshift(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RSFT_T(KC_UP), KC_TRNS, \
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT)
};
diff --git a/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md b/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md
index 9f7cef347..855fd5ac9 100644
--- a/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md
+++ b/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/readme.md
@@ -6,7 +6,8 @@ host of the [MechMerlin](www.youtube.com/mechmerlin) YouTube channel.
It is used on his
[Sentraq S60-X RGB](https://github.com/qmk/qmk_firmware/tree/master/keyboards/s60_x)
-[MechanicalKeyboards.com FaceW](https://github.com/qmk/qmk_firmware/tree/master/keyboards/bfake)
+[Zeal60 Rev4](https://github.com/qmk/qmk_firmware/tree/master/keyboards/zeal60)
+[DO60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/do60)
## Keymap Notes
- Highly influenced by the KBP V60 and WKL B.Face standard layouts
diff --git a/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/rules.mk b/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/rules.mk
new file mode 100644
index 000000000..e2ce3d773
--- /dev/null
+++ b/layouts/community/60_ansi_split_bs_rshift/mechmerlin-split/rules.mk
@@ -0,0 +1 @@
+USER_NAME := mechmerlin \ No newline at end of file
diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h b/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h
index 81ab5cf89..65568d3ab 100644
--- a/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h
+++ b/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h
@@ -3,7 +3,6 @@
#include QMK_KEYBOARD_CONFIG_H
-#define PREVENT_STUCK_MODIFIERS
#define ENABLE_GAME_LAYER
#define TEMPLATE( \
@@ -35,7 +34,7 @@
{ K40, K41, K42, {}, {}, {}, {}, K47, {}, {}, K4A, K4B, K4C, K4D } \
}
-#ifdef KEYBOARD_zeal60
+#if defined (RGB_BACKLIGHT_ZEAL60) || defined (RGB_BACKLIGHT_M60_A)
#define ZEAL_RGB
diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c b/layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c
index b5dc54492..7812add81 100644
--- a/layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c
+++ b/layouts/community/60_ansi_split_bs_rshift/talljoe/keymap.c
@@ -1,89 +1 @@
-#ifdef KEYBOARD_zeal60
-#include "config.h"
-#include "zeal60.h"
-#include "zeal_backlight.h"
-#include "action_layer.h"
-#include "solarized.h"
-#include "talljoe.h"
-
-// from zeal_backlight.c
-// we want to be able to set indicators for the spacebar stabs
-// but they are not represented by a row/index.
-extern zeal_backlight_config g_config;
-void map_row_column_to_led( uint8_t row, uint8_t column, uint8_t *led );
-
-void set_backlight_defaults(void) {
- uint8_t space;
- uint8_t caps_lock;
- map_row_column_to_led(3, 12, &caps_lock);
- map_row_column_to_led(4, 7, &space);
- zeal_backlight_config default_values = {
- .use_split_backspace = USE_SPLIT_BACKSPACE,
- .use_split_left_shift = USE_SPLIT_LEFT_SHIFT,
- .use_split_right_shift = USE_SPLIT_RIGHT_SHIFT,
- .use_7u_spacebar = USE_7U_SPACEBAR,
- .use_iso_enter = USE_ISO_ENTER,
- .disable_when_usb_suspended = 1,
- .disable_after_timeout = 0,
- .brightness = 255,
- .effect = 10,
- .color_1 = solarized.base2,
- .color_2 = solarized.base02,
- .caps_lock_indicator = { .index = caps_lock, .color = solarized.red },
- .layer_1_indicator = { .index = space, .color = solarized.blue },
- .layer_2_indicator = { .index = space, .color = solarized.yellow },
- .layer_3_indicator = { .index = 254, .color = solarized.red },
- .alphas_mods = {
- BACKLIGHT_ALPHAS_MODS_ROW_0,
- BACKLIGHT_ALPHAS_MODS_ROW_1,
- BACKLIGHT_ALPHAS_MODS_ROW_2,
- BACKLIGHT_ALPHAS_MODS_ROW_3,
- BACKLIGHT_ALPHAS_MODS_ROW_4 }
- };
- memcpy(&g_config, &default_values, sizeof(zeal_backlight_config));
- backlight_config_save();
-
- solarized_t* S = &solarized;
- HSV alphas = S->base2;
- HSV custom_color_map[MATRIX_ROWS][MATRIX_COLS] = CM(
- S->red, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->red,
- S->orange, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->orange,
- S->green, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->green,
- S->blue, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->blue, S->blue,
- S->violet, S->magenta, S->yellow, alphas, S->yellow, S->magenta, S->violet, S->green
- );
- for (uint8_t row = 0; row < MATRIX_ROWS; ++row) {
- for (uint8_t col = 0; col < MATRIX_COLS; ++col) {
- backlight_set_key_color(row, col, custom_color_map[row][col]);
- }
- }
-}
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- static uint8_t last_effect;
- switch (keycode) {
- case DFAULTS:
- if (IS_PRESSED(record->event)) set_backlight_defaults();
- return false;
- case BL_TOGG:
- if (IS_PRESSED(record->event)) {
- if (g_config.effect) {
- last_effect = g_config.effect;
- g_config.effect = 0;
- } else {
- g_config.effect = last_effect;
- }
- }
- return false;
- case EFFECT...EFFECT_END:
- if (IS_PRESSED(record->event)) {
- uint8_t effect = keycode - EFFECT;
- g_config.effect = effect;
- backlight_config_save();
- }
- return false;
- }
-
- return true;
-}
-#endif
+// This space intentionally left blank
diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/rules.mk b/layouts/community/60_ansi_split_bs_rshift/talljoe/rules.mk
new file mode 100644
index 000000000..239f03091
--- /dev/null
+++ b/layouts/community/60_ansi_split_bs_rshift/talljoe/rules.mk
@@ -0,0 +1 @@
+SRC += $(KEYMAP_PATH)/solarized.c
diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.c b/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.c
new file mode 100644
index 000000000..3e9e726b9
--- /dev/null
+++ b/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.c
@@ -0,0 +1,23 @@
+#include "solarized.h"
+
+#define MAKE_COLOR(_H, _S, _V) \
+ { .h = (((uint32_t)_H) * 255) / 360, .s = (((uint16_t)_S) * 255) / 100, .v = (((uint16_t)_V) * 255) / 100 }
+
+solarized_t solarized = {
+ .base03 = MAKE_COLOR(193, 100, 21),
+ .base02 = MAKE_COLOR(192, 90, 26),
+ .base01 = MAKE_COLOR(194, 25, 46),
+ .base00 = MAKE_COLOR(195, 23, 51),
+ .base0 = MAKE_COLOR(186, 13, 59),
+ .base1 = MAKE_COLOR(180, 9, 63),
+ .base2 = MAKE_COLOR( 44, 11, 93),
+ .base3 = MAKE_COLOR( 44, 10, 99),
+ .yellow = MAKE_COLOR( 45, 100, 71),
+ .orange = MAKE_COLOR( 18, 89, 80),
+ .red = MAKE_COLOR( 1, 79, 86),
+ .magenta = MAKE_COLOR(331, 74, 83),
+ .violet = MAKE_COLOR(237, 45, 77),
+ .blue = MAKE_COLOR(205, 82, 82),
+ .cyan = MAKE_COLOR(175, 74, 63),
+ .green = MAKE_COLOR( 68, 100, 60),
+};
diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.h b/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.h
new file mode 100644
index 000000000..3b00caea7
--- /dev/null
+++ b/layouts/community/60_ansi_split_bs_rshift/talljoe/solarized.h
@@ -0,0 +1,27 @@
+#ifndef SOLARIZED_H
+#define SOLARIZED_H
+
+#include "quantum/color.h"
+
+typedef struct {
+ HSV base03;
+ HSV base02;
+ HSV base01;
+ HSV base00;
+ HSV base0;
+ HSV base1;
+ HSV base2;
+ HSV base3;
+ HSV yellow;
+ HSV orange;
+ HSV red;
+ HSV magenta;
+ HSV violet;
+ HSV blue;
+ HSV cyan;
+ HSV green;
+} solarized_t;
+
+extern solarized_t solarized;
+
+#endif
diff --git a/layouts/community/60_hhkb/talljoe-hhkb/config.h b/layouts/community/60_hhkb/talljoe-hhkb/config.h
index 938ea6cd6..54756a940 100644
--- a/layouts/community/60_hhkb/talljoe-hhkb/config.h
+++ b/layouts/community/60_hhkb/talljoe-hhkb/config.h
@@ -3,7 +3,6 @@
#include QMK_KEYBOARD_CONFIG_H
-#define PREVENT_STUCK_MODIFIERS
#define ENABLE_GAME_LAYER
#define TEMPLATE( \
@@ -20,4 +19,7 @@
K41, K42, K45, K48, K4C \
)
+#ifdef RGB_BACKLIGHT_M60_A
+ #define ZEAL_RGB
+#endif
#endif //CONFIG_USER_H
diff --git a/layouts/community/66_ansi/mechmerlin/keymap.c b/layouts/community/66_ansi/mechmerlin/keymap.c
index b8142f967..ea2e923b1 100644
--- a/layouts/community/66_ansi/mechmerlin/keymap.c
+++ b/layouts/community/66_ansi/mechmerlin/keymap.c
@@ -1,32 +1,23 @@
#include QMK_KEYBOARD_H
+#include "mechmerlin.h"
-// Each layer gets a name for readability, which is then used in the keymap matrix below.
-// The underscores don't mean anything - you can have a layer called STUFF or any other name.
-#define _BL 0
-#define _FL 1
#define _CL 2
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Keymap _BL: Base Layer (Default Layer)
- */
[_BL] = LAYOUT_66_ansi(
KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_PGUP, \
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, KC_PGDN, \
- KC_LCTL,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \
+ KC_CTCP,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT, \
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
KC_LCTL,KC_LGUI,KC_LALT, KC_SPC, MO(_FL),KC_RGUI,KC_RCTL,KC_LEFT,KC_DOWN,KC_RGHT),
- /* Keymap _FL: Function Layer
- */
[_FL] = LAYOUT_66_ansi(
KC_GRV, 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_DEL, KC_VOLU, \
_______,_______,_______,_______,_______,_______,_______,_______,_______,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_MUTE, KC_VOLD, \
- KC_CAPS,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
+ _______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
_______, _______,_______,_______,_______,_______,_______,KC_MUTE,KC_VOLU,KC_VOLD,_______, _______, KC_PGUP, \
_______,_______,_______, _______, _______,_______,_______,KC_HOME,KC_PGDN,KC_END),
- /* Keymap _CL: Control layer
- */
[_CL] = LAYOUT_66_ansi(
BL_STEP,RGB_M_P,RGB_M_B,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, _______, RGB_VAI, \
RGB_TOG,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_VAD, \
diff --git a/layouts/community/66_ansi/mechmerlin/rules.mk b/layouts/community/66_ansi/mechmerlin/rules.mk
new file mode 100644
index 000000000..e2ce3d773
--- /dev/null
+++ b/layouts/community/66_ansi/mechmerlin/rules.mk
@@ -0,0 +1 @@
+USER_NAME := mechmerlin \ No newline at end of file
diff --git a/layouts/community/68_ansi/layout.json b/layouts/community/68_ansi/layout.json
new file mode 100644
index 000000000..f81ee0bcb
--- /dev/null
+++ b/layouts/community/68_ansi/layout.json
@@ -0,0 +1,5 @@
+[{a:7},"","","","","","","","","","","","","",{w:2},"",{x:0.25},"",""],
+[{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",{x:0.25},"",""],
+[{w:1.75},"","","","","","","","","","","","",{w:2.25},""],
+[{w:2.25},"","","","","","","","","","","",{w:2.75},"",{x:0.25},""],
+[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{x:0.5},"","",""]
diff --git a/layouts/community/68_ansi/mechmerlin/keymap.c b/layouts/community/68_ansi/mechmerlin/keymap.c
new file mode 100644
index 000000000..5059bd7d8
--- /dev/null
+++ b/layouts/community/68_ansi/mechmerlin/keymap.c
@@ -0,0 +1,18 @@
+#include QMK_KEYBOARD_H
+#include "mechmerlin.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_BL] = LAYOUT_68_ansi(\
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_PGDN,
+ KC_CTCP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FL), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
+
+ [_FL] = LAYOUT_68_ansi(\
+ KC_GRV, 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_DEL, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
+ }; \ No newline at end of file
diff --git a/layouts/community/68_ansi/mechmerlin/rules.mk b/layouts/community/68_ansi/mechmerlin/rules.mk
new file mode 100644
index 000000000..e2ce3d773
--- /dev/null
+++ b/layouts/community/68_ansi/mechmerlin/rules.mk
@@ -0,0 +1 @@
+USER_NAME := mechmerlin \ No newline at end of file
diff --git a/layouts/community/68_ansi/readme.md b/layouts/community/68_ansi/readme.md
new file mode 100644
index 000000000..2180973de
--- /dev/null
+++ b/layouts/community/68_ansi/readme.md
@@ -0,0 +1,5 @@
+# 68_ansi
+
+ LAYOUT_68_ansi
+
+This is the 68 key ANSI layout made popular by boards such as the Magicforce 68 and Varmilo VA68M. \ No newline at end of file
diff --git a/layouts/community/75_ansi/mechmerlin-75_ansi/keymap.c b/layouts/community/75_ansi/mechmerlin-75_ansi/keymap.c
index 70506da52..ec3286b09 100644
--- a/layouts/community/75_ansi/mechmerlin-75_ansi/keymap.c
+++ b/layouts/community/75_ansi/mechmerlin-75_ansi/keymap.c
@@ -1,23 +1,21 @@
#include QMK_KEYBOARD_H
-
-#define BASE 0
-#define FN 1
+#include "mechmerlin.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[BASE] = LAYOUT_75_ansi(\
+[_BL] = LAYOUT_75_ansi(\
KC_ESC, 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_PSCR, KC_PAUS, KC_DEL,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
- KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
+ KC_CTCP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
-[FN] = LAYOUT_75_ansi(\
+[_FL] = LAYOUT_75_ansi(\
KC_TRNS, RGB_TOG, RGB_MOD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
}; \ No newline at end of file
diff --git a/layouts/community/75_ansi/mechmerlin-75_ansi/rules.mk b/layouts/community/75_ansi/mechmerlin-75_ansi/rules.mk
new file mode 100644
index 000000000..e2ce3d773
--- /dev/null
+++ b/layouts/community/75_ansi/mechmerlin-75_ansi/rules.mk
@@ -0,0 +1 @@
+USER_NAME := mechmerlin \ No newline at end of file
diff --git a/layouts/community/ergodox/333fred/keymap.c b/layouts/community/ergodox/333fred/keymap.c
index d7728a5bd..b203f42c6 100644
--- a/layouts/community/ergodox/333fred/keymap.c
+++ b/layouts/community/ergodox/333fred/keymap.c
@@ -11,28 +11,19 @@ enum custom_keycodes {
};
enum custom_macros {
- VERSION,
- EEPROM,
-
// Windows macros
DLEFT,
DRIGHT,
PSCREEN_APP,
LSFT_TAB,
- // VS Macros
- REFACTOR,
- TEST,
- DEBUG_TEST,
- FORMAT,
- BUILD,
- GO_TO_IMPL,
- FIND_ALL_REF,
- REMOVE_SORT_USINGS,
-
// KeePass macros
KEEPASS_OPEN,
KEEPASS_TYPE,
+
+ // Terminal Copy/Paste
+ TERM_CP,
+ TERM_PT
};
// NOTE: Cells marked with ACCESS must remain transparent, they're the keys that actually get to that layer
@@ -41,131 +32,111 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | = | | L1 | 6 | 7 | 8 | 9 | 0 | - |
+ * | ` | 1 | 2 | 3 | 4 | 5 | F5 | | F6 | 6 | 7 | 8 | 9 | 0 | - |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | TAB | Q | W | E | R | T | L1 | | L2 | Y | U | I | O | P | \ |
+ * | TAB | Q | W | E | R | T | GAME | |GAMEA | Y | U | I | O | P | \ |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | Esc | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
- * |--------+------+------+------+------+------| L2 | |MO(3) |------+------+------+------+------+--------|
+ * |--------+------+------+------+------+------| SYMB | |MEDIA |------+------+------+------+------+--------|
* | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * |LCTRL | F4 | F5 | LGUI | LALT | | Left | Down | Up | Right| RGUI |
+ * |LCTRL | F4 | F5 | LGUI | LALT | | Left | Down | = | Right| RGUI |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | Copy | Paste| | Copy | Paste |
* ,------|------|------| |------+--------+------.
- * | | | PgUp | | PgDn | | |
+ * | | | PgUp | | Up | | |
* | Bcksp|OSL(2)|------| |------| Ent |Space |
- * | | VIM | Del | | RCtrl| | |
+ * | | VIM | Del | | Down | | |
* `--------------------' `----------------------'
*/
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
-[BASE] = LAYOUT_ergodox( // layer 0 : default
+[BASE] = LAYOUT_ergodox_pretty( // layer 0 : default
// left hand
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(CODE),
- KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
- OSM(MOD_LSFT), CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, TG(SYMB),
- OSM(MOD_LCTL), KC_F4, KC_F5, KC_LGUI,KC_LALT,
- LCTL(KC_C), LCTL(KC_V),
- KC_PGUP,
- KC_BSPC,TD(TD_SYM_VIM), KC_DEL,
- // right hand
- TG(CODE), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
- TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
- KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
- MO(MDIA), KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), OSM(MOD_RSFT),
- KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, KC_RGUI,
- LCTL(KC_C), LCTL(KC_V),
- KC_PGDN,
- KC_RCTL, KC_ENT, KC_SPC
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F5, KC_F6, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(GAME), TG(GAME_ARROW), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ OSM(MOD_LSFT), CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, TG(SYMB), MO(MDIA), KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), OSM(MOD_RSFT),
+ OSM(MOD_LCTL), KC_F4, KC_F5, KC_LGUI, KC_LALT, KC_LEFT, KC_DOWN, KC_EQL, KC_RIGHT, KC_RGUI,
+ LCTL(KC_C), LCTL(KC_V), LCTL(KC_C), LCTL(KC_V),
+ KC_PGUP, KC_UP,
+ KC_BSPC, TD(TD_SYM_VIM), KC_DEL, KC_DOWN, KC_ENT, KC_SPC
),
-/* Keymap 1: Code Layer
+
+/* Keymap 2: Codeflow Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | | | | | | | | |ACCESS| | | | | | |
+ * | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | | | | | | | F10 | | F11 | | | | | | |
+ * | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | |------| |------| | | | | | |
- * |--------+------+------+------+------+------| L2 | | |------+------+------+------+------+--------|
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | | | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | F12 |GoToIm| FAR | | |
+ * | | | | | | | F7 | F8 | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,---------------.
- * |Format|Build | | Copy | Paste |
+ * | |ACCESS| | | |
* ,------|------|------| |------+--------+------.
- * | | |Refact| | Up | | |
- * | |ACCESS|------| |------| | |
- * | | | | | Down | | |
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
* `--------------------' `----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
-[CODE] = LAYOUT_ergodox( // layer 1 : code
+[CODEFLOW] = LAYOUT_ergodox( // layer 1 : code
// left hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F10,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, TG(SYMB),
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- M(FORMAT),M(BUILD),
- M(REFACTOR),
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+ // right han
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_F11, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_F12, M(GO_TO_IMPL),M(FIND_ALL_REF),KC_TRNS, KC_TRNS,
- LCTL(KC_C), LCTL(KC_V),
- KC_UP,
- KC_DOWN, KC_TRNS, KC_TRNS
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_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_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
),
-/* Keymap 2: Symbol Layer
+/* Keymap 3: Symbol Layer
*
* ,---------------------------------------------------. ,--------------------------------------------------.
- * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
- * | | ! | @ | ( | ) | | |ACCESS| |ACCESS| Up | 7 | 8 | 9 | * | F12 |
+ * | | ! | @ | ( | ) | | | | | | Up | 7 | 8 | 9 | * | F12 |
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | # | $ | { | } | ` |------| |------| Down | 4 | 5 | 6 | + | |
* |---------+------+------+------+------+------|ACCESS| | |------+------+------+------+------+--------|
* | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
* `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | EPRM | | | | | | 0 | 0 | . | = | |
+ * | | | | | | | 0 | 0 | . | = | |
* `-----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
- * | | Caps | | | |
+ * | | | | | |
* ,------|------|------| |------+------+------.
* | | |APScr | | | | |
* | |ACCESS|------| |------| | |
- * | | | PScr | |ACCESS| | |
+ * | | | PScr | | | | |
* `--------------------' `--------------------'
*/
-// SYMBOLS
-[SYMB] = LAYOUT_ergodox(
+[SYMB] = LAYOUT_ergodox_pretty(
// left hand
- VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
- KC_TRNS,KC_EXLM,KC_AT, KC_LPRN,KC_RPRN,KC_PIPE,KC_TRNS,
- KC_TRNS,KC_HASH,KC_DLR, KC_LCBR,KC_RCBR,KC_GRV,
- KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
- EPRM,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_CAPS,
- M(PSCREEN_APP),
- KC_TRNS,KC_TRNS,KC_PSCR,
- // right hand
- KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
- KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
- KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
- KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
- KC_0, KC_0, KC_DOT, KC_EQL, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, KC_TRNS, KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
+ KC_TRNS, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
+ KC_TRNS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_TRNS, KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_0, KC_DOT, KC_EQL, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ M(PSCREEN_APP), KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS
),
/* Keymap 3: Media and mouse keys
*
@@ -188,32 +159,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | Back | | |
* `--------------------' `--------------------'
*/
-// MEDIA AND MOUSE
-[MDIA] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
- BL_INC, BL_DEC,
- BL_TOGG,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_VOLU, KC_TRNS,
- KC_VOLD,
- KC_MPRV, KC_MPLY, KC_MNXT
+[MDIA] = LAYOUT_ergodox_pretty(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ BL_INC, BL_DEC, KC_VOLU, KC_TRNS,
+ BL_TOGG, KC_VOLD,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT
),
/* Keymap 4: Movement
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
- * | |KOpen |KType |LSHFT | | | | | | Copy | | | | Paste| |
+ * | |KOpen |KType |TERMCP|TERMPT| | | | | Copy | | | | Paste| |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | |DLeft |DRight|LCTRL | LGUI | |------| |------| Left | Down | Up | Right| | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
@@ -230,26 +191,84 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `--------------------' `--------------------'
*/
// MEDIA AND MOUSE
-[VIM] = LAYOUT_ergodox(
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, M(KEEPASS_OPEN),M(KEEPASS_TYPE),KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, M(DLEFT), M(DRIGHT), KC_LCTL, KC_LGUI, KC_TRNS,
- KC_TRNS, M(LSFT_TAB), KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS,
- // right hand
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, LCTL(KC_C),KC_TRNS, KC_TRNS, KC_TRNS, LCTL(KC_V),KC_TRNS,
- KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_HOME, KC_END,
- KC_TRNS,
- KC_TRNS, KC_TRNS, KC_TRNS
-
-)
+[VIM] = LAYOUT_ergodox_pretty(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, M(KEEPASS_OPEN), M(KEEPASS_TYPE), TERM_CP, TERM_PT, KC_TRNS, KC_TRNS, KC_TRNS, LCTL(KC_C), KC_TRNS, KC_TRNS, KC_TRNS, LCTL(KC_V), KC_TRNS,
+ KC_TRNS, M(DLEFT), M(DRIGHT), KC_LCTL, KC_LGUI, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS,
+ KC_TRNS, M(LSFT_TAB), KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_HOME, KC_END,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 1: Game Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ESC | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | |ACCESS| | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | CTRL | | | | | |------| |------| | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | SHIFT | Z | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |ENTER | | | LOCK | BSPC | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,---------------.
+ * | F5 | F6 | | | |
+ * ,------|------|------| |------+--------+------.
+ * | | | | | | | |
+ * | ALT | SPC |------| |------| | |
+ * | | | SYMB | | | | |
+ * `--------------------' `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[GAME] = LAYOUT_ergodox_pretty( // layer 1 : code
+ // left hand
+ KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_LSFT, KC_Z, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_ENT, KC_TRNS, KC_TRNS, KC_LOCK, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_F5, KC_F6, LCTL(KC_C), LCTL(KC_V),
+ KC_TRNS, KC_UP,
+ KC_LALT, KC_SPC, OSM(SYMB), KC_DOWN, KC_TRNS, KC_TRNS
+ ),
+/* Keymap 1: Game Arrow Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ESC | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | Up | | | | | |ACCESS| | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | CTRL | Left | Down |Right | | |------| |------| | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | SHIFT | Z | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |ENTER | | | LOCK | BSPC | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,---------------.
+ * | F5 | F6 | | | |
+ * ,------|------|------| |------+--------+------.
+ * | | | | | | | |
+ * | ALT | SPC |------| |------| | |
+ * | | | SYMB | | | | |
+ * `--------------------' `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[GAME_ARROW] = LAYOUT_ergodox_pretty( // layer 1 : code
+ // left hand
+ KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_LCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_LSFT, KC_Z, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_ENT, KC_TRNS, KC_TRNS, KC_LOCK, KC_BSPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_F5, KC_F6, LCTL(KC_C), LCTL(KC_V),
+ KC_TRNS, KC_UP,
+ KC_LALT, KC_SPC, OSM(SYMB), KC_DOWN, KC_TRNS, KC_TRNS
+ )
};
const uint16_t PROGMEM fn_actions[] = {
@@ -260,16 +279,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
// MACRODOWN only works in this function
switch(id) {
- case VERSION:
- if (record->event.pressed) {
- SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- }
- break;
- case EEPROM:
- if (record->event.pressed) { // For resetting EEPROM
- eeconfig_init();
- }
- break;
case DLEFT:
if (record->event.pressed) { // Windows move desktop left
return MACRO(D(LCTL), D(LGUI), T(LEFT), U(LGUI), U(LCTL), END);
@@ -289,46 +298,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
if (record->event.pressed) {
return MACRO(D(LSFT), T(TAB), U(LSFT), END);
}
- case REFACTOR:
- if (record->event.pressed) { // VS Refactor CTRL+R, R
- return MACRO(D(LCTL), T(R), U(LCTL), T(R), END);
- }
- break;
- case TEST:
- if (record->event.pressed) { // VS Run Tests CTRL+R, T
- return MACRO(D(LCTL), T(R), U(LCTL), T(T), END);
- }
- break;
- case DEBUG_TEST:
- if (record->event.pressed) { // VS Debug Tests CTRL+R, CTRL+T
- return MACRO(D(LCTL), T(R), T(T), U(LCTL), END);
- }
- break;
- case FORMAT:
- if (record->event.pressed) { // VS Format Document, CTRL+K, CTRL+D
- return MACRO(D(LCTL), T(K), T(D), U(LCTL), END);
- }
- break;
- case BUILD:
- if (record->event.pressed) { // VS Build. Sends CTRL+SHFT+B
- return MACRO(D(LCTL), D(LSFT), T(B), U(LSFT), U(LCTL), END);
- }
- break;
- case GO_TO_IMPL:
- if (record->event.pressed) { // VS Go To Implementation. Sends CTRL+F12
- return MACRO(D(LCTL), T(F12), U(LCTL), END);
- }
- break;
- case FIND_ALL_REF:
- if (record->event.pressed) { // VS Find All References. Sends CTRL+K, R
- return MACRO(D(LCTL), T(K), U(LCTL), T(R), END);
- }
- break;
- case REMOVE_SORT_USINGS:
- if (record->event.pressed) {
- return MACRO(D(LCTL), T(R), T(G), U(LCTL), END);
- }
- break;
case KEEPASS_OPEN:
if (record->event.pressed) { // Keepass open application
return MACRO(D(LCTL), D(LALT), T(K), U(LALT), U(LCTL), END);
@@ -339,27 +308,22 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
return MACRO(D(LCTL), D(LALT), T(A), U(LALT), U(LCTL), END);
}
break;
+ case TERM_CP:
+ if (record->event.pressed) { // Terminal Copy
+ return MACRO(D(LCTL), T(INSERT), U(LCTL), END);
+ }
+ break;
+ case TERM_PT:
+ if (record->event.pressed) { // Terminal Paste
+ return MACRO(D(LSFT), T(INSERT), U(LSFT), END);
+ }
+ break;
}
return MACRO_NONE;
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
tap_dance_process_record(keycode);
- switch (keycode) {
- // dynamically generate these.
- case EPRM:
- if (record->event.pressed) {
- eeconfig_init();
- }
- return false;
- break;
- case VRSN:
- if (record->event.pressed) {
- SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
- }
- return false;
- break;
- }
return true;
}
diff --git a/layouts/community/ergodox/333fred/visualizer.c b/layouts/community/ergodox/333fred/visualizer.c
index 2a30562ae..d13b3cd79 100644
--- a/layouts/community/ergodox/333fred/visualizer.c
+++ b/layouts/community/ergodox/333fred/visualizer.c
@@ -14,16 +14,22 @@ static void get_visualizer_layer_and_color(visualizer_state_t* state) {
if (state->status.leds & (1u << USB_LED_CAPS_LOCK)) {
saturation = 255;
}
- if (state->status.layer & 0x10) {
+ if (state->status.layer & 0x80) {
+ state->target_lcd_color = LCD_COLOR(0, 255, 60);
+ state->layer_text = "Game Arrow";
+ } else if (state->status.layer & 0x40) {
+ state->target_lcd_color = LCD_COLOR(0, 255, 60);
+ state->layer_text = "Game";
+ } else if (state->status.layer & 0x20) {
state->target_lcd_color = LCD_COLOR(140, 100, 60);
state->layer_text = "Movement";
- } else if (state->status.layer & 0x8) {
+ } else if (state->status.layer & 0x10) {
state->target_lcd_color = LCD_COLOR(0, saturation, 0xFF);
state->layer_text = "Media";
- } else if (state->status.layer & 0x4) {
+ } else if (state->status.layer & 0x8) {
state->target_lcd_color = LCD_COLOR(168, saturation, 0xFF);
state->layer_text = "Symbol";
- } else if (state->status.layer & 0x2) {
+ } else if (state->status.layer & 0x2 || state->status.layer & 0x4) {
state->target_lcd_color = LCD_COLOR(216, 90, 0xFF);
state->layer_text = "Code";
} else {
diff --git a/layouts/community/ergodox/adam/config.h b/layouts/community/ergodox/adam/config.h
index 21af8c6b8..1a8fddb50 100644
--- a/layouts/community/ergodox/adam/config.h
+++ b/layouts/community/ergodox/adam/config.h
@@ -2,5 +2,4 @@
#undef TAPPING_TERM
#define TAPPING_TERM 300 //At 500 some bad logic takes hold
-#define PREVENT_STUCK_MODIFIERS
#define IGNORE_MOD_TAP_INTERRUPT
diff --git a/layouts/community/ergodox/adnw_p_u_q/config.h b/layouts/community/ergodox/adnw_p_u_q/config.h
new file mode 100644
index 000000000..b1170aa78
--- /dev/null
+++ b/layouts/community/ergodox/adnw_p_u_q/config.h
@@ -0,0 +1,9 @@
+#pragma once
+
+// This is the ideal value for me but find your own
+#undef TAPPING_TERM
+#define TAPPING_TERM 145
+
+// more options here: https://docs.qmk.fm/config_options.html
+#define FORCE_NKRO
+#define PERMISSIVE_HOLD // tab/hold-Keys should work better with that
diff --git a/layouts/community/ergodox/adnw_p_u_q/keymap.c b/layouts/community/ergodox/adnw_p_u_q/keymap.c
new file mode 100644
index 000000000..a90fcbc2c
--- /dev/null
+++ b/layouts/community/ergodox/adnw_p_u_q/keymap.c
@@ -0,0 +1,335 @@
+#include QMK_KEYBOARD_H
+#include "keymap_german.h"
+
+
+#define BASE 0 // default layer / VIM
+#define ARW 1 // arrow layer / Terminal
+#define DIAK 2 // diakritika layer
+#define BRACK 3 // brackets layer
+#define SYMBOLS 4 // symbols
+#define MEDIA 5 // media keys / Mouse-Navigation
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer / VIM
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | Media |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | P | U | Dia-L| , | Q | | | | V | C | L | M | B | |
+ * |--------+------+------+------+------+------| G | | gg |------+------+------+------+------+--------|
+ * | Symbols| H | I | E | A | O |------| |------| D | T | R | N | S | ARW |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | LShift | K | Y | . | ' | X |str-D | |str-U | J | G | Z | W | F | RShift |
+ * * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | Ctrl | Alt | | | | | H | J | K | L | Ctrl |
+ * `----------------------------------' `----------------------------------'
+ * LShift is Tab on Click
+ *
+ * ,-------------. ,-------------.
+ * | ^ | / | | ? | $ |
+ * ,------|------|------| |------+--------+------.
+ * | | |str+a | |str+c | | |
+ * | Brack| Space|------| |------| Enter |BSpace|
+ * | -Lay |/shift| Tab/ | | | | |
+ * | | | GUI | | ESC | | |
+ * `--------------------' `----------------------'
+ * GUI is one shot
+ * str + a is for tmux etc.
+ * str + c is for stopping programs
+ */
+[BASE] = LAYOUT_ergodox( // layer 0 : default
+ // left hand
+ KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO,
+ TG(SYMBOLS), DE_P, DE_U, OSL(DIAK), DE_COMM, DE_Q, LSFT(DE_G),
+ OSL(SYMBOLS), DE_H, DE_I, DE_E, DE_A, DE_O,
+ SFT_T(KC_TAB), DE_K, DE_Y, DE_DOT, DE_QUOT, DE_X, LCTL(DE_D),
+ KC_LCTRL, KC_LALT, KC_NO, KC_NO, KC_NO,
+
+
+ // left hand thumb-cluster
+ DE_CIRC, DE_SLSH,
+ LCTL(DE_A),
+ OSL(BRACK), SFT_T(KC_SPACE), GUI_T(KC_TAB),
+
+
+ // right hand
+ KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0, TG(MEDIA),
+ DE_G, DE_V, DE_C, DE_L, DE_M, DE_B, KC_NO,
+ DE_D, DE_T, DE_R, DE_N, DE_S, TG(ARW),
+ LCTL(DE_U), DE_J, DE_G, DE_Z, DE_W, DE_F, KC_RSFT,
+ KC_H, KC_J, KC_K, KC_L, KC_RCTRL,
+
+ // right thumb-cluster
+ DE_QST, DE_DLR,
+ LCTL(DE_C),
+ KC_ESCAPE, KC_ENTER, KC_BSPACE
+),
+
+
+/* Keymap 1: Arrow Layer / Terminal
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |P-Down| |P-Up | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | Left | Bot | Top | Right| |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | Home | | | | End |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// Arrows
+[ARW] = LAYOUT_ergodox(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDOWN,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_HOME, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS,
+ KC_TRNS, KC_END,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+
+/* Keymap 2: Diakritika Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | Ü | | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | Ä | Ö |------| |------| | | | | ß | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// Diakritika
+[DIAK] = LAYOUT_ergodox(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, DE_UE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_AE, DE_OE,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DE_SS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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: Brackets Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | ( | { | [ | |------| |------| | ] | } | ) | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// BRACK
+[BRACK] = LAYOUT_ergodox(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, DE_LPRN, DE_LCBR, DE_LBRC, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, DE_RBRC, DE_RCBR, DE_RPRN, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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: Symbol Layer
+ *
+ *
+ * Original:
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | ² | ° | ~ | @ | ! | | | | ? | & | § | " | ³ | |
+ * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
+ * | | ´ | ' | : | ^ | < |------| |------| > | $ | ; | | | ` | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | € | + | = | * | / | { | | } | \ | % | # | - | _ | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ */
+// SYMBOLS
+[SYMBOLS] = LAYOUT_ergodox(
+ // left hand
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, //DE_LBRC,
+ KC_TRNS,DE_SQ2, DE_RING, DE_TILD, DE_AT, DE_EXLM, DE_LPRN,
+ KC_TRNS,DE_ACUT,DE_QUOT, DE_COLN, DE_CIRC, DE_LESS,
+ KC_TRNS,DE_EURO,DE_PLUS, DE_EQL, DE_ASTR, DE_SLSH, DE_LCBR,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+
+ // right hand
+ //DE_RBRC,
+ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
+ DE_RPRN, DE_QST, DE_AMPR, DE_PARA, DE_DQOT, DE_SQ3, KC_TRNS,
+ DE_MORE, DE_DLR, DE_SCLN, DE_PIPE, DE_GRV, KC_TRNS,
+ DE_RCBR, DE_BSLS, DE_PERC, DE_HASH, DE_MINS, DE_UNDS, 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 5: Numbers
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | Num | / | * | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | | 7 | 8 | 9 | + |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| | | 4 | 5 | 6 | + |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | 1 | 2 | 3 | Enter |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | 0 | , | | | Enter|
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+// NUMBERS
+[NUMBERS] = LAYOUT_ergodox(
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS,
+
+ // right hand
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_4, KC_5, KC_8, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_1, KC_2, KC_3, KC_TRNS,
+ KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+
+
+*/
+
+/* Keymap 6: Media and mouse keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | Sleep| | | | | | | | | | | | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | Wake | | | | |------| |------| |MsLeft|MsDown| MsUp |MsRght| |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | Mute| VolDn| VolUp| | Play| Prev | Next | Stop | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | Lclk|------| |------|Rclk | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// MEDIA AND MOUSE
+[MEDIA] = LAYOUT_ergodox(
+ KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_SLEP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_WAKE, KC_NO, KC_NO, KC_NO, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_BTN1, KC_TRNS,
+ // right hand
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
+ KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_TRNS,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
+ KC_MPLY, KC_MPRV, KC_MNXT, KC_MSTP, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_BTN2, KC_TRNS
+),
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user_keyboard(void) {
+ ergodox_board_led_on();
+ ergodox_led_all_on();
+}
diff --git a/layouts/community/ergodox/adnw_p_u_q/readme.md b/layouts/community/ergodox/adnw_p_u_q/readme.md
new file mode 100644
index 000000000..dc914a0aa
--- /dev/null
+++ b/layouts/community/ergodox/adnw_p_u_q/readme.md
@@ -0,0 +1,17 @@
+This is a fork of the adnw_k_o_y-Layout
+
+Features:
+- Diakritika-Layer for ADNW-PUQ-Layout
+- all basic-symbols of the german-layout can be found in the Symbol- and Diakritika-Layer
+- Symbol-Layer: Symbols are mirrored -- left = < and right = >
+- Basic-Layer-Keys which always be present in any Layer and allow the movement between layers
+- HJKL-Keys and Arrow-Keys can be switched, necessary for working with a terminal and vim
+- Number-Layer for Numpad-Emulation
+- Brackets-Layer for easier programming
+- Media-Layer for Mouse-Navigation
+
+Notes:
+- adnw is a layout optimised for usage with german and english language
+- PUQ is a variant of adnw: http://www.adnw.de/index.php?n=Main.OptimierungF%C3%BCrDieGeradeTastaturMitDaumen-Shift
+- This implementation is optimised for my workflow with vim/tmux/xmonad and ergodox
+- The OS must use the de_DE layout
diff --git a/layouts/community/ergodox/adnw_p_u_q/visualizer.c b/layouts/community/ergodox/adnw_p_u_q/visualizer.c
new file mode 100644
index 000000000..9a4d48538
--- /dev/null
+++ b/layouts/community/ergodox/adnw_p_u_q/visualizer.c
@@ -0,0 +1,34 @@
+/*
+Note: this is a modified copy of ../default/visualizer.c, originally licensed GPL.
+*/
+
+#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) {
+ state->target_lcd_color = LCD_COLOR(127, 0xFF, 0xFF);
+ state->layer_text = "Mouse";
+ } else if (state->status.layer & 0x10) {
+ state->target_lcd_color = LCD_COLOR(85, 0xFF, 0xFF);
+ state->layer_text = "Symbol";
+ } else if (state->status.layer & 0x8) {
+ state->target_lcd_color = LCD_COLOR(64, 0xFF, 0xFF);
+ state->layer_text = "Brackets";
+ } else if (state->status.layer & 0x4) {
+ state->target_lcd_color = LCD_COLOR(42, 0xFF, 0xFF);
+ state->layer_text = "Diak";
+ } else if (state->status.layer & 0x2) {
+ state->target_lcd_color = LCD_COLOR(21, 0xFF, 0xFF);
+ state->layer_text = "Terminal";
+ } else {
+ state->target_lcd_color = LCD_COLOR(192, 0xFF, 0xFF);
+ state->layer_text = "Vim";
+ }
+}
+
diff --git a/layouts/community/ergodox/albert/rules.mk b/layouts/community/ergodox/albert/rules.mk
index fcd019e83..47549b50f 100644
--- a/layouts/community/ergodox/albert/rules.mk
+++ b/layouts/community/ergodox/albert/rules.mk
@@ -1,3 +1,2 @@
COMMAND_ENABLE = no # Commands for debug and configuration
-
-
+LEADER_ENABLE = yes
diff --git a/layouts/community/ergodox/algernon/NEWS.md b/layouts/community/ergodox/algernon/NEWS.md
index 1bc2b5dc6..a6ce9813b 100644
--- a/layouts/community/ergodox/algernon/NEWS.md
+++ b/layouts/community/ergodox/algernon/NEWS.md
@@ -1,5 +1,18 @@
<!-- -*- mode: markdown; fill-column: 8192 -*- -->
+## v1.12
+
+*2018-11-22*
+
+### Overall changes
+
+* Updated to work with QMK master.
+
+### Miscellaneous
+
+* The `😂` symbol can be entered with UCIS.
+* `LEAD r` now inputs `Right Alt`.
+
## v1.11
*2017-10-01*
diff --git a/layouts/community/ergodox/algernon/images/adore-layer.png b/layouts/community/ergodox/algernon/images/adore-layer.png
new file mode 100644
index 000000000..75d2ca4f0
--- /dev/null
+++ b/layouts/community/ergodox/algernon/images/adore-layer.png
Binary files differ
diff --git a/layouts/community/ergodox/algernon/images/base-layer.png b/layouts/community/ergodox/algernon/images/base-layer.png
new file mode 100644
index 000000000..2ca7a273b
--- /dev/null
+++ b/layouts/community/ergodox/algernon/images/base-layer.png
Binary files differ
diff --git a/layouts/community/ergodox/algernon/images/heatmap.png b/layouts/community/ergodox/algernon/images/heatmap.png
new file mode 100644
index 000000000..4f55c5adf
--- /dev/null
+++ b/layouts/community/ergodox/algernon/images/heatmap.png
Binary files differ
diff --git a/layouts/community/ergodox/algernon/images/steno-layer.png b/layouts/community/ergodox/algernon/images/steno-layer.png
new file mode 100644
index 000000000..9a2ba55ef
--- /dev/null
+++ b/layouts/community/ergodox/algernon/images/steno-layer.png
Binary files differ
diff --git a/layouts/community/ergodox/algernon/keymap.c b/layouts/community/ergodox/algernon/keymap.c
index ebdc4ab4e..fb6de1b72 100644
--- a/layouts/community/ergodox/algernon/keymap.c
+++ b/layouts/community/ergodox/algernon/keymap.c
@@ -13,6 +13,7 @@
#include "eeconfig.h"
#include "wait.h"
#include "version.h"
+#include "print.h"
/* Layers */
@@ -1033,6 +1034,10 @@ void matrix_scan_user(void) {
}
#endif
+ SEQ_ONE_KEY (KC_R) {
+ ang_tap(KC_RALT, 0);
+ }
+
SEQ_ONE_KEY (KC_T) {
time_travel = !time_travel;
}
@@ -1126,7 +1131,8 @@ const qk_ucis_symbol_t ucis_symbol_table[] = UCIS_TABLE
UCIS_SYM("micro", 0x00b5),
UCIS_SYM("tm", 0x2122),
UCIS_SYM("child", 0x1f476),
- UCIS_SYM("family", 0x1F46A)
+ UCIS_SYM("family", 0x1F46A),
+ UCIS_SYM("joy", 0x1F602)
);
bool process_record_user (uint16_t keycode, keyrecord_t *record) {
diff --git a/layouts/community/ergodox/algernon/readme.md b/layouts/community/ergodox/algernon/readme.md
index 03b094edb..a25018a7b 100644
--- a/layouts/community/ergodox/algernon/readme.md
+++ b/layouts/community/ergodox/algernon/readme.md
@@ -3,7 +3,12 @@
algernon's layout
=======================
-This is an unconventional layout for the [ErgoDox EZ][ez]. For more details about the history of the layout, see my [blog posts about my ErgoDox journey][blog-ergodox].
+This is the layout I used to use on my [ErgoDox EZ][ez], while I was using [QMK][qmk]. I no longer do so, and this repository is obsolete, and not updated anymore. My current firmware is based on [Kaleidoscope][kaleidoscope], and is located [elsewhere][ergodox-sketch]. I'm keeping the repo around for historical and educational purposes.
+
+ [kaleidoscope]: https://github.com/keyboardio/Kaleidoscope
+ [ergodox-sketch]: https://git.madhouse-project.org/algernon/ErgoDox-sketch
+
+Nevertheless, this is an unconventional layout for the [ErgoDox EZ][ez]. For more details about the history of the layout, see my [blog posts about my ErgoDox journey][blog-ergodox].
[ez]: https://ergodox-ez.com/
[blog-ergodox]: https://asylum.madhouse-project.org/blog/tags/ergodox/
@@ -57,6 +62,7 @@ At its core, this is a Dvorak layout, with some minor changes. The more interest
- `LEAD d` toggles logging keypress positions to the HID console.
- `LEAD t` toggles time travel. Figuring out the current `date` is left as an exercise to the reader.
- `LEAD u` enters the [Unicode symbol input](#unicode-symbol-input) mode.
+ - `LEAD r` inputs `Right Alt`, which is the `Compose` key of my choice.
The symbols on the front in the image above have the same color as the key that activates them, with the exception of the **Arrow** layer, which is just black on the front.
@@ -128,13 +134,13 @@ $ git clone https://github.com/qmk/qmk_firmware.git
$ cd qmk_firmware
$ git clone https://github.com/algernon/ergodox-layout.git \
layouts/community/ergodox/algernon_master
-$ make ergodox_ez-algernon_master
+$ make ergodox_ez:algernon_master
```
From time to time, updates may be submitted back to the QMK repository. If you are reading it there, you can build the firmware like any other firmware included with it (assuming you are in the root directory of the firmware):
```
-$ make ergodox_ez-algernon
+$ make ergodox_ez:algernon
```
## Using on Windows
diff --git a/layouts/community/ergodox/algernon/rules.mk b/layouts/community/ergodox/algernon/rules.mk
index f795a8676..1b4c0995f 100644
--- a/layouts/community/ergodox/algernon/rules.mk
+++ b/layouts/community/ergodox/algernon/rules.mk
@@ -8,8 +8,10 @@ TAP_DANCE_ENABLE = yes
KEYLOGGER_ENABLE ?= yes
UCIS_ENABLE = yes
MOUSEKEY_ENABLE = no
+LEADER_ENABLE = yes
+RGBLIGHT_ENABLE = no
-AUTOLOG_ENABLE ?= no
+AUTOLOG_ENABLE ?= yes
ifeq (${FORCE_NKRO},yes)
OPT_DEFS += -DFORCE_NKRO
diff --git a/layouts/community/ergodox/alphadox/config.h b/layouts/community/ergodox/alphadox/config.h
index 6fc64f508..9e076dead 100644
--- a/layouts/community/ergodox/alphadox/config.h
+++ b/layouts/community/ergodox/alphadox/config.h
@@ -4,7 +4,6 @@
#include QMK_KEYBOARD_CONFIG_H
#define FORCE_NKRO
-#define PREVENT_STUCK_MODIFIERS
#undef TAPPING_TERM
#undef IGNORE_MOD_TAP_INTERRUPT
diff --git a/layouts/community/ergodox/alphadox/rules.mk b/layouts/community/ergodox/alphadox/rules.mk
index f93ff3bb6..57c62a5e6 100644
--- a/layouts/community/ergodox/alphadox/rules.mk
+++ b/layouts/community/ergodox/alphadox/rules.mk
@@ -9,7 +9,5 @@ MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
-RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-
-
diff --git a/layouts/community/ergodox/bepo/keymap.c b/layouts/community/ergodox/bepo/keymap.c
index c33c3c255..6ea8cba68 100644
--- a/layouts/community/ergodox/bepo/keymap.c
+++ b/layouts/community/ergodox/bepo/keymap.c
@@ -50,7 +50,7 @@ KC_ESC, KC_INS, KC_LGUI, KC_LCTL, KC_LALT,
KC_CAPSLOCK, BP_DCRC, BP_V, BP_D, BP_L, BP_J, BP_Z,
BP_C, BP_T, BP_S, BP_R, BP_N, BP_M,
KC_NUMLOCK, BP_APOS, BP_Q, BP_G, BP_H, BP_F, BP_CCED,
- BP_ALGR, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE,
+ KC_ALGR, KC_RCTL, KC_RGUI, KC_PSCREEN, KC_PAUSE,
DF(AZ_B), DF(BEPO),
MO(NUMK),
MO(FNAV), KC_RSHIFT, KC_ENTER),
diff --git a/layouts/community/ergodox/bepo_csa/keymap.c b/layouts/community/ergodox/bepo_csa/keymap.c
index 9526ea3f7..125301d44 100644
--- a/layouts/community/ergodox/bepo_csa/keymap.c
+++ b/layouts/community/ergodox/bepo_csa/keymap.c
@@ -105,7 +105,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_BSPC, BP_DCRC, BP_V, BP_D, BP_L, BP_J, BP_Z,
BP_C, BP_T, BP_S, BP_R, BP_N, BP_M,
KC_ENT, BP_APOS, BP_Q, BP_G, BP_H, BP_F, KC_RSFT,
- BP_ALGR, BP_PERC, KC_APP, BP_CCED, KC_RCTL,
+ KC_ALGR, BP_PERC, KC_APP, BP_CCED, KC_RCTL,
KC_LEFT, KC_RGHT,
KC_UP,
@@ -449,14 +449,14 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
register_code(KC_1 + (id - M_1));
break;
case M_DEGR:
- return MACRO(DOWN(CSA_ALTGR), D(SCLN), END);
+ return MACRO(DOWN(KC_ALGR), D(SCLN), END);
case M_SCLN:
return MACRO(D(SCLN), END);
case M_GRV:
- return MACRO(I(75), DOWN(CSA_ALTGR), TYPE(CSA_DCRC), UP(CSA_ALTGR), T(SPACE), END);
+ return MACRO(I(75), DOWN(KC_ALGR), TYPE(CSA_DCRC), UP(KC_ALGR), T(SPACE), END);
case M_NBSP:
// use weak mod such that pressing another key will not be affected
- add_weak_mods(MOD_BIT(CSA_ALTGR));
+ add_weak_mods(MOD_BIT(KC_ALGR));
return MACRO(D(SPACE), END);
}
} else {
@@ -466,11 +466,11 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
unregister_code(KC_1 + (id - M_1));
break;
case M_DEGR:
- return MACRO(UP(CSA_ALTGR), U(SCLN), END);
+ return MACRO(UP(KC_ALGR), U(SCLN), END);
case M_SCLN:
return MACRO(U(SCLN), END);
case M_NBSP:
- del_weak_mods(MOD_BIT(CSA_ALTGR));
+ del_weak_mods(MOD_BIT(KC_ALGR));
return MACRO(U(SPACE), END);
}
}
diff --git a/layouts/community/ergodox/bocaj/config.h b/layouts/community/ergodox/bocaj/config.h
index 78350f603..bc1d20a62 100644
--- a/layouts/community/ergodox/bocaj/config.h
+++ b/layouts/community/ergodox/bocaj/config.h
@@ -2,5 +2,5 @@
#include QMK_KEYBOARD_CONFIG_H
-#undef PRODUCT
-#define PRODUCT BocajEZ - Frankensteined ErgoDox EZ
+#define LEADER_TIMEOUT 250
+#define LEADER_PER_KEY_TIMING
diff --git a/layouts/community/ergodox/bocaj/keymap.c b/layouts/community/ergodox/bocaj/keymap.c
index fbe0fca65..cb78e7aae 100644
--- a/layouts/community/ergodox/bocaj/keymap.c
+++ b/layouts/community/ergodox/bocaj/keymap.c
@@ -1,5 +1,5 @@
/*
-Copyright 2018 Jacob Jerrell jacob.jerrell@gmail.com @JacobJerrell
+Copyright 2018 Jacob Jerrell <jacob.jerrell@gmail.com> @JacobJerrell
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
@@ -14,97 +14,99 @@ 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 QMK_KEYBOARD_H
#include "bocaj.h"
+#define LAYOUT_ergodox_pretty_base( \
+ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
+ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
+ K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
+ ) \
+ LAYOUT_ergodox_pretty_wrapper( \
+ KC_ESC, __________________NUMBER_LEFT_______________, JJ_ARRW, KC_MINS, __________________NUMBER_RIGHT______________, KC_EQUAL, \
+ KC_DEL, K01, K02, K03, K04, K05, KC_LPRN, KC_RPRN, K06, K07, K08, K09, K0A, KC_BSLASH, \
+ KC_NUMS, K11, SFT_T(K12), K13, ALT_T(K14), K15, K16, ALT_T(K17), K18, SFT_T(K19), K1A, KC_QUOT, \
+ OS_LSFT, CTL_T(K21), K22, K23, K24, K25, HYP_LBK, MEH_RBK, K26, K27, K28, K29, CTL_T(K2A), KC_RSFT, \
+ KC_GAME,KC_NUMS, TT(_LOWER), KC_UP, KC_LEFT, KC_RIGHT, KC_DOWN, UC_DISA,KC_GAME, KC_ADJS, \
+ KC_APP,KC_HOME, KC_END,KC_ESC, \
+ UC_FLIP, UC_TABL, \
+ KC_SPACE,KC_BSPACE,KC_LEAD, UC_SHRG,KC_TAB,KC_LWEN \
+)
+
+#define LAYOUT_ergodox_pretty_base_wrapper(...) LAYOUT_ergodox_pretty_base(__VA_ARGS__)
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* Hardware Workman - http://www.keyboard-layout-editor.com/#/gists/7a07cb982ec3597ba3e3d947554225f1
- .---------------------------------------------. .---------------------------------------------.
- | ESC | 1 | 2 | 3 | 4 | 5 | -> | ! - | 6 | 7 | 8 | 9 | 0 | = |
- !-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------!
- | DEL | Q | D | R | W | B | ( | ! ) | J | F | U | P | ; | \ |
- !-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------!
- | NUMS | A | S | H | T | G |-------! !-------! Y | N | E | O | I | ' |
- !-------+-----+-----+-----x-----x-----! HYP ! ! MEH !-----x-----x-----+-----+-----+-------!
- | SHIFT | Z | X | M | C | V | [ | ! ] | K | L | , | . | / | SHIFT |
- '-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------'
- | GAME | NUM | LWR | UP | LFT | .---------------. .---------------. ! RGT | DWN | | | ADJ |
- '------------------------------' | APP | HOME | ! PGUP | ESC | '------------------------------'
- .-------+-------+-------! !-------+-------+-------.
- ! ! | END | ! PGDN | ! ENTER !
- ! SPACE ! BSPCE !-------! !-------! TAB ! / !
- | | | COPY | ! PASTE | | LOWER |
- '-----------------------' '-----------------------'
+ /* Workman - http://www.keyboard-layout-editor.com/#/gists/7a07cb982ec3597ba3e3d947554225f1
+ .---------------------------------------------. .---------------------------------------------.
+ | ESC | 1 | 2 | 3 | 4 | 5 | -> | ! - | 6 | 7 | 8 | 9 | 0 | = |
+ !-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------!
+ | DEL | Q | D | R | W | B | ( | ! ) | J | F | U | P | ; | \ |
+ !-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------!
+ | NUMS | A | S | H | T | G |-------! !-------! Y | N | E | O | I | ' |
+ !-------+-----+-----+-----x-----x-----! HYP ! ! MEH !-----x-----x-----+-----+-----+-------!
+ | SHIFT | Z | X | M | C | V | [ | ! ] | K | L | , | . | / | SHIFT |
+ '-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------'
+ | | NUM | LWR | UP | LFT | .---------------. .---------------. ! RGT | DWN | |GAME | ADJ |
+ '------------------------------' | APP | HOME | ! PGUP | ESC | '------------------------------'
+ .-------+-------+-------! !-------+-------+-------.
+ ! ! | END | ! PGDN | ! ENTER !
+ ! SPACE ! BSPCE !-------! !-------! TAB ! / !
+ | | | COPY | ! PASTE | | LOWER |
+ '-----------------------' '-----------------------'
*/
- [_HWRKMN] = LAYOUT_ergodox_pretty_wrapper(
- KC_ESC, _______________________NUMBER_LEFT_______________________, JJ_ARRW, KC_MINUS,_______________________NUMBER_RIGHT______________________, KC_EQUAL,
- KC_DEL, _______________________HWORKMAN_L1_______________________, KC_LPRN, KC_RPRN, _______________________HWORKMAN_R1_______________________, KC_BSLS,
- KC_NUMS,_______________________HWORKMAN_L2_______________________, _______________________HWORKMAN_R2_______________________, KC_QUOTE,
- KC_LSFT,_______________________HWORKMAN_L3_______________________, HYP_LBK, MEH_RBK, _______________________HWORKMAN_R3_______________________, KC_RSFT,
- ___________________ERGODOX_BOTTOM_LEFT___________________, ___________________ERGODOX_BOTTOM_RIGHT__________________,
- ______________________ERGODOX_THUMBS_____________________
+ [_WORKMAN] = LAYOUT_ergodox_pretty_base_wrapper(
+ _________________WORKMAN_L1_________________, _________________WORKMAN_R1_________________,
+ _________________WORKMAN_L2_________________, _________________WORKMAN_R2_________________,
+ _________________WORKMAN_L3_________________, _________________WORKMAN_R3_________________
),
-/* Software Workman / QWERTY - http://www.keyboard-layout-editor.com/#/gists/b6c016a22a9d31381a276a603a42fe5f
- .---------------------------------------------. .---------------------------------------------.
- | ESC | 1 | 2 | 3 | 4 | 5 | -> | ! - | 6 | 7 | 8 | 9 | 0 | = |
- !-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------!
- | DEL | Q | W | E | R | T | ( | ! ) | Y | U | I | O | P | \ |
- !-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------!
- | NUMS | A | S | D | F | G |-------! !-------! H | J | K | L | ; | ' |
- !-------+-----+-----+-----x-----x-----! HYP ! ! MEH !-----x-----x-----+-----+-----+-------!
- | SHIFT | Z | X | C | V | B | [ | ! ] | N | M | , | . | / | SHIFT |
- '-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------'
- | GAME | NUM | LWR | UP | LFT | .---------------. .---------------. ! RGT | DWN | | | ADJ |
- '------------------------------' | APP | HOME | ! PGUP | ESC | '------------------------------'
- .-------+-------+-------! !-------+-------+-------.
- ! ! | END | ! PGDN | ! ENTER !
- ! SPACE ! BSPCE !-------! !-------! TAB ! / !
- | | | COPY | ! PASTE | | LOWER |
- '-----------------------' '-----------------------'
-*/
- [_SWRKMN] = LAYOUT_ergodox_pretty_wrapper(
- KC_ESC, _______________________NUMBER_LEFT_______________________, JJ_ARRW, KC_MINUS,_______________________NUMBER_RIGHT______________________, KC_EQUAL,
- KC_DEL, _______________________SWORKMAN_L1_______________________, KC_LPRN, KC_RPRN, _______________________SWORKMAN_R1_______________________, KC_BSLS,
- KC_NUMS,_______________________SWORKMAN_L2_______________________, _______________________SWORKMAN_R2_______________________, KC_QUOTE,
- KC_LSFT,_______________________SWORKMAN_L3_______________________, HYP_LBK, MEH_RBK, _______________________SWORKMAN_R3_______________________, KC_RSFT,
- ___________________ERGODOX_BOTTOM_LEFT___________________, ___________________ERGODOX_BOTTOM_RIGHT__________________,
- ______________________ERGODOX_THUMBS_____________________
+ [_WINWORKMAN] = LAYOUT_ergodox_pretty_base_wrapper(
+ _________________WORKMAN_L1_________________, _________________WORKMAN_R1_________________,
+ ________________WWORKMAN_L2_________________, ________________WWORKMAN_R2_________________,
+ _________________WORKMAN_L3_________________, _________________WORKMAN_R3_________________
),
-/* Lower - http://www.keyboard-layout-editor.com/#/gists/f1d745a88d1c48ab55e095efd9e7a43a
- .---------------------------------------------. .---------------------------------------------.
- | ESC | | | | | | -> | ! - | | | | | | = |
- !-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------!
- | DEL | ! | @ | # | $ | % | ( | ! ) | ^ | & | * | ( | ) | \ |
- !-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------!
- | ` | 1 | 2 | 3 | 4 | 5 |-------! !-------! 6 | 7 | 8 | 9 | 0 | ' |
- !-------+-----+-----+-----x-----x-----! HYP ! ! MEH !-----x-----x-----+-----+-----+-------!
- | SHIFT | | | | | | [ | ! ] | | | | | | SHIFT |
- '-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------'
- | GAME | NUM | LWR | UP | LFT | .---------------. .---------------. ! RGT | DWN | | | ADJ |
- '------------------------------' | APP | HOME | ! PGUP | ESC | '------------------------------'
- .-------+-------+-------! !-------+-------+-------.
- ! ! | END | ! PGDN | ! ENTER !
- ! SPACE ! BSPCE !-------! !-------! TAB ! / !
- | | | COPY | ! PASTE | | LOWER |
- '-----------------------' '-----------------------'
+/* QWERTY - http://www.keyboard-layout-editor.com/#/gists/b6c016a22a9d31381a276a603a42fe5f
+ .---------------------------------------------. .---------------------------------------------.
+ | ESC | 1 | 2 | 3 | 4 | 5 | -> | ! - | 6 | 7 | 8 | 9 | 0 | = |
+ !-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------!
+ | DEL | Q | W | E | R | T | ( | ! ) | Y | U | I | O | P | \ |
+ !-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------!
+ | NUMS | A | S | D | F | G |-------! !-------! H | J | K | L | ; | ' |
+ !-------+-----+-----+-----x-----x-----! HYP ! ! MEH !-----x-----x-----+-----+-----+-------!
+ | SHIFT | Z | X | C | V | B | [ | ! ] | N | M | , | . | / | SHIFT |
+ '-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------'
+ | GAME | NUM | LWR | UP | LFT | .---------------. .---------------. ! RGT | DWN | | | ADJ |
+ '------------------------------' | APP | HOME | ! PGUP | ESC | '------------------------------'
+ .-------+-------+-------! !-------+-------+-------.
+ ! ! | END | ! PGDN | ! ENTER !
+ ! SPACE ! BSPCE !-------! !-------! TAB ! / !
+ | | | COPY | ! PASTE | | LOWER |
+ '-----------------------' '-----------------------'
*/
+ [_QWERTY] = LAYOUT_ergodox_pretty_base_wrapper(
+ _________________QWERTY_L1__________________, _________________QWERTY_R1__________________,
+ _________________QWERTY_L2__________________, _________________QWERTY_R2__________________,
+ _________________QWERTY_L3__________________, _________________QWERTY_R3__________________
+ ),
[_LOWER] = LAYOUT_ergodox_pretty_wrapper(
- _______,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, _______, _______, XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, _______,
- _______,_______________________SPECIAL_LEFT______________________, _______, _______, _______________________SPECIAL_RIGHT_____________________, _______,
- KC_GRV ,_______________________NUMBER_LEFT_______________________, _______________________NUMBER_RIGHT______________________, _______,
- _______,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, _______, _______, XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, _______,
- _________________________________________________________, _________________________________________________________,
- ______________________ERGODOX_THUMBS_____________________
+ KC_F11 ,__________________FUNCTION_LEFT_____________, _______, _______, __________________FUNCTION_RIGHT____________, KC_F12,
+ _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, KC_PAST, _______,
+ LM_GRAVE, _______, KC_LEFT, KC_DOWN,KC_RIGHT, _______, _______, KC_4, KC_5, KC_6, KC_PPLS, _______,
+ OS_LSFT,____________________BLANK___________________, _______, _______, _______, KC_1, KC_2, KC_3, KC_PMNS, _______,
+ ____________________BLANK___________________, KC_0, KC_PDOT, KC_COMM,KC_PEQL, _______,
+ _______, _______, _______, _______,
+ _______, _______,
+ _______, _______, _______, _______, _______, _______
),
- /* Adjust - http://www.keyboard-layout-editor.com/#/gists/dedeae17b35a5d5f745a42aaea78f007
+/* Adjust - http://www.keyboard-layout-editor.com/#/gists/dedeae17b35a5d5f745a42aaea78f007
.---------------------------------------------. .---------------------------------------------.
- | | | | | | | EPRM | ! EPRM | | | | | | |
+ | MAKE | | | | | | RESET | ! EPRM | | | | | | |
!-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------!
| | | | | | | | ! | | | | | | |
!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------!
- | | 🔇 | 🔉 | 🔊 | LCK | |-------! !-------! | | | | | SWRKM |
+ | | 🔇 | 🔉 | 🔊 | LCK | |-------! !-------! | | | | | QWRTY |
!-------+-----+-----+-----x-----x-----! ! ! !-----x-----x-----+-----+-----+-------!
- | | | | | | | | ! | | | | | | HWRKM |
+ | | | | | | | | ! | | | | | WIN | WRKMN |
'-------+-----+-----+-----+-----+-------------' '-------------+-----+-----+-----+-----+-------'
| | | | | | .---------------. .---------------. ! | | | | |
'------------------------------' | | | ! | | '------------------------------'
@@ -115,101 +117,66 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
'-----------------------' '-----------------------'
*/
[_ADJUST] = LAYOUT_ergodox_pretty_wrapper(
- XXXXXXX,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, KC_EPRM, KC_EPRM, XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, XXXXXXX,
- XXXXXXX,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX,KC__MUTE, KC__VOLDOWN, KC__VOLUP, MC_LOCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SWRK,
- XXXXXXX,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HWRK,
- XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
- ______________________ERGODOX_THUMBS_____________________
- ),
- [_NUMS] = LAYOUT_ergodox_pretty_wrapper(
- XXXXXXX,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, XXXXXXX,
- XXXXXXX,XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_7, KC_KP_8, KC_KP_9, KC_PAST, XXXXXXX,
- _______,XXXXXXX, KC_LEFT, KC_DOWN, KC_RIGHT, XXXXXXX, XXXXXXX, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, XXXXXXX,
- LM_SHFT,XXXXXXX, XXXXXXX, XXXXXXX, JJ_COPY, JJ_PSTE, XXXXXXX, XXXXXXX, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_PMNS, XXXXXXX,
- XXXXXXX,_______,XXXXXXX,XXXXXXX,XXXXXXX, KC_KP_0, KC_PDOT, KC_COMM, KC_PEQL, XXXXXXX,
- _______, _______, _______,_______,
- _______, _______,
- KC_LALT,KC_LGUI,_______, _______,_______,_______
- ),
- [_NMOD] = LAYOUT_ergodox_pretty_wrapper(
- XXXXXXX,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, XXXXXXX,
- XXXXXXX,XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, XXXXXXX,
- XXXXXXX,XXXXXXX, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, XXXXXXX,
- LM_SHFT,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, XXXXXXX,
- XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, _______, _______, _______, _______, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX,
- XXXXXXX, XXXXXXX,
- KC_LALT,KC_LGUI,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX
+ KC_MAKE, ____________________BLANK___________________, KC_RST, KC_EPRM, ____________________BLANK___________________, XXXXXXX,
+ _______, ____________________BLANK___________________, _______, _______, ____________________BLANK___________________, XXXXXXX,
+ _______,KC__MUTE,KC__VOLDOWN,KC__VOLUP,MC_LOCK,_______, ____________________BLANK___________________, KC_MQWR,
+ _______, ____________________BLANK___________________, _______, _______, _______, _______, _______, _______, KC_WWRK, KC_MWRK,
+ ____________________BLANK___________________, ____________________BLANK___________________,
+ _______, _______, _______, _______,
+ _______, _______,
+ _______, _______, _______, _______, _______, _______
),
-// Diablo - http://www.keyboard-layout-editor.com/#/gists/28476e4237e77d4835ac8a9d7e5f9b2c
[_DIABLO] = LAYOUT_ergodox_pretty_wrapper(
- KC_ESC , XXXXXXX , XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- KC_TAB , KC_Q ,ALT_T(KC_S), KC_I , KC_F , KC_J ,KC_MINS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- KC_LOCK, KC_1 , KC_2 , KC_3 , KC_4 ,KC_DCLR , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- KC_LSFT, KC_D3_1 , KC_D3_2 , KC_D3_3 , KC_D3_4 , KC_T ,KC_MINS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- _______, XXXXXXX , XXXXXXX , XXXXXXX , KC_M , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
- XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX,
- XXXXXXX, XXXXXXX,
- KC_BTN1,KC_BTN2,KC_ENTER, XXXXXXX,XXXXXXX,XXXXXXX
+ KC_ESC, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_NO, KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
+ KC_TAB, KC_S, KC_F, KC_I, KC_M, KC_T, KC_ENTER, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_Q, KC_1, KC_2, KC_3, KC_4, KC_P, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_LCTL, KC_D3_1, KC_D3_2, KC_D3_3, KC_D3_4, KC_Z, KC_LOCK, KC_NO, KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO,
+ _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO,
+ KC_L, KC_J, KC_NO, KC_NO,
+ KC_F, KC_NO,
+ SFT_T(KC_SPACE), ALT_T(KC_Q), KC_DCLR, KC_PGDN, KC_DEL, KC_ENT
)
};
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- uint8_t default_layer = 0;
- default_layer = eeconfig_read_default_layer();
- switch (keycode) {
- case KC_SWRK:
- if (!record->event.pressed) {
- set_single_persistent_default_layer(_SWRKMN);
- layer_move(default_layer);
- ergodox_blink_all_leds();
- ergodox_blink_all_leds();
- }
- return false;
- break;
- case KC_HWRK:
- if (!record->event.pressed) {
- set_single_persistent_default_layer(_HWRKMN);
- layer_move(default_layer);
- ergodox_blink_all_leds();
- ergodox_blink_all_leds();
- }
- return false;
- break;
- case KC_EPRM:
- if (!record->event.pressed) {
- ergodox_blink_all_leds();
- eeconfig_init();
- }
- return false;
- break;
- case MC_LOCK:
- if (!record->event.pressed) {
- layer_move(default_layer);
- SEND_STRING(SS_LCTRL(SS_LGUI("q")));
- }
- return false;
- break;
- }
return true;
}
void matrix_init_keymap(void) {};
void matrix_scan_keymap(void) {
+ uint8_t modifiers = get_mods();
+ uint8_t led_usb_state = host_keyboard_leds();
+ uint8_t one_shot = get_oneshot_mods();
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) {
- /*
- Lights are treated as binary here for easy identification.
- LED1 = 4; LED2 = 2; LED1 = 1
- This allows for up to 8 identified layers (default layers being no lights on)
- Which is way more than I should ever need
- */
+ case _WORKMAN:
+ case _QWERTY:
+ case _WINWORKMAN:
+ if (modifiers & MODS_SHIFT_MASK || led_usb_state & (1<<USB_LED_CAPS_LOCK) || one_shot & MODS_SHIFT_MASK) {
+ ergodox_right_led_1_on();
+ ergodox_right_led_1_set( 25 );
+ }
+ if (modifiers & MODS_CTRL_MASK || one_shot & MODS_CTRL_MASK || modifiers & MODS_GUI_MASK || one_shot & MODS_GUI_MASK) {
+ if ((modifiers & MODS_CTRL_MASK || one_shot & MODS_CTRL_MASK) && (modifiers & MODS_GUI_MASK || one_shot & MODS_GUI_MASK)) {
+ ergodox_right_led_2_on();
+ ergodox_right_led_2_set( 50 );
+ } else {
+ ergodox_right_led_2_on();
+ ergodox_right_led_2_set( 10 );
+ }
+ }
+ if (modifiers & MODS_ALT_MASK || one_shot & MODS_ALT_MASK) {
+ ergodox_right_led_3_on();
+ ergodox_right_led_3_set( 10 );
+ }
+ break;
case _LOWER:
ergodox_right_led_3_on();
ergodox_right_led_3_set(10); // Default brightness is deadly in a dark room
@@ -218,20 +185,6 @@ void matrix_scan_keymap(void) {
ergodox_right_led_2_on();
ergodox_right_led_2_set(10);
break;
- case _NUMS:
- ergodox_right_led_2_on();
- ergodox_right_led_2_set(10);
- ergodox_right_led_3_on();
- ergodox_right_led_3_set(10);
- break;
- case _NMOD:
- ergodox_right_led_1_on();
- ergodox_right_led_1_set(10);
- ergodox_right_led_2_on();
- ergodox_right_led_2_set(10);
- ergodox_right_led_3_on();
- ergodox_right_led_3_set(10);
- break;
case _DIABLO:
ergodox_right_led_1_on();
ergodox_right_led_1_set(10);
@@ -240,7 +193,4 @@ void matrix_scan_keymap(void) {
// none
break;
}
- /* #ifdef TAP_DANCE_ENABLE
- run_diablo_macro_check();
- #endif */
};
diff --git a/layouts/community/ergodox/bocaj/readme.md b/layouts/community/ergodox/bocaj/readme.md
new file mode 100644
index 000000000..901822722
--- /dev/null
+++ b/layouts/community/ergodox/bocaj/readme.md
@@ -0,0 +1,37 @@
+# Bocaj Layout
+
+While I've put my own spin on most things, much of the credit for these ideas belongs to Drashna and/or the people he derived things from. Please see his [layout](../drashna/) and [userspace](../../../../users/drashna/) for lots of ideas and inspiration.
+
+## Layers Overview
+
+* Default
+ * Workman
+ * Qwerty
+ * Windows Workman (swaps GUI and CTRL buttons)
+* Lower
+ * F1-12 Top Row
+ * Grave / Layer Switch macro at Caps Lock position
+ * Navigation at QWERTY 'ESDF' position
+ * Numpad under right hand
+* Adjust
+ * Volume Control
+ * Mac Lock Macro
+ * Make / Reset/ EEPROM keys
+ * Default Layer changing keys
+ * Diablo Layer
+ * Moved shortcuts within left hands reach
+ * Macros to spam 1-4 every ~1 second
+ * Shift in thumb cluster to prevent pinky fatique
+
+## LEDs Overview
+
+* Used for _LOWER, _ADJUST, and _DIABLO layer indication
+* Used for Ctrl/GUI, Shift, and Alt indication when on a default layer
+
+## Wrappers Overview
+
+While it isn't a novel idea, I feel the need to mention it because it really appeals to me as a person that doesn't like repetitive code.
+
+We've all come to know and love the pretty wrapper for Ergodox because it makes for such a beautiful, self-documenting keymap. In this keymap, we are building ontop of the pretty wrapper to wrap our default layers with our keys that aren't unique to the layer.
+
+Now you can wrap your keymap with `LAYOUT_ergodox_pretty_base_wrapper()` and only feed it the alpha keys, having the top, side, bottom, and thumb clusters automatically filled in. If you make a key to any of the top, side, bottom, or thumb cluster keys, it will propegate to all layers that have this wrapper, or have KC_TRNS keycodes in the same location
diff --git a/layouts/community/ergodox/bocaj/rules.mk b/layouts/community/ergodox/bocaj/rules.mk
index 037bca2b6..aa67ad9e2 100644
--- a/layouts/community/ergodox/bocaj/rules.mk
+++ b/layouts/community/ergodox/bocaj/rules.mk
@@ -4,3 +4,8 @@ SWAP_HANDS_ENABLE = no
TAP_DANCE_ENABLE = yes
EXTRAKEY_ENABLE = no
KEY_LOCK_ENABLE = yes
+LEADER_ENABLE = yes
+
+UNICODE_ENABLE = yes
+UNICODEMAP_ENABLE = no
+UCIS_ENABLE = no
diff --git a/layouts/community/ergodox/deadcyclo/rules.mk b/layouts/community/ergodox/deadcyclo/rules.mk
index 039f07c8e..f5093529b 100644
--- a/layouts/community/ergodox/deadcyclo/rules.mk
+++ b/layouts/community/ergodox/deadcyclo/rules.mk
@@ -1 +1,2 @@
UNICODE_ENABLE = yes
+LEADER_ENABLE = yes
diff --git a/layouts/community/ergodox/drashna/config.h b/layouts/community/ergodox/drashna/config.h
index 9e2bd74f3..fee954d17 100644
--- a/layouts/community/ergodox/drashna/config.h
+++ b/layouts/community/ergodox/drashna/config.h
@@ -5,11 +5,15 @@
#ifdef RGBLIGHT_ENABLE
#undef RGBLIGHT_SAT_STEP
#define RGBLIGHT_SAT_STEP 12
-#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 7
-#define RGBLIGHT_EFFECT_SNAKE_LENGTH 7
+
+#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 3
+#define RGBLIGHT_EFFECT_SNAKE_LENGTH 3
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1
#endif // RGBLIGHT_ENABLE
#undef PRODUCT
#define PRODUCT DrashnaDox - Hacked ErgoDox EZ Shine
+
+#undef DEBOUNCE
+#define DEBOUNCE 5
diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c
index 27d20d928..45860b874 100644
--- a/layouts/community/ergodox/drashna/keymap.c
+++ b/layouts/community/ergodox/drashna/keymap.c
@@ -21,7 +21,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "drashna_unicode.h"
#endif // UNICODEMAP_ENABLE
-
+#ifdef RGB_MATRIX_ENABLE
+extern bool g_suspend_state;
+extern rgb_config_t rgb_matrix_config;
+#endif
+extern userspace_config_t userspace_config;
//enum more_custom_keycodes {
// KC_P00 = NEW_SAFE_RANGE
@@ -30,6 +34,24 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//define layer change stuff for underglow indicator
bool skip_leds = false;
+#define LAYOUT_ergodox_pretty_base( \
+ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
+ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
+ K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
+ ) \
+ LAYOUT_ergodox_pretty_wrapper( \
+ KC_ESC, ________________NUMBER_LEFT________________, UC_FLIP, UC_TABL, ________________NUMBER_RIGHT_______________, KC_MINS, \
+ KC_TAB, K01, K02, K03, K04, K05, TG(_DIABLO), TG(_DIABLO), K06, K07, K08, K09, K0A, KC_BSLS, \
+ KC_C1R3, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
+ KC_MLSF, CTL_T(K21), K22, K23, K24, K25, TG(_GAMEPAD), TG(_GAMEPAD), K26, K27, K28, K29, CTL_T(K2A), KC_MRSF, \
+ KC_GRV, OS_MEH, OS_HYPR, KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, UC(0x2E2E), \
+ OS_LALT, OS_LGUI, OS_RGUI, CTL_T(KC_ESCAPE), \
+ KC_HOME, KC_PGUP, \
+ LT(_LOWER, KC_SPACE),KC_BSPC, KC_END, KC_PGDN, KC_DEL, LT(_RAISE, KC_ENTER) \
+ )
+
+#define LAYOUT_ergodox_pretty_base_wrapper(...) LAYOUT_ergodox_pretty_base(__VA_ARGS__)
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -55,15 +77,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | End | | PgDn | | |
* `---------------------' `---------------------'
*/
- [_QWERTY] = LAYOUT_ergodox_pretty_wrapper(
- // left hand // right hand
- KC_EQL, ________________NUMBER_LEFT________________, _______, _______, ________________NUMBER_RIGHT_______________, KC_MINS,
- KC_TAB, _________________QWERTY_L1_________________, TG(_DIABLO), TG(_DIABLO), _________________QWERTY_R1_________________, KC_BSLS,
- KC_C1R3, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT,
- KC_MLSF, _________________QWERTY_L3_________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_MRSF,
- KC_GRV, ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, KC_CCCV,
- __________________ERGODOX_THUMB_CLUSTER_____________________
- ),
+ [_QWERTY] = LAYOUT_ergodox_pretty_base_wrapper(
+ _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
+ _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
+ _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
+ ),
/* Keymap 0: COLEMAK layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
@@ -87,15 +105,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
- [_COLEMAK] = LAYOUT_ergodox_pretty_wrapper(
- // left hand // right hand
- KC_EQL, ________________NUMBER_LEFT________________, _______, _______, ________________NUMBER_RIGHT_______________, KC_MINS,
- KC_TAB, _________________COLEMAK_L1________________, TG(_DIABLO), TG(_DIABLO), _________________COLEMAK_R1________________, KC_BSLS,
- KC_C1R3, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT,
- KC_MLSF, _________________COLEMAK_L3________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_MRSF,
- KC_GRV, ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, KC_CCCV,
- __________________ERGODOX_THUMB_CLUSTER_____________________
- ),
+ [_COLEMAK] = LAYOUT_ergodox_pretty_base_wrapper(
+ _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
+ _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
+ _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
+ ),
/* Keymap 0: DVORAK Layout
*
* ,--------------------------------------------------. ,--------------------------------------------------.
@@ -119,15 +133,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
- [_DVORAK] = LAYOUT_ergodox_pretty_wrapper(
- // left hand // right hand
- KC_EQL, ________________NUMBER_LEFT________________, _______, _______, ________________NUMBER_RIGHT_______________, KC_BSLS,
- KC_TAB, _________________DVORAK_L1_________________, TG(_DIABLO), TG(_DIABLO), _________________DVORAK_R1_________________, KC_SLSH,
- KC_C1R3, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_MINS,
- KC_MLSF, _________________DVORAK_L3_________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_MRSF,
- KC_GRV, ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, KC_CCCV,
- __________________ERGODOX_THUMB_CLUSTER_____________________
- ),
+ [_DVORAK] = LAYOUT_ergodox_pretty_base_wrapper(
+ _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
+ _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
+ _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
+ ),
/* Keymap 0: WORKMAN layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
@@ -149,17 +159,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | |ace | End | | PgDn | | |
* `--------------------' `----------------------'
*/
-// If it accepts an argument (i.e, is a function), it doesn't need KC_.
-// Otherwise, it needs KC_*
- [_WORKMAN] = LAYOUT_ergodox_pretty_wrapper(
- // left hand
- KC_EQL, ________________NUMBER_LEFT________________, _______, _______, ________________NUMBER_RIGHT_______________, KC_MINS,
- KC_TAB, _________________WORKMAN_L1________________, TG(_DIABLO), TG(_DIABLO), _________________WORKMAN_R1________________, KC_BSLS,
- KC_C1R3, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT,
- KC_MLSF, _________________WORKMAN_L3________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_MRSF,
- KC_GRV, ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, KC_CCCV,
- __________________ERGODOX_THUMB_CLUSTER_____________________
- ),
+
+ [_WORKMAN] = LAYOUT_ergodox_pretty_base_wrapper(
+ _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
+ _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
+ _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
+ ),
// Reverts OSM(Shift) to normal Shifts. However, may not need since we fixed the issue with RDP (LOCAL RESOURCES)
[_MODS] = LAYOUT_ergodox_pretty_wrapper(
@@ -197,7 +202,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/
[_GAMEPAD] = LAYOUT_ergodox_pretty_wrapper(
KC_ESC, KC_NO, KC_1, KC_2, KC_3, HYPR(KC_Q), HYPR(KC_GRV), KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
- KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T, UC_SHRG, UC_DISA, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, KC_I, KC_O, KC_NO, KC_NO, KC_NO, KC_NO,
KC_LCTL, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, TG(_GAMEPAD), KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO,
KC_GRV, KC_U, KC_I, KC_Y, KC_T, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO,
@@ -262,7 +267,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ADJUST] = LAYOUT_ergodox_pretty_wrapper(
KC_MAKE, _______, _______, _______, _______, _______, _______, KC_NUKE, _________________ADJUST_R1_________________, KC_RST,
- VRSN, _________________ADJUST_L1_________________, _______, _______, _______, _______, _______, _______, _______, EPRM,
+ VRSN, _________________ADJUST_L1_________________, _______, _______, _______, _______, _______, _______, _______, EEP_RST,
_______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, TG(_MODS),
_______, _________________ADJUST_L3_________________, _______, _______, _________________ADJUST_R3_________________, KC_MPLY,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -289,12 +294,8 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
return true;
}
-void matrix_init_keymap(void) { // Runs boot tasks for keyboard
-};
-
-
void matrix_scan_keymap(void) { // runs frequently to update info
- uint8_t modifiders = get_mods();
+ uint8_t modifiers = get_mods();
uint8_t led_usb_state = host_keyboard_leds();
uint8_t one_shot = get_oneshot_mods();
@@ -307,15 +308,15 @@ void matrix_scan_keymap(void) { // runs frequently to update info
// Since we're not using the LEDs here for layer indication anymore,
// then lets use them for modifier indicators. Shame we don't have 4...
// Also, no "else", since we want to know each, independently.
- if (modifiders & MODS_SHIFT_MASK || led_usb_state & (1<<USB_LED_CAPS_LOCK) || one_shot & MODS_SHIFT_MASK) {
+ if (modifiers & MODS_SHIFT_MASK || led_usb_state & (1<<USB_LED_CAPS_LOCK) || one_shot & MODS_SHIFT_MASK) {
ergodox_right_led_2_on();
ergodox_right_led_2_set( 50 );
}
- if (modifiders & MODS_CTRL_MASK || one_shot & MODS_CTRL_MASK) {
+ if (modifiers & MODS_CTRL_MASK || one_shot & MODS_CTRL_MASK) {
ergodox_right_led_1_on();
ergodox_right_led_1_set( 10 );
}
- if (modifiders & MODS_ALT_MASK || one_shot & MODS_ALT_MASK) {
+ if (modifiers & MODS_ALT_MASK || one_shot & MODS_ALT_MASK) {
ergodox_right_led_3_on();
ergodox_right_led_3_set( 10 );
}
@@ -335,3 +336,100 @@ bool indicator_is_this_led_used_keyboard(uint8_t index) {
}
}
+
+#ifdef RGB_MATRIX_ENABLE
+
+void suspend_power_down_keymap(void) {
+ rgb_matrix_set_suspend_state(true);
+ rgb_matrix_config.enable = false;
+}
+
+void suspend_wakeup_init_keymap(void) {
+ rgb_matrix_config.enable = true;
+ rgb_matrix_set_suspend_state(false);
+}
+
+void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) {
+ rgb_led led;
+ for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
+ led = g_rgb_leds[i];
+ if (led.matrix_co.raw < 0xFF) {
+ if (led.modifier) {
+ rgb_matrix_set_color( i, red, green, blue );
+ }
+ }
+ }
+}
+
+void rgb_matrix_indicators_user(void) {
+ if (g_suspend_state || !rgb_matrix_config.enable || !userspace_config.rgb_layer_change) return;
+
+ switch (biton32(layer_state)) {
+ case _MODS:
+ rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break;
+ case _GAMEPAD:
+ rgb_matrix_layer_helper(0xFF, 0x80, 0x00);
+ rgb_matrix_set_color(32, 0x00, 0xFF, 0x00); // Q
+ rgb_matrix_set_color(31, 0x00, 0xFF, 0xFF); // W
+ rgb_matrix_set_color(30, 0xFF, 0x00, 0x00); // E
+ rgb_matrix_set_color(29, 0xFF, 0x80, 0x00); // R
+ rgb_matrix_set_color(37, 0x00, 0xFF, 0xFF); // A
+ rgb_matrix_set_color(36, 0x00, 0xFF, 0xFF); // S
+ rgb_matrix_set_color(35, 0x00, 0xFF, 0xFF); // D
+ rgb_matrix_set_color(34, 0x7A, 0x00, 0xFF); // F
+
+ rgb_matrix_set_color(27, 0xFF, 0xFF, 0xFF); // 1
+ rgb_matrix_set_color(26, 0x00, 0xFF, 0x00); // 2
+ rgb_matrix_set_color(25, 0x7A, 0x00, 0xFF); // 3
+
+ break;
+ case _DIABLO:
+ rgb_matrix_layer_helper(0xFF, 0x00, 0x00); break;
+ case _RAISE:
+ rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break;
+ case _LOWER:
+ rgb_matrix_layer_helper(0x00, 0xFF, 0x00); break;
+ case _ADJUST:
+ rgb_matrix_layer_helper(0xFF, 0x00, 0x00); break;
+ default:
+ switch (biton32(default_layer_state)) {
+ case _QWERTY:
+ rgb_matrix_layer_helper(0x00, 0xFF, 0xFF); break;
+ case _COLEMAK:
+ rgb_matrix_layer_helper(0xFF, 0x00, 0xFF); break;
+ case _DVORAK:
+ rgb_matrix_layer_helper(0x00, 0xFF, 0x00); break;
+ case _WORKMAN:
+ rgb_matrix_layer_helper(0xD9, 0xA5, 0x21); break;
+ }
+ }
+#if 0
+ if (this_mod & MODS_SHIFT_MASK || this_led & (1<<USB_LED_CAPS_LOCK) || this_osm & MODS_SHIFT_MASK) {
+ rgb_matrix_set_color(24, 0x00, 0xFF, 0x00);
+ rgb_matrix_set_color(36, 0x00, 0xFF, 0x00);
+ }
+ if (this_mod & MODS_CTRL_MASK || this_osm & MODS_CTRL_MASK) {
+ rgb_matrix_set_color(25, 0xFF, 0x00, 0x00);
+ rgb_matrix_set_color(34, 0xFF, 0x00, 0x00);
+ rgb_matrix_set_color(37, 0xFF, 0x00, 0x00);
+
+ }
+ if (this_mod & MODS_GUI_MASK || this_osm & MODS_GUI_MASK) {
+ rgb_matrix_set_color(39, 0xFF, 0xD9, 0x00);
+ }
+ if (this_mod & MODS_ALT_MASK || this_osm & MODS_ALT_MASK) {
+ rgb_matrix_set_color(38, 0x00, 0x00, 0xFF);
+ }
+#endif
+}
+
+void matrix_init_keymap(void) {
+#if 0
+ #ifdef RGB_MATRIX_KEYPRESSES
+ rgblight_mode(RGB_MATRIX_MULTISPLASH);
+ #else
+ rgblight_mode(RGB_MATRIX_RAINBOW_MOVING_CHEVRON);
+ #endif
+#endif
+}
+#endif //RGB_MATRIX_INIT
diff --git a/layouts/community/ergodox/drashna/rules.mk b/layouts/community/ergodox/drashna/rules.mk
index f5d63c56f..31488108b 100644
--- a/layouts/community/ergodox/drashna/rules.mk
+++ b/layouts/community/ergodox/drashna/rules.mk
@@ -1,18 +1,16 @@
TAP_DANCE_ENABLE = yes
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
-COMMAND_ENABLE = yes # Commands for debug and configuration
-ifeq ("$(KEYBOARD)","ergodox_ez")
+COMMAND_ENABLE = no # Commands for debug and configuration
+ifneq (,$(findstring ergodox_ez,$(KEYBOARD)))
RGBLIGHT_ENABLE = yes
RGB_MATRIX_ENABLE = no
endif
CONSOLE_ENABLE = no
BOOTMAGIC_ENABLE = yes
-UNICODE_ENABLE = no
-UNICDOEMAP_ENABLE = yes
+UNICODE_ENABLE = yes
+UNICDOEMAP_ENABLE = no
MACROS_ENABLED = no
+RGBLIGHT_TWINKLE = no
INDICATOR_LIGHTS = no
-ifdef RGBLIGHT_ENABLE
- RGBLIGHT_TWINKLE = yes
-endif
diff --git a/layouts/community/ergodox/drashna_glow/README.md b/layouts/community/ergodox/drashna_glow/README.md
new file mode 100644
index 000000000..7d625a258
--- /dev/null
+++ b/layouts/community/ergodox/drashna_glow/README.md
@@ -0,0 +1 @@
+Note: This board will not flash if the "g_rgb_leds" const is not set to weak in the ergodox_ez.c file
diff --git a/layouts/community/ergodox/drashna_glow/config.h b/layouts/community/ergodox/drashna_glow/config.h
new file mode 100644
index 000000000..197acbc4a
--- /dev/null
+++ b/layouts/community/ergodox/drashna_glow/config.h
@@ -0,0 +1,11 @@
+#pragma once
+
+#include "../drashna/config.h"
+
+#undef PRODUCT
+#define PRODUCT DrashnaDox - Hacked ErgoDox EZ Glow
+
+#undef DEBOUNCE
+#define DEBOUNCE 5
+
+// #define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
diff --git a/layouts/community/ergodox/drashna_glow/keymap.c b/layouts/community/ergodox/drashna_glow/keymap.c
new file mode 100644
index 000000000..f2fb66545
--- /dev/null
+++ b/layouts/community/ergodox/drashna_glow/keymap.c
@@ -0,0 +1,67 @@
+/* placeholder file */
+#include QMK_KEYBOARD_H
+
+const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
+
+ /*{row | col << 4}
+ | {x=0..224, y=0..64}
+ | | modifier
+ | | | */
+ {{0|(0<<4)}, {24.9*5, 16*0}, 0}, // LED 1 on right
+ {{0|(1<<4)}, {24.9*6, 16*0}, 0}, // LED 2
+ {{0|(2<<4)}, {24.9*7, 16*0}, 0}, // LED 3
+ {{0|(3<<4)}, {24.9*8, 16*0}, 0}, // LED 4
+ {{0|(4<<4)}, {24.9*9, 16*0}, 0}, // LED 5
+
+ {{1|(5<<4)}, {24.9*5, 16*1}, 0}, // LED 6
+ {{1|(6<<4)}, {24.9*6, 16*1}, 0}, // LED 7
+ {{1|(7<<4)}, {24.9*7, 16*1}, 0}, // LED 8
+ {{1|(8<<4)}, {24.9*8, 16*1}, 0}, // LED 9
+ {{1|(9<<4)}, {24.9*9, 16*1}, 0}, // LED 10
+
+ {{2|(5<<4)}, {24.9*5, 16*2}, 0}, // LED 11
+ {{2|(6<<4)}, {24.9*6, 16*2}, 0}, // LED 12
+ {{2|(7<<4)}, {24.9*7, 16*2}, 0}, // LED 13
+ {{2|(8<<4)}, {24.9*8, 16*2}, 0}, // LED 14
+ {{2|(9<<4)}, {24.9*9, 16*2}, 0}, // LED 15
+
+ {{3|(5<<4)}, {24.9*5, 16*2}, 0}, // LED 16
+ {{3|(6<<4)}, {24.9*6, 16*2}, 0}, // LED 17
+ {{3|(7<<4)}, {24.9*7, 16*2}, 0}, // LED 18
+ {{3|(8<<4)}, {24.9*8, 16*2}, 0}, // LED 19
+ {{3|(9<<4)}, {24.9*9, 16*2}, 0}, // LED 20
+
+ {{4|(6<<4)}, {24.9*6, 16*2}, 1}, // LED 21
+ {{4|(7<<4)}, {24.9*7, 16*2}, 1}, // LED 22
+ {{4|(8<<4)}, {24.9*8, 16*2}, 1}, // LED 23
+ {{4|(9<<4)}, {24.9*9, 16*2}, 1}, // LED 24
+
+ {{0|(0<<4)}, {24.9*4, 16*0}, 0}, // LED 1 on left
+ {{0|(1<<4)}, {24.9*3, 16*0}, 0}, // LED 2
+ {{0|(2<<4)}, {24.9*2, 16*0}, 0}, // LED 3
+ {{0|(3<<4)}, {24.9*1, 16*0}, 0}, // LED 4
+ {{0|(4<<4)}, {24.9*0, 16*0}, 0}, // LED 5
+
+ {{1|(5<<4)}, {24.9*4, 16*1}, 0}, // LED 6
+ {{1|(6<<4)}, {24.9*3, 16*1}, 0}, // LED 7
+ {{1|(7<<4)}, {24.9*2, 16*1}, 0}, // LED 8
+ {{1|(8<<4)}, {24.9*1, 16*1}, 0}, // LED 9
+ {{1|(9<<4)}, {24.9*0, 16*1}, 0}, // LED 10
+
+ {{2|(5<<4)}, {24.9*4, 16*2}, 0}, // LED 11
+ {{2|(6<<4)}, {24.9*3, 16*2}, 0}, // LED 12
+ {{2|(7<<4)}, {24.9*2, 16*2}, 0}, // LED 13
+ {{2|(8<<4)}, {24.9*1, 16*2}, 0}, // LED 14
+ {{2|(9<<4)}, {24.9*0, 16*2}, 0}, // LED 15
+
+ {{3|(5<<4)}, {24.9*4, 16*2}, 0}, // LED 16
+ {{3|(6<<4)}, {24.9*3, 16*2}, 0}, // LED 17
+ {{3|(7<<4)}, {24.9*2, 16*2}, 0}, // LED 18
+ {{3|(8<<4)}, {24.9*1, 16*2}, 0}, // LED 19
+ {{3|(9<<4)}, {24.9*0, 16*2}, 0}, // LED 20
+
+ {{4|(6<<4)}, {24.9*3, 16*2}, 1}, // LED 21
+ {{4|(7<<4)}, {24.9*2, 16*2}, 1}, // LED 22
+ {{4|(8<<4)}, {24.9*1, 16*2}, 1}, // LED 23
+ {{4|(9<<4)}, {24.9*0, 16*2}, 1}, // LED 24
+};
diff --git a/layouts/community/ergodox/drashna_glow/rules.mk b/layouts/community/ergodox/drashna_glow/rules.mk
new file mode 100644
index 000000000..c8941391e
--- /dev/null
+++ b/layouts/community/ergodox/drashna_glow/rules.mk
@@ -0,0 +1,11 @@
+USER_NAME := drashna
+SRC += ../drashna/keymap.c
+
+-include $$(LAYOUT_KEYMAP_PATH)/../drashna/rules.mk
+
+ifneq (,$(findstring ergodox_ez,$(KEYBOARD)))
+ RGBLIGHT_ENABLE = no
+ RGB_MATRIX_ENABLE = yes
+endif
+
+COMMAND_ENABLE = no
diff --git a/layouts/community/ergodox/dvorak_svorak_a5/keymap.c b/layouts/community/ergodox/dvorak_svorak_a5/keymap.c
index 2668fce86..98df73289 100644
--- a/layouts/community/ergodox/dvorak_svorak_a5/keymap.c
+++ b/layouts/community/ergodox/dvorak_svorak_a5/keymap.c
@@ -171,7 +171,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, NO_AA,
KC_H, KC_J, KC_K, KC_L, NO_OSLH, NO_AE,
KC_DELT, KC_N, KC_M, KC_COMM, KC_DOT, NO_MINS, KC_RSFT,
- NO_ALGR, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT,
+ KC_ALGR, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT,
KC_HOME, KC_END,
KC_PGUP,
KC_PGDN, KC_ENT, KC_SPACE
diff --git a/layouts/community/ergodox/erez_experimental/rules.mk b/layouts/community/ergodox/erez_experimental/rules.mk
index 839dd82e1..f68b56f87 100644
--- a/layouts/community/ergodox/erez_experimental/rules.mk
+++ b/layouts/community/ergodox/erez_experimental/rules.mk
@@ -3,5 +3,4 @@
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
COMMAND_ENABLE = no # Commands for debug and configuration
-
-
+LEADER_ENABLE = yes
diff --git a/layouts/community/ergodox/familiar/rules.mk b/layouts/community/ergodox/familiar/rules.mk
index 31e0fcf29..4a3c58621 100644
--- a/layouts/community/ergodox/familiar/rules.mk
+++ b/layouts/community/ergodox/familiar/rules.mk
@@ -1 +1,2 @@
TAP_DANCE_ENABLE=yes
+LEADER_ENABLE = yes
diff --git a/layouts/community/ergodox/mclennon_osx/README.md b/layouts/community/ergodox/mclennon_osx/README.md
index 28cdb7c10..53b3d4841 100644
--- a/layouts/community/ergodox/mclennon_osx/README.md
+++ b/layouts/community/ergodox/mclennon_osx/README.md
@@ -1,5 +1,5 @@
# Ergodox EZ for OS X
-This keymapping is designed to be reasonably familiar to an ordinary Mac keyboard while taking advantage of the Ergodox EZ's features. Caps lock instead enables a layer which allows a user to use HJKL as arrow keys and to control media. Shift and control have additional mappings on S and D to provide easier access while holding down caps lock.
+This keymapping is designed to be reasonably familiar to an ordinary Mac keyboard while taking advantage of the Ergodox EZ's features. Caps lock instead enables a layer which allows a user to use HJKL as arrow keys and to control media. Shift and control have additional mappings on S and D to provide easier access while holding down caps lock.
-If you choose to compile this yourself, be sure to compile with `#define PREVENT_STUCK_MODIFIERS` in your `config.h`. Firmware built using [qmk_firmware](https://github.com/qmk/qmk_firmware/).
+Firmware built using [qmk_firmware](https://github.com/qmk/qmk_firmware/).
diff --git a/layouts/community/ergodox/meagerfindings/README.md b/layouts/community/ergodox/meagerfindings/README.md
new file mode 100644
index 000000000..e7e4270db
--- /dev/null
+++ b/layouts/community/ergodox/meagerfindings/README.md
@@ -0,0 +1,109 @@
+![Base](https://meagerfindings.com/assets/img/ergodox/base.png)
+
+# Meagerfinding's ErgoDox Layout
+
+<!-- TOC depthFrom:2 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 -->
+
+- [Overview](#overview)
+- [Credit where credit is due](#credit-where-credit-is-due)
+- [Features](#features)
+ - [Tap/Hold Macro Keys](#taphold-macro-keys)
+ - [TapDance Keys](#tapdance-keys)
+- [Base Layer](#base-layer)
+ - [Things to note:](#things-to-note)
+- [Old Base Layer](#old-base-layer)
+- [Symbols Layer](#symbols-layer)
+- [Mouse & Media Keys Layer](#mouse-media-keys-layer)
+- [Markdown Layer](#markdown-layer)
+- [Arrow/Movements Layer](#arrowmovements-layer)
+- [Numpad Layer](#numpad-layer)
+
+<!-- /TOC -->
+
+## Overview
+
+The overall goals of this layout are to:
+1. Use the Ergodox thumb clusters to eliminate pinky reach.
+2. Place as many useful keys under the home rows as possible.
+
+I first decided to build an ErgoDox as I wanted to use my thumbs for more with the added ergonomic benefits of a split board and ortholinear layout. I knew my hands were hurting from the weird contortions of copying and pasting constantly on my Mac, but I had no idea how strained I really was until I started moving as many modifier keys to the thumb clusters.
+
+## Credit where credit is due
+
+The initial layout used created on the [ErgoDox EZ Configurator](https://ergodox-ez.com/pages/graphical-configurator). I went through 26+ iterations within the configurator prior to beginning my journey with QMK itself. Much of the dual function/layer keys are influenced by and adapted from the EZ Configurator.
+
+Many features in this layout are either directly inspired by or are adaptations of [Algernon's incredible ErgoDox layout](https://github.com/algernon/ergodox-layout). Specifically: TapDance and its usage, and the brilliant idea of using TapDance to pair down the four keys for parens, brackets, and curly braces into just 2 keys.
+
+## Features
+
+### Tap/Hold Macro Keys
+* `Paste/Paste Special` key sends Paste on tap and Paste Special when held.
+* `Screen/Video` key sends `||scrn` when tapped and `||video` when held
+ - [Typinator](http://www.ergonis.com/products/typinator/) expands `||scrn` into `(Screenshot: <CLIPBOARD CONTENTS>)`, and `||video` into `(Video: <CLIPBOARD CONTENTS>)`, the QMK macro then moves back to before the last paren, inserts a space and removes a space to create a hyperlink for use in Zendesk.
+* When tapped, `Todoist` toggles quick add window for a new Todoist task (`CMD + Shift + A`) and switches to Todoist when held
+* The RubyMine key opens RubyMine by triggering spotlight, typing out `Rubymine`, and submitting the enter key.
+* `Zendesk` triggers spotlight and then calls Typinator expansion to open my Zendesk Agent dashboard in Chrome.
+
+
+### TapDance Keys
+* `Copy/Cut` key copies on tap, cut's on two taps.
+* One tap on `Snagit` key = sends `Ctrl + Shift + C` which is Snagit's selector and two taps on `Snagit` key = `Cmd + Shift + Opt + 4`, OS X cropping screenshot that is copied to the clipboard only.
+* Tapping the `[{(`/`)}]` keys once yields `[` or `{` when the shift key is engaged, tapping them twice yields `(`.
+
+## Base Layer
+
+![Base](https://meagerfindings.com/assets/img/ergodox/base.png)
+
+The base layer retains the alphas from the QWERTY layout without any modifications.
+
+### Things to note:
+
+- The shift key is a One Shot Modifier key, meaning shift is not submitted when the key is tapped, instead, it only submits when you either tap it again, or on the next key press.
+ - There is no CAPSLOCK key designated as it is pretty comfortable to simply hold down shift in this layout and continue typing.
+- There is only one layer that you can fully switch to on this layout, the [Old Base layer](#old-base-layer). All other layers require holding a key to reach them. For the most part, the key that toggles a layer, will be on the opposite hand that will be typing with that layer.
+ - For example: the symbols layer is reached by holding down the enter key with your right thumb, and most of the symbols are located on the left hand board.
+
+
+## Old Base Layer
+
+![Old Base](https://meagerfindings.com/assets/img/ergodox/old_base.png)
+
+I am moving into a new position (software engineering) at work from a Support position. My hope is to use my F keys more often and write fewer emails. This is my old base layer, still easily accessible, as I'm not used to having F key's on my top row quite yet.
+
+## Symbols Layer
+
+![Symbols](https://meagerfindings.com/assets/img/ergodox/symbols.png)
+
+Holding down the `enter` key with your right thumb toggles the symbol layer.
+
+I've placed my most used symbols under the homerow. Granted, right now I mainly right emails/support ticket responses, so this home row may need to change as I transition to software engineering.
+
+## Mouse & Media Keys Layer
+
+![Mouse & Media](https://meagerfindings.com/assets/img/ergodox/mouse_media.png)
+
+Holding down the `:` key on with your right pinky toggles the mouse and media layer. Your left hand controls the mouse directions just in a similar fashion to the keys used in the [movement layer](#arrowmovements-layer).
+
+The right hand has a media controls under the homerow for quick muting/pausing.
+
+* `XKCD #1319` Key that ironically partially-automates accessing the link to [XKCD #1319](https://xkcd.com/1319/).
+
+## Markdown Layer
+
+![Markdown](https://meagerfindings.com/assets/img/ergodox/markdown.png)
+
+This layer places most common markdown symbols under the right hand. You can reach this layer by holding down the `F` key on your left hand.
+
+## Arrow/Movements Layer
+
+![Movement](https://meagerfindings.com/assets/img/ergodox/movement_arrows.png)
+
+Toggled by holding down the space key with the right thumb. This isn't vim like movement, nope, it's `WASD` but over one column. So I guess it's actually `ESDF` on the left hand and `IJKL` on the right hand to better line up with the columns offset/staggered columns on the Dox.
+
+## Numpad Layer
+
+![Numpad](https://meagerfindings.com/assets/img/ergodox/numpad.png)
+
+My right hand is pretty comfortable with tenkey number input so this is easily accessible by holding down backspace with the left thumb.
+
+Also, on the left hand, there is a tap to copy and hold to cut macro under the `D` key, and a tap to paste and a hold to paste special macro on the `F` key. I guess I'm to too lazy to move my fingers when copying/pasting...
diff --git a/layouts/community/ergodox/meagerfindings/config.h b/layouts/community/ergodox/meagerfindings/config.h
new file mode 100644
index 000000000..3d4f11b43
--- /dev/null
+++ b/layouts/community/ergodox/meagerfindings/config.h
@@ -0,0 +1,26 @@
+#undef VENDOR_ID
+#define VENDOR_ID 0xFEED
+#undef PRODUCT_ID
+#define PRODUCT_ID 0x1307
+#undef DEVICE_VER
+#define DEVICE_VER 0x0001
+#undef MANUFACTURER
+#define MANUFACTURER meagerfindings
+#undef PRODUCT
+#define PRODUCT ErgoDox
+#undef DESCRIPTION
+#define DESCRIPTION meagerfindings firmware for Ergodox
+
+#define USB_MAX_POWER_CONSUMPTION 500
+
+#undef MOUSEKEY_INTERVAL
+#define MOUSEKEY_INTERVAL 20
+#undef MOUSEKEY_DELAY
+#define MOUSEKEY_DELAY 0
+#undef MOUSEKEY_TIME_TO_MAX
+#define MOUSEKEY_TIME_TO_MAX 18
+#undef MOUSEKEY_MAX_SPEED
+#define MOUSEKEY_MAX_SPEED 4
+
+#undef TAPPING_TERM
+#define TAPPING_TERM 200
diff --git a/layouts/community/ergodox/meagerfindings/keymap.c b/layouts/community/ergodox/meagerfindings/keymap.c
new file mode 100644
index 000000000..62504f966
--- /dev/null
+++ b/layouts/community/ergodox/meagerfindings/keymap.c
@@ -0,0 +1,558 @@
+#include QMK_KEYBOARD_H
+#include "version.h"
+
+enum {
+ BASE = 0,
+ OLD_BASE,
+ SYMBL,
+ MEDIA,
+ MKDWN,
+ ARROWS,
+ NUM,
+};
+
+enum custom_keycodes {
+ PLACEHOLDER = SAFE_RANGE, // can always be here
+ EPRM,
+ VRSN,
+ MD_LINK,
+ XKCD,
+ DBLE_ZER0,
+ L_ID_0,
+ L_ID_1,
+ L_ID_2,
+ PAST_PS,
+ TODO,
+ RUBYMINE,
+ ZENDESK,
+ DBLE_ASTR,
+ TRPLE_GRAVE,
+ H_ONE,
+ H_TWO,
+ H_THREE,
+ H_FOUR,
+ H_FIVE,
+ M_LINK,
+ M_GREATER,
+ TD_COPY_CUT = 6,
+ TD_SNAGIT = 8,
+ TD_B_L_SEL = 10,
+ CT_LBP = 11,
+ CT_RBP = 12
+};
+
+//Redefine Key Names for Readaibilty
+#define XXXXXXX KC_NO
+#define SCRN_CLIPB LCTL(LGUI(LSFT(KC_4)))
+#define CHRM_L LALT(LGUI(KC_LEFT)) //Move left one tab in Chrome
+#define CHRM_R LALT(LGUI(KC_RIGHT)) //Move right one tab in Chrome
+#define S_CMD_S LGUI_T(KC_S) //`S` when typing `CMD` when held
+#define D_CMD_OPT LGUI_T(LALT_T(KC_D)) //`D` when typing `CMD + Opt` when held
+
+static uint16_t key_timer; //key timer for macros
+
+//Tap Dance Definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+ //Tap once for Copy, twice for Paste, three times for Cut.
+ [TD_COPY_CUT] = ACTION_TAP_DANCE_DOUBLE(LGUI(KC_C),LGUI(KC_X)),
+ //Tap once for Snagit, twice for Cmd + Shift + Opt + 4 (OS X cropping screenshot that is copied to the clipboard only.)
+ [TD_SNAGIT] = ACTION_TAP_DANCE_DOUBLE(LCTL(LSFT(KC_C)), LCTL(LGUI(LSFT(KC_4)))),
+ [CT_LBP] = ACTION_TAP_DANCE_DOUBLE (KC_LBRC, KC_LPRN),
+ [CT_RBP] = ACTION_TAP_DANCE_DOUBLE (KC_RBRC, KC_RPRN)
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ /* Keymap 0: Basic layer
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | = | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | W | E | R | T | "> " | | []() | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | | SCRN |------+------+------+------+------+--------|
+ * | Hyper | A |S /CMD|D/OPT | F /MD| G |------| |------| H | J |K/OPT |L /CMD| ; /L2| '/Hyper|
+ * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
+ * |Shft Tab|Z/Ctrl|X/Alt | C | V | B | [ { | | ] } | N | M | , | ./Alt|//Ctrl|CMD+SHFT|
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | ` |Zendsk|RBMINE|CMD+S | ToDo | | _ | | 00 | 00 |OLD BASE|
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,--------------.
+ * | Esc | Home | |Layer?| Esc |
+ * ,------|------|------| |------+-------+------.
+ * | | | End | | Undo | | |
+ * |Shift |Backsp|------| |------| Return|Space/|
+ * | OSM | /NUM | DEL | | Ctrl | /SYML |Arrows|
+ * `--------------------' `---------------------'
+ *
+ *Copy/Cut key copies on tap, cut's on two taps.
+ *
+ *One tap on Snagit key = is Ctrl + Shift + C which is Snagit's selector.
+ *Two taps on Snagit key = Cmd + Shift + Opt + 4 (OS X cropping screenshot that is copied to the clipboard only.)
+ */
+
+ [BASE] = LAYOUT_ergodox(
+ //left hand
+ KC_EQUAL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, M_GREATER,
+ OSM(MOD_HYPR), KC_A, S_CMD_S, ALT_T(KC_D), LT(MKDWN,KC_F), KC_G,
+ LSFT(KC_TAB), CTL_T(KC_Z), ALT_T(KC_X), KC_C, KC_V, KC_B, TD(CT_LBP),
+ KC_GRAVE, ZENDESK, RUBYMINE, LGUI(KC_S), TODO,
+ KC_ESCAPE, KC_HOME,
+ KC_END,
+ OSM(MOD_LSFT), LT(NUM,KC_BSPACE), LT(MKDWN,KC_DELETE),
+
+ //right hand
+ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MINUS,
+ MD_LINK, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH,
+ KC_H, KC_J, ALT_T(KC_K), LGUI_T(KC_L), LT(MEDIA,KC_SCOLON), ALL_T(KC_QUOTE),
+ TD(CT_RBP), KC_N, KC_M, KC_COMMA, ALT_T(KC_DOT), CTL_T(KC_SLASH), SCMD_T(_______),
+ LSFT(KC_MINUS), _______, DBLE_ZER0, DBLE_ZER0, TO(OLD_BASE),
+ L_ID_0, KC_ESCAPE,
+ LGUI(KC_Z),
+ LT(MEDIA,KC_LCTL), LT(SYMBL,KC_ENTER), LT(ARROWS,KC_SPACE)),
+
+ /* Keymap 1: OLD Base layer
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | = | 1 | 2 | 3 | 4 | 5 | []() | |Snagit| 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | W | E | R | T | "> " | | []() | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | | SCRN |------+------+------+------+------+--------|
+ * | Hyper | A |S /CMD| D | F | G |------| |------| H | J | K |L /CMD| ; /L2| '/Hyper|
+ * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
+ * |Shft Tab|Z/Ctrl|X/Alt | C | V | B | [ { | | ] } | N | M | , | ./Alt|//Ctrl|CMD+SHFT|
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | ` |Zendsk|RBMINE|CMD+S | ToDo | | _ | | 00 | 00 |ToBase|
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,--------------.
+ * | Esc | Home | |Layer?| Esc |
+ * ,------|------|------| |------+-------+------.
+ * | | | End | | Undo | | |
+ * |Shift |Backsp|------| |------| Return|Space/|
+ * | OSM | /L5 | DEL | | Ctrl | /LT1 |Arrows|
+ * `--------------------' `---------------------'
+ *
+ *Copy/Cut key copies on tap, cut's on two taps.
+ *
+ *One tap on Snagit key = is Ctrl + Shift + C which is Snagit's selector.
+ *Two taps on Snagit key = Cmd + Shift + Opt + 4 (OS X cropping screenshot that is copied to the clipboard only.)
+ */
+
+ [OLD_BASE] = LAYOUT_ergodox(
+ //left hand
+ KC_EQUAL, KC_1, KC_2, KC_3, KC_4, KC_5, M_LINK,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, M_GREATER,
+ OSM(MOD_HYPR), KC_A, S_CMD_S, D_CMD_OPT, LT(MKDWN,KC_F),KC_G,
+ LSFT(KC_TAB), CTL_T(KC_Z), ALT_T(KC_X), KC_C, KC_V, KC_B, TD(CT_LBP),
+ KC_GRAVE, ZENDESK, RUBYMINE, LGUI(KC_S), TODO,
+ KC_ESCAPE, KC_HOME,
+ KC_END,
+ OSM(MOD_LSFT), LT(NUM,KC_BSPACE), LT(MKDWN,KC_DELETE),
+
+ //right hand
+ TD(TD_SNAGIT), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
+ MD_LINK, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH,
+ KC_H, KC_J, KC_K, LGUI_T(KC_L), LT(MEDIA,KC_SCOLON), ALL_T(KC_QUOTE),
+ TD(CT_RBP), KC_N, KC_M, KC_COMMA, ALT_T(KC_DOT), CTL_T(KC_SLASH), SCMD_T(_______),
+ LSFT(KC_MINUS), _______, DBLE_ZER0, DBLE_ZER0, TO(BASE),
+ L_ID_0, KC_ESCAPE,
+ LGUI(KC_Z),
+ LT(MEDIA,KC_LCTL), LT(SYMBL,KC_ENTER), LT(ARROWS,KC_SPACE)),
+
+ /* Keymap 2: Symbol
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | 1 | 2 | 3 | 4 | 5 | []() | |Snagit| 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | $ | & | ` | | | Cmd | | | | | * | | | |
+ * |--------+------+------+------+------+------| + K | | |------+------+------+------+------+--------|
+ * | | # | $ | & | ! | @ |------| |------| - | [ | ] | ( | ) | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | % | ^ | | | ~ | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | |Layer?| |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+ // SYMBOLS
+ [SYMBL] = LAYOUT_ergodox(
+ //left hand
+ _______, KC_1, KC_2, KC_3, KC_4, KC_5, M_LINK,
+ _______, _______, KC_DLR, KC_AMPR, KC_GRAVE, KC_PIPE, LGUI(KC_K),
+ _______, KC_HASH, KC_DLR, KC_AMPR, KC_EXLM, KC_AT,
+ _______, KC_PERC, KC_CIRC, _______, _______, KC_TILD, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______,
+
+ //right hand
+ TD(TD_SNAGIT), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
+ _______, _______, _______, KC_PAST, _______, _______, _______,
+ KC_MINUS, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, _______,
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ L_ID_1, _______,
+ _______,
+ _______, _______, _______),
+
+ /* Keymap 3: Media and mouse keys
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | XKCD | | | | | | F15 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | |Whl Up| MsUp |Whl Dn| | | | | | | | | | F14 |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | |Ctl L |MsLeft|MsDown|MsRght| Ctl R|------| |------| | Mute | VolDn| VolUp| TL 2 | Play |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |WHL L | |Whl R | | | | | | | Prev | Next | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | Mute | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | |LAYER?| |
+ * ,------|------|------| |------+------+------.
+ * | Left |Right | | | |Copy/ | paste|
+ * | Click|Click |------| |------| cut |/paste|
+ * | | | | | | |spcial|
+ * `--------------------' `--------------------'
+ */
+ // MEDIA AND MOUSE
+
+ [MEDIA] = LAYOUT_ergodox(
+ //left hand
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, KC_MS_WH_UP, KC_MS_UP, KC_MS_WH_DOWN, _______, _______,
+ _______, LCTL(KC_LEFT), KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, RCTL(KC_RIGHT),
+ XXXXXXX, _______, KC_MS_WH_LEFT, _______, KC_MS_WH_RIGHT, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ KC_MS_BTN1, KC_MS_BTN2, _______,
+
+ //right hand
+ XKCD, _______, _______, _______, _______, _______, KC_F15,
+ _______, _______, _______, _______, _______, _______, KC_F14,
+ _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, _______, KC_MEDIA_PLAY_PAUSE,
+ _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_MEDIA_NEXT_TRACK, _______, XXXXXXX,
+ _______, _______, _______, _______, _______,
+ L_ID_2, _______,
+ _______,
+ _______, TD(TD_COPY_CUT), PAST_PS),
+
+ /* Keymap 4: Markdown Symbols
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | |SCRNCL| | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | | ``` | ** | _ | ` | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | TL MD| |------| |------| - | [ | ] | ( | ) | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | # | ## | ### | #### | #####| |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | |Layer?| |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ * Sc cp = OS X cropping screenshot that is copied to the clipboard only.
+ */
+ // Markdown Layer
+ [MKDWN] = LAYOUT_ergodox(
+ //left hand
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______,
+
+ //right hand
+ SCRN_CLIPB, _______, _______, _______, _______, _______, _______,
+ _______, _______, TRPLE_GRAVE, DBLE_ASTR,LSFT(KC_MINUS), KC_GRAVE, _______,
+ KC_MINUS, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, _______,
+ _______, H_ONE, H_TWO, H_THREE, H_FOUR, H_FIVE, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______),
+
+ /* Keymap 5: Arrows
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | RESET | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | Opt+L| Up |Opt+R | | | | | | Opt+L| Up |Opt+R | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | |Ctrl+L| Left | Dn | Right|Ctrl+R|------| |------|Ctrl+L| Left | Dn | Right|Ctrl+R| |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | | | | | | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | | | | | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ *
+ *
+ *
+ */
+ // Movement Layer
+
+ [ARROWS] = LAYOUT_ergodox(
+ //left hand
+ RESET, _______, _______, _______, _______, _______, _______,
+ _______, _______, CHRM_L, KC_UP, CHRM_R, _______, _______,
+ _______,LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT),
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______,
+ //right hand
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, CHRM_L, KC_UP, CHRM_R, _______, _______,
+ LCTL(KC_LEFT), KC_LEFT, KC_DOWN, LGUI_T(KC_RIGHT), LCTL(KC_RIGHT), _______,
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______),
+
+ /* Keymap 6: Numpad
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | | | | | | | = | 7 | 8 | 9 | * | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | |Cp/Cut|paste | |------| |------| + | 4 | 5 | 6 | + | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | - | 1 | 2 | 3 | / | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | | | | | | 0 | . | 00 | 00 | Enter|
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | |Nupmad| |
+ * | | |------| |------|Enter | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+ // Numpad Layer
+ [NUM] = LAYOUT_ergodox(
+ //left hand
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, TD(TD_COPY_CUT), PAST_PS, _______,
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______,
+ _______, _______,
+ _______,
+ _______, _______, _______,
+
+ //right hand
+ _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_EQUAL, KC_7, KC_8, KC_9, KC_ASTR, _______,
+ KC_PLUS, KC_4, KC_5, KC_6, KC_PLUS, _______,
+ _______, KC_MINUS, KC_1, KC_2, KC_3, KC_KP_SLASH, _______,
+ KC_KP_0, KC_DOT, DBLE_ZER0, DBLE_ZER0, KC_KP_ENTER,
+ _______, _______,
+ _______,
+ _______, KC_PENT, _______),
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+
+ switch (keycode) {
+ case EPRM:
+ if (record->event.pressed) {
+ eeconfig_init();
+ }
+ return false;
+ break;
+
+ case VRSN:
+ if (record->event.pressed) {
+ SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
+ }
+ return false;
+ break;
+
+ case MD_LINK:
+ if (record->event.pressed){
+ key_timer = timer_read();
+ } else {
+ if (timer_elapsed(key_timer) > 150) {
+ SEND_STRING ("([Video](");
+ } else {
+ SEND_STRING ("([Screenshot](");
+ }
+ SEND_STRING(SS_LGUI("v"));
+ SEND_STRING("))");
+ }
+ break;
+
+ case XKCD:
+ if (record->event.pressed) {
+ SEND_STRING ("https://xkcd.com/1319/");
+ }
+ break;
+
+ case DBLE_ZER0:
+ if (record->event.pressed){
+ SEND_STRING ("00");
+ }
+ break;
+
+ case DBLE_ASTR:
+ if (record->event.pressed){
+ SEND_STRING ("**");
+ SEND_STRING ("**");
+ SEND_STRING (SS_TAP(X_LEFT));
+ SEND_STRING (SS_TAP(X_LEFT));
+ }
+ break;
+
+ case TRPLE_GRAVE:
+ if (record->event.pressed){
+ SEND_STRING ("```");
+ }
+ break;
+
+ case L_ID_0:
+ if (record->event.pressed) {
+ SEND_STRING (SS_LGUI(" "));
+ SEND_STRING ("Layer 0: Base");
+ }
+ break;
+
+ case L_ID_1:
+ if (record->event.pressed) {
+ SEND_STRING (SS_LGUI(" "));
+ SEND_STRING ("Layer 1: Symbols");
+ }
+ break;
+
+ case L_ID_2:
+ if (record->event.pressed) {
+ SEND_STRING (SS_LGUI(" "));
+ SEND_STRING ("Layer 2: Media & Mousekeys");
+ }
+ break;
+
+ case PAST_PS:
+ if (record->event.pressed) {
+ key_timer = timer_read();
+ } else {
+ if (timer_elapsed(key_timer) > 150) {
+ SEND_STRING (SS_LGUI("V")); // Paste special
+ } else {
+ SEND_STRING (SS_LGUI("v")); // Paste
+ }
+ }
+ break;
+
+ case TODO:
+ if (record->event.pressed) {
+ key_timer = timer_read();
+ } else {
+ if (timer_elapsed(key_timer) > 150) { //switch to Todoist when held and released
+ SEND_STRING (SS_LGUI(" "));
+ SEND_STRING ("Todoist");
+ SEND_STRING (SS_TAP(X_ENTER));
+ } else {
+ SEND_STRING (SS_LGUI(SS_LCTRL("a"))); //macro to open Todoist new task dialog
+ }
+ }
+ break;
+
+ case RUBYMINE:
+ if (record->event.pressed){
+ SEND_STRING (SS_LGUI(" "));
+ SEND_STRING ("RUBYMINE");
+ SEND_STRING (SS_TAP(X_ENTER));
+ }
+ break;
+
+ case ZENDESK:
+ if (record->event.pressed){
+ SEND_STRING (SS_LGUI(" "));
+ SEND_STRING ("||ZEN");
+ SEND_STRING (SS_TAP(X_ENTER));
+ }
+ break;
+
+ case H_ONE:
+ if (record->event.pressed){
+ SEND_STRING ("# ");
+ }
+ break;
+
+ case H_TWO:
+ if (record->event.pressed){
+ SEND_STRING ("## ");
+ }
+ break;
+
+ case H_THREE:
+ if (record->event.pressed){
+ SEND_STRING ("### ");
+ }
+ break;
+
+ case H_FOUR:
+ if (record->event.pressed){
+ SEND_STRING ("#### ");
+ }
+ break;
+
+ case H_FIVE:
+ if (record->event.pressed){
+ SEND_STRING ("##### ");
+ }
+ break;
+ case M_LINK:
+ if (record->event.pressed){
+ SEND_STRING ("[]()");
+ }
+ break;
+ case M_GREATER:
+ if (record->event.pressed){
+ SEND_STRING ("> ");
+ }
+ break;
+ }
+ return true;
+};
+
+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;
+ default:
+ break;
+ }
+};
diff --git a/layouts/community/ergodox/meagerfindings/rules.mk b/layouts/community/ergodox/meagerfindings/rules.mk
new file mode 100644
index 000000000..c775e1f6d
--- /dev/null
+++ b/layouts/community/ergodox/meagerfindings/rules.mk
@@ -0,0 +1,3 @@
+COMMAND_ENABLE = no
+TAP_DANCE_ENABLE = yes
+FORCE_NKRO = yes
diff --git a/layouts/community/ergodox/qwerty_code_friendly/keymap.c b/layouts/community/ergodox/qwerty_code_friendly/keymap.c
index f882d0e00..43a1d1ad8 100644
--- a/layouts/community/ergodox/qwerty_code_friendly/keymap.c
+++ b/layouts/community/ergodox/qwerty_code_friendly/keymap.c
@@ -403,16 +403,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, K80(L1K2), K80(L1K3),
KC_TRNS, KC_TRNS, KC_TRNS
),
-/* Keymap 2: Numbers, media and mouse keys
+/* Keymap 2: FKeys, media & mouse keys
*
* .--------------------------------------------------. .--------------------------------------------------.
- * | | 1 | 2 | 3 | 4 | 5 | | | Mute | 6 | 7 | 8 | 9 | 0 | |
+ * | | | | | | | | | Mute | | F10 | F11 | F12 | | |
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
- * | | | | MsUp | | |MWhlUp| |VolUp | | | | | | |
+ * | | | | MsUp | | |MWhlUp| |VolUp | | F7 | F8 | F9 | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | |MsLeft|MsDown|MsRght| |------| |------| Left | Down | Up |Right | | |
+ * | | |MsLeft|MsDown|MsRght| |------| |------| | F4 | F5 | F6 | | |
* |--------+------+------+------+------+------|MWhlDn| |VolDn |------+------+------+------+------+--------|
- * | | | Rclk | Mclk | Lclk | | | | | | | | | | |
+ * | | | Rclk | Mclk | Lclk | | | | | | F1 | F2 | F3 | | |
* '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
* | | | | | | | | | | | |
* '----------------------------------' '----------------------------------'
@@ -427,7 +427,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* MEDIA, MOUSE & NUMBERS */
[LAYER_MDIA] = LAYOUT_ergodox_76_or_80(
/* left hand */
- KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_WH_U,
KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
KC_TRNS, KC_TRNS, KC_BTN2, KC_BTN3, KC_BTN1, KC_TRNS, KC_WH_D,
@@ -436,19 +436,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
K80(L2K0), K80(L2K1), KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
/* right hand */
- KC_MUTE, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
- KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
- KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, KC_TRNS,
- KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_MUTE, KC_TRNS, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
+ KC_VOLU, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_TRNS,
+ KC_VOLD, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_MRWD, KC_MFFD,
KC_MPRV, K80(L2K2), K80(L2K3),
KC_MNXT, KC_TRNS, KC_MPLY
),
-/* Keymap 3: Entire Words (one for each key)
+/* Keymap 3: Entire Words (one for each key) & Numbers
*
* .--------------------------------------------------. .--------------------------------------------------.
- * | | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | |
+ * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | |
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
* | | Q | W | E | R | T | | | | Y | U | I | O | P | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
@@ -470,7 +470,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* FKEY & WORDS */
[LAYER_FKEY] = LAYOUT_ergodox_76_or_80(
/* left hand */
- KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11,
+ KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
KC_TRNS, M_WORD_Q, M_WORD_W, M_WORD_E, M_WORD_R, M_WORD_T, KC_TRNS,
KC_TRNS, M_WORD_A, M_WORD_S, M_WORD_D, M_WORD_F, M_WORD_G,
KC_TRNS, M_WORD_Z, M_WORD_X, M_WORD_C, M_WORD_V, M_WORD_B, KC_TRNS,
@@ -479,7 +479,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
K80(L3K0), K80(L3K1), KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
/* right hand */
- KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
+ KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
KC_TRNS, M_WORD_Y, M_WORD_U, M_WORD_I, M_WORD_O, M_WORD_P, KC_TRNS,
M_WORD_H, M_WORD_J, M_WORD_K, M_WORD_L, KC_TRNS, KC_TRNS,
KC_TRNS, M_WORD_N, M_WORD_M, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
diff --git a/layouts/community/ergodox/qwerty_code_friendly/readme.md b/layouts/community/ergodox/qwerty_code_friendly/readme.md
index 8bc15dd31..9abd071b9 100644
--- a/layouts/community/ergodox/qwerty_code_friendly/readme.md
+++ b/layouts/community/ergodox/qwerty_code_friendly/readme.md
@@ -30,7 +30,7 @@ Some optional behavior is configurable without editing the code
using `CFQ_` prefixed defines which can be set by passing `EXTRAFLAGS` to make.
- `CFQ_USER_KEY0`
- (0..7) are used for custom-keys
+ (0..8) are used for custom-keys
- `CFQ_USE_MOMENTARY_LAYER_KEYS`
is used to prevent layer keys from toggling when tapped.
- `CFQ_USE_SHIFT_QUOTES`
@@ -122,22 +122,17 @@ Notes:
'--------------------' '--------------------'
```
-## Keymap 2: Media, Mouse Keys and Numbers
-
-Notes:
-
-- Numbers are included on this layer since some applications differentiate
- between numbers top row and keypad.
+## Keymap 2: F-Keys, Media & Mouse Keys
```
.--------------------------------------------------. .--------------------------------------------------.
-| | 1 | 2 | 3 | 4 | 5 | | | Mute | 6 | 7 | 8 | 9 | 0 | |
+| | | | | | | | | Mute | | F10 | F11 | F12 | | |
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
-| | | | MsUp | | |MWhlUp| |VolUp | | | | | | |
+| | | | MsUp | | |MWhlUp| |VolUp | | F7 | F8 | F9 | | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
-| | |MsLeft|MsDown|MsRght| |------| |------| Left | Down | Up |Right | | |
+| | |MsLeft|MsDown|MsRght| |------| |------| | F4 | F5 | F6 | | |
|--------+------+------+------+------+------|MWhlDn| |VolDn |------+------+------+------+------+--------|
-| | | Rclk | Mclk | Lclk | | | | | | | | | | |
+| | | Rclk | Mclk | Lclk | | | | | | F1 | F2 | F3 | | |
'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
| | | | | | | | | | | |
'----------------------------------' '----------------------------------'
@@ -150,15 +145,20 @@ Notes:
'--------------------' '--------------------'
```
-## Keymap 3: F-Keys & User Defined Words
+## Keymap 3: User Defined Words & Numbers
This is for assigning whole words to single keys.
You can define the arguments (which must be quoted) using: `CFQ_WORD_[A-Z]`
eg: `-DCFQ_WORD_E=\"my@email.com\"`
+Notes:
+
+- Numbers are included on this layer since some applications differentiate
+ between numbers top row and keypad.
+
```
.--------------------------------------------------. .--------------------------------------------------.
-| | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | |
+| | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | |
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
| | Q | W | E | R | T | | | | Y | U | I | O | P | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
@@ -179,6 +179,9 @@ eg: `-DCFQ_WORD_E=\"my@email.com\"`
## Changelog
+- 2018/10/19
+ Move F-Keys to key-pad like layout.
+
- 2018/05/29
Add number keys for cases when keypad numbers are handled differently.
diff --git a/layouts/community/ergodox/swedish-lindhe/keymap.c b/layouts/community/ergodox/swedish-lindhe/keymap.c
index e977ab994..a46408793 100644
--- a/layouts/community/ergodox/swedish-lindhe/keymap.c
+++ b/layouts/community/ergodox/swedish-lindhe/keymap.c
@@ -63,7 +63,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, NO_AA,
KC_H, KC_J, KC_K, KC_L, NO_OSLH, NO_AE,
KC_DELT, KC_N, KC_M, KC_COMM, KC_DOT, NO_MINS, KC_RSFT,
- NO_ALGR, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT,
+ KC_ALGR, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT,
KC_HOME, KC_END,
KC_PGUP,
KC_PGDN, KC_TAB, LT(MDIA, KC_ENT)
diff --git a/layouts/community/ergodox/swedish/keymap.c b/layouts/community/ergodox/swedish/keymap.c
index d2b9b40d1..0cda8511f 100644
--- a/layouts/community/ergodox/swedish/keymap.c
+++ b/layouts/community/ergodox/swedish/keymap.c
@@ -76,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_H, KC_J, KC_K, KC_L, LT(MDIA, NO_OSLH), GUI_T(NO_AE),
MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(NO_MINS), KC_RSFT,
KC_UP, KC_DOWN, NO_CIRC, NO_ASTR, KC_FN1,
- NO_ALGR, CTL_T(KC_ESC),
+ KC_ALGR, CTL_T(KC_ESC),
KC_PGUP,
KC_PGDN,KC_TAB, KC_ENT
),
diff --git a/layouts/community/ergodox/techtomas/readme.md b/layouts/community/ergodox/techtomas/readme.md
index 36e0591a8..3d1bcb9e1 100644
--- a/layouts/community/ergodox/techtomas/readme.md
+++ b/layouts/community/ergodox/techtomas/readme.md
@@ -39,7 +39,7 @@ The right arrow key and End key toggle the control layer on the left board. Ther
On the left board you have mouse control with left & right click in the location of the G and B keys.
On the right board you have vim-style arrow keys using hjkl
-The left thumb cluster moves shift and alt within easy reach while holding the toggle (end). So far I've found this convient to navigate and skip around text when using the hjkl arrow keys. I found that it was easy to get the alt key stuck on depending on what key you released first so I added the PREVENT_STUCK_MODIFIERS to the config.h to help with that.
+The left thumb cluster moves shift and alt within easy reach while holding the toggle (end). So far I've found this convient to navigate and skip around text when using the hjkl arrow keys.
## Changelog
diff --git a/layouts/community/ortho_3x10/wanleg/readme.md b/layouts/community/ortho_3x10/wanleg/readme.md
index ef6c1f9db..8696cccf6 100644
--- a/layouts/community/ortho_3x10/wanleg/readme.md
+++ b/layouts/community/ortho_3x10/wanleg/readme.md
@@ -1,13 +1,10 @@
![Gherkin Wanleg Layout Image](https://i.imgur.com/nCPog2W.png)
# Gherkin Wanleg Layout
This is the layout I came up with to preserve a standard QWERTY 104 key ANSI layout as much as possible, in as few layers as possible for a 30 key board.
-I originally set up a few Tap Dance keys, but dropped half of them in favor of chorded versions since in actual use, they tended to impede typing speed more than their current two-key versions.
-I've left them in my `keymap.c` ready for use if anyone wants to try them out:
+Here are the two Tap Dance keys I've set up for this board:
-Legend Name | Single Tap | Double Tap | Hold
---- | --- | --- | ---
-*null* | space | enter | shift
-*null* | backspace | delete | control
+Legend Name | Single Tap | Double Tap | Hold
+--- | --- | --- | ---
Sft//Cp | shift | caps lock | *null*
Q//Esc | KC_Q | escape | *null*
diff --git a/layouts/community/ortho_4x12/bakingpy/rules.mk b/layouts/community/ortho_4x12/bakingpy/rules.mk
index 0d568c401..9be2f01d4 100644
--- a/layouts/community/ortho_4x12/bakingpy/rules.mk
+++ b/layouts/community/ortho_4x12/bakingpy/rules.mk
@@ -3,4 +3,10 @@ ifeq ($(LAYOUTS_HAS_RGB),yes)
RGBLIGHT_ENABLE = yes
endif
AUDIO_ENABLE = no
-BACKLIGHT_ENABLE = yes
+ifeq ($(strip $(KEYBOARD)), zlant)
+ BACKLIGHT_ENABLE = no
+else ifeq ($(strip $(KEYBOARD)), 40percentclub/4x4)
+ BACKLIGHT_ENABLE = no
+else
+ BACKLIGHT_ENABLE = yes
+endif
diff --git a/layouts/community/ortho_4x12/buswerks/keymap.c b/layouts/community/ortho_4x12/buswerks/keymap.c
index c05c26418..72c592a0c 100644
--- a/layouts/community/ortho_4x12/buswerks/keymap.c
+++ b/layouts/community/ortho_4x12/buswerks/keymap.c
@@ -7,6 +7,7 @@ extern keymap_config_t keymap_config;
#define _DVORAK 2
#define _LOWER 3
#define _RAISE 4
+#define _MOUSE 5
#define _ADJUST 16
enum custom_keycodes {
@@ -15,7 +16,7 @@ enum custom_keycodes {
DVORAK,
LOWER,
RAISE,
- NAV,
+ MOUSE,
ADJUST,
};
@@ -29,15 +30,26 @@ enum custom_keycodes {
#define KC_LOWR LOWER
#define KC_RASE RAISE
#define KC_ADJ ADJUST
+#define MOUSE TG(_MOUSE)
#define DESK_L LCTL(KC_LEFT)
#define DESK_R LCTL(KC_RGHT)
#define MSN_CTL LCTL(KC_UP)
#define APP_WND LCTL(KC_DOWN)
+#define SWITCHR LGUI(KC_TAB)
+
+#define WORD_L LALT(KC_LEFT)
+#define WORD_R LALT(KC_RGHT)
+#define LINE_L LGUI(KC_LEFT)
+#define LINE_R LGUI(KC_RGHT)
+
+#define COPY LGUI(KC_C)
+#define CUT LGUI(KC_X)
+#define PASTE LGUI(KC_V)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-[_QWERTY] = LAYOUT_ortho_4x12( \
+[_QWERTY] = LAYOUT_ortho_4x12(
// .--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I, KC_O , KC_P , KC_BSPC, \
// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
@@ -45,7 +57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
KC_LSPO, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSPC, \
// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER , KC_SPC , KC_SPC , RSE_ENT, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT \
+ KC_LCTL, KC_HYPR, MOUSE , KC_LALT, LOWER , KC_SPC , KC_SPC , RSE_ENT, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT \
// '--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------'
),
@@ -57,7 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
KC_LSPO, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSPC, \
// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER , KC_SPC , KC_SPC , RSE_ENT, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT \
+ KC_LCTL, KC_HYPR, MOUSE , KC_LALT, LOWER , KC_SPC , KC_SPC , RSE_ENT, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT \
// '--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------'
),
@@ -69,38 +81,50 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \
// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER , KC_SPC , KC_SPC , RSE_ENT, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT \
+ KC_LCTL, KC_HYPR, MOUSE , KC_LALT, LOWER , KC_SPC , KC_SPC , RSE_ENT, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT \
// '--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------'
),
[_LOWER] = LAYOUT_ortho_4x12( \
// .--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.
- KC_TILD, _______, KC_VOLD, MSN_CTL, KC_VOLU, _______, _______, KC_7, KC_8, KC_9, KC_MINS, KC_BSPC, \
+ SWITCHR, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_7, KC_8, KC_9, KC_MINS, _______, \
// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- _______, _______, DESK_L , APP_WND, DESK_R , _______, _______, KC_4, KC_5, KC_6, KC_PLUS, KC_PIPE, \
+ KC_TILD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_4, KC_5, KC_6, KC_PLUS, KC_PIPE, \
// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- KC_LBRC, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, KC_SLSH, KC_RBRC, \
+ _______, _______, _______, KC_UNDS, KC_EQL, _______, _______, KC_1, KC_2, KC_3, _______, _______, \
// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- _______, _______, _______, _______, _______, _______, _______, KC_0, _______, _______, _______, _______ \
+ _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_COMM, _______, _______ \
// '--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------'
),
[_RAISE] = LAYOUT_ortho_4x12( \
// .--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.
- KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \
+ KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_UNDS, KC_EQL, KC_DEL, \
+ // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ _______, _______, KC_LBRC, KC_LCBR, KC_RCBR, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_BSLS, \
+ // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ _______, _______, _______, _______, _______, _______, LINE_L, WORD_L, WORD_R, LINE_R, _______, _______, \
+ // |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT \
+ // '--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------'
+),
+
+[_MOUSE] = LAYOUT_ortho_4x12( \
+ // .--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------.
+ SWITCHR, _______, _______, KC_MS_U, _______, _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, \
// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, _______, KC_BSLS, \
+ _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_BTN1, KC_BTN2, KC_BTN3, _______, _______, \
// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- KC_LCBR, KC_CIRC, KC_ASTR, KC_UNDS, KC_EQL, KC_AMPR, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, KC_RCBR, \
+ _______, _______, _______, KC_WH_U, KC_WH_D, COPY, PASTE, KC_BTN4, KC_BTN5, _______, _______, _______, \
// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ _______, _______, MOUSE , _______, _______, KC_SPC, KC_SPC, KC_ENT, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT \
// '--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------'
),
[_ADJUST] = LAYOUT_ortho_4x12( \
- KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12, \
- _______, _______, RESET, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, QWERTY, COLEMAK, DVORAK, RESET, _______, _______, _______, _______, AG_NORM, AG_SWAP, _______, \
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, AU_OFF , AU_ON , _______, \
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
)
diff --git a/layouts/community/ortho_4x12/buswerks/rules.mk b/layouts/community/ortho_4x12/buswerks/rules.mk
new file mode 100644
index 000000000..72f825732
--- /dev/null
+++ b/layouts/community/ortho_4x12/buswerks/rules.mk
@@ -0,0 +1,9 @@
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = no # Commands for debug and configuration
+TAP_DANCE_ENABLE = no
+AUDIO_ENABLE = yes
+
+MACROS_ENABLED = no \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/drashna/config.h b/layouts/community/ortho_4x12/drashna/config.h
index 0bb6a4f50..0b0110dfa 100644
--- a/layouts/community/ortho_4x12/drashna/config.h
+++ b/layouts/community/ortho_4x12/drashna/config.h
@@ -1,11 +1,10 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
+#pragma once
#if defined(RGBLIGHT_ENABLE) && !defined(RGBLED_NUM)
#define RGB_DI_PIN D3
#define RGBLED_NUM 16 // Number of LEDs
-#define RGBLIGHT_ANIMATIONS
+
#define RGBLIGHT_HUE_STEP 12
#define RGBLIGHT_SAT_STEP 12
#define RGBLIGHT_VAL_STEP 12
@@ -14,6 +13,15 @@
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1
#endif // RGBLIGHT_ENABLE
+#ifdef RGB_MATRIX_ENABLE
+#define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
+// #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened)
+// #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
+// #define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended
+// #define RGB_MATRIX_SKIP_FRAMES 1 // number of frames to skip when displaying animations (0 is full effect) if not defined defaults to 1
+// #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
+// #define EECONFIG_RGB_MATRIX (uint32_t *)16
+#endif
#if defined(KEYBOARD_lets_split_rev2)
#define USE_SERIAL
@@ -22,11 +30,11 @@
#define EE_HANDS
#endif
-#if defined(KEYBOARD_planck_rev5)
+#if !defined(KEYBOARD_planck_light)
#ifdef RGBLIGHT_ENABLE
#define NO_MUSIC_MODE
#endif // RGBLIGHT_ENABLE
-#endif // KEYBOARD_planck_rev5
+#endif // KEYBOARD_planck_light
/*
@@ -52,5 +60,3 @@
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 2
-
-#endif
diff --git a/layouts/community/ortho_4x12/drashna/keymap.c b/layouts/community/ortho_4x12/drashna/keymap.c
index a5443939c..5d3218934 100644
--- a/layouts/community/ortho_4x12/drashna/keymap.c
+++ b/layouts/community/ortho_4x12/drashna/keymap.c
@@ -17,86 +17,65 @@
#include QMK_KEYBOARD_H
#include "drashna.h"
+#ifdef RGB_MATRIX_ENABLE
+extern bool g_suspend_state;
+#endif
+#ifdef BACKLIGHT_ENABLE
enum planck_keycodes {
BACKLIT = NEW_SAFE_RANGE,
};
+#else
+ #define BACKLIT OSM(MOD_LSFT)
+#endif
+
+#define LAYOUT_ortho_4x12_base( \
+ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
+ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
+ K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
+ ) \
+ LAYOUT_ortho_4x12_wrapper( \
+ KC_ESC, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \
+ KC_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, \
+ KC_MLSF, CTL_T(K21), K22, K23, K24, K25, K26, K27, K28, K29, CTL_T(K2A), KC_ENT, \
+ BACKLIT, OS_LCTL, OS_LALT, OS_LGUI, SP_LWER, BK_LWER, DL_RAIS, ET_RAIS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
+ )
+#define LAYOUT_ortho_4x12_base_wrapper(...) LAYOUT_ortho_4x12_base(__VA_ARGS__)
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-/* Qwerty
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | S | D | F | G | H | J | K | L | ; | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_QWERTY] = LAYOUT_ortho_4x12_wrapper(
- KC_TAB, _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSPC,
- KC_ESC, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT,
- KC_LSFT, _________________QWERTY_L3_________________, _________________QWERTY_R3_________________, KC_ENT,
- BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+[_QWERTY] = LAYOUT_ortho_4x12_base_wrapper(
+ _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
+ _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
+ _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
),
-/* Colemak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | R | S | T | D | H | N | E | I | O | " |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_COLEMAK] = LAYOUT_ortho_4x12_wrapper(
- KC_TAB, _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_BSPC,
- KC_ESC, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT,
- KC_LSFT, _________________COLEMAK_L3________________, _________________COLEMAK_R3________________, KC_ENT,
- BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+[_COLEMAK] = LAYOUT_ortho_4x12_base_wrapper(
+ _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
+ _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
+ _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
),
-/* Dvorak
- * ,-----------------------------------------------------------------------------------.
- * | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Esc | A | O | E | U | I | D | H | T | N | S | / |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
- * `-----------------------------------------------------------------------------------'
- */
-[_DVORAK] = LAYOUT_ortho_4x12_wrapper(
- KC_TAB, _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_BSPC,
- KC_ESC, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_SLSH,
- KC_LSFT, _________________DVORAK_L3_________________, _________________DVORAK_R3_________________, KC_ENT,
- BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+[_DVORAK] = LAYOUT_ortho_4x12_base_wrapper(
+ _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
+ _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
+ _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
),
+[_WORKMAN] = LAYOUT_ortho_4x12_base_wrapper(
+ _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
+ _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
+ _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
+),
-[_WORKMAN] = LAYOUT_ortho_4x12_wrapper(
- KC_TAB, _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, KC_BSPC,
- KC_ESC, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT,
- KC_LSFT, _________________WORKMAN_L3________________, _________________WORKMAN_R3________________, KC_ENT,
- BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+[_MODS] = LAYOUT_ortho_4x12_wrapper(
+ _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
+ _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
+ KC_LSFT, ___________________BLANK___________________, ___________________BLANK___________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
-/* Lower
- * ,-----------------------------------------------------------------------------------.
- * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
[_LOWER] = LAYOUT_ortho_4x12_wrapper(
KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_BSPC,
KC_DEL, _________________LOWER_L2__________________, _________________LOWER_R2__________________, KC_PIPE,
@@ -104,40 +83,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
),
-/* Raise
- * ,-----------------------------------------------------------------------------------.
- * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | Next | Vol- | Vol+ | Play |
- * `-----------------------------------------------------------------------------------'
- */
[_RAISE] = LAYOUT_ortho_4x12_wrapper(
KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, KC_BSPC,
KC_DEL, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
_______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ _______, _______, _______, _______, _______, _______, _______, _________________RAISE_R3__________________
),
-/* Adjust (Lower + Raise)
- * ,-----------------------------------------------------------------------------------.
- * | | Reset| | | | | | | | | | Del |
- * |------+------+------+------+------+-------------+------+------+------+------+------|
- * | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
- * |------+------+------+------+------+------|------+------+------+------+------+------|
- * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
- * |------+------+------+------+------+------+------+------+------+------+------+------|
- * | | | | | | | | | | | |
- * `-----------------------------------------------------------------------------------'
- */
[_ADJUST] = LAYOUT_ortho_4x12_wrapper(
- _______, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_DEL,
- _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, _______,
- _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, _______,
- _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ KC_MAKE, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, KC_RST,
+ VRSN, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, EEP_RST,
+ _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NUKE
)
@@ -147,7 +104,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
-#ifdef KEYBOARD_planck
+#ifdef BACKLIGHT_ENABLE
case BACKLIT:
if (record->event.pressed) {
register_code(KC_RSFT);
@@ -170,8 +127,107 @@ bool music_mask_user(uint16_t keycode) {
switch (keycode) {
case RAISE:
case LOWER:
+ case BK_LWER:
+ case SP_LWER:
+ case DL_RAIS:
+ case ET_RAIS:
return false;
default:
return true;
}
}
+
+#ifdef RGB_MATRIX_ENABLE
+
+void suspend_power_down_keymap(void)
+{
+ rgb_matrix_set_suspend_state(true);
+}
+
+void suspend_wakeup_init_keymap(void)
+{
+ rgb_matrix_set_suspend_state(false);
+}
+
+void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) {
+ rgb_led led;
+ for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
+ led = g_rgb_leds[i];
+ if (led.matrix_co.raw < 0xFF) {
+ if (led.modifier) {
+ rgb_matrix_set_color( i, red, green, blue );
+ }
+ }
+ }
+}
+
+void rgb_matrix_indicators_user(void) {
+ uint8_t this_mod = get_mods();
+ uint8_t this_led = host_keyboard_leds();
+ uint8_t this_osm = get_oneshot_mods();
+ if (!g_suspend_state) {
+ switch (biton32(layer_state)) {
+ case _RAISE:
+ rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, false); break;
+ case _LOWER:
+ rgb_matrix_layer_helper(0x00, 0xFF, 0x00, false); break;
+ case _ADJUST:
+ rgb_matrix_layer_helper(0xFF, 0x00, 0x00, false); break;
+ default:
+ switch (biton32(default_layer_state)) {
+ case _QWERTY:
+ rgb_matrix_layer_helper(0x00, 0xFF, 0xFF, true); break;
+ case _COLEMAK:
+ rgb_matrix_layer_helper(0xFF, 0x00, 0xFF, true); break;
+ case _DVORAK:
+ rgb_matrix_layer_helper(0x00, 0xFF, 0x00, true); break;
+ case _WORKMAN:
+ rgb_matrix_layer_helper(0xD9, 0xA5, 0x21, true); break;
+ }
+ }
+ }
+
+ switch (biton32(default_layer_state)) {
+ case _QWERTY:
+ rgb_matrix_set_color(42, 0x00, 0xFF, 0xFF); break;
+ case _COLEMAK:
+ rgb_matrix_set_color(42, 0xFF, 0x00, 0xFF); break;
+ case _DVORAK:
+ rgb_matrix_set_color(42, 0x00, 0xFF, 0x00); break;
+ case _WORKMAN:
+ rgb_matrix_set_color(42, 0xD9, 0xA5, 0x21); break;
+ }
+
+ if (this_mod & MODS_SHIFT_MASK || this_led & (1<<USB_LED_CAPS_LOCK) || this_osm & MODS_SHIFT_MASK) {
+ rgb_matrix_set_color(24, 0x00, 0xFF, 0x00);
+ rgb_matrix_set_color(36, 0x00, 0xFF, 0x00);
+ }
+ if (this_mod & MODS_CTRL_MASK || this_osm & MODS_CTRL_MASK) {
+ rgb_matrix_set_color(25, 0xFF, 0x00, 0x00);
+ rgb_matrix_set_color(34, 0xFF, 0x00, 0x00);
+ rgb_matrix_set_color(37, 0xFF, 0x00, 0x00);
+
+ }
+ if (this_mod & MODS_GUI_MASK || this_osm & MODS_GUI_MASK) {
+ rgb_matrix_set_color(39, 0xFF, 0xD9, 0x00);
+ }
+ if (this_mod & MODS_ALT_MASK || this_osm & MODS_ALT_MASK) {
+ rgb_matrix_set_color(38, 0x00, 0x00, 0xFF);
+ }
+}
+
+void matrix_init_keymap(void) {
+ rgblight_mode(RGB_MATRIX_MULTISPLASH);
+}
+#else //RGB_MATRIX_INIT
+
+void matrix_init_keymap(void) {
+ #ifndef CONVERT_TO_PROTON_C
+ setPinOutput(D5);
+ writePinHigh(D5);
+
+ setPinOutput(B0);
+ writePinHigh(B0);
+ #endif
+}
+#endif //RGB_MATRIX_INIT
diff --git a/layouts/community/ortho_4x12/drashna/rules.mk b/layouts/community/ortho_4x12/drashna/rules.mk
index ebd8b26b0..a5429b8ff 100644
--- a/layouts/community/ortho_4x12/drashna/rules.mk
+++ b/layouts/community/ortho_4x12/drashna/rules.mk
@@ -4,9 +4,16 @@ EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
TAP_DANCE_ENABLE = no
-RGBLIGHT_ENABLE = yes
AUDIO_ENABLE = yes
-
+ifeq (,$(findstring planck/rev6,$(KEYBOARD))) # Make sure it's NOT the Planck Rev6
+ RGBLIGHT_ENABLE = yes
+ INDICATOR_LIGHTS = yes
+ RGBLIGHT_TWINKLE = yes
+endif
+ifneq (,$(findstring planck/light,$(KEYBOARD))) # Make sure it IS the Planck Light
+ RGB_MATRIX_ENABLE = yes
+ RGBLIGHT_ENABLE = no
+endif
ifeq ($(strip $(PROTOCOL)), VUSB)
NKRO_ENABLE = no
@@ -15,6 +22,4 @@ NKRO_ENABLE = yes
endif
-INDICATOR_LIGHTS = yes
MACROS_ENABLED = no
-RGBLIGHT_TWINKLE = yes
diff --git a/layouts/community/ortho_4x12/grahampheath/config.h b/layouts/community/ortho_4x12/grahampheath/config.h
index 21d647921..8bc3d7762 100644
--- a/layouts/community/ortho_4x12/grahampheath/config.h
+++ b/layouts/community/ortho_4x12/grahampheath/config.h
@@ -21,8 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
-#define FLIP_HALF
-
#include "keyboards/lets_split/config.h"
/* Use I2C or Serial, not both */
diff --git a/layouts/community/ortho_4x12/grahampheath/keymap.c b/layouts/community/ortho_4x12/grahampheath/keymap.c
index e2421e9a7..0b84b66eb 100644
--- a/layouts/community/ortho_4x12/grahampheath/keymap.c
+++ b/layouts/community/ortho_4x12/grahampheath/keymap.c
@@ -19,6 +19,7 @@ enum custom_keycodes {
CONFUSED,
CRY,
CLAP,
+ ELIP,
FLIP,
FNGLEFT,
FNGRIGHT,
@@ -35,6 +36,7 @@ enum custom_keycodes {
THMBDN,
THMBUP,
TOUNGE,
+ THANKS,
WINK
};
@@ -114,19 +116,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Emoji Layer
* ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
- * │HYPR0│ Q │ ;-) │ E │ 🤣 │ :-P │ Y │ U │:'-( │FLIP │ P │ │
+ * │HYPR0│ Q │ ;-) │ E │ 🤣 │ :-P │ 🙏🏼 │ U │:'-( │FLIP │ P │ │
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
* │HYPR1│ 👆 │SHRUG│ GRIN│ :-( │ G │ <3 │ :-) │ k │LLAP │ ; │ │
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
- * │HYPR2│🎶^🎶│💭^💭│ 👏 | :-\ │ 🐛 │ n │ :-D │ SHIT│ . │ / │ │
+ * │HYPR2│🎶^🎶│💭^💭│ 👏 | :-\ │ 🐛 │ n │ :-D │ SHIT│ ... │ / │ │
* ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤
* │ │ │ │ │Brig-│ Sleep │Brig+│ 👈 │ 👎 | 👍 │ 👉 │
* └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘
*/
[_EMOJI] = LAYOUT_ortho_4x12(
- HYPR_0, _______, WINK, _______, ROFL, TOUNGE, _______, _______, CRY, FLIP, _______, _______ ,
+ HYPR_0, _______, WINK, _______, ROFL, TOUNGE, THANKS, _______, CRY, FLIP, _______, _______ ,
HYPR_1, ABOVE, SHRUG, GRIN, FROWN, _______, HEART, JOY, _______, LLAP, _______, _______ ,
- HYPR_2, SING, THINK, CLAP, CONFUSED, BUG, _______, _______, SHIT, _______, _______, _______ ,
+ HYPR_2, SING, THINK, CLAP, CONFUSED, BUG, _______, _______, SHIT, ELIP, _______, _______ ,
_______, _______, _______, _______, KC_SLCK, KC_SLEP, KC_SLEP, KC_PAUS, FNGLEFT, THMBDN, THMBUP, FNGRIGHT
),
};
@@ -174,6 +176,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return false;
break;
+ case ELIP:
+ if (record->event.pressed) {
+ SEND_STRING("...");
+ }
+ return false;
+ break;
case FLIP:
if (record->event.pressed) {
SEND_STRING("&fliptable;");
@@ -246,6 +254,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
return false;
break;
+ case THANKS:
+ if (record->event.pressed) {
+ SEND_STRING("&thanks;");
+ }
+ return false;
+ break;
case THINK:
if (record->event.pressed) {
SEND_STRING("_think_");
diff --git a/layouts/community/ortho_4x12/guidoism/generate_c.py b/layouts/community/ortho_4x12/guidoism/generate_c.py
deleted file mode 100644
index 7876bee68..000000000
--- a/layouts/community/ortho_4x12/guidoism/generate_c.py
+++ /dev/null
@@ -1,59 +0,0 @@
-import itertools
-import json
-from pprint import pprint as pp
-
-layers = dict(enumerate(['_QWERTY', '_LOWER', '_RAISE', '_MOVEMENT', '_NUMPAD']))
-key_names = {('MO(%d)' % i): layers.get(i).strip('_') for i in layers.keys()}
-
-unicodes = {
- "<i class='fa fa-fast-forward'></i>": "next",
- "<i class='fa fa-volume-down'></i>": "vol-",
- "<i class='fa fa-volume-up'></i>": "vol+",
- "<i class='fa fa-play'></i>": "play",
-}
-
-d = json.load(open('layouts/community/ortho_4x12/guidoism/guidoism.json'))
-
-def grouper(iterable, n):
- args = [iter(iterable)] * n
- return itertools.zip_longest(*args, fillvalue='')
-
-def truthy(s):
- return [a for a in s if a]
-
-def just(s, n):
- return [a.center(n*2+1 if len(s) == 11 and i == 5 else n) for i, a in enumerate(s)]
-
-def replace(s):
- return [key_names.get(a, a) for a in s]
-
-def layer(i, l):
- n = max(len(s) for s in l)
- rows = [', '.join(replace(truthy(row))) for row in grouper(l, 12)]
- return '[%s] = %s(\n%s)' % (layers[i], d['layout'], ',\n'.join(rows))
-
-print(',\n\n'.join(layer(i, l) for i, l in enumerate(d['layers'])))
-
-def surround(s, a, b, c):
- return a + b.join(s) + c
-
-def pattern(cell, table):
- return ['─'*cell for i in range(table)]
-
-keys = json.load(open('layouts/community/ortho_4x12/guidoism/keys.json'))
-
-def layer2(i, l):
- def replace(s):
- s = [keys.get(a, a) for a in s]
- return [unicodes.get(a, a) for a in s]
- n = max(len(s) for s in l)
- return [surround(just(replace(truthy(row)), 5), '│', '│', '│') for row in grouper(l, 12)]
-
-for i, l in enumerate(d['layers']):
- print(surround(pattern(5, 12), '┌', '┬', '┐'))
- for n, row in enumerate(layer2(i, l)):
- print(row)
- if n < 3:
- print(surround(pattern(5, 12), '├', '┼', '┤'))
- else:
- print(surround(pattern(5, 12), '└', '┴', '┘'))
diff --git a/layouts/community/ortho_4x12/guidoism/guidoism.json b/layouts/community/ortho_4x12/guidoism/guidoism.json
deleted file mode 100644
index fd287cf60..000000000
--- a/layouts/community/ortho_4x12/guidoism/guidoism.json
+++ /dev/null
@@ -1 +0,0 @@
-{"keyboard":"planck/rev4","keymap":"guidoism","layout":"LAYOUT_planck_mit","layers":[["KC_TAB","KC_Q","KC_W","KC_E","KC_R","KC_T","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_BSPC","LCTL_T(KC_ESC)","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_COLN","KC_ENT","LSFT_T(KC_CAPS)","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_COMM","KC_DOT","KC_SLSH","KC_NO","MO(3)","KC_NO","KC_LALT","KC_LGUI","MO(1)","LSFT_T(KC_SPC)","MO(2)","KC_RGUI","KC_RALT","KC_SCLN","KC_NO"],["KC_TILD","KC_EXLM","KC_AT","KC_HASH","KC_DLR","KC_PERC","KC_CIRC","KC_AMPR","KC_ASTR","KC_NO","KC_NO","KC_UNDO","KC_TRNS","KC_NO","KC_CUT","KC_COPY","KC_PSTE","KC_NO","KC_NO","KC_UNDS","KC_PLUS","KC_DQUO","KC_QUOT","KC_PIPE","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_MNXT","KC_VOLD","KC_VOLU","KC_MPLY"],["KC_GRV","KC_P1","KC_P2","KC_P3","KC_P4","KC_P5","KC_P6","KC_P7","KC_P8","KC_P9","KC_P0","KC_TRNS","KC_TRNS","KC_LBRC","KC_RBRC","KC_LPRN","KC_RPRN","KC_NO","KC_NO","KC_PMNS","KC_PEQL","KC_NO","KC_NO","KC_BSLS","KC_TRNS","KC_LT","KC_GT","KC_LCBR","KC_RCBR","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"],["RESET","DEBUG","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_PGUP","KC_UP","KC_PGDN","KC_NO","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_LEFT","KC_DOWN","KC_RGHT","KC_NO","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_HOME","KC_NO","KC_END","KC_NO","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"],["KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_P7","KC_P8","KC_P9","KC_PSLS","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_P4","KC_P5","KC_P6","KC_PAST","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_P1","KC_P2","KC_P3","KC_PMNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_PCMM","KC_P0","KC_PDOT","KC_PPLS","KC_TRNS"]]}
diff --git a/layouts/community/ortho_4x12/guidoism/keymap.c b/layouts/community/ortho_4x12/guidoism/keymap.c
deleted file mode 100644
index 093fe140b..000000000
--- a/layouts/community/ortho_4x12/guidoism/keymap.c
+++ /dev/null
@@ -1,96 +0,0 @@
-#include QMK_KEYBOARD_H
-#include "action_layer.h"
-#include "eeconfig.h"
-
-extern keymap_config_t keymap_config;
-
-enum planck_layers {
- _QWERTY,
- _LOWER,
- _RAISE,
- _MOVEMENT,
- _NUMPAD,
-};
-
-enum planck_keycodes {
- QWERTY = SAFE_RANGE,
- LOWER,
- RAISE,
- MOVEMENT,
- NUMPAD,
-};
-
-const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-
- [_QWERTY] = LAYOUT_planck_mit(
-KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
-LCTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_COLN, KC_ENT,
-LSFT_T(KC_CAPS), KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO,
-MOVEMENT, KC_NO, KC_LALT, KC_LGUI, LOWER, LSFT_T(KC_SPC), RAISE, KC_RGUI, KC_RALT, KC_SCLN, KC_NO),
-
- [_LOWER] = LAYOUT_planck_mit(
-KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_NO, KC_NO, KC_UNDO,
-KC_TRNS, KC_NO, KC_CUT, KC_COPY, KC_PSTE, KC_NO, KC_NO, KC_UNDS, KC_PLUS, KC_DQUO, KC_QUOT, KC_PIPE,
-KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
-KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY),
-
- [_RAISE] = LAYOUT_planck_mit(
-KC_GRV, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_TRNS,
-KC_TRNS, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_NO, KC_NO, KC_PMNS, KC_PEQL, KC_NO, KC_NO, KC_BSLS,
-KC_TRNS, KC_LT, KC_GT, KC_LCBR, KC_RCBR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
-KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- [_MOVEMENT] = LAYOUT_planck_mit(
-RESET, DEBUG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_UP, KC_PGDN, KC_NO, KC_TRNS,
-KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS,
-KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_NO, KC_END, KC_NO, KC_TRNS,
-KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
-
- [_NUMPAD] = LAYOUT_planck_mit(
-KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_TRNS,
-KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P4, KC_P5, KC_P6, KC_PAST, KC_TRNS,
-KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_TRNS,
-KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PCMM, KC_P0, KC_PDOT, KC_PPLS, KC_TRNS)
-
-};
-
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case QWERTY:
- if (record->event.pressed) {
- set_single_persistent_default_layer(_QWERTY);
- }
- return false;
- break;
- case LOWER:
- if (record->event.pressed) {
- layer_on(_LOWER);
- update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD);
- } else {
- layer_off(_LOWER);
- update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD);
- }
- return false;
- break;
- case RAISE:
- if (record->event.pressed) {
- layer_on(_RAISE);
- } else {
- layer_off(_RAISE);
- }
- return false;
- break;
- case MOVEMENT:
- if (record->event.pressed) {
- layer_on(_MOVEMENT);
- update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD);
- } else {
- layer_off(_MOVEMENT);
- update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD);
- }
- return false;
- break;
- }
- return true;
-}
diff --git a/layouts/community/ortho_4x12/mindsound/config.h b/layouts/community/ortho_4x12/mindsound/config.h
new file mode 100644
index 000000000..76e7da204
--- /dev/null
+++ b/layouts/community/ortho_4x12/mindsound/config.h
@@ -0,0 +1,33 @@
+#pragma once
+
+#define ADVENTURE_TIME \
+ H__NOTE(_F5), \
+ Q__NOTE(_F5), \
+ H__NOTE(_F5), \
+ H__NOTE(_G5), \
+ H__NOTE(_E5), \
+ H__NOTE(_E5), \
+ H__NOTE(_D5), \
+ H__NOTE(_C5), \
+ HD_NOTE(_C6),
+
+#ifdef AUDIO_ENABLE
+ #define STARTUP_SONG SONG(ADVENTURE_TIME)
+ #define AUDIO_CLICKY
+ #define AUDIO_CLICKY_ON
+ #define AUDIO_CLICKY_FREQ_MAX 2500.0f
+ #define AUDIO_CLICKY_FREQ_RANDOMNESS 0.2f
+ #define AUDIO_CLICKY_FREQ_DEFAULT 110.0f
+#endif
+
+// for some reason the LSvi rev1 disables action tapping...
+#ifdef NO_ACTION_TAPPING
+ #undef NO_ACTION_TAPPING
+#endif
+
+#undef BACKLIGHT_LEVELS
+#define BACKLIGHT_LEVELS 15
+
+// let's split configuration:
+#define USE_I2C
+#define EE_HANDS
diff --git a/layouts/community/ortho_4x12/mindsound/flicker.h b/layouts/community/ortho_4x12/mindsound/flicker.h
new file mode 100644
index 000000000..a982f19ae
--- /dev/null
+++ b/layouts/community/ortho_4x12/mindsound/flicker.h
@@ -0,0 +1,5 @@
+#pragma once
+
+void flicker_toggle(void);
+void flicker_keydown(void);
+void flicker_keyup(void);
diff --git a/layouts/community/ortho_4x12/mindsound/keymap.c b/layouts/community/ortho_4x12/mindsound/keymap.c
new file mode 100644
index 000000000..2c9ceaf69
--- /dev/null
+++ b/layouts/community/ortho_4x12/mindsound/keymap.c
@@ -0,0 +1,230 @@
+#include QMK_KEYBOARD_H
+
+#ifdef BACKLIGHT_ENABLE
+#include "flicker.h"
+#endif
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+
+enum planck_layers {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _ADJUST
+};
+
+// keycodes custom to this keymap:
+enum planck_keycodes {
+ QWERTY = SAFE_RANGE,
+ BL_FLICKER
+};
+
+// flicker state:
+#ifdef BACKLIGHT_ENABLE
+bool flicker_enable = true;
+bool flicker_isdown = false;
+const uint8_t flicker_min_levels = 2;
+const uint8_t flicker_max_levels = 7;
+uint8_t flicker_restore_level = 0;
+#endif
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+
+// mod tap definitions:
+#define CTRL_ESC MT(MOD_LCTL, KC_ESC)
+#define HYPR_SPC MT(MOD_HYPR, KC_SPC)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,-----------------------------------------------------------------------------------.
+ * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Ctrl | A | S | D | F | G | H | J | K | L | ; | ' |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc | Del | GUI | Alt |Lower |HyprSp|Space |Raise | Left | Down | Up |Right |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_ortho_4x12(
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
+ CTRL_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, KC_ENT , \
+ KC_MPLY, KC_DEL, KC_LGUI, KC_LALT, LOWER, HYPR_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
+),
+
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_ortho_4x12(
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
+),
+
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_ortho_4x12(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
+),
+
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | | Reset| | | | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Aud on|Audoff|AGnorm|AGswap| | | | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | |Clicky|ClkDn |ClkUp |ClkRst|
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT_ortho_4x12(
+ _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, \
+ _______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, _______, _______, _______, _______, _______, \
+ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, BL_TOGG, BL_DEC, BL_INC, BL_FLICKER, \
+ _______, _______, _______, _______, _______, _______, _______, _______, CLICKY_TOGGLE, CLICKY_DOWN, CLICKY_UP, CLICKY_RESET \
+),
+
+}; // end keymaps
+
+// if backlighting is enabled, configure it on boot
+#ifdef BACKLIGHT_ENABLE
+void matrix_init_user(void) {
+ // set to max
+ backlight_level(BACKLIGHT_LEVELS);
+ flicker_restore_level = get_backlight_level();
+
+ // if breathing happens to be compiled in, turn it off
+#ifdef BACKLIGHT_BREATHING
+ breathing_disable();
+#endif
+}
+#endif
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ return MACRO_NONE;
+};
+
+void persistant_default_layer_set(uint16_t default_layer) {
+ eeconfig_update_default_layer(default_layer);
+ default_layer_set(default_layer);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+
+ // handle the _ADJUST layer and custom keycodes:
+ switch (keycode) {
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+#ifdef BACKLIGHT_ENABLE
+ case BL_FLICKER:
+ if (record->event.pressed) {
+ flicker_toggle();
+ }
+ return false;
+ break;
+#endif
+ } // end switch case over custom keycodes
+
+#ifdef BACKLIGHT_ENABLE
+ if (flicker_enable) {
+ if (record->event.pressed) {
+ flicker_keydown();
+ } else {
+ flicker_keyup();
+ }
+ }
+#endif
+
+ return true;
+}
+
+void encoder_update(bool clockwise) {
+ if (clockwise) {
+ register_code(KC_VOLU);
+ unregister_code(KC_VOLU);
+ } else {
+ register_code(KC_VOLD);
+ unregister_code(KC_VOLD);
+ }
+}
+
+// flicker implementation:
+#ifdef BACKLIGHT_ENABLE
+void flicker_toggle(void) {
+ flicker_enable = !flicker_enable;
+}
+
+void flicker_keydown(void) {
+ // guard condition: only set the level to restore if the flicker is NOT already down
+ if (!flicker_isdown) {
+ flicker_restore_level = get_backlight_level();
+ flicker_isdown = true;
+ }
+
+ // calculate a random flicker level between min and max
+ uint8_t flicker_level = (rand() % (flicker_max_levels - flicker_min_levels)) + flicker_min_levels;
+ uint8_t level_to_set = flicker_level <= flicker_restore_level ? flicker_restore_level - flicker_level : 0;
+ backlight_level(level_to_set);
+}
+
+void flicker_keyup(void) {
+ backlight_level(flicker_restore_level);
+ flicker_isdown = false;
+}
+#endif
diff --git a/layouts/community/ortho_4x12/mindsound/readme.md b/layouts/community/ortho_4x12/mindsound/readme.md
new file mode 100644
index 000000000..e9db48049
--- /dev/null
+++ b/layouts/community/ortho_4x12/mindsound/readme.md
@@ -0,0 +1,19 @@
+# Josh's 4x12 layout
+
+Notable features:
+
+* Esc is Ctrl on hold
+* Left space is `MOD_HYPER` on hold
+* Backspace is still backspace on `RAISE` and `LOWER`
+* Faux clicky controls are on the arrow keys on the `ADJUST` layer, and the backlight controls are directly above that
+* Backlight breathing is disabled; backlight flickering is implemented instead
+* Colemak and other layouts are thoroughly disabled
+* Rotary encoder controls media volume on base layer
+
+This layout has been tested on:
+
+* Let's Split (rev 2)
+* Let's Split Vitamins Included (rev 1)
+* Planck (rev 4)
+
+It builds for the Planck rev 6 but has not been tested yet.
diff --git a/layouts/community/ortho_4x12/mindsound/rules.mk b/layouts/community/ortho_4x12/mindsound/rules.mk
new file mode 100644
index 000000000..c01a1ddb5
--- /dev/null
+++ b/layouts/community/ortho_4x12/mindsound/rules.mk
@@ -0,0 +1,26 @@
+# none of my keyboards need LTO and it screws up I2C on my LSVI:
+EXTRAFLAGS:=$(filter-out -flto,$(EXTRAFLAGS))
+
+# turning off backlighting and audio for the split keebs
+ifneq (,$(findstring lets_split,$(KEYBOARD)))
+ BACKLIGHT_ENABLE = no
+ BACKLIGHT_BREATHING = no
+ AUDIO_ENABLE = no
+endif
+ifneq (,$(findstring vitamins_included,$(KEYBOARD)))
+ BACKLIGHT_ENABLE = no
+ BACKLIGHT_BREATHING = no
+ AUDIO_ENABLE = no
+endif
+
+# both my plancks use audio but only the rev4 has backlighting
+ifneq (,$(findstring planck,$(KEYBOARD)))
+ ifneq (,$(findstring rev4,$(KEYBOARD)))
+ BACKLIGHT_ENABLE = yes
+ BACKLIGHT_BREATHING = no
+ else
+ BACKLIGHT_ENABLE = no
+ BACKLIGHT_BREATHING = no
+ endif
+ AUDIO_ENABLE = yes
+endif
diff --git a/layouts/community/ortho_4x12/symbolic/README.md b/layouts/community/ortho_4x12/symbolic/README.md
new file mode 100644
index 000000000..37fbcd56a
--- /dev/null
+++ b/layouts/community/ortho_4x12/symbolic/README.md
@@ -0,0 +1,70 @@
+# Symbolic ortho 4x12 layout
+
+## Features
+
+### QWERTY based
+
+![QWERTY layout](https://gist.githubusercontent.com/leico/cb50ecd12eb8ad906a69678f265cd52c/raw/4597497ecd00790312f1a3928b2e2c5cf17a6ac1/QWERTY.png)
+
+* Default keymap
+* QWERTY layout
+* Hold and tap
+ * `Shift` and `Space`
+ * `Left Ctrl` and `Tab`
+* Symmetric Modifiers
+ * `Shift`
+ * `Raise Layer`
+ * `Lower Layer`
+ * `GUI`
+ * `Reset`
+
+### symbol charactor layer
+
+![Raise layout](https://gist.githubusercontent.com/leico/cb50ecd12eb8ad906a69678f265cd52c/raw/4597497ecd00790312f1a3928b2e2c5cf17a6ac1/Raise.png)
+
+* Raise Layer
+* assigned symbolic(punctuation) characters
+* as could as possible, related neighbor keys
+ * brackets
+ * quotes
+ * operators
+ * slashes
+* related default layer keys
+ * colons
+ * exclamation and question
+* thus above features, easy learn keymapping
+* transparent all modifiers
+
+### numbers and allows layer
+
+![Lower layout](https://gist.githubusercontent.com/leico/cb50ecd12eb8ad906a69678f265cd52c/raw/4597497ecd00790312f1a3928b2e2c5cf17a6ac1/Lower.png)
+
+* Lower Layer
+* entrust vim style arrows
+* also numkeys
+* additional, computer volume keys
+* transparent all modifiers
+
+### Numpads and F key layer
+
+![Neutral layout](https://gist.githubusercontent.com/leico/cb50ecd12eb8ad906a69678f265cd52c/raw/4597497ecd00790312f1a3928b2e2c5cf17a6ac1/Neutral.png)
+
+* visibled when Raise and Lower layer visibled
+* F keys assigned left hand side
+* Numpads assigned right hand side
+ * for that reason, override `RGUI` key
+* transparent mostly modifiers
+
+
+### Goals
+
+* release a right little finger from symbols
+* entrust more symbols for a left hand
+* simple, minimal, easy learn
+* as soon as possible, don't disable any shortcuts
+
+
+### suggestions or find issues
+
+[post issues for my fork](https://github.com/leico/qmk_firmware/issues)
+
diff --git a/layouts/community/ortho_4x12/symbolic/config.h b/layouts/community/ortho_4x12/symbolic/config.h
new file mode 100644
index 000000000..c29b07706
--- /dev/null
+++ b/layouts/community/ortho_4x12/symbolic/config.h
@@ -0,0 +1,43 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+// hold & tapping delay setting
+#define TAPPING_TERM 100
+
+/* Use I2C or Serial, not both */
+
+#define USE_SERIAL
+// #define USE_I2C
+
+/* Select hand configuration */
+
+//#define MASTER_LEFT
+// #define MASTER_RIGHT
+#define EE_HANDS
+
+#ifdef AUDIO_ENABLE
+ #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
+ SONG(DVORAK_SOUND), \
+ SONG(COLEMAK_SOUND) \
+ }
+#endif
+
diff --git a/layouts/community/ortho_4x12/symbolic/keymap.c b/layouts/community/ortho_4x12/symbolic/keymap.c
new file mode 100644
index 000000000..d4c089236
--- /dev/null
+++ b/layouts/community/ortho_4x12/symbolic/keymap.c
@@ -0,0 +1,171 @@
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+// Each layer gets a name for readability, which is then used in the keymap matrix below.
+// The underscores don't mean anything - you can have a layer called STUFF or any other name.
+// Layer names don't all need to be of the same length, obviously, and you can also skip them
+// entirely and just use numbers.
+#define _QWERTY 0
+#define _LOWER 1
+#define _RAISE 2
+#define _NEUTRAL 3
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ L_LOWER,
+ R_LOWER,
+ L_RAISE,
+ R_RAISE
+};
+
+
+// Fillers to make layering more clear
+#define _______ KC_TRNS
+#define XXXXXXX KC_NO
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,------------------------------------------------------------------------------------.
+ * | | | | | | || | | | | | |
+ * | Esc | Q | W | E | R | T || Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+------++------+------+------+------+------+------|
+ * |LCTL_T| | | | | || | | | | | |
+ * | Tab | A | S | D | F | G || H | J | K | L | ; |Enter |
+ * |------+------+------+------+------+------++------+------+------+------+------+------|
+ * | | | | | | || | | | | | |
+ * | | Z | X | C | V | B || N | M | , | . | ! | |
+ * |------+------+------+------+------+------++------+------+------+------+------+------|
+ * | | | | | |LSFT_T||RSFT_T| | | | | |
+ * |Reset | Alt | GUI |LLower|LRaise|Space ||Space |RRaise|RLower| GUI | Del |Reset |
+ * `------------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_ortho_4x12( \
+ KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
+ LCTL_T(KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, \
+ XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_EXLM, XXXXXXX, \
+ RESET, KC_LALT, KC_LGUI, L_LOWER, L_RAISE, LSFT_T( KC_SPC ), RSFT_T( KC_SPC ), R_RAISE, R_LOWER, KC_RGUI, KC_DEL, RESET \
+),
+
+/* Raise
+ * ,------------------------------------------------------------------------------------.
+ * | | | | | | || | | | | | |
+ * | Esc | | & | { | } | % || \ | [ | ] | # | | Bksp |
+ * |------+------+------+------+------+------++------+------+------+------+------+------|
+ * |LCTL_T| | | | | || | | | | | |
+ * | Tab | ~ | | | ( | ) | * || / | < | > | ' | : |Enter |
+ * |------+------+------+------+------+------++------+------+------+------+------+------|
+ * | | | | | | || | | | | | |
+ * | | ` | ^ | @ | $ | + || - | = | _ | " | ? | |
+ * |------+------+------+------+------+------++------+------+------+------+------+------|
+ * | | | | | |LSFT_T||RSFT_T| | | | | |
+ * |Reset | Alt | GUI |LLower|LRaise|Space ||Space |RRaise|RLower| GUI | Del |Reset |
+ * `------------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_ortho_4x12( \
+ _______, XXXXXXX, KC_AMPR, KC_LCBR, KC_RCBR, KC_PERC, KC_BSLS, KC_LBRC, KC_RBRC, KC_HASH, XXXXXXX, _______, \
+ _______, KC_TILD, KC_PIPE, KC_LPRN, KC_RPRN, KC_ASTR, KC_SLSH, KC_LABK, KC_RABK, KC_QUOT, KC_COLN, _______, \
+ _______, KC_GRV, KC_CIRC, KC_AT, KC_DLR, KC_PLUS, KC_MINS, KC_EQL, KC_UNDS, KC_DQUO, KC_QUES, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+),
+/* Lower
+ * ,------------------------------------------------------------------------------------.
+ * | | | | | | || | | | | | |
+ * | Esc | 1 | 2 | 3 | 4 | 5 || 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------++------+------+------+------+------+------|
+ * |LCTL_T| | | | | || | | | | | |
+ * | Tab | |VolDn |VolUp | Mute | || Left | Down | Up |Right | |Enter |
+ * |------+------+------+------+------+------++------+------+------+------+------+------|
+ * | | | | | | || | | | | | |
+ * | | | | | | || | | | | | |
+ * |------+------+------+------+------+------++------+------+------+------+------+------|
+ * | | | | | |LSFT_T||RSFT_T| | | | | |
+ * |Reset | Alt | GUI |LLower|LRaise|Space ||Space |RRaise|RLower| GUI | Del |Reset |
+ * `------------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_ortho_4x12( \
+ _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, \
+ _______, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, _______, \
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+),
+
+/* Neutral
+ * ,------------------------------------------------------------------------------------.
+ * | | | | | | || | | | | | |
+ * | Esc | F1 | F2 | F3 | F4 | || + | - | 1 | 2 | 3 | Bksp |
+ * |------+------+------+------+------+------++------+------+------+------+------+------|
+ * |LCTL_T| | | | | || | | | | | |
+ * | Tab | F5 | F6 | F7 | F8 | || * | / | 4 | 5 | 6 |Enter |
+ * |------+------+------+------+------+------++------+------+------+------+------+------|
+ * | | | | | | || | | | | | |
+ * | | F9 | F10 | F11 | F12 | || . | , | 7 | 8 | 9 | |
+ * |------+------+------+------+------+------++------+------+------+------+------+------|
+ * | | | | | |LSFT_T||RSFT_T| | | | | |
+ * |Reset | Alt | GUI |LLower|LRaise|Space ||Space |RRaise|RLower| 0 | Del |Reset |
+ * `------------------------------------------------------------------------------------'
+ */
+[_NEUTRAL] = LAYOUT_ortho_4x12( \
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, KC_PPLS, KC_PMNS, KC_P1, KC_P2, KC_P3, _______, \
+ _______, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, KC_PAST, KC_PSLS, KC_P4, KC_P5, KC_P6, _______, \
+ _______, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, KC_PDOT, KC_COMM, KC_P7, KC_P8, KC_P9, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, _______, _______ \
+)
+
+
+};
+
+
+void DualKeyPressed ( bool brother_state, uint8_t target ){
+
+ if( brother_state ) return;
+
+ layer_on( target );
+ return;
+}
+
+void DualKeyReleased ( bool brother_state, uint8_t target1 ){
+
+ if( brother_state ) return ;
+
+ layer_off( target1 );
+ return ;
+}
+
+bool LayerSwitch ( keyrecord_t *record, bool *key_state, bool brother, uint8_t layer ){
+ if ( record -> event.pressed ) {
+ *key_state = true;
+ DualKeyPressed( brother, layer );
+ }
+ else {
+ *key_state = false;
+ DualKeyReleased( brother, layer );
+ }
+
+ update_tri_layer(_LOWER, _RAISE, _NEUTRAL );
+ return false;
+
+
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+
+ static bool l_lower = false;
+ static bool r_lower = false;
+
+ static bool l_raise = false;
+ static bool r_raise = false;
+
+ switch (keycode) {
+
+
+ case L_LOWER : return LayerSwitch( record, &l_lower, r_lower, _LOWER ); break;
+ case R_LOWER : return LayerSwitch( record, &r_lower, l_lower, _LOWER ); break;
+ case L_RAISE : return LayerSwitch( record, &l_raise, r_raise, _RAISE ); break;
+ case R_RAISE : return LayerSwitch( record, &r_raise, l_raise, _RAISE ); break;
+
+ }
+ return true;
+}
diff --git a/layouts/community/ortho_4x12/wanleg/config.h b/layouts/community/ortho_4x12/wanleg/config.h
index 2c6fcc75f..f7650ddd3 100644
--- a/layouts/community/ortho_4x12/wanleg/config.h
+++ b/layouts/community/ortho_4x12/wanleg/config.h
@@ -1,7 +1,15 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
+#pragma once
-//QMK DFU settings (ProMicro boards)
+#if defined(KEYBOARD_jj40)
+#undef BACKLIGHT_BREATHING
+#undef BACKLIGHT_LEVELS
+#undef BREATHING_PERIOD
+#define BACKLIGHT_BREATHING
+#define BACKLIGHT_LEVELS 3
+#define BREATHING_PERIOD 15
+#endif
+
+//QMK DFU settings (ProMicro boards with QMK bootloader)
// set top left key as bootloader mode escape key on Lets Split rev2
#if defined(KEYBOARD_lets_split_rev2)
#define QMK_LED B0
@@ -12,4 +20,24 @@
#define EE_HANDS
#endif
+// set top left key as bootloader mode escape key on 4x4 48key layout
+#if defined(KEYBOARD_40percentclub_4x4) && !defined(PRO_MICRO)
+#define QMK_LED B0
+#define QMK_ESC_OUTPUT C6 // usually COL
+#define QMK_ESC_INPUT B2 // usually ROW
+#endif
+
+// use alternate settings for 4x4 board using ProMicro instead of Micro
+// usage: make 4x4:wanleg PM=yes
+#if defined(KEYBOARD_40percentclub_4x4) && defined(PRO_MICRO)
+#define QMK_ESC_OUTPUT F4 // usually COL
+#define QMK_ESC_INPUT D1 // usually ROW
+#define QMK_LED B0
+
+//need to undefine standard 4x4 array before defining alternate ProMicro array
+#undef MATRIX_ROW_PINS
+#undef MATRIX_COL_PINS
+#define MATRIX_ROW_PINS { D1, D0, D4, C6 }
+//last 4 elements of the column array are not broken out on a ProMicro (included only to preserve array structure)
+#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6, B5, B4, E6, D7, F0, B7, D6, F1 }
#endif
diff --git a/layouts/community/ortho_4x12/wanleg/keymap.c b/layouts/community/ortho_4x12/wanleg/keymap.c
index 8773001d0..23e794dc4 100644
--- a/layouts/community/ortho_4x12/wanleg/keymap.c
+++ b/layouts/community/ortho_4x12/wanleg/keymap.c
@@ -13,8 +13,37 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______________Qwerty_Row__0_______________,
_______________Qwerty_Row__1_______________,
_______________Qwerty_Row__2_______________,
- KC_LCTL, KC_LGUI, KC_LALT, GHERKIN, SUBTER, SH_T(KC_SPC), KC_SPC, SUPRA, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL
+ KC_LCTL, KC_LGUI, KC_LALT, GHERKIN, SUBTER, SH_T(KC_SPC), SH_T(KC_SPC), SUPRA, KC_RGUI, KC_RALT, GHERKIN, KC_RCTL
),
+[DIR] = LAYOUT_ortho_4x12_wrapper(
+ _____________DIRECTIONS_Row__0_____________,
+ _____________DIRECTIONS_Row__1_____________,
+ _____________DIRECTIONS_Row__2_____________,
+ _______, _______, ONEHAND, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+#elif defined(KEYBOARD_40percentclub_4x4)
+[_GK] = LAYOUT_ortho_4x12_wrapper(
+ _______________GherkinLike_0_______________,
+ _______________GherkinLike_1_______________,
+ _______________GherkinLike_2_______________,
+ TD(RST_TAP_DANCE), KC_LGUI, KC_LALT, NUMPAD, NUMBER, ETCETERA, KC_SPC,DIRECTION, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL
+),
+
+[PAD] = LAYOUT_ortho_4x4_wrapper(
+ _______________NUMPAD_Row__0_______________,
+ _______________NUMPAD_Row__1_______________,
+ _______________NUMPAD_Row__2_______________,
+ _______________NUMPAD_Row__3_______________
+),
+
+#elif defined(KEYBOARD_jj40)
+[_GK] = LAYOUT_ortho_4x12_wrapper(
+ _______________GherkinLike_0_______________,
+ _______________GherkinLike_1_______________,
+ _______________GherkinLike_2_______________,
+ TD(RST_TAP_DANCE), BL_TOGG, BL_STEP, BL_BRTG, NUMBER, ETCETERA, KC_SPC,DIRECTION, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL
+),
+
#else
[_GK] = LAYOUT_ortho_4x12_wrapper(
_______________GherkinLike_0_______________,
@@ -64,4 +93,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
______________ETCETERA_Row__2______________,
______________ETCETERA_Row__3______________
),
+
};
diff --git a/layouts/community/ortho_4x12/wanleg/readme.md b/layouts/community/ortho_4x12/wanleg/readme.md
index 2f89d1de6..1cd41d116 100644
--- a/layouts/community/ortho_4x12/wanleg/readme.md
+++ b/layouts/community/ortho_4x12/wanleg/readme.md
@@ -16,9 +16,39 @@ Change `comPORT` to whatever port is used by the Arduino (e.g. `com11` in Window
## Using QMK DFU
Once QMK DFU is burned to your ProMicro, you can then flash subsequent hex files with
`make lets_split/rev2:<keymap>:dfu dfu=qmk`
-The `dfu=qmk` conditional will set `BOOTLOADER = qmk-dfu` instead of `BOOTLOADER = caterina`
+The `dfu=qmk` conditional will set `BOOTLOADER = qmk-dfu` instead of `BOOTLOADER = caterina`
----
-# JJ40
-## To Do
-- [ ] Mousekeys not working with Userspace for some reason (jj40 only) \ No newline at end of file
+# Let's Split LEDs
+In `qmk_firmware/keyboards/lets_split/rev2/rev2.c`, replace contents with
+```
+#include "lets_split.h"
+
+
+#ifdef SSD1306OLED
+void led_set_kb(uint8_t usb_led) {
+ // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
+ led_set_user(usb_led);
+}
+#endif
+
+void matrix_init_kb(void) {
+
+ // // green led on
+ // DDRD |= (1<<5);
+ // PORTD &= ~(1<<5);
+
+ // // orange led on
+ // DDRB |= (1<<0);
+ // PORTB &= ~(1<<0);
+
+ //turn off LEDs on ProMicro
+ DDRD &= ~(1<<5);
+ PORTD &= ~(1<<5);
+
+ DDRB &= ~(1<<0);
+ PORTB &= ~(1<<0);
+
+ matrix_init_user();
+};
+```
+to turn off LEDs
diff --git a/layouts/community/ortho_4x12/wanleg/rules.mk b/layouts/community/ortho_4x12/wanleg/rules.mk
index 79929689c..e8277610b 100644
--- a/layouts/community/ortho_4x12/wanleg/rules.mk
+++ b/layouts/community/ortho_4x12/wanleg/rules.mk
@@ -1,6 +1,10 @@
AUDIO_ENABLE = no
-SWAP_HANDS_ENABLE = yes
+SWAP_HANDS_ENABLE = no
-ifeq ($(strip $(KEYBOARD)), jj40)
- SWAP_HANDS_ENABLE = no
+ifeq ($(strip $(KEYBOARD)), lets_split/rev2)
+ SWAP_HANDS_ENABLE = yes
+endif
+
+ifeq ($(strip $(KEYBOARD)), planck/rev6)
+ AUDIO_ENABLE = yes
endif \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/xyverz/rules.mk b/layouts/community/ortho_4x12/xyverz/rules.mk
index 852e38f24..c181e1107 100644
--- a/layouts/community/ortho_4x12/xyverz/rules.mk
+++ b/layouts/community/ortho_4x12/xyverz/rules.mk
@@ -3,6 +3,8 @@ AUDIO_ENABLE = no # Audio output on port C6
ifeq ("$(KEYBOARD)","vitamins_included")
RGBLIGHT_ENABLE = no
+else ifeq ($(strip $(KEYBOARD)), 40percentclub/4x4)
+ RGBLIGHT_ENABLE = no
else
RGBLIGHT_ENABLE = yes
endif
diff --git a/layouts/community/ortho_5x10/layout.json b/layouts/community/ortho_5x10/layout.json
new file mode 100644
index 000000000..00d847952
--- /dev/null
+++ b/layouts/community/ortho_5x10/layout.json
@@ -0,0 +1,5 @@
+["","","","","","","","","",""],
+["","","","","","","","","",""],
+["","","","","","","","","",""],
+["","","","","","","","","",""],
+["","","","","","","","","",""]
diff --git a/layouts/community/ortho_5x10/readme.md b/layouts/community/ortho_5x10/readme.md
new file mode 100644
index 000000000..5c94f8eca
--- /dev/null
+++ b/layouts/community/ortho_5x10/readme.md
@@ -0,0 +1,3 @@
+# ortho_5x10
+
+ LAYOUT_ortho_5x10
diff --git a/layouts/community/ortho_5x12/drashna/config.h b/layouts/community/ortho_5x12/drashna/config.h
new file mode 100644
index 000000000..e41dadc60
--- /dev/null
+++ b/layouts/community/ortho_5x12/drashna/config.h
@@ -0,0 +1,16 @@
+#pragma once
+
+
+/* ws2812 RGB LED */
+#if defined(KEYBOARD_fractal)
+ #define RGB_DI_PIN D2
+ #undef RGBLED_NUM
+ #define RGBLIGHT_ANIMATIONS
+ #define RGBLED_NUM 29 // Number of LEDs
+ #undef RGBLIGHT_HUE_STEP
+ #define RGBLIGHT_HUE_STEP 8
+ #undef RGBLIGHT_SAT_STEP
+ #define RGBLIGHT_SAT_STEP 8
+ #undef RGBLIGHT_VAL_STEP
+ #define RGBLIGHT_VAL_STEP 8
+#endif
diff --git a/layouts/community/ortho_5x12/drashna/keymap.c b/layouts/community/ortho_5x12/drashna/keymap.c
new file mode 100644
index 000000000..bf0907a51
--- /dev/null
+++ b/layouts/community/ortho_5x12/drashna/keymap.c
@@ -0,0 +1,156 @@
+/* Copyright 2015-2017 Jack Humbert
+ * Modified by KeyPCB for the Fractal keyboard
+ * Backlight isn't on the Fractal, so I've removed the keycode from the keymaps
+ *
+ * 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 QMK_KEYBOARD_H
+#include "drashna.h"
+
+#define LAYOUT_ortho_5x12_base( \
+ K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
+ K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
+ K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
+ K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A \
+ ) \
+ LAYOUT_ortho_5x12_wrapper( \
+ KC_GRV, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_BSPC, \
+ KC_TAB, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_BSPC, \
+ KC_ESC, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, KC_QUOT, \
+ KC_MLSF, CTL_T(K31), K32, K33, K34, K35, K36, K37, K38, K39, CTL_T(K3A), KC_ENT, \
+ KC_NO, OS_LCTL, OS_LALT, OS_LGUI, SP_LWER, BK_LWER, DL_RAIS, ET_RAIS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
+ )
+#define LAYOUT_ortho_5x12_base_wrapper(...) LAYOUT_ortho_5x12_base(__VA_ARGS__)
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+[_QWERTY] = LAYOUT_ortho_5x12_base_wrapper(
+ ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________,
+ _________________QWERTY_L1_________________, _________________QWERTY_R1_________________,
+ _________________QWERTY_L2_________________, _________________QWERTY_R2_________________,
+ _________________QWERTY_L3_________________, _________________QWERTY_R3_________________
+),
+
+[_COLEMAK] = LAYOUT_ortho_5x12_base_wrapper(
+ ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________,
+ _________________COLEMAK_L1________________, _________________COLEMAK_R1________________,
+ _________________COLEMAK_L2________________, _________________COLEMAK_R2________________,
+ _________________COLEMAK_L3________________, _________________COLEMAK_R3________________
+),
+
+[_DVORAK] = LAYOUT_ortho_5x12_base_wrapper(
+ ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________,
+ _________________DVORAK_L1_________________, _________________DVORAK_R1_________________,
+ _________________DVORAK_L2_________________, _________________DVORAK_R2_________________,
+ _________________DVORAK_L3_________________, _________________DVORAK_R3_________________
+),
+
+[_WORKMAN] = LAYOUT_ortho_5x12_base_wrapper(
+ ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________,
+ _________________WORKMAN_L1________________, _________________WORKMAN_R1________________,
+ _________________WORKMAN_L2________________, _________________WORKMAN_R2________________,
+ _________________WORKMAN_L3________________, _________________WORKMAN_R3________________
+),
+
+[_MODS] = LAYOUT_ortho_5x12_wrapper(
+ _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
+ _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
+ _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
+ KC_LSFT, ___________________BLANK___________________, ___________________BLANK___________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+
+/* Lower
+ * ,-----------------------------------------------------------------------------------.
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_ortho_5x12_wrapper( \
+ _______, ___________________BLANK___________________, ___________________BLANK___________________, _______,
+ KC_TILD, _________________LOWER_L1__________________, _________________LOWER_R1__________________, KC_PIPE,
+ KC_DEL, _________________LOWER_L2__________________, _________________LOWER_R2__________________, _______,
+ _______, _________________LOWER_L3__________________, _________________LOWER_R3__________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Raise
+ * ,-----------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_ortho_5x12_wrapper( \
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
+ KC_GRV, _________________RAISE_L1__________________, _________________RAISE_R1__________________, _______,
+ KC_DEL, _________________RAISE_L2__________________, _________________RAISE_R2__________________, KC_BSLS,
+ _______, _________________RAISE_L3__________________, _________________RAISE_R3__________________, _______,
+ _______, _______, _______, _______, _______, _______, _______, _________________RAISE_R3__________________
+),
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | Reset| | | | | | | | | | Del |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * | | | |Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | |
+ * `-----------------------------------------------------------------------------------'
+ */
+[_ADJUST] = LAYOUT_ortho_5x12_wrapper( \
+ KC_MAKE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RST,
+ VRSN, _________________ADJUST_L1_________________, _________________ADJUST_R1_________________, EEP_RST,
+ _______, _________________ADJUST_L2_________________, _________________ADJUST_R2_________________, _______,
+ _______, _________________ADJUST_L3_________________, _________________ADJUST_R3_________________, TG_MODS,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+)
+
+
+};
+
+bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ }
+ return true;
+};
+
+void matrix_init_keymap(void) {
+#ifdef KEYBOARD_fractal
+ setPinOutput(D5);
+ writePinHigh(D5);
+
+ setPinOutput(B0);
+ writePinHigh(B0);
+#endif
+}
diff --git a/layouts/community/ortho_5x12/drashna/rules.mk b/layouts/community/ortho_5x12/drashna/rules.mk
new file mode 100644
index 000000000..160419fcc
--- /dev/null
+++ b/layouts/community/ortho_5x12/drashna/rules.mk
@@ -0,0 +1,23 @@
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = no # Commands for debug and configuration
+TAP_DANCE_ENABLE = no
+AUDIO_ENABLE = yes
+ifneq (,$(findstring fractal,$(KEYBOARD))) # Make sure it IS the Planck Light
+ RGB_MATRIX_ENABLE = no
+ AUDIO_ENABLE = no
+ RGBLIGHT_ENABLE = yes
+ RGBLIGHT_TWINKLE = yes
+ BOOTLOADER = qmk-dfu
+endif
+
+ifeq ($(strip $(PROTOCOL)), VUSB)
+NKRO_ENABLE = no
+else
+NKRO_ENABLE = yes
+endif
+
+
+MACROS_ENABLED = no
diff --git a/layouts/community/ortho_5x12/xyverz/config.h b/layouts/community/ortho_5x12/xyverz/config.h
index 0481aa814..4489c6e5f 100644
--- a/layouts/community/ortho_5x12/xyverz/config.h
+++ b/layouts/community/ortho_5x12/xyverz/config.h
@@ -7,16 +7,18 @@
/* ws2812 RGB LED */
#undef RGB_DI_PIN
-#define RGB_DI_PIN B3
-#undef RGBLED_NUM
-#define RGBLIGHT_ANIMATIONS
-#define RGBLED_NUM 11 // Number of LEDs
-#undef RGBLIGHT_HUE_STEP
-#define RGBLIGHT_HUE_STEP 8
-#undef RGBLIGHT_SAT_STEP
-#define RGBLIGHT_SAT_STEP 8
-#undef RGBLIGHT_VAL_STEP
-#define RGBLIGHT_VAL_STEP 8
+#if defined(KEYBOARD_preonic_rev2)
+ #define RGB_DI_PIN B3
+ #undef RGBLED_NUM
+ #define RGBLIGHT_ANIMATIONS
+ #define RGBLED_NUM 11 // Number of LEDs
+ #undef RGBLIGHT_HUE_STEP
+ #define RGBLIGHT_HUE_STEP 8
+ #undef RGBLIGHT_SAT_STEP
+ #define RGBLIGHT_SAT_STEP 8
+ #undef RGBLIGHT_VAL_STEP
+ #define RGBLIGHT_VAL_STEP 8
+#endif
// for the split boards //
#define USE_SERIAL
diff --git a/layouts/community/ortho_5x15/wanleg/config.h b/layouts/community/ortho_5x15/wanleg/config.h
index a55fc6a3e..d2b3d6719 100644
--- a/layouts/community/ortho_5x15/wanleg/config.h
+++ b/layouts/community/ortho_5x15/wanleg/config.h
@@ -1,3 +1,16 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
+#pragma once
+
+//5x5 powered by Adafruit Feather 32u4 Bluefruit LE
+#if defined(KEYBOARD_40percentclub_5x5) && defined(BLUEFRUIT)
+
+//need to undefine standard 5x5 array before defining alternate Bluefruit array
+#undef MATRIX_ROW_PINS
+#undef MATRIX_COL_PINS
+#define MATRIX_ROW_PINS { F7, F6, F5, D1, D0 }
+//last 5 elements not tested
+#define MATRIX_COL_PINS { C6, D7, B5, B6, B7, D6, C7, F0, F1, F4, B1, B2, B3, D2, D3 }
+
+//get rid of description - too long to show properly in Windows
+#undef DESCRIPTION
+#define DESCRIPTION
#endif
diff --git a/layouts/community/ortho_5x15/wanleg/keymap.c b/layouts/community/ortho_5x15/wanleg/keymap.c
index 7731edb6a..a98f61988 100644
--- a/layouts/community/ortho_5x15/wanleg/keymap.c
+++ b/layouts/community/ortho_5x15/wanleg/keymap.c
@@ -1,55 +1,158 @@
#include QMK_KEYBOARD_H
#include "wanleg.h"
-#define _________________BLANK_75__________________ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-#define _________________Num_Row_75________________ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NLCK
+#define _________________BLANK_50__________________ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+
+#if defined(PADC)
+#define LAYOUT_75_base( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0d, K0e, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d, K1e, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2c, K2d, K2e, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, K3d, K3e \
+ ) \
+ LAYOUT_ortho_5x15_wrapper( \
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NLCK, QWERTY, GHERKIN, FUNCTION, \
+ K00, K01, K02, K03, K04, K05, K0c, K0d, K0e, K06, K07, K08, K09, K0a, K0b, \
+ K10, K11, K12, K13, K14, K15, K1c, K1d, K1e, K16, K17, K18, K19, K1a, K1b, \
+ K20, K21, K22, K23, K24, K25, K2c, K2d, K2e, K26, K27, K28, K29, K2a, K2b, \
+ K30, K31, K32, K33, K34, K35, K3c, K3d, K3e, K36, K37, K38, K39, K3a, K3b \
+ )
+
+#elif defined(PADL)
+#define LAYOUT_75_base( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0d, K0e, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d, K1e, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2c, K2d, K2e, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, K3d, K3e \
+ ) \
+ LAYOUT_ortho_5x15_wrapper( \
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NLCK, QWERTY, GHERKIN, FUNCTION, \
+ K0c, K0d, K0e, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \
+ K1c, K1d, K1e, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \
+ K2c, K2d, K2e, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \
+ K3c, K3d, K3e, K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b \
+ )
+
+#else
+#define LAYOUT_75_base( \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0d, K0e, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d, K1e, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2c, K2d, K2e, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, K3d, K3e \
+ ) \
+ LAYOUT_ortho_5x15_wrapper( \
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NLCK, QWERTY, GHERKIN, FUNCTION, \
+ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, K0c, K0d, K0e, \
+ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, K1c, K1d, K1e, \
+ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, K2c, K2d, K2e, \
+ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, K3d, K3e \
+ )
+#endif
+
+#define LAYOUT_75_base_wrapper(...) LAYOUT_75_base(__VA_ARGS__)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
- /* QWERTY 75
+#if defined(KEYBOARD_40percentclub_5x5)
+[_GK] = LAYOUT_75_base_wrapper(
+ _______________GherkinLike_0_______________, KC_7, KC_8, KC_9,
+ _______________GherkinLike_1_______________, KC_4, KC_5, KC_6,
+ TD(TD_SFT_CAPS), SFT_T(KC_Z), KC_X, KC_C, LT(NUM, KC_V), LT(ETC, KC_B), KC_N, LT(DIR, KC_M), GUI_T(KC_COMM), ALT_T(KC_DOT), CTL_T(KC_BSPC), SFT_T(KC_ENT), KC_1, KC_2, KC_3,
+ TD(RST_TAP_DANCE), GHERKIN50, KC_LALT, NUMPAD, NUMBER, ETCETERA, KC_SPC,DIRECTION, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL, KC_0, KC_0, KC_DOT
+),
+
+[GK50] = LAYOUT_ortho_5x10_wrapper(
+ KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSPC,
+ _______________Gherkin_Row_0_______________,
+ _______________Gherkin_Row_1_______________,
+ _______________Gherkin_Row_2_______________,
+ TD(RST_TAP_DANCE), GHERKIN, NUMPAD, gNUMBER, gETCETERA, KC_SPC,gDIRECTION, KC_RGUI, KC_RALT, KC_RGUI
+),
+
+[gNUM] = LAYOUT_ortho_5x10_wrapper(
+ _________________BLANK_50__________________,
+ _______________Gherkin_NUM_0_______________,
+ _______________Gherkin_NUM_1_______________,
+ _______________Gherkin_NUM_2_______________,
+ _______, _______, _______, _______, _______, KC_ENT, KC_RSFT, KC_RGUI, _______, _______
+),
+
+[gDIR] = LAYOUT_ortho_5x10_wrapper(
+ _________________BLANK_50__________________,
+ _______________Gherkin_DIR_0_______________,
+ _______________Gherkin_DIR_1_______________,
+ _______________Gherkin_DIR_2_______________,
+ _________________BLANK_50__________________
+),
+
+[gETC] = LAYOUT_ortho_5x10_wrapper(
+ _________________BLANK_50__________________,
+ _______________Gherkin_ETC_0_______________,
+ _______________Gherkin_ETC_1_______________,
+ _______________Gherkin_ETC_2_______________,
+ _______, KC_CAPS, _______, _______, _______, LALT(LCTL(KC_DEL)), _______, _______, _______, _______
+),
+
+#if defined(BLUEFRUIT)
+[PAD] = LAYOUT_ortho_5x5_wrapper(
+ _______, _______, _______, OUT_BT, OUT_USB,
+ _______________NUMPAD_Row__0_______________, _______,
+ _______________NUMPAD_Row__1_______________, _______,
+ _______________NUMPAD_Row__2_______________, _______,
+ KC_KP_0, TD(LYR50_TAP_DANCE), KC_KP_DOT, KC_PMNS, _______
+),
+#else
+ [PAD] = LAYOUT_ortho_5x5_wrapper(
+ _______, _______, _______, _______, _______,
+ _______________NUMPAD_Row__0_______________, _______,
+ _______________NUMPAD_Row__1_______________, _______,
+ _______________NUMPAD_Row__2_______________, _______,
+ KC_KP_0, TD(LYR50_TAP_DANCE), KC_KP_DOT, KC_PMNS, _______
+),
+#endif
+#else
+ /* Gherkin
* .--------------------------------------------------------------------------------------------------------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | NUMLOCK| gherkin| | FN |
+ * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | NUMLOCK| qwerty | gherkin| FN |
* |-----------------------------------------------------------------------------------------------------------+--------+--------+--------|
* | | 7 | 8 | 9 |
* | |--------+--------+--------|
- * | 4x12 QWERTY LAYOUT | 4 | 5 | 6 |
+ * | 4x12 GHERKIN LAYOUT | 4 | 5 | 6 |
* | |--------+--------+--------|
* | | 1 | 2 | 3 |
* | |--------+--------+--------|
* | | 0 | 0 | . |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
-[QW75] = LAYOUT_ortho_5x15_wrapper(
- _________________Num_Row_75________________, GHERKIN75, XXXXXXX, FUNCTION75,
- _______________Qwerty_Row__0_______________, KC_KP_7, KC_KP_8, KC_KP_9,
- _______________Qwerty_Row__1_______________, KC_KP_4, KC_KP_5, KC_KP_6,
- _______________Qwerty_Row__2_______________, KC_KP_1, KC_KP_2, KC_KP_3,
- KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, SUBTER75, KC_LSFT, KC_SPC, SUPRA75, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL, KC_KP_0, KC_KP_0, KC_KP_DOT
+[_GK] = LAYOUT_75_base_wrapper(
+ _______________GherkinLike_0_______________, KC_7, KC_8, KC_9,
+ _______________GherkinLike_1_______________, KC_4, KC_5, KC_6,
+ _______________GherkinLike_2_______________, KC_1, KC_2, KC_3,
+ _______________GherkinLike_3_______________, KC_0, KC_0, KC_DOT
),
-
- /* Gherkin 75
+#endif
+/* QWERTY
* .--------------------------------------------------------------------------------------------------------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | NUMLOCK| qwerty | | FN |
+ * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | NUMLOCK| qwerty | gherkin| FN |
* |-----------------------------------------------------------------------------------------------------------+--------+--------+--------|
* | | 7 | 8 | 9 |
* | |--------+--------+--------|
- * | 4x12 GHERKIN LAYOUT | 4 | 5 | 6 |
+ * | 4x12 QWERTY LAYOUT | 4 | 5 | 6 |
* | |--------+--------+--------|
* | | 1 | 2 | 3 |
* | |--------+--------+--------|
* | | 0 | 0 | . |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
-[GK75] = LAYOUT_ortho_5x15_wrapper(
- _________________Num_Row_75________________, QWERTY75, XXXXXXX, FUNCTION75,
- _______________GherkinLike_0_______________, KC_KP_7, KC_KP_8, KC_KP_9,
- _______________GherkinLike_1_______________, KC_KP_4, KC_KP_5, KC_KP_6,
- TD(TD_SFT_CAPS), SFT_T(KC_Z), KC_X, KC_C, LT(NUM75, KC_V), LT(ETC75, KC_B), KC_N, LT(DIR75, KC_M), GUI_T(KC_COMM), ALT_T(KC_DOT), CTL_T(KC_BSPC), SFT_T(KC_ENT), KC_KP_1, KC_KP_2, KC_KP_3,
- KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, NUMBER75, ETCETERA75, KC_SPC,DIRECTION75, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL, KC_KP_0, KC_KP_0, KC_KP_DOT
+[_QW] = LAYOUT_75_base_wrapper(
+ _______________Qwerty_Row__0_______________, KC_7, KC_8, KC_9,
+ _______________Qwerty_Row__1_______________, KC_4, KC_5, KC_6,
+ _______________Qwerty_Row__2_______________, KC_1, KC_2, KC_3,
+ _______________Qwerty_Row__3_______________, KC_0, KC_0, KC_DOT
),
- /* SUBTER75
+ /* SUBTER
* .--------------------------------------------------------------------------------------------------------------------------------------.
- * | SUBTER ROW 0 LAYOUT | | | |
+ * | | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------+--------+-----------------|
* | | / | * | - |
* | |--------+--------+--------|
@@ -60,15 +163,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
-[SUB75] = LAYOUT_ortho_5x15_wrapper(
- _______________SUBTER_Row__0_______________, _______, _______, _______,
+[SUB] = LAYOUT_75_base_wrapper(
_______________SUBTER_Row__0_______________, KC_PSLS, KC_PAST, KC_PMNS,
- _______________SUBTER_Row__1_______________, _______, _______, KC_PPLS,
+ _______________SUBTER_Row__1_______________, _______, _______, KC_PPLS,
_______________SUBTER_Row__2_______________, _______, _______, KC_PENT,
- _______, _______, GHERKIN75, _______, _______, _______, KC_ENT, KC_LSFT, _______, _______, _______, _______, _______, _______, _______
+ _______________SUBTER_Row__3_______________, _______, _______, _______
),
-/* SUPRA75
+/* SUPRA
* .--------------------------------------------------------------------------------------------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
@@ -81,15 +183,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
-[SUP75] = LAYOUT_ortho_5x15_wrapper(
- _________________BLANK_75__________________,
+[SUP] = LAYOUT_75_base_wrapper(
________________SUPRA_Row_0________________, _______, _______, _______,
________________SUPRA_Row_1________________, _______, _______, _______,
________________SUPRA_Row_2________________, _______, _______, _______,
- _________________BLANK_75__________________
+ ________________SUPRA_Row_3________________, _______, _______, _______
),
-/* Gherkin 75 Numbers
+/* Gherkin Numbers
* .--------------------------------------------------------------------------------------------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------|--------+-----------------|
@@ -102,15 +203,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
-[NUM75] = LAYOUT_ortho_5x15_wrapper(
- _________________BLANK_75__________________,
+[NUM] = LAYOUT_75_base_wrapper(
_______________NUMBERS_Row_0_______________, KC_PSLS, KC_PAST, KC_PMNS,
_______________NUMBERS_Row_1_______________, _______, _______, KC_PPLS,
_______________NUMBERS_Row_2_______________, _______, _______, KC_PENT,
_______________NUMBERS_Row_3_______________, _______, _______, _______
),
-/* Gherkin 75 Et Cetera
+/* Gherkin Et Cetera
* .--------------------------------------------------------------------------------------------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------|--------+-----------------|
@@ -123,15 +223,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
-[ETC75] = LAYOUT_ortho_5x15_wrapper(
- _________________BLANK_75__________________,
+[ETC] = LAYOUT_75_base_wrapper(
______________ETCETERA_Row__0______________, _______, _______, _______,
______________ETCETERA_Row__1______________, _______, _______, _______,
______________ETCETERA_Row__2______________, _______, _______, _______,
______________ETCETERA_Row__3______________, _______, _______, _______
),
-/* Gherkin 75 Directional Keys
+/* Gherkin Directional Keys
* .--------------------------------------------------------------------------------------------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |-----------------------------------------------------------------------------------------------------------|--------+-----------------|
@@ -144,16 +243,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
-[DIR75] = LAYOUT_ortho_5x15_wrapper(
- _________________BLANK_75__________________,
+[DIR] = LAYOUT_75_base_wrapper(
_____________DIRECTIONS_Row__0_____________, _______, _______, _______,
_____________DIRECTIONS_Row__1_____________, _______, _______, _______,
_____________DIRECTIONS_Row__2_____________, _______, _______, _______,
- _______, _______, QWERTY75, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ _____________DIRECTIONS_Row__3_____________, _______, _______, _______
),
-/* FUNCTION 75
+/* FUNCTION
* .--------------------------------------------------------------------------------------------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
@@ -166,11 +264,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | MS BT1 | | | | | | MOUS L | MOUS D | MOUS R |
* '--------------------------------------------------------------------------------------------------------------------------------------'
*/
-[FN75] = LAYOUT_ortho_5x15_wrapper(
- _________________BLANK_75__________________,
- _________________BLANK_75__________________,
+[_FN] = LAYOUT_75_base_wrapper(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, _______, _______, KC_WH_U,
RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, _______, _______, KC_MS_U, KC_WH_D,
_______, _______, _______, _______, _______, _______, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
),
+
};
diff --git a/layouts/community/ortho_5x15/wanleg/rules.mk b/layouts/community/ortho_5x15/wanleg/rules.mk
index e36226fb2..96bbaa458 100644
--- a/layouts/community/ortho_5x15/wanleg/rules.mk
+++ b/layouts/community/ortho_5x15/wanleg/rules.mk
@@ -1 +1,11 @@
-SWAP_HANDS_ENABLE = no \ No newline at end of file
+#ifeq ($(strip $(KEYBOARD)), xd75)
+#or
+#ifeq (,$(findstring xd75,$(KEYBOARD)))
+#something
+#endif
+
+#ifeq ($(strip $(KEYBOARD)), 40percentclub/5x5)
+#or
+#ifeq (,$(findstring 40percentclub/5x5,$(KEYBOARD)))
+#something
+#endif \ No newline at end of file
diff --git a/layouts/community/ortho_5x5/layout.json b/layouts/community/ortho_5x5/layout.json
new file mode 100644
index 000000000..ab4eef8e1
--- /dev/null
+++ b/layouts/community/ortho_5x5/layout.json
@@ -0,0 +1 @@
+["","","","",""],["","","","",""],["","","","",""],["","","","",""],["","","","",""]
diff --git a/layouts/community/ortho_5x5/readme.md b/layouts/community/ortho_5x5/readme.md
new file mode 100644
index 000000000..3dd75765d
--- /dev/null
+++ b/layouts/community/ortho_5x5/readme.md
@@ -0,0 +1,3 @@
+# ortho_5x5
+
+ LAYOUT_ortho_5x5 \ No newline at end of file
diff --git a/layouts/community/ortho_4x12/guidoism/config.h b/layouts/community/planck_mit/guidoism/config.h
index 19b71b07e..e22f29803 100644
--- a/layouts/community/ortho_4x12/guidoism/config.h
+++ b/layouts/community/planck_mit/guidoism/config.h
@@ -18,27 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include QMK_KEYBOARD_CONFIG_H
+#pragma once
#define IGNORE_MOD_TAP_INTERRUPT
#define USB_MAX_POWER_CONSUMPTION 50
-
-#ifndef LAYOUT_planck_mit
-#define LAYOUT_planck_mit( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
- k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
- k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b \
-) \
- LAYOUT_ortho_4x12( \
- k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
- k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
- k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
- k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b \
- )
-#endif
-
-#endif
diff --git a/layouts/community/planck_mit/guidoism/generate_c.py b/layouts/community/planck_mit/guidoism/generate_c.py
new file mode 100644
index 000000000..5bee57608
--- /dev/null
+++ b/layouts/community/planck_mit/guidoism/generate_c.py
@@ -0,0 +1,75 @@
+import itertools
+import json
+import os.path
+import re
+
+KEYMAP_C = """/* {0}
+{1}
+*/
+[{2}] = {3}(
+ {4})
+"""
+
+README_MD = """## {0}
+```
+{1}
+```
+"""
+
+base = os.path.dirname(__file__)
+
+layer_names = dict(enumerate(['_QWERTY', '_LOWER', '_RAISE', '_MOVEMENT', '_NUMPAD', '_FUNCTION']))
+layer_name = {('MO(%d)' % i): layer_names.get(i).strip('_') for i in layer_names.keys()}
+
+keys = json.load(open(os.path.join(base, 'keys.json')))
+
+d = json.load(open(os.path.join(base, 'guidoism.json')))
+
+def surround(s, a, b, c):
+ return a + b.join(s) + c
+
+def pattern(cell, table):
+ return ['─'*cell for i in range(table)]
+
+top = surround(pattern(5, 12), '┌', '┬', '┐')
+mid = surround(pattern(5, 12), '├', '┼', '┤')
+bottom = surround(pattern(5, 12), '└', '┴', '┘')
+
+from more_itertools import chunked, intersperse, interleave_longest
+
+def uni(k):
+ return keys.get(k, k).lower().center(5)
+
+def c_layout(i, definition, template):
+ c_name = layer_names[i]
+ pretty_name = c_name.strip('_').capitalize()
+ layout = d['layout']
+
+ surround = lambda s: ''.join(interleave_longest(['│']*(len(s)+1), s))
+ layer = list(map(uni, definition))
+ layer[41] = layer[41].center(11)
+ layer = chunked(layer, 12)
+ rows = intersperse(mid, map(surround, layer))
+ pretty = '\n'.join(itertools.chain([top], rows, [bottom]))
+
+ surround = lambda s: ', '.join(s)
+ layer = list(map(lambda k: layer_name.get(k, k), definition))
+ layer = chunked(layer, 12)
+ rows = map(surround, layer)
+ c_layer = ',\n '.join(itertools.chain([], rows, []))
+
+ return template.format(pretty_name, pretty, c_name, layout, c_layer)
+
+start = '// START_REPLACEMENT\n'
+end = '// END_REPLACEMENT\n'
+replacement = start + ',\n\n'.join(c_layout(i, l, KEYMAP_C) for i, l in enumerate(d['layers'])) + end
+keymap = os.path.join(base, 'keymap.c')
+existing = open(keymap).read()
+r = re.compile(r'// START_REPLACEMENT.*// END_REPLACEMENT', re.DOTALL)
+open(keymap, 'w').write(r.sub(replacement, existing))
+
+replacement = '## Current Configuration\n\n' + '\n\n'.join(c_layout(i, l, README_MD) for i, l in enumerate(d['layers']))
+keymap = os.path.join(base, 'readme.md')
+existing = open(keymap).read()
+r = re.compile(r'## Current Configuration.*', re.DOTALL)
+open(keymap, 'w').write(r.sub(replacement, existing))
diff --git a/layouts/community/planck_mit/guidoism/guidoism.json b/layouts/community/planck_mit/guidoism/guidoism.json
new file mode 100644
index 000000000..6a4364c6b
--- /dev/null
+++ b/layouts/community/planck_mit/guidoism/guidoism.json
@@ -0,0 +1 @@
+{"keyboard":"planck/rev4","keymap":"guidoism","layout":"LAYOUT_planck_mit","layers":[["KC_TAB","KC_Q","KC_W","KC_E","KC_R","KC_T","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_BSPC","KC_LCTL","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_COLN","KC_ENT","KC_LSFT","KC_Z","KC_X","KC_C","KC_V","KC_B","KC_N","KC_M","KC_COMM","KC_DOT","KC_SLSH","KC_NO","MO(3)","KC_ESC","KC_LALT","KC_LGUI","MO(1)","LSFT_T(KC_SPC)","MO(2)","KC_RGUI","KC_RALT","KC_SCLN","MO(5)"],["KC_TILD","KC_EXLM","KC_AT","KC_HASH","KC_DLR","KC_PERC","KC_CIRC","KC_AMPR","KC_ASTR","KC_NO","KC_NO","KC_UNDO","KC_TRNS","KC_NO","KC_CUT","KC_COPY","KC_PSTE","KC_NO","KC_NO","KC_UNDS","KC_PLUS","KC_DQUO","KC_QUOT","KC_PIPE","KC_CAPS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_MNXT","KC_VOLD","KC_VOLU","KC_MPLY"],["KC_GRV","KC_P1","KC_P2","KC_P3","KC_P4","KC_P5","KC_P6","KC_P7","KC_P8","KC_P9","KC_P0","KC_TRNS","KC_TRNS","KC_LBRC","KC_RBRC","KC_LPRN","KC_RPRN","KC_NO","KC_NO","KC_PMNS","KC_PEQL","KC_NO","KC_NO","KC_BSLS","KC_TRNS","KC_LT","KC_GT","KC_LCBR","KC_RCBR","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"],["RESET","DEBUG","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_PGUP","KC_UP","KC_PGDN","KC_NO","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_LEFT","KC_DOWN","KC_RGHT","KC_NO","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_HOME","KC_NO","KC_END","KC_NO","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS"],["KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_PERC","KC_P7","KC_P8","KC_P9","KC_P0","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_DLR","KC_P4","KC_P5","KC_P6","KC_PDOT","KC_TRNS","KC_TRNS","KC_NO","KC_NO","KC_NO","KC_NO","KC_NO","KC_P0","KC_P1","KC_P2","KC_P3","KC_PCMM","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_NO","KC_P0","KC_NO","KC_NO","KC_TRNS"],["KC_NO","KC_F1","KC_F2","KC_F3","KC_F4","KC_F5","KC_F6","KC_F7","KC_F8","KC_F9","KC_F10","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_TRNS"]]} \ No newline at end of file
diff --git a/layouts/community/planck_mit/guidoism/keymap.c b/layouts/community/planck_mit/guidoism/keymap.c
new file mode 100644
index 000000000..2027e2bfa
--- /dev/null
+++ b/layouts/community/planck_mit/guidoism/keymap.c
@@ -0,0 +1,183 @@
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+enum planck_layers {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _MOVEMENT,
+ _NUMPAD,
+ _FUNCTION,
+};
+
+enum planck_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE,
+ MOVEMENT,
+ NUMPAD,
+};
+
+#define FUNCTION MO(_FUNCTION)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+// START_REPLACEMENT
+/* Qwerty
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
+│ ⇥ │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ ⌫ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ ctrl│ a │ s │ d │ f │ g │ h │ j │ k │ l │ : │ ⏎ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ ⇧ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ mov │ ⎋ │ ⌥ │ ⌘ │lower│ sp/sh │raise│ ⌘ │ ⌥ │ ; │ fn │
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+*/
+[_QWERTY] = LAYOUT_planck_mit(
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_COLN, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO,
+ MOVEMENT, KC_ESC, KC_LALT, KC_LGUI, LOWER, LSFT_T(KC_SPC), RAISE, KC_RGUI, KC_RALT, KC_SCLN, FUNCTION)
+,
+
+/* Lower
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
+│ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ │ │ undo│
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ cut │ copy│paste│ │ │ _ │ + │ " │ ' │ | │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ caps│ │ │ │ │ │ │ │ │ │ │ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ next│ vol-│ vol+│ play│
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+*/
+[_LOWER] = LAYOUT_planck_mit(
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_NO, KC_NO, KC_UNDO,
+ KC_TRNS, KC_NO, KC_CUT, KC_COPY, KC_PSTE, KC_NO, KC_NO, KC_UNDS, KC_PLUS, KC_DQUO, KC_QUOT, KC_PIPE,
+ KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY)
+,
+
+/* Raise
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
+│ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ [ │ ] │ ( │ ) │ │ │ - │ = │ │ │ \ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ < │ > │ { │ } │ │ │ │ │ │ │ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+*/
+[_RAISE] = LAYOUT_planck_mit(
+ KC_GRV, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, KC_TRNS,
+ KC_TRNS, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_NO, KC_NO, KC_PMNS, KC_PEQL, KC_NO, KC_NO, KC_BSLS,
+ KC_TRNS, KC_LT, KC_GT, KC_LCBR, KC_RCBR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
+,
+
+/* Movement
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
+│reset│debug│ │ │ │ │ │ pgup│ ↑ │ pgdn│ │ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ ← │ ↓ │ → │ │ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ home│ │ end │ │ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+*/
+[_MOVEMENT] = LAYOUT_planck_mit(
+ RESET, DEBUG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_UP, KC_PGDN, KC_NO, KC_TRNS,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_TRNS,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_NO, KC_END, KC_NO, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
+,
+
+/* Numpad
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
+│ │ │ │ │ │ │ % │ 7 │ 8 │ 9 │ 0 │ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ $ │ 4 │ 5 │ 6 │ . │ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ , │ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ 0 │ │ │ │
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+*/
+[_NUMPAD] = LAYOUT_planck_mit(
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PERC, KC_P7, KC_P8, KC_P9, KC_P0, KC_TRNS,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DLR, KC_P4, KC_P5, KC_P6, KC_PDOT, KC_TRNS,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_P0, KC_P1, KC_P2, KC_P3, KC_PCMM, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_P0, KC_NO, KC_NO, KC_TRNS)
+,
+
+/* Function
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
+│ │ f1 │ f2 │ f3 │ f4 │ f5 │ f6 │ f7 │ f8 │ f9 │ f10 │ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+*/
+[_FUNCTION] = LAYOUT_planck_mit(
+ KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, 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_TRNS)
+// END_REPLACEMENT
+
+
+
+
+
+
+
+
+};
+
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ } else {
+ layer_off(_RAISE);
+ }
+ return false;
+ break;
+ case MOVEMENT:
+ if (record->event.pressed) {
+ layer_on(_MOVEMENT);
+ update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD);
+ } else {
+ layer_off(_MOVEMENT);
+ update_tri_layer(_LOWER, _MOVEMENT, _NUMPAD);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/layouts/community/ortho_4x12/guidoism/keys.json b/layouts/community/planck_mit/guidoism/keys.json
index 762deb706..791119b4f 100644
--- a/layouts/community/ortho_4x12/guidoism/keys.json
+++ b/layouts/community/planck_mit/guidoism/keys.json
@@ -102,8 +102,8 @@
"KC_SLASH": "/",
"KC_NUBS": "/",
"KC_NUHS": "#",
- "KC_CAPSLOCK": "Caps Lock",
- "KC_CAPS": "Caps Lock",
+ "KC_CAPSLOCK": "Caps",
+ "KC_CAPS": "Caps",
"KC_LCTRL": "Ctrl",
"KC_LCTL": "Ctrl",
"KC_LSHIFT": "\u21e7",
@@ -181,26 +181,26 @@
"KC_WAKE": "System Wake",
"KC_STOP": "Stop",
"KC__MUTE": "Mute (macOS)",
- "KC__VOLUP": "<i class='fa fa-volume-up'></i>",
- "KC__VOLDOWN": "<i class='fa fa-volume-down'></i>",
+ "KC__VOLUP": "vol+",
+ "KC__VOLDOWN": "vol-",
"KC_AUDIO_MUTE": "Mute",
"KC_MUTE": "Mute",
- "KC_AUDIO_VOL_UP": "<i class='fa fa-volume-up'></i>",
- "KC_VOLU": "<i class='fa fa-volume-up'></i>",
- "KC_AUDIO_VOL_DOWN": "<i class='fa fa-volume-down'></i>",
- "KC_VOLD": "<i class='fa fa-volume-down'></i>",
- "KC_MEDIA_NEXT_TRACK": "<i class='fa fa-fast-forward'></i>",
- "KC_MNXT": "<i class='fa fa-fast-forward'></i>",
+ "KC_AUDIO_VOL_UP": "vol+",
+ "KC_VOLU": "vol+",
+ "KC_AUDIO_VOL_DOWN": "vol-",
+ "KC_VOLD": "vol-",
+ "KC_MEDIA_NEXT_TRACK": "next",
+ "KC_MNXT": "next",
"KC_MEDIA_PREV_TRACK": "Previous Track (Windows)",
"KC_MPRV": "Previous Track (Windows)",
- "KC_MEDIA_FAST_FORWARD": "<i class='fa fa-fast-forward'></i>",
- "KC_MFFD": "<i class='fa fa-fast-forward'></i>",
+ "KC_MEDIA_FAST_FORWARD": "next",
+ "KC_MFFD": "next",
"KC_MEDIA_REWIND": "Previous Track (macOS)",
"KC_MRWD": "Previous Track (macOS)",
"KC_MEDIA_STOP": "Stop Track",
"KC_MSTP": "Stop Track",
- "KC_MEDIA_PLAY_PAUSE": "<i class='fa fa-play'></i>",
- "KC_MPLY": "<i class='fa fa-play'></i>",
+ "KC_MEDIA_PLAY_PAUSE": "play",
+ "KC_MPLY": "play",
"KC_NUMLOCK": "Keypad Num Lock and Clear",
"KC_NLCK": "Keypad Num Lock and Clear",
"KC_SLSH": "/",
@@ -295,6 +295,7 @@
"MO(3)": "mov",
"MO(1)": "lower",
"MO(2)": "raise",
+ "MO(5)": "fn",
"LSFT_T(KC_SPC)": "sp/sh",
"KC_TRNS": "",
"KC_PSTE": "Paste",
diff --git a/layouts/community/ortho_4x12/guidoism/readme.md b/layouts/community/planck_mit/guidoism/readme.md
index 7137ffd14..540db64e8 100644
--- a/layouts/community/ortho_4x12/guidoism/readme.md
+++ b/layouts/community/planck_mit/guidoism/readme.md
@@ -1,37 +1,56 @@
# Guido's Planck Keyboard Layout
+I've written a script to convert the json file from the
+[QMK Configurator](https://config.qmk.fm) to the C macros
+and a pretty form the comments.
+
+First import the json file in this directory into the configurator,
+make any changes, export the file and then run this:
+
+ mv ~/Downloads/guidoism.json layouts/community/ortho_4x12/guidoism/ && python3 layouts/community/ortho_4x12/guidoism/generate_c.py && make planck:guidoism:dfu
+
+TODO: Move running of generate_c.py to makefile so I just need to run `make planck:guidoism:dfu`
+
+Note that the pretty forms of the keys are defined in another json
+file and are made for my specific board. You made need to update this
+file to get the pretty forms to look right.
+
* Left palm to the `mov` key gets you the `Move` layer
* Right thumb on the `raise` key gets you the various programming brackets and parens on your left hand
* Left palm on `mov` key and left thumb on `lower` key gets you a numpad on your right hand
* Shift with the spacebar
* Left pinky is control on hold and escape on tap
-* Left shift is caps lock on double-tap
+## Current Configuration
+
+## Qwerty
```
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
│ ⇥ │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ ⌫ │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ c/e │ a │ s │ d │ f │ g │ h │ j │ k │ l │ : │ ⏎ │
+│ ctrl│ a │ s │ d │ f │ g │ h │ j │ k │ l │ : │ ⏎ │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ ⇧ │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ mov │ │ ⌥ │ ⌘ │lower│ sp/sh │raise│ ⌘ │ ⌥ │ ; │ │
+│ mov │ ⎋ │ ⌥ │ ⌘ │lower│ sp/sh │raise│ ⌘ │ ⌥ │ ; │ fn │
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
```
+
## Lower
```
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ │ │ Undo│
+│ ~ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ │ │ undo│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ Cut │ Copy│Paste│ │ │ _ │ + │ " │ ' │ | │
+│ │ │ cut │ copy│paste│ │ │ _ │ + │ " │ ' │ | │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ │ │ │ │ │
+│ caps│ │ │ │ │ │ │ │ │ │ │ │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ │ │ │ │ │ │ │ next│ vol-│ vol+│ play│
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
```
+
## Raise
```
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
@@ -45,32 +64,44 @@
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
```
-## Move
+
+## Movement
```
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│RESET│DEBUG│ │ │ │ │ │ PgUp│ ↑ │ PgDn│ │ │
+│reset│debug│ │ │ │ │ │ pgup│ ↑ │ pgdn│ │ │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ │ │ │ │ │ │ │ ← │ ↓ │ → │ │ │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ Home│ │ End │ │ │
+│ │ │ │ │ │ │ │ home│ │ end │ │ │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│ │ │ │ │ │ │ │ │ │ │ │
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
```
+
## Numpad
```
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
-│ │ │ │ │ │ │ │ 7 │ 8 │ 9 │ / │ │
+│ │ │ │ │ │ │ % │ 7 │ 8 │ 9 │ 0 │ │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ 4 │ 5 │ 6 │ * │ │
+│ │ │ │ │ │ │ $ │ 4 │ 5 │ 6 │ . │ │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ │ 1 │ 2 │ 3 │ - │ │
+│ │ │ │ │ │ │ 0 │ 1 │ 2 │ 3 │ , │ │
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
-│ │ │ │ │ │ │ , │ 0 │ . │ + │ │
+│ │ │ │ │ │ │ │ 0 │ │ │ │
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
```
-Use the [QMK Configurator](https://config.qmk.fm/#/planck/rev4/LAYOUT_planck_mit)
-to edit the guidoism.json file. Then update it and run `python3 layouts/community/ortho_4x12/guidoism/generate_c.py`
-to get the update C structs and Markdown for this file.
+
+## Function
+```
+┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
+│ │ f1 │ f2 │ f3 │ f4 │ f5 │ f6 │ f7 │ f8 │ f9 │ f10 │ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │ │
+├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+│ │ │ │ │ │ │ │ │ │ │ │
+└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
+```
diff --git a/layouts/community/tkl_ansi/talljoe-tkl/config.h b/layouts/community/tkl_ansi/talljoe-tkl/config.h
index 8b27d4136..02f8a94e3 100644
--- a/layouts/community/tkl_ansi/talljoe-tkl/config.h
+++ b/layouts/community/tkl_ansi/talljoe-tkl/config.h
@@ -3,7 +3,6 @@
#include QMK_KEYBOARD_CONFIG_H
-#define PREVENT_STUCK_MODIFIERS
#define ENABLE_GAME_LAYER
#define TEMPLATE_TKL(\
diff --git a/layouts/community/tkl_ansi/talljoe-tkl/keymap.c b/layouts/community/tkl_ansi/talljoe-tkl/keymap.c
index b5dc54492..7812add81 100644
--- a/layouts/community/tkl_ansi/talljoe-tkl/keymap.c
+++ b/layouts/community/tkl_ansi/talljoe-tkl/keymap.c
@@ -1,89 +1 @@
-#ifdef KEYBOARD_zeal60
-#include "config.h"
-#include "zeal60.h"
-#include "zeal_backlight.h"
-#include "action_layer.h"
-#include "solarized.h"
-#include "talljoe.h"
-
-// from zeal_backlight.c
-// we want to be able to set indicators for the spacebar stabs
-// but they are not represented by a row/index.
-extern zeal_backlight_config g_config;
-void map_row_column_to_led( uint8_t row, uint8_t column, uint8_t *led );
-
-void set_backlight_defaults(void) {
- uint8_t space;
- uint8_t caps_lock;
- map_row_column_to_led(3, 12, &caps_lock);
- map_row_column_to_led(4, 7, &space);
- zeal_backlight_config default_values = {
- .use_split_backspace = USE_SPLIT_BACKSPACE,
- .use_split_left_shift = USE_SPLIT_LEFT_SHIFT,
- .use_split_right_shift = USE_SPLIT_RIGHT_SHIFT,
- .use_7u_spacebar = USE_7U_SPACEBAR,
- .use_iso_enter = USE_ISO_ENTER,
- .disable_when_usb_suspended = 1,
- .disable_after_timeout = 0,
- .brightness = 255,
- .effect = 10,
- .color_1 = solarized.base2,
- .color_2 = solarized.base02,
- .caps_lock_indicator = { .index = caps_lock, .color = solarized.red },
- .layer_1_indicator = { .index = space, .color = solarized.blue },
- .layer_2_indicator = { .index = space, .color = solarized.yellow },
- .layer_3_indicator = { .index = 254, .color = solarized.red },
- .alphas_mods = {
- BACKLIGHT_ALPHAS_MODS_ROW_0,
- BACKLIGHT_ALPHAS_MODS_ROW_1,
- BACKLIGHT_ALPHAS_MODS_ROW_2,
- BACKLIGHT_ALPHAS_MODS_ROW_3,
- BACKLIGHT_ALPHAS_MODS_ROW_4 }
- };
- memcpy(&g_config, &default_values, sizeof(zeal_backlight_config));
- backlight_config_save();
-
- solarized_t* S = &solarized;
- HSV alphas = S->base2;
- HSV custom_color_map[MATRIX_ROWS][MATRIX_COLS] = CM(
- S->red, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->red,
- S->orange, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->orange,
- S->green, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->green,
- S->blue, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, alphas, S->blue, S->blue,
- S->violet, S->magenta, S->yellow, alphas, S->yellow, S->magenta, S->violet, S->green
- );
- for (uint8_t row = 0; row < MATRIX_ROWS; ++row) {
- for (uint8_t col = 0; col < MATRIX_COLS; ++col) {
- backlight_set_key_color(row, col, custom_color_map[row][col]);
- }
- }
-}
-
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- static uint8_t last_effect;
- switch (keycode) {
- case DFAULTS:
- if (IS_PRESSED(record->event)) set_backlight_defaults();
- return false;
- case BL_TOGG:
- if (IS_PRESSED(record->event)) {
- if (g_config.effect) {
- last_effect = g_config.effect;
- g_config.effect = 0;
- } else {
- g_config.effect = last_effect;
- }
- }
- return false;
- case EFFECT...EFFECT_END:
- if (IS_PRESSED(record->event)) {
- uint8_t effect = keycode - EFFECT;
- g_config.effect = effect;
- backlight_config_save();
- }
- return false;
- }
-
- return true;
-}
-#endif
+// This space intentionally left blank
diff --git a/layouts/default/60_ansi_tsangan/default_60_ansi_tsangan/keymap.c b/layouts/default/60_ansi_tsangan/default_60_ansi_tsangan/keymap.c
new file mode 100644
index 000000000..e4562ede5
--- /dev/null
+++ b/layouts/default/60_ansi_tsangan/default_60_ansi_tsangan/keymap.c
@@ -0,0 +1,11 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_60_ansi_tsangan(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
+ )
+};
diff --git a/layouts/default/60_ansi_tsangan/layout.json b/layouts/default/60_ansi_tsangan/layout.json
new file mode 100644
index 000000000..f6a65beb3
--- /dev/null
+++ b/layouts/default/60_ansi_tsangan/layout.json
@@ -0,0 +1,5 @@
+[{a:7},"","","","","","","","","","","","","",{w:2},""],
+[{w:1.5},"","","","","","","","","","","","","",{w:1.5},""],
+[{w:1.75},"","","","","","","","","","","","",{w:2.25},""],
+[{w:2.25},"","","","","","","","","","","",{w:2.75},""],
+[{w:1.5},"",{w:1},"",{w:1.5},"",{w:7},"",{w:1.5},"",{w:1},"",{w:1.5},""]
diff --git a/layouts/default/60_ansi_tsangan/readme.md b/layouts/default/60_ansi_tsangan/readme.md
new file mode 100644
index 000000000..76b451403
--- /dev/null
+++ b/layouts/default/60_ansi_tsangan/readme.md
@@ -0,0 +1,3 @@
+# 60_ansi_tsangan
+
+ LAYOUT_60_ansi_tsangan
diff --git a/layouts/default/60_iso_tsangan/default_60_iso_tsangan/keymap.c b/layouts/default/60_iso_tsangan/default_60_iso_tsangan/keymap.c
new file mode 100644
index 000000000..94d763020
--- /dev/null
+++ b/layouts/default/60_iso_tsangan/default_60_iso_tsangan/keymap.c
@@ -0,0 +1,11 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_60_iso_tsangan(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
+ KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL
+ )
+};
diff --git a/layouts/default/60_iso_tsangan/layout.json b/layouts/default/60_iso_tsangan/layout.json
new file mode 100644
index 000000000..e23185935
--- /dev/null
+++ b/layouts/default/60_iso_tsangan/layout.json
@@ -0,0 +1,5 @@
+[{a:7},"","","","","","","","","","","","","",{w:2},""],
+[{w:1.5},"","","","","","","","","","","","","",{x:0.25,w:1.25,h:2,w2:1.5,h2:1,x2:-0.25},""],
+[{w:1.75},"","","","","","","","","","","","",""],
+[{w:1.25},"","","","","","","","","","","","",{w:2.75},""],
+[{w:1.5},"",{w:1},"",{w:1.5},"",{w:7},"",{w:1.5},"",{w:1},"",{w:1.5},""]
diff --git a/layouts/default/60_iso_tsangan/readme.md b/layouts/default/60_iso_tsangan/readme.md
new file mode 100644
index 000000000..edb7f9242
--- /dev/null
+++ b/layouts/default/60_iso_tsangan/readme.md
@@ -0,0 +1,3 @@
+# 60_iso_tsangan
+
+ LAYOUT_60_iso_tsangan
diff --git a/layouts/default/60_tsangan_hhkb/default_60_tsangan_hhkb/keymap.c b/layouts/default/60_tsangan_hhkb/default_60_tsangan_hhkb/keymap.c
new file mode 100644
index 000000000..c9c831329
--- /dev/null
+++ b/layouts/default/60_tsangan_hhkb/default_60_tsangan_hhkb/keymap.c
@@ -0,0 +1,21 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_60_tsangan_hhkb(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL,KC_BSPC,KC_BSPC,
+ KC_TAB , KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC, KC_BSLS ,
+ KC_CAPS , KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT ,
+ KC_LSFT , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT ,KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
+ )
+};
+
+// Runs just one time when the keyboard initializes.
+void matrix_init_user(void) {
+
+};
+
+// Runs constantly in the background, in a loop.
+void matrix_scan_user(void) {
+
+};
diff --git a/layouts/default/60_tsangan_hhkb/layout.json b/layouts/default/60_tsangan_hhkb/layout.json
new file mode 100644
index 000000000..117d26d41
--- /dev/null
+++ b/layouts/default/60_tsangan_hhkb/layout.json
@@ -0,0 +1,5 @@
+[{a:7},"","","","","","","","","","","","","","",""],
+[{w:1.5},"","","","","","","","","","","","","",{w:1.5},""],
+[{w:1.75},"","","","","","","","","","","","",{w:2.25},""],
+[{w:2.25},"","","","","","","","","","","",{w:1.75},"",{w:1},""],
+[{w:1.5},"",{w:1},"",{w:1.5},"",{w:7},"",{w:1.5},"",{w:1},"",{w:1.5},""]
diff --git a/layouts/default/60_tsangan_hhkb/readme.md b/layouts/default/60_tsangan_hhkb/readme.md
new file mode 100644
index 000000000..f1e955f1e
--- /dev/null
+++ b/layouts/default/60_tsangan_hhkb/readme.md
@@ -0,0 +1,3 @@
+# 60_tsangan_hhkb
+
+ LAYOUT_60_tsangan_hhkb \ No newline at end of file
diff --git a/layouts/default/65_ansi/default_65_ansi/keymap.c b/layouts/default/65_ansi/default_65_ansi/keymap.c
new file mode 100644
index 000000000..69fcccd63
--- /dev/null
+++ b/layouts/default/65_ansi/default_65_ansi/keymap.c
@@ -0,0 +1,11 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* layer 0: qwerty */
+ [0] = LAYOUT_65_ansi(\
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT)
+ }; \ No newline at end of file
diff --git a/layouts/default/65_ansi/layout.json b/layouts/default/65_ansi/layout.json
new file mode 100644
index 000000000..0fa92b0f2
--- /dev/null
+++ b/layouts/default/65_ansi/layout.json
@@ -0,0 +1,5 @@
+["","","","","","","","","","","","","",{w:2},"",""],
+[{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",""],
+[{w:1.75},"","","","","","","","","","","","",{w:2.25},"",""],
+[{w:2.25},"","","","","","","","","","","",{w:1.75},"","",""],
+[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"","","","","","",""]
diff --git a/layouts/default/65_ansi/readme.md b/layouts/default/65_ansi/readme.md
new file mode 100644
index 000000000..0cde8e727
--- /dev/null
+++ b/layouts/default/65_ansi/readme.md
@@ -0,0 +1,5 @@
+# 65_ansi
+
+ LAYOUT_65_ansi
+
+This is the 65% ANSI layout made popular by boards such as the [Input Club Whitefox](https://github.com/qmk/qmk_firmware/tree/master/keyboards/whitefox) and [RAMA M65-A](https://github.com/qmk/qmk_firmware/tree/master/keyboards/jc65). \ No newline at end of file
diff --git a/layouts/default/68_ansi/default_68_ansi/keymap.c b/layouts/default/68_ansi/default_68_ansi/keymap.c
index 59b0ea47d..544f9c156 100644
--- a/layouts/default/68_ansi/default_68_ansi/keymap.c
+++ b/layouts/default/68_ansi/default_68_ansi/keymap.c
@@ -3,9 +3,9 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* layer 0: qwerty */
[0] = LAYOUT_68_ansi(\
- KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
- KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
- KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_PGUP,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_PGDN,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT)
}; \ No newline at end of file
diff --git a/layouts/default/68_ansi/layout.json b/layouts/default/68_ansi/layout.json
index 0fa92b0f2..f81ee0bcb 100644
--- a/layouts/default/68_ansi/layout.json
+++ b/layouts/default/68_ansi/layout.json
@@ -1,5 +1,5 @@
-["","","","","","","","","","","","","",{w:2},"",""],
-[{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",""],
-[{w:1.75},"","","","","","","","","","","","",{w:2.25},"",""],
-[{w:2.25},"","","","","","","","","","","",{w:1.75},"","",""],
-[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"","","","","","",""]
+[{a:7},"","","","","","","","","","","","","",{w:2},"",{x:0.25},"",""],
+[{w:1.5},"","","","","","","","","","","","","",{w:1.5},"",{x:0.25},"",""],
+[{w:1.75},"","","","","","","","","","","","",{w:2.25},""],
+[{w:2.25},"","","","","","","","","","","",{w:2.75},"",{x:0.25},""],
+[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{x:0.5},"","",""]
diff --git a/layouts/default/68_ansi/readme.md b/layouts/default/68_ansi/readme.md
index eab8f312b..2180973de 100644
--- a/layouts/default/68_ansi/readme.md
+++ b/layouts/default/68_ansi/readme.md
@@ -1,3 +1,5 @@
# 68_ansi
- LAYOUT_68_ansi \ No newline at end of file
+ LAYOUT_68_ansi
+
+This is the 68 key ANSI layout made popular by boards such as the Magicforce 68 and Varmilo VA68M. \ No newline at end of file
diff --git a/layouts/default/ortho_4x10/default_ortho_4x10/keymap.c b/layouts/default/ortho_4x10/default_ortho_4x10/keymap.c
new file mode 100644
index 000000000..3f6285e2d
--- /dev/null
+++ b/layouts/default/ortho_4x10/default_ortho_4x10/keymap.c
@@ -0,0 +1,10 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_ortho_4x10(
+ KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J,
+ KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J,
+ KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J,
+ KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G, KC_H, KC_I, KC_J
+ )
+};
diff --git a/layouts/default/ortho_4x10/layout.json b/layouts/default/ortho_4x10/layout.json
new file mode 100644
index 000000000..86f098e27
--- /dev/null
+++ b/layouts/default/ortho_4x10/layout.json
@@ -0,0 +1,4 @@
+["","","","","","","","","",""],
+["","","","","","","","","",""],
+["","","","","","","","","",""],
+["","","","","","","","","",""]
diff --git a/layouts/default/ortho_4x10/readme.md b/layouts/default/ortho_4x10/readme.md
new file mode 100644
index 000000000..c5c29251c
--- /dev/null
+++ b/layouts/default/ortho_4x10/readme.md
@@ -0,0 +1,3 @@
+# ortho_4x10
+
+ LAYOUT_ortho_4x10
diff --git a/layouts/default/tkl_iso/default_tkl_iso/keymap.c b/layouts/default/tkl_iso/default_tkl_iso/keymap.c
index f29ef2267..eb4c48d65 100644
--- a/layouts/default/tkl_iso/default_tkl_iso/keymap.c
+++ b/layouts/default/tkl_iso/default_tkl_iso/keymap.c
@@ -5,7 +5,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN,
- KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
) \