~ruther/qmk_firmware

0da6562c4df570729889690e21061229c5648b73 — Drashna Jaelre 3 years ago cfcd647
Make default layer size 16-bit (#15286)

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
293 files changed, 1249 insertions(+), 1309 deletions(-)

M docs/zh-cn/custom_quantum_functions.md
M keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/keymap.c
M keyboards/40percentclub/gherkin/keymaps/itsaferbie/keymap.c
M keyboards/40percentclub/half_n_half/keymaps/Boy_314/keymap.c
M keyboards/bandominedoni/keymaps/led/keymap.c
M keyboards/bandominedoni/keymaps/via/keymap.c
M keyboards/biacco42/ergo42/keymaps/hdbx/keymap.c
M keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c
M keyboards/bpiphany/pegasushoof/keymaps/blowrak/keymap.c
M keyboards/cannonkeys/ortho75/ortho75.c
M keyboards/cannonkeys/satisfaction75/satisfaction75.c
M keyboards/ckeys/washington/keymaps/default/keymap.c
M keyboards/clueboard/66/keymaps/magicmonty/keymap.c
M keyboards/crkbd/keymaps/dsanchezseco/keymap.c
M keyboards/crkbd/keymaps/edvorakjp/keymap.c
M keyboards/crkbd/keymaps/edvorakjp/oled.c
M keyboards/crkbd/keymaps/jarred/keymap.c
M keyboards/dichotomy/keymaps/default/keymap.c
M keyboards/dm9records/plaid/keymaps/thehalfdeafchef/keymap.c
M keyboards/dz60/keymaps/iso_split-spacebar/keymap.c
M keyboards/dz60/keymaps/marianas/customLogic.c
M keyboards/dz60/keymaps/xtonhasvim/keymap.c
M keyboards/dztech/dz60rgb/keymaps/matthewrobo/keymap.c
M keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c
M keyboards/dztech/dz60rgb/keymaps/perseid/keymap.c
M keyboards/dztech/dz65rgb/keymaps/catrielmuller/keymap.c
M keyboards/dztech/dz65rgb/keymaps/drootz/keymap.c
M keyboards/dztech/dz65rgb/keymaps/matthewrobo/keymap.c
M keyboards/ergodox_ez/keymaps/bepo_tm_style/keymap.c
M keyboards/ergodox_ez/keymaps/blakedietz/keymap.c
M keyboards/ergodox_ez/keymaps/bpruitt-goddard/keymap.c
M keyboards/ergodox_ez/keymaps/default_osx/keymap.c
M keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c
M keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c
M keyboards/ergodox_ez/keymaps/heartrobotninja/keymap.c
M keyboards/ergodox_ez/keymaps/kou/keymap.c
M keyboards/ergodox_ez/keymaps/lukaus/keymap.c
M keyboards/ergodox_ez/keymaps/matrixman/keymap.c
M keyboards/ergodox_ez/keymaps/nathanvercaemert/keymap.c
M keyboards/ergodox_ez/keymaps/nfriend/keymap.c
M keyboards/ergodox_ez/keymaps/profet_80/keymap.c
M keyboards/ergodox_ez/keymaps/pvinis/keymap.c
M keyboards/ergodox_ez/keymaps/rgb_layer/keymap.c
M keyboards/ergodox_ez/keymaps/rishka/keymap.c
M keyboards/ergodox_ez/keymaps/skug/keymap.c
M keyboards/ergodox_ez/keymaps/smurmann/keymap.c
M keyboards/ergodox_ez/keymaps/steno/keymap.c
M keyboards/ergodox_ez/keymaps/testing/keymap.c
M keyboards/ergodox_ez/keymaps/vim/keymap.c
M keyboards/ergodox_ez/util/compile_keymap.py
M keyboards/ergoslab/keymaps/default/keymap.c
M keyboards/exclusive/e65/keymaps/masterzen/keymap.c
M keyboards/exclusive/e7v1/keymaps/masterzen/keymap.c
M keyboards/gboards/gergo/keymaps/colemak/keymap.c
M keyboards/gh60/revc/keymaps/dbroqua/keymap.c
M keyboards/gh60/revc/keymaps/default/keymap.c
M keyboards/gh60/revc/keymaps/robotmaxtron/keymap.c
M keyboards/gh60/satan/keymaps/addcninblue/keymap.c
M keyboards/glenpickle/chimera_ergo/keymaps/default/keymap.c
M keyboards/glenpickle/chimera_ls/keymaps/default/keymap.c
M keyboards/glenpickle/chimera_ortho/keymaps/default/keymap.c
M keyboards/gon/nerdtkl/keymaps/gam3cat/keymap.c
M keyboards/handwired/frenchdev/keymaps/default/keymap.c
M keyboards/handwired/kbod/keymaps/default/keymap.c
M keyboards/handwired/prime_exl/keymaps/via/keymap.c
M keyboards/handwired/promethium/keymaps/default/keymap.c
M keyboards/handwired/promethium/keymaps/priyadi/keymap.c
M keyboards/handwired/traveller/keymaps/default/keymap.c
M keyboards/handwired/tritium_numpad/keymaps/blu/keymap.c
M keyboards/helix/pico/keymaps/mtei/keymap.c
M keyboards/helix/rev2/keymaps/default/oled_display.c
M keyboards/helix/rev2/keymaps/edvorakjp/keymap.c
M keyboards/helix/rev2/keymaps/edvorakjp/oled.c
M keyboards/helix/rev2/keymaps/five_rows/keymap.c
M keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c
M keyboards/hineybush/h87a/keymaps/gam3cat/keymap.c
M keyboards/hotdox/keymaps/default/keymap.c
M keyboards/hotdox/keymaps/eozaki/keymap.c
M keyboards/hotdox/keymaps/kloki/keymap.c
M keyboards/input_club/ergodox_infinity/keymaps/default/keymap.c
M keyboards/input_club/ergodox_infinity/keymaps/gordon/keymap.c
M keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c
M keyboards/input_club/ergodox_infinity/keymaps/input_club/keymap.c
M keyboards/input_club/ergodox_infinity/keymaps/narze/keymap.c
M keyboards/input_club/ergodox_infinity/keymaps/nordic_ergo/keymap.c
M keyboards/input_club/ergodox_infinity/keymaps/rask/keymap.c
M keyboards/input_club/ergodox_infinity/keymaps/rjhilgefort/keymap.c
M keyboards/input_club/ergodox_infinity/keymaps/trulyergonomic/keymap.c
M keyboards/input_club/infinity60/keymaps/jpetermans/keymap.c
M keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c
M keyboards/jones/v03_1/keymaps/default_ansi/keymap.c
M keyboards/jones/v03_1/keymaps/default_jp/keymap.c
M keyboards/kakunpc/angel64/alpha/keymaps/default/keymap.c
M keyboards/kakunpc/angel64/rev1/keymaps/kakunpc/keymap.c
M keyboards/kakunpc/suihankey/alpha/keymaps/default/keymap.c
M keyboards/kakunpc/suihankey/rev1/keymaps/default/keymap.c
M keyboards/kbdfans/kbd6x/keymaps/othi/keymap.c
M keyboards/kbdfans/kbd75/keymaps/edulpn/keymap.c
M keyboards/kbdfans/niu_mini/keymaps/tobias/keymap.c
M keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/keymap.c
M keyboards/keebio/bdn9/keymaps/vosechu-ksp/keymap.c
M keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c
M keyboards/keebio/iris/keymaps/edvorakjp/keymap.c
M keyboards/keebio/iris/keymaps/jerryhcooke/keymap.c
M keyboards/keebio/iris/keymaps/sq5rix/keymap.c
M keyboards/keebio/levinson/keymaps/issmirnov/keymap.c
M keyboards/keebio/levinson/keymaps/issmirnov/rgb.c
M keyboards/keebio/levinson/keymaps/issmirnov/rgb.h
M keyboards/keebio/levinson/keymaps/xtonhasvim/keymap.c
M keyboards/keebio/nyquist/keymaps/pitty/keymap.c
M keyboards/keebio/quefrency/keymaps/georgepetri/keymap.c
M keyboards/keyhive/honeycomb/keymaps/default/keymap.c
M keyboards/kinesis/keymaps/milestogo/keymap.c
M keyboards/kprepublic/cospad/keymaps/detrus/keymap.c
M keyboards/kprepublic/jj50/keymaps/abstractkb/keymap.c
M keyboards/kprepublic/jj50/keymaps/abstractkb_gergomatch/keymap.c
M keyboards/ktec/ergodone/keymaps/eozaki/keymap.c
M keyboards/ktec/ergodone/keymaps/erovia/keymap.c
M keyboards/ktec/ergodone/keymaps/kloki/keymap.c
M keyboards/ktec/ergodone/keymaps/vega/keymap.c
M keyboards/leeku/finger65/keymaps/madhatter/keymap.c
M keyboards/lets_split/keymaps/bbaserdem/keymap.c
M keyboards/lets_split/keymaps/cpeters1982/keymap.c
M keyboards/lets_split/keymaps/geripgeri/keymap.c
M keyboards/lets_split/keymaps/pitty/keymap.c
M keyboards/lily58/lib/layer_state_reader.c
M keyboards/m10a/keymaps/gam3cat/keymap.c
M keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/keymap.c
M keyboards/maple_computing/lets_split_eh/keymaps/romus/keymap.c
M keyboards/mechkeys/mechmini/v2/keymaps/wsturgiss/keymap.c
M keyboards/mechllama/g35/keymaps/default/keymap.c
M keyboards/mechlovin/hannah910/hannah910.c
M keyboards/mechlovin/hex4b/keymaps/nazzer/keymap.c
M keyboards/minimacro5/keymaps/devdev/keymap.c
M keyboards/mitosis/keymaps/carvac_dv/keymap.c
M keyboards/mitosis/keymaps/datagrok/keymap.c
M keyboards/mitosis/keymaps/default/keymap.c
M keyboards/mitosis/keymaps/mjt/keymap.c
M keyboards/mitosis/keymaps/nzen/keymap.c
M keyboards/mschwingen/modelm/modelm.c
M keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c
M keyboards/pearl/keymaps/cijanzen/keymap.c
M keyboards/pearl/keymaps/jetpacktuxedo/keymap.c
M keyboards/pearl/keymaps/phil/keymap.c
M keyboards/pearl/keymaps/rask/keymap.c
M keyboards/percent/canoe/keymaps/dhertz/keymap.c
M keyboards/phoenix/phoenix.c
M keyboards/planck/keymaps/aviator/keymap.c
M keyboards/planck/keymaps/charlesrocket/keymap.c
M keyboards/planck/keymaps/grahampheath/keymap.c
M keyboards/planck/keymaps/oryx/keymap.c
M keyboards/planck/keymaps/rootiest/keymap.c
M keyboards/planck/keymaps/tom/keymap.c
M keyboards/planck/keymaps/tylerwince/keymap.c
M keyboards/preonic/keymaps/dudeofawesome/keymap.c
M keyboards/preonic/keymaps/senseored/keymap.c
M keyboards/primekb/prime_e/keymaps/via/keymap.c
M keyboards/redox_w/keymaps/italian/keymap.c
M keyboards/redscarf_i/redscarf_i.c
M keyboards/rgbkb/pan/keymaps/default/keymap.c
M keyboards/rgbkb/sol/keymaps/default/keymap.c
M keyboards/rgbkb/sol/keymaps/xyverz/keymap.c
M keyboards/rgbkb/zen/rev2/rev2.c
M keyboards/rgbkb/zygomorph/keymaps/default_oled/keymap.c
M keyboards/satt/comet46/keymaps/default-rgbled/keymap.c
M keyboards/satt/comet46/keymaps/default/keymap.c
M keyboards/satt/comet46/keymaps/satt/keymap.c
M keyboards/splitkb/kyria/keymaps/j-inc/keymap.c
M keyboards/splitkb/kyria/keymaps/ninjonas/oled.c
M keyboards/splitkb/kyria/keymaps/thomasbaart/keymap.c
M keyboards/splitography/keymaps/jeandeaual/keymap.c
M keyboards/splitography/keymaps/multi/keymap.c
M keyboards/tetris/keymaps/default/keymap.c
M keyboards/thevankeyboards/roadkit/keymaps/flipphone/keymap.c
M keyboards/v60_type_r/keymaps/xtonhasvim/keymap.c
M keyboards/xiudi/xd60/keymaps/birkir/keymap.c
M keyboards/xiudi/xd60/keymaps/kmontag42/keymap.c
M keyboards/xiudi/xd75/keymaps/arpinfidel/keymap.c
M keyboards/xiudi/xd75/keymaps/cbbrowne/keymap.c
M keyboards/xiudi/xd75/keymaps/kloki/keymap.c
M keyboards/xiudi/xd75/keymaps/tdl-jturner/keymap.c
M layouts/community/ergodox/ab/keymap.c
M layouts/community/ergodox/absenth/keymap.c
M layouts/community/ergodox/adam/keymap.c
M layouts/community/ergodox/adnw_k_o_y/keymap.c
M layouts/community/ergodox/alexjj/keymap.c
M layouts/community/ergodox/andrew_osx/keymap.c
M layouts/community/ergodox/berfarah/keymap.c
M layouts/community/ergodox/bryan/keymap.c
M layouts/community/ergodox/choromanski/keymap.c
M layouts/community/ergodox/colemak/keymap.c
M layouts/community/ergodox/colemak_code_friendly/keymap.c
M layouts/community/ergodox/colemak_programmer/keymap.c
M layouts/community/ergodox/common_nighthawk/keymap.c
M layouts/community/ergodox/csharp_dev/keymap.c
M layouts/community/ergodox/dave/keymap.c
M layouts/community/ergodox/deadcyclo/keymap.c
M layouts/community/ergodox/dragon788/keymap.c
M layouts/community/ergodox/dvorak/keymap.c
M layouts/community/ergodox/dvorak_emacs/keymap.c
M layouts/community/ergodox/dvorak_emacs_software/keymap.c
M layouts/community/ergodox/dvorak_intl_squisher/keymap.c
M layouts/community/ergodox/dvorak_plover/keymap.c
M layouts/community/ergodox/dvorak_programmer/keymap.c
M layouts/community/ergodox/dvorak_programmer_swe/keymap.c
M layouts/community/ergodox/dvorak_spanish/keymap.c
M layouts/community/ergodox/dvorak_svorak_a5/keymap.c
M layouts/community/ergodox/emacs_osx_dk/keymap.c
M layouts/community/ergodox/french_hacker/keymap.c
M layouts/community/ergodox/galson/keymap.c
M layouts/community/ergodox/german-kinergo/keymap.c
M layouts/community/ergodox/german-lukas/keymap.c
M layouts/community/ergodox/german-manuneo/compile_keymap.py
M layouts/community/ergodox/german-manuneo/keymap.c
M layouts/community/ergodox/german/keymap.c
M layouts/community/ergodox/haegin/keymap.c
M layouts/community/ergodox/ishigoya-jp/keymap.c
M layouts/community/ergodox/issmirnov/keymap.c
M layouts/community/ergodox/italian/keymap.c
M layouts/community/ergodox/j3rn/keymap.c
M layouts/community/ergodox/jackhumbert/keymap.c
M layouts/community/ergodox/jacobono/keymap.c
M layouts/community/ergodox/jafo/keymap.c
M layouts/community/ergodox/jgarr/keymap.c
M layouts/community/ergodox/josh/keymap.c
M layouts/community/ergodox/kastyle/keymap.c
M layouts/community/ergodox/kejadlen/keymap.c
M layouts/community/ergodox/kines-ish/keymap.c
M layouts/community/ergodox/kristian/keymap.c
M layouts/community/ergodox/maz/keymap.c
M layouts/community/ergodox/mclennon_osx/keymap.c
M layouts/community/ergodox/meagerfindings/keymap.c
M layouts/community/ergodox/msc/keymap.c
M layouts/community/ergodox/naps62/keymap.c
M layouts/community/ergodox/neo2_on_qwertz_hardware/keymap.c
M layouts/community/ergodox/osx_de/keymap.c
M layouts/community/ergodox/osx_de_adnw_koy/keymap.c
M layouts/community/ergodox/osx_de_experimental/keymap.c
M layouts/community/ergodox/osx_fr/keymap.c
M layouts/community/ergodox/osx_kinesis_pnut/keymap.c
M layouts/community/ergodox/osx_neo2/keymap.c
M layouts/community/ergodox/phoenix/keymap.c
M layouts/community/ergodox/plover/keymap.c
M layouts/community/ergodox/qwerty_code_friendly/keymap.c
M layouts/community/ergodox/reset_eeprom/keymap.c
M layouts/community/ergodox/romanzolotarev-norman-plover-osx-hjkl/keymap.c
M layouts/community/ergodox/romanzolotarev-norman-plover-osx/keymap.c
M layouts/community/ergodox/romanzolotarev-norman-qwerty-osx/keymap.c
M layouts/community/ergodox/sethbc/keymap.c
M layouts/community/ergodox/siroken3/keymap.c
M layouts/community/ergodox/sneako/keymap.c
M layouts/community/ergodox/software_neo2/keymap.c
M layouts/community/ergodox/swedish-lindhe/keymap.c
M layouts/community/ergodox/swedish/keymap.c
M layouts/community/ergodox/swissgerman/keymap.c
M layouts/community/ergodox/techtomas/keymap.c
M layouts/community/ergodox/tkuichooseyou/keymap.c
M layouts/community/ergodox/tonyabra_osx/keymap.c
M layouts/community/ergodox/townk_osx/keymap.c
M layouts/community/ergodox/twentylives_dvorak_with_hebrew/keymap.c
M layouts/community/ergodox/win10_writers-block/keymap.c
M layouts/community/ergodox/xyverz/keymap.c
M layouts/community/ergodox/zweihander-macos/keymap.c
M layouts/community/ortho_4x12/peej/keymap.c
M quantum/action_layer.h
M tmk_core/protocol/arm_atsam/md_rgb_matrix.c
M users/333fred/333fred.c
M users/333fred/rgb.c
M users/bbaserdem/bbaserdem.c
M users/billypython/billypython.c
M users/billypython/billypython.h
M users/dhertz/dhertz.c
M users/doogle999/doogle999.c
M users/edvorakjp/edvorakjp.c
M users/edvorakjp/edvorakjp.h
M users/ericgebhart/ericgebhart.c
M users/ericgebhart/tap_dances.c
M users/kuchosauronad0/kuchosauronad0.c
M users/kuchosauronad0/kuchosauronad0.h
M users/kuchosauronad0/rgblight_user.c
M users/kuchosauronad0/template.c
M users/mtdjr/mtdjr.c
M users/ninjonas/oled.c
M users/pvinis/pvinis.c
M users/pvinis/pvinis.h
M users/romus/romus.c
M users/sigma/sigma.c
M users/stanrc85/layer_rgb.c
M users/talljoe/talljoe.c
M users/tominabox1/tominabox1.c
M users/turbomech/backupturbomech.c
M users/xulkal/custom_oled.c
M users/zer09/zer09.c
M docs/zh-cn/custom_quantum_functions.md => docs/zh-cn/custom_quantum_functions.md +3 -4
@@ 240,7 240,7 @@ void suspend_wakeup_init_user(void) {

```c
layer_state_t layer_state_set_user(layer_state_t state) {
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
    case _RAISE:
        rgblight_setrgb (0x00,  0x00, 0xFF);
        break;


@@ 267,7 267,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {

### `layer_state_set_*` 函数文档

* 键盘/各子版本:`uint32_t layer_state_set_kb(uint32_t state)`
* 键盘/各子版本:`layer_state_t layer_state_set_kb(layer_state_t state)`
* 布局: `layer_state_t layer_state_set_user(layer_state_t state)`




@@ 325,7 325,7 @@ void keyboard_post_init_user(void) {

```c
layer_state_t layer_state_set_user(layer_state_t state) {
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
    case _RAISE:
        if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_magenta(); rgblight_mode_noeeprom(1); }
        break;


@@ 474,4 474,3 @@ cancel_deferred_exec(my_token);
```c
#define MAX_DEFERRED_EXECUTORS 16
```


M keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/keymap.c => keyboards/1upkeyboards/sweet16/keymaps/ridingintraffic/keymap.c +1 -1
@@ 196,7 196,7 @@ void matrix_scan_user(void) {
  }
}
layer_state_t layer_state_set_user(layer_state_t state) {
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
    case _TAPLAND:
        rgblight_setrgb(0, 16, 0); //green
        break;

M keyboards/40percentclub/gherkin/keymaps/itsaferbie/keymap.c => keyboards/40percentclub/gherkin/keymaps/itsaferbie/keymap.c +1 -1
@@ 105,7 105,7 @@ void matrix_scan_user(void) {
  #ifdef RGBLIGHT_ENABLE

  static uint8_t old_layer = 255;
  uint8_t new_layer = biton32(layer_state);
  uint8_t new_layer = get_highest_layer(layer_state);

  // Color of the Icons.
  if (old_layer != new_layer) {

M keyboards/40percentclub/half_n_half/keymaps/Boy_314/keymap.c => keyboards/40percentclub/half_n_half/keymaps/Boy_314/keymap.c +2 -2
@@ 128,10 128,10 @@ void tap_dance_choose_layer_reset (qk_tap_dance_state_t *state, void *user_data)
			layer_off(_RAISE);
			break;
		case 3:
			if (biton32(default_layer_state) == _DVORAK) {
			if (get_highest_layer(default_layer_state) == _DVORAK) {
				set_single_persistent_default_layer(_QWERTY);
			}
			else if (biton32(default_layer_state) == _QWERTY) {
			else if (get_highest_layer(default_layer_state) == _QWERTY) {
				set_single_persistent_default_layer(_DVORAK);
			}
			break;

M keyboards/bandominedoni/keymaps/led/keymap.c => keyboards/bandominedoni/keymaps/led/keymap.c +1 -1
@@ 180,7 180,7 @@ void keyboard_post_init_user(void) {
#ifdef RGB_MATRIX_ENABLE
void rgb_matrix_indicators_user(void) {
    if (rgb_matrix_is_enabled()) {  // turn the lights on when it is enabled.
        uint8_t layer = biton32(layer_state);
        uint8_t layer = get_highest_layer(layer_state);
        switch (layer) {
            case _CLOSE:
                // rgb_matrix_set_color(pgm_read_byte(&convert_led_location2number[11]),  RGB_RED);         //  RGB_TOG  <- too heavy.

M keyboards/bandominedoni/keymaps/via/keymap.c => keyboards/bandominedoni/keymaps/via/keymap.c +1 -1
@@ 118,7 118,7 @@ void keyboard_post_init_user(void) {
#ifdef RGB_MATRIX_ENABLE
void rgb_matrix_indicators_user(void) {
    if (rgb_matrix_is_enabled()) {  // turn the lights on when it is enabled.
        uint8_t layer = biton32(layer_state);
        uint8_t layer = get_highest_layer(layer_state);
        switch (layer) {
            case _CLOSE:
                // rgb_matrix_set_color(pgm_read_byte(&convert_led_location2number[11]),  RGB_RED);         //  RGB_TOG  <- too heavy.

M keyboards/biacco42/ergo42/keymaps/hdbx/keymap.c => keyboards/biacco42/ergo42/keymaps/hdbx/keymap.c +2 -2
@@ 134,7 134,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

// RGB Underglow使用時のレイヤー毎のカラー切り替え
uint32_t layer_state_set_keymap (uint32_t state) {
layer_state_t layer_state_set_keymap (layer_state_t state) {
  return state;
}



@@ 148,7 148,7 @@ void matrix_init_user(void) {
layer_state_t layer_state_set_user(layer_state_t state) {
  state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
#ifdef RGBLIGHT_ENABLE
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
    case _RAISE:
      rgblight_setrgb_chartreuse(); // RAISE:シャルトリューズ
      break;

M keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c => keyboards/bpiphany/kitten_paw/keymaps/ickerwx/keymap.c +2 -2
@@ 89,7 89,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

void matrix_scan_user(void) {
    uint8_t layer;
    layer = biton32(layer_state);
    layer = get_highest_layer(layer_state);

    if (current_layer_global != layer) {
        current_layer_global = layer;


@@ 132,7 132,7 @@ void tap_helper(keyrecord_t *record, uint16_t orig_mod, uint16_t macro_mod, uint

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    uint8_t layer;
    layer = biton32(layer_state);
    layer = get_highest_layer(layer_state);
    if (layer == PROG2) {
         if (keycode >= KC_A && keycode <= KC_EXSEL && \
             !(  // do not send LSFT + these keycodes, they are needed for emulating the US layout

M keyboards/bpiphany/pegasushoof/keymaps/blowrak/keymap.c => keyboards/bpiphany/pegasushoof/keymaps/blowrak/keymap.c +1 -1
@@ 77,7 77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

void matrix_scan_user(void)
{
	uint8_t layer = biton32(layer_state);
	uint8_t layer = get_highest_layer(layer_state);
	switch (layer) {
		case KM_BLOWRAK:
			ph_caps_led_on();

M keyboards/cannonkeys/ortho75/ortho75.c => keyboards/cannonkeys/ortho75/ortho75.c +37 -36
@@ 5,47 5,48 @@

uint8_t layer = 0;

uint32_t layer_state_set_kb(uint32_t state) {
  state = layer_state_set_user(state);
  layer = biton32(state);
  return state;
layer_state_t layer_state_set_kb(layer_state_t state) {
    state = layer_state_set_user(state);
    layer = get_highest_layer(state);
    return state;
}

bool encoder_update_kb(uint8_t index, bool clockwise) {
    if (!encoder_update_user(index, clockwise)) return false;
  uint16_t mapped_code = 0;
  if (index == 0) {
    if (clockwise) {
        switch(layer){
            case 0:
            default:
                mapped_code = KC_VOLU;
                break;
            case 1:
                mapped_code = KC_MEDIA_NEXT_TRACK;
                break;
            case 2:
                mapped_code = KC_PGDN;
                break;
    uint16_t mapped_code = 0;
    if (index == 0) {
        if (clockwise) {
            switch (layer) {
                case 0:
                default:
                    mapped_code = KC_VOLU;
                    break;
                case 1:
                    mapped_code = KC_MEDIA_NEXT_TRACK;
                    break;
                case 2:
                    mapped_code = KC_PGDN;
                    break;
            }
        } else {
            switch (layer) {
                case 0:
                default:
                    mapped_code = KC_VOLD;
                    break;
                case 1:
                    mapped_code = KC_MEDIA_PREV_TRACK;
                    break;
                case 2:
                    mapped_code = KC_PGUP;
                    break;
            }
        }
    } else {
        switch(layer){
            case 0:
            default:
                mapped_code = KC_VOLD;
                break;
            case 1:
                mapped_code = KC_MEDIA_PREV_TRACK;
                break;
            case 2:
                mapped_code = KC_PGUP;
                break;
        uint16_t held_keycode_timer = timer_read();
        register_code(mapped_code);
        while (timer_elapsed(held_keycode_timer) < MEDIA_KEY_DELAY) { /* no-op */
        }
        unregister_code(mapped_code);
    }
    uint16_t held_keycode_timer = timer_read();
    register_code(mapped_code);
    while (timer_elapsed(held_keycode_timer) < MEDIA_KEY_DELAY){ /* no-op */ }
    unregister_code(mapped_code);
  }
  return true;
    return true;
}

M keyboards/cannonkeys/satisfaction75/satisfaction75.c => keyboards/cannonkeys/satisfaction75/satisfaction75.c +1 -1
@@ 240,7 240,7 @@ void read_host_led_state(void) {

layer_state_t layer_state_set_kb(layer_state_t state) {
  state = layer_state_set_user(state);
  layer = biton32(state);
  layer = get_highest_layer(state);
  oled_request_wakeup();
  return state;
}

M keyboards/ckeys/washington/keymaps/default/keymap.c => keyboards/ckeys/washington/keymaps/default/keymap.c +2 -2
@@ 40,7 40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

bool encoder_update_user(uint8_t index, bool clockwise) {
    switch (biton32(layer_state)) {
    switch (get_highest_layer(layer_state)) {
        case _BASE:
            if (clockwise) {
                tap_code(KC_VOLU);


@@ 62,7 62,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
bool oled_task_user(void) {
  // Host Keyboard Layer Status
  oled_write_P(PSTR("Layer: "), false);
  switch (biton32(layer_state)) {
  switch (get_highest_layer(layer_state)) {
    case _BASE:
      oled_write_P(PSTR("Default\n"), false);
      break;

M keyboards/clueboard/66/keymaps/magicmonty/keymap.c => keyboards/clueboard/66/keymaps/magicmonty/keymap.c +1 -1
@@ 199,7 199,7 @@ void matrix_scan_user(void) {

    if (!rgblight_config.enable || rgblight_config.mode != 1) { return; }

    uint32_t layer = layer_state;
    layer_state_t layer = layer_state;
    uint8_t val = rgblight_config.val;

    if (layer & (1<<_FL)) {

M keyboards/crkbd/keymaps/dsanchezseco/keymap.c => keyboards/crkbd/keymaps/dsanchezseco/keymap.c +1 -1
@@ 84,7 84,7 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {

const char *read_logo(void);
bool oled_task_user(void){
    switch (biton32(layer_state)){
    switch (get_highest_layer(layer_state)){
        case _DVORAK:
            oled_write_ln_P(PSTR("DVRK"), false);
            break;

M keyboards/crkbd/keymaps/edvorakjp/keymap.c => keyboards/crkbd/keymaps/edvorakjp/keymap.c +2 -2
@@ 54,9 54,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// clang-format on

#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
uint32_t layer_state_set_keymap(uint32_t state) {
layer_state_t layer_state_set_keymap(layer_state_t state) {
    rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
        case L_EDVORAKJP_LOWER:
            rgblight_sethsv_noeeprom_red();
            break;

M keyboards/crkbd/keymaps/edvorakjp/oled.c => keyboards/crkbd/keymaps/edvorakjp/oled.c +1 -1
@@ 9,7 9,7 @@ void render_layer_state(void) {
    char layer_name[17];
    oled_write_P(PSTR("Layer: "), false);

    switch (biton32(layer_state)) {
    switch (get_highest_layer(layer_state)) {
        case L_EDVORAKJP_BASE:
            oled_write_ln_P(PSTR("Default"), false);
            break;

M keyboards/crkbd/keymaps/jarred/keymap.c => keyboards/crkbd/keymaps/jarred/keymap.c +1 -1
@@ 84,7 84,7 @@ const char *read_keylogs(void);
char matrix_line_str[24];

const char *read_layer_state(void) {
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);

  strcpy(matrix_line_str, "Layer: ");


M keyboards/dichotomy/keymaps/default/keymap.c => keyboards/dichotomy/keymaps/default/keymap.c +2 -2
@@ 109,7 109,7 @@ report_mouse_t currentReport = {};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
	//uint8_t layer;
	//layer = biton32(layer_state);  // get the current layer  //Or don't, I didn't use it.
	//layer = get_highest_layer(layer_state);  // get the current layer  //Or don't, I didn't use it.
	bool returnVal = true; //this is to determine if more key processing is needed.

	 //custom layer handling for tri_layer,


@@ 437,7 437,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
};

void matrix_scan_user(void) {
	//uint8_t layer = biton32(layer_state);
	//uint8_t layer = get_highest_layer(layer_state);
	for (uint8_t i = 0; i<LONGPRESS_COUNT; i++){
		if ((timer_elapsed(special_timers[i]) >= CUSTOM_LONGPRESS) && (!special_key_states[i]) && special_key_pressed[i]){
			switch (i + SAFE_RANGE){

M keyboards/dm9records/plaid/keymaps/thehalfdeafchef/keymap.c => keyboards/dm9records/plaid/keymaps/thehalfdeafchef/keymap.c +1 -1
@@ 129,7 129,7 @@ layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_laye

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    switch (layer) {
        case _LOWER:

M keyboards/dz60/keymaps/iso_split-spacebar/keymap.c => keyboards/dz60/keymaps/iso_split-spacebar/keymap.c +14 -14
@@ 4,12 4,12 @@
// thanks to atlacat, hailbreno, itsaferbie and weeheavy...

// and special thanks to  AGausmann and drashna for the layer-activated RGB underglow
// https://www.reddit.com/r/olkb/comments/6t1vdu/update_layeractivated_rgb_underglow/ 
// https://www.reddit.com/r/olkb/comments/6t1vdu/update_layeractivated_rgb_underglow/
// https://github.com/AGausmann/qmk_firmware/blob/agausmann-v3.x/keyboards/nyquist/keymaps/agausmann/keymap.c

#include QMK_KEYBOARD_H

/* 
/*
* Each layer gets a name for readability.
* The underscores don't mean anything - you can
* have a layer called STUFF or any other name.


@@ 23,8 23,8 @@
#define NL 2     // Numpad Layer
#define RL 3     // RGB Layer

/* 
* Let's give an easier name to the RGB modes 
/*
* Let's give an easier name to the RGB modes
* and assign the ones we want to the different layer
* these will then be used by the function below
*


@@ 49,10 49,10 @@
//
#define RGB_RL_MODE    rgblight_mode_noeeprom(22)             //rgb mode for RL layer
#define RGB_RL_LIGHT   rgblight_sethsv_noeeprom_red()         //rgb light for RL layer
      


const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
	

  /* Keymap BL: Base Layer (Default Layer)
   *
   * ,-----------------------------------------------------------.


@@ 140,7 140,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        _______,   RGB_STA,   RGB_BRE,   RGB_RAI,   RGB_SWI,   _______,   _______,   RGB_SNA,   RGB_KNI,   RGB_GRA,   RGB_XMS,   _______,   _______,   _______,
        _______,   BL_DEC,    BL_TOGG,   BL_INC,    BL_STEP,   _______,   _______,   _______,   _______,   _______,   _______,   _______,   _______,
        _______,   _______,   _______,   _______,   MO(FL),    _______,   _______,   _______,   TO(BL),    _______),
        


};



@@ 175,25 175,25 @@ void matrix_scan_user(void) {
  #ifdef RGBLIGHT_ENABLE

  static uint8_t old_layer = 1;
  uint8_t new_layer = biton32(layer_state);
  uint8_t new_layer = get_highest_layer(layer_state);

  if (old_layer != new_layer) {
    switch (new_layer) {
      case BL:
          RGB_BL_MODE;
          RGB_BL_LIGHT;        
          RGB_BL_LIGHT;
        break;
      case FL:
          RGB_FL_MODE;
          RGB_FL_LIGHT;  
          RGB_FL_LIGHT;
        break;
      case NL:
          RGB_NL_MODE; 
          RGB_NL_LIGHT; 
          RGB_NL_MODE;
          RGB_NL_LIGHT;
        break;
      case RL:
          RGB_RL_MODE; 
          RGB_RL_LIGHT;        
          RGB_RL_MODE;
          RGB_RL_LIGHT;
        break;
    }


M keyboards/dz60/keymaps/marianas/customLogic.c => keyboards/dz60/keymaps/marianas/customLogic.c +1 -1
@@ 11,7 11,7 @@ static int16_t fnTimer = 0;

layer_state_t layer_state_set_user(layer_state_t state)
{
  switch (biton32(state))
  switch (get_highest_layer(state))
  {
    case QWERTY:
      rgblight_mode(9);

M keyboards/dz60/keymaps/xtonhasvim/keymap.c => keyboards/dz60/keymaps/xtonhasvim/keymap.c +1 -3
@@ 73,7 73,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
  static uint32_t last_state = 0;

  if(last_state != state) {
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
    case _CMD:
      user_led_on();
      break;


@@ 85,5 85,3 @@ layer_state_t layer_state_set_user(layer_state_t state) {
  }
  return state;
}



M keyboards/dztech/dz60rgb/keymaps/matthewrobo/keymap.c => keyboards/dztech/dz60rgb/keymaps/matthewrobo/keymap.c +1 -1
@@ 96,7 96,7 @@ void rgb_matrix_indicators_user(void)
	uint8_t this_led = host_keyboard_leds();

	if (!g_suspend_state && rgb_matrix_config.enable) {
		switch (biton32(layer_state)) {
		switch (get_highest_layer(layer_state)) {
		case _NAV:
			if (this_led & (1 << USB_LED_NUM_LOCK)) {
				rgb_matrix_set_color(13, 0xFF, 0x00, 0x00);

M keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c => keyboards/dztech/dz60rgb/keymaps/mekanist/keymap.c +2 -2
@@ 62,7 62,7 @@ void rgb_matrix_indicators_user(void)
	uint8_t this_led = host_keyboard_leds();

	if (!g_suspend_state && rgb_matrix_config.enable) {
		switch (biton32(layer_state)) {
		switch (get_highest_layer(layer_state)) {
		case _LAYER1:
			rgb_matrix_layer_helper(0xFF, 0x00, 0x00); break;



@@ 78,7 78,7 @@ void rgb_matrix_indicators_user(void)
		rgb_matrix_set_color(40, 0xFF, 0xFF, 0xFF);
	}

	switch (biton32(layer_state)) {
	switch (get_highest_layer(layer_state)) {
	case _LAYER3:
		if (this_led & (1 << USB_LED_NUM_LOCK)) {
			rgb_matrix_set_color(13, 0xFF, 0x00, 0x00);

M keyboards/dztech/dz60rgb/keymaps/perseid/keymap.c => keyboards/dztech/dz60rgb/keymaps/perseid/keymap.c +2 -2
@@ 37,7 37,7 @@ void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) {
void rgb_matrix_indicators_user(void)
{
	if (!g_suspend_state) {
		switch (biton32(layer_state)) {
		switch (get_highest_layer(layer_state)) {
		case _QWERTY:
			rgb_matrix_layer_helper(0x00, 0x0F, 0xFF); break;



@@ 46,7 46,7 @@ void rgb_matrix_indicators_user(void)
		}
	}

	switch (biton32(layer_state)) {
	switch (get_highest_layer(layer_state)) {
	case _FNM:
		rgb_matrix_set_color(0, 0x00, 0xFF, 0x00);
		rgb_matrix_set_color(1, 0x00, 0x00, 0x00);

M keyboards/dztech/dz65rgb/keymaps/catrielmuller/keymap.c => keyboards/dztech/dz65rgb/keymaps/catrielmuller/keymap.c +2 -2
@@ 238,5 238,5 @@ void rgb_matrix_indicators_user(void) {
    }

    // Show Selected Layer
    rgb_matrix_set_color(layers_leds_map[biton32(layer_state)], MAIN_COLOR[0], MAIN_COLOR[1], MAIN_COLOR[2]);
}
\ No newline at end of file
    rgb_matrix_set_color(layers_leds_map[get_highest_layer(layer_state)], MAIN_COLOR[0], MAIN_COLOR[1], MAIN_COLOR[2]);
}

M keyboards/dztech/dz65rgb/keymaps/drootz/keymap.c => keyboards/dztech/dz65rgb/keymaps/drootz/keymap.c +78 -78
@@ 1,20 1,20 @@
#include QMK_KEYBOARD_H

/**************** SOME GLOBALS *********************/
 

bool onMac = false;
bool isLeader = false;
bool isBlinking = false;
bool isRecording = false;
bool isPlaying = false;
const float led_dim_ratio = 0.50; 
static uint16_t blink_cycle_timer, 
                blink_fade_in_timer, 
                blink_fade_out_timer, 
const float led_dim_ratio = 0.50;
static uint16_t blink_cycle_timer,
                blink_fade_in_timer,
                blink_fade_out_timer,
                macro_one_play_timer,
                macro_two_play_timer,
                macro_play_blink_timer = 2000;
static uint8_t  fade_in_step_counter, 
static uint8_t  fade_in_step_counter,
                fade_out_step_counter,
                blink_hsv_value;



@@ 26,13 26,13 @@ Function to set color with hsv arguments
- "val_ratio" is used to adjust brightness ratio
*/
void rgb_matrix_set_color_hsv(uint8_t led, uint16_t hue, uint16_t sat, uint16_t val, float val_ratio) {
    const uint8_t h = hue <= 255 ? hue : rgb_matrix_config.hsv.h;    
    const uint8_t h = hue <= 255 ? hue : rgb_matrix_config.hsv.h;
    const uint8_t s = sat <= 255 ? sat : rgb_matrix_config.hsv.s;
    const uint8_t v = val <= 255 ? val * val_ratio : rgb_matrix_config.hsv.v * val_ratio;
    HSV hsv_in = {h, s, v};
    RGB rgb_out = hsv_to_rgb(hsv_in);
    rgb_matrix_set_color(led, rgb_out.r, rgb_out.g, rgb_out.b);
} 
}

void reset_blink_cycle(void) {
    blink_cycle_timer = timer_read();


@@ 110,31 110,31 @@ const layers_leds_map[] = {

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [_MAIN] = LAYOUT_65_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_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_LEAD, 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_DEL, 
        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_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_LEAD, 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_DEL,
        KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
    ),
    [_MAC] = LAYOUT_65_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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_LALT, KC_LGUI, KC_TRNS, KC_TRNS, MO(_FN), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
    ),
    [_FN] = LAYOUT_65_ansi(
        DYN_REC_STOP, 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_NO, 
        KC_TRNS, KC_MUTE, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SAD, RGB_SAI, DYN_MACRO_PLAY2, DYN_REC_START2, 
        KC_TRNS, KC_BRID, KC_VOLD, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUD, RGB_HUI, DYN_MACRO_PLAY1, DYN_REC_START1, 
        KC_TRNS, TO(_MAIN), TO(_MAC), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SPD, RGB_SPI, KC_TRNS, RGB_VAI, KC_NO, 
        DYN_REC_STOP, 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_NO,
        KC_TRNS, KC_MUTE, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SAD, RGB_SAI, DYN_MACRO_PLAY2, DYN_REC_START2,
        KC_TRNS, KC_BRID, KC_VOLD, KC_BRIU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUD, RGB_HUI, DYN_MACRO_PLAY1, DYN_REC_START1,
        KC_TRNS, TO(_MAIN), TO(_MAC), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SPD, RGB_SPI, KC_TRNS, RGB_VAI, KC_NO,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD, RGB_VAD, RGB_MOD
    ),
}; 
};

//**************** MATRIX SCANS *********************//

void rgb_matrix_indicators_user(void) { 
void rgb_matrix_indicators_user(void) {

    #ifdef RGB_MATRIX_ENABLE



@@ 144,7 144,7 @@ void rgb_matrix_indicators_user(void) {
    /* CapsLock LED indicator */
    if (IS_HOST_LED_ON(USB_LED_CAPS_LOCK)) {
        rgb_matrix_set_color_hsv(30, 999, 0, led_constant_val, 0.75); // WHITE
    } 
    }

    /* Current layer LED indicator */
    rgb_matrix_set_color_hsv(layers_leds_map[get_highest_layer(layer_state)], 999, 0, led_constant_val, led_dim_ratio); // WHITE


@@ 155,7 155,7 @@ void rgb_matrix_indicators_user(void) {
        rgb_matrix_set_color_hsv(30, 999, 999, 999, 1); // CONFIG
    } else {
        rgb_matrix_set_color_hsv(14, 999, 999, 999, led_dim_ratio); // CONFIG
    }   
    }

    /* Blinking LED indicator when recording Dynamic Macro */
    if (isRecording && isBlinking) {


@@ 174,7 174,7 @@ void rgb_matrix_indicators_user(void) {
        }
    }

    switch (biton32(layer_state)) {
    switch (get_highest_layer(layer_state)) {
        case _FN:
            /* Dynamic Macro LED indicator */
            if (isRecording) {


@@ 188,12 188,12 @@ void rgb_matrix_indicators_user(void) {
            /* Layer LED indicators */
            rgb_matrix_set_color_hsv(45, 999, 0, led_constant_val, led_dim_ratio); /* WHITE Layer _MAIN */
            rgb_matrix_set_color_hsv(46, 999, 0, led_constant_val, led_dim_ratio); /* WHITE Layer _MAC */
            break; 
            break;
    }

    #endif /* RGB_MATRIX */
}
 

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    bool pressed = record->event.pressed;
    if (pressed) {


@@ 202,12 202,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
                onMac = true;
                break;
            case TO(_MAIN):
                onMac = false;      
                onMac = false;
                break;
        }
    }
    return true;
} 
}

//**************** LEADER *********************//



@@ 244,7 244,7 @@ const uint8_t french_accent_index[3] = {
    [_ACUTE] = 2
};

/* 
/*
This represent unicode decimal values
Each index will be mapped to numpad keycode to out put the correct sequence
All codes in this array should be of size 3


@@ 272,8 272,8 @@ const uint8_t french_decimal_unicodes[5][3][2] = { /*[Letter][Accent][Case]*/
        }
    },{
        {
            140,    // î    
            206     // Î 
            140,    // î
            206     // Î
        }
    },{
        {


@@ 306,7 306,7 @@ This is designed and work on an English language keyboard setting on both Window
=> accept french_letter and french_accent enum's as argument
*/
void send_french_accent(uint8_t letter, uint8_t accent) {
    

    bool isCaps;
    uint8_t decimal_unicode_in;
    uint8_t decimal_unicode_size = 3;


@@ 330,7 330,7 @@ void send_french_accent(uint8_t letter, uint8_t accent) {
    };

    /*
    Function to tap the correct keycodes in sequence for the 
    Function to tap the correct keycodes in sequence for the
    "Windows Alt Code" requested, aka Decimal Unicodes
    */
    void tap_win_alt_code(void) {


@@ 341,7 341,7 @@ void send_french_accent(uint8_t letter, uint8_t accent) {
            tap_code(numpad_key_map[decimal_unicode_out[i]]);
        }
    }
    

    isCaps = IS_HOST_LED_ON(USB_LED_CAPS_LOCK) ? true : false;

    if (onMac) {


@@ 372,7 372,7 @@ void send_french_accent(uint8_t letter, uint8_t accent) {

/*Couple functions used to output the same macro on two different sequences*/

/* (|) */ 
/* (|) */
void ldrkey_send_paranthesis_wrap_ini(void) {
    SEND_STRING("()" SS_TAP(X_LEFT));
}


@@ 382,7 382,7 @@ void ldrkey_send_paranthesis_wrap_word(void) {
    onMac ? SEND_STRING(SS_LALT(SS_TAP(X_LEFT)) "(" SS_LALT(SS_TAP(X_RIGHT)) ")") : SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) "(" SS_LCTL(SS_TAP(X_RIGHT)) ")");
}

/* (selection) */ 
/* (selection) */
void ldrkey_send_paranthesis_wrap_selection(void) {
    onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_X)) "()" SS_TAP(X_LEFT) SS_LGUI(SS_TAP(X_V)) SS_TAP(X_RIGHT)) : SEND_STRING(SS_LCTL(SS_TAP(X_X)) "()" SS_TAP(X_LEFT) SS_LCTL(SS_TAP(X_V)) SS_TAP(X_RIGHT));
}


@@ 419,9 419,9 @@ void ldrkey_send_curlybrace_wrap_selection(void) {

LEADER_EXTERNS();

void matrix_scan_user(void) 
void matrix_scan_user(void)
{
    LEADER_DICTIONARY() 
    LEADER_DICTIONARY()
    {
        leading = false;
        leader_end();


@@ 476,49 476,49 @@ void matrix_scan_user(void)
            tap_code(KC_CAPS);
        }
        /*  ±       => LdrKey > = > - */
        SEQ_TWO_KEYS(KC_EQL, KC_MINS) { 
            onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_EQL)))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P1) SS_UP(X_LALT)); 
        SEQ_TWO_KEYS(KC_EQL, KC_MINS) {
            onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_EQL)))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P1) SS_UP(X_LALT));
        }
        /*  ≤       => LdrKey > - > = */
        SEQ_TWO_KEYS(KC_MINS, KC_EQL) { 
            onMac ? SEND_STRING(SS_LALT(SS_TAP(X_COMM))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P3) SS_UP(X_LALT)); 
        SEQ_TWO_KEYS(KC_MINS, KC_EQL) {
            onMac ? SEND_STRING(SS_LALT(SS_TAP(X_COMM))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P3) SS_UP(X_LALT));
        }
        /*  ≥       => LdrKey > = > = */
        SEQ_TWO_KEYS(KC_EQL, KC_EQL) { 
            onMac ? SEND_STRING(SS_LALT(SS_TAP(X_DOT))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P2) SS_UP(X_LALT)); 
        SEQ_TWO_KEYS(KC_EQL, KC_EQL) {
            onMac ? SEND_STRING(SS_LALT(SS_TAP(X_DOT))) : SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_P2) SS_TAP(X_P4) SS_TAP(X_P2) SS_UP(X_LALT));
        }
        /*  <=      => LdrKey > , > , */
        SEQ_TWO_KEYS(KC_COMM, KC_COMM) { 
            SEND_STRING(SS_LSFT(SS_TAP(X_COMM)) SS_TAP(X_SPC) SS_TAP(X_EQL) SS_TAP(X_LEFT) SS_TAP(X_BSPC) SS_TAP(X_RIGHT)); 
        SEQ_TWO_KEYS(KC_COMM, KC_COMM) {
            SEND_STRING(SS_LSFT(SS_TAP(X_COMM)) SS_TAP(X_SPC) SS_TAP(X_EQL) SS_TAP(X_LEFT) SS_TAP(X_BSPC) SS_TAP(X_RIGHT));
        }
        /*  =>      => LdrKey > . > . */
        SEQ_TWO_KEYS(KC_DOT, KC_DOT) { 
            SEND_STRING("=>"); 
        SEQ_TWO_KEYS(KC_DOT, KC_DOT) {
            SEND_STRING("=>");
        }
        /*  ", "    => LdrKey > " " */
        SEQ_ONE_KEY(KC_SPC) { 
            SEND_STRING(", "); 
        SEQ_ONE_KEY(KC_SPC) {
            SEND_STRING(", ");
        }
        /*  ". "    => LdrKey > " " > " " */
        SEQ_TWO_KEYS(KC_SPC, KC_SPC) { 
            SEND_STRING(". "); 
        SEQ_TWO_KEYS(KC_SPC, KC_SPC) {
            SEND_STRING(". ");
        }
        /*  Backward delete current word (on cursor) */
        SEQ_TWO_KEYS(KC_BSPC, KC_BSPC) { 
            onMac ? SEND_STRING(SS_LALT(SS_TAP(X_RIGHT)) SS_LALT(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)) : SEND_STRING(SS_LCTL(SS_TAP(X_RIGHT)) SS_LCTL(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)); 
        SEQ_TWO_KEYS(KC_BSPC, KC_BSPC) {
            onMac ? SEND_STRING(SS_LALT(SS_TAP(X_RIGHT)) SS_LALT(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)) : SEND_STRING(SS_LCTL(SS_TAP(X_RIGHT)) SS_LCTL(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC));
        }
        /*  Previous word delete */
        SEQ_ONE_KEY(KC_BSPC) { 
            onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)) : SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)); 
        SEQ_ONE_KEY(KC_BSPC) {
            onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC)) : SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_LEFT))) SS_TAP(X_BSPC));
        }
        /*  Forward delete current word (on cursor) */
        SEQ_TWO_KEYS(KC_DEL, KC_DEL) { 
        SEQ_TWO_KEYS(KC_DEL, KC_DEL) {

            onMac ? SEND_STRING(SS_LALT(SS_TAP(X_LEFT)) SS_LALT(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)) : SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) SS_LCTL(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)); 
            onMac ? SEND_STRING(SS_LALT(SS_TAP(X_LEFT)) SS_LALT(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)) : SEND_STRING(SS_LCTL(SS_TAP(X_LEFT)) SS_LCTL(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL));
        }
        /*  Next word delete */
        SEQ_ONE_KEY(KC_DEL) { 
            onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)): SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)); 
        SEQ_ONE_KEY(KC_DEL) {
            onMac ? SEND_STRING(SS_LALT(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL)): SEND_STRING(SS_LCTL(SS_LSFT(SS_TAP(X_RIGHT))) SS_TAP(X_DEL));
        }
        /*  `   => LdrKey > Escape */
        SEQ_ONE_KEY(KC_GESC) {


@@ 548,7 548,7 @@ void matrix_scan_user(void)
        SEQ_ONE_KEY(KC_Q) {
            onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_Q))) : SEND_STRING(SS_LALT(SS_TAP(X_F4)));
        }
        /*  "           => LdrKey > ' */ 
        /*  "           => LdrKey > ' */
        SEQ_ONE_KEY(KC_QUOT) {
            SEND_STRING("\"");
        }


@@ 657,48 657,48 @@ void matrix_scan_user(void)
            ldrkey_send_curlybrace_wrap_selection();
        }
        /*  Select everything on this line before cursor => LdrKey > Left */
        SEQ_ONE_KEY(KC_LEFT) { 
        SEQ_ONE_KEY(KC_LEFT) {
            onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_LEFT)))) : SEND_STRING(SS_LSFT(SS_TAP(X_HOME)));
        }
        /*  Select everything on this line after cursor  => LdrKey > Right */
        SEQ_ONE_KEY(KC_RIGHT) { 
        SEQ_ONE_KEY(KC_RIGHT) {
            onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_RIGHT)))) : SEND_STRING(SS_LSFT(SS_TAP(X_END)));
        }
        /*  Select everything on this line before cursor and bring on previous line => LdrKey > Left > Left */
        SEQ_TWO_KEYS(KC_LEFT, KC_LEFT) { 
            onMac ? SEND_STRING(SS_LSFT(SS_TAP(X_UP) SS_LGUI(SS_TAP(X_RIGHT)))) : SEND_STRING(SS_LSFT(SS_TAP(X_UP) SS_TAP(X_END))); 
        SEQ_TWO_KEYS(KC_LEFT, KC_LEFT) {
            onMac ? SEND_STRING(SS_LSFT(SS_TAP(X_UP) SS_LGUI(SS_TAP(X_RIGHT)))) : SEND_STRING(SS_LSFT(SS_TAP(X_UP) SS_TAP(X_END)));
        }
        /*  Select everything on this line  => LdrKey > Right > Left */
        SEQ_TWO_KEYS(KC_RIGHT, KC_LEFT) { 
            onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_RIGHT) SS_LSFT(SS_LGUI(SS_TAP(X_LEFT))))) : SEND_STRING(SS_TAP(X_END) SS_LSFT(SS_TAP(X_HOME))); 
        SEQ_TWO_KEYS(KC_RIGHT, KC_LEFT) {
            onMac ? SEND_STRING(SS_LGUI(SS_TAP(X_RIGHT) SS_LSFT(SS_LGUI(SS_TAP(X_LEFT))))) : SEND_STRING(SS_TAP(X_END) SS_LSFT(SS_TAP(X_HOME)));
        }
        /*  Select 1x Page Up on the page before the cursor  => LdrKey > Up */
        SEQ_ONE_KEY(KC_UP) { 
        SEQ_ONE_KEY(KC_UP) {
            SEND_STRING(SS_LSFT(SS_TAP(X_PGUP)));
        }
        /*  Select 1x Page Down on the page after the cursor => LdrKey > Down */
        SEQ_ONE_KEY(KC_DOWN) { 
            SEND_STRING(SS_LSFT(SS_TAP(X_PGDN)));   
        SEQ_ONE_KEY(KC_DOWN) {
            SEND_STRING(SS_LSFT(SS_TAP(X_PGDN)));
        }
        /*  Select everything on the page before the cursor => LdrKey > Up > Up */
        SEQ_TWO_KEYS(KC_UP, KC_UP) { 
        SEQ_TWO_KEYS(KC_UP, KC_UP) {
            onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_UP)))) : SEND_STRING(SS_LSFT(SS_LCTL(SS_TAP(X_HOME))));
        }
        /*  Select everything on the page after the cursor => LdrKey > Down > Down */
        SEQ_TWO_KEYS(KC_DOWN, KC_DOWN) { 
        SEQ_TWO_KEYS(KC_DOWN, KC_DOWN) {
            onMac ? SEND_STRING(SS_LSFT(SS_LGUI(SS_TAP(X_DOWN)))) : SEND_STRING(SS_LSFT(SS_LCTL(SS_TAP(X_END))));
        }
        /* HELPER => spit out the url of the layout description page on github */
        SEQ_FIVE_KEYS(KC_GESC, KC_GESC, KC_GESC, KC_GESC, KC_GESC) { 
        SEQ_FIVE_KEYS(KC_GESC, KC_GESC, KC_GESC, KC_GESC, KC_GESC) {
            SEND_STRING("https://github.com/qmk/qmk_firmware/tree/master/keyboards/dztech/dz65rgb/keymaps/drootz");
        }
        /*  google.ca   => LdrKey > G > G */
        SEQ_TWO_KEYS(KC_G, KC_G) { 
            SEND_STRING("https://google.ca" SS_TAP(X_ENT)); 
        SEQ_TWO_KEYS(KC_G, KC_G) {
            SEND_STRING("https://google.ca" SS_TAP(X_ENT));
        }
        /*  @gmail  => LdrKey > M > L > T */
        SEQ_THREE_KEYS(KC_M, KC_L, KC_T) { 
            SEND_STRING("mailto." SS_TAP(X_D) SS_TAP(X_A) SS_TAP(X_N) SS_TAP(X_I) SS_TAP(X_E) SS_TAP(X_L) SS_TAP(X_R) SS_TAP(X_A) SS_TAP(X_C) SS_TAP(X_I) SS_TAP(X_N) SS_TAP(X_E) "@gmail.com"); 
        SEQ_THREE_KEYS(KC_M, KC_L, KC_T) {
            SEND_STRING("mailto." SS_TAP(X_D) SS_TAP(X_A) SS_TAP(X_N) SS_TAP(X_I) SS_TAP(X_E) SS_TAP(X_L) SS_TAP(X_R) SS_TAP(X_A) SS_TAP(X_C) SS_TAP(X_I) SS_TAP(X_N) SS_TAP(X_E) "@gmail.com");
        }
        /*  Show Desktop            => LdrKey > D */
        SEQ_ONE_KEY(KC_D) {

M keyboards/dztech/dz65rgb/keymaps/matthewrobo/keymap.c => keyboards/dztech/dz65rgb/keymaps/matthewrobo/keymap.c +1 -1
@@ 91,7 91,7 @@ void rgb_matrix_indicators_user(void)
	uint8_t this_led = host_keyboard_leds();

	if (!g_suspend_state && rgb_matrix_config.enable) {
		switch (biton32(layer_state)) {
		switch (get_highest_layer(layer_state)) {
		case _NAV:
			if (IS_LED_ON(this_led, USB_LED_NUM_LOCK)) {
				rgb_matrix_set_color(17, 0xFF, 0x00, 0x00);

M keyboards/ergodox_ez/keymaps/bepo_tm_style/keymap.c => keyboards/ergodox_ez/keymaps/bepo_tm_style/keymap.c +1 -1
@@ 190,7 190,7 @@ static bool is_macro1_recording = false;
// The current set of active layers (as a bitmask).
// There is a global 'layer_state' variable but it is set after the call
// to layer_state_set_user().
static uint32_t current_layer_state = 0;
static layer_state_t current_layer_state = 0;
layer_state_t layer_state_set_user(layer_state_t state);

// Method called at the end of the tap dance on the TAP_MACRO key. That key is

M keyboards/ergodox_ez/keymaps/blakedietz/keymap.c => keyboards/ergodox_ez/keymaps/blakedietz/keymap.c +1 -2
@@ 200,7 200,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();


@@ 262,4 262,3 @@ void matrix_scan_user(void) {
//  }
//  return true;
//}


M keyboards/ergodox_ez/keymaps/bpruitt-goddard/keymap.c => keyboards/ergodox_ez/keymaps/bpruitt-goddard/keymap.c +1 -1
@@ 98,7 98,7 @@ static bool is_macro1_recording = false;
// The current set of active layers (as a bitmask).
// There is a global 'layer_state' variable but it is set after the call
// to layer_state_set_user().
static uint32_t current_layer_state = 0;
static layer_state_t current_layer_state = 0;
layer_state_t layer_state_set_user(layer_state_t state);

// Method called at the end of the tap dance on the TAP_MACRO key. That key is

M keyboards/ergodox_ez/keymaps/default_osx/keymap.c => keyboards/ergodox_ez/keymaps/default_osx/keymap.c +1 -1
@@ 141,7 141,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);

  ergodox_board_led_off();
  ergodox_right_led_1_off();

M keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c => keyboards/ergodox_ez/keymaps/dvorak_42_key/keymap.c +1 -1
@@ 725,7 725,7 @@ void led_set_user(uint8_t usb_led) {

void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_2_off();

M keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c => keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c +1 -1
@@ 1,6 1,6 @@

layer_state_t layer_state_set_user(layer_state_t state) {
    uint8_t layer = biton32(state);
    uint8_t layer = get_highest_layer(state);

    switch (layer) {
        case DVORAK:

M keyboards/ergodox_ez/keymaps/heartrobotninja/keymap.c => keyboards/ergodox_ez/keymaps/heartrobotninja/keymap.c +2 -2
@@ 370,7 370,7 @@ LEADER_EXTERNS();
void matrix_scan_user(void)
{

  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);

  if (keyboard_report->mods & MOD_BIT(KC_LSFT) ||
      ((get_oneshot_mods() & MOD_BIT(KC_LSFT)) &&


@@ 677,4 677,4 @@ void matrix_init_user(void)
  wait_ms(1000);

  rgblight_effect_knight(50);
}
\ No newline at end of file
}

M keyboards/ergodox_ez/keymaps/kou/keymap.c => keyboards/ergodox_ez/keymaps/kou/keymap.c +1 -1
@@ 284,7 284,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/ergodox_ez/keymaps/lukaus/keymap.c => keyboards/ergodox_ez/keymaps/lukaus/keymap.c +1 -1
@@ 813,7 813,7 @@ case RU_7:

layer_state_t layer_state_set_user(layer_state_t state) {

    uint8_t layer = biton32(state);
    uint8_t layer = get_highest_layer(state);

  //  ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/ergodox_ez/keymaps/matrixman/keymap.c => keyboards/ergodox_ez/keymaps/matrixman/keymap.c +1 -1
@@ 165,7 165,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/ergodox_ez/keymaps/nathanvercaemert/keymap.c => keyboards/ergodox_ez/keymaps/nathanvercaemert/keymap.c +1 -2
@@ 218,7 218,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

layer_state_t layer_state_set_user(layer_state_t state) {
  uint8_t layer = biton32(state);
  uint8_t layer = get_highest_layer(state);
  ergodox_board_led_off();
  ergodox_right_led_1_off();
  ergodox_right_led_2_off();


@@ 431,4 431,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    }
    return true;
}


M keyboards/ergodox_ez/keymaps/nfriend/keymap.c => keyboards/ergodox_ez/keymaps/nfriend/keymap.c +1 -1
@@ 1057,7 1057,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}

layer_state_t layer_state_set_user(layer_state_t state) {
    uint8_t layer = biton32(state);
    uint8_t layer = get_highest_layer(state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/ergodox_ez/keymaps/profet_80/keymap.c => keyboards/ergodox_ez/keymaps/profet_80/keymap.c +1 -1
@@ 157,7 157,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/ergodox_ez/keymaps/pvinis/keymap.c => keyboards/ergodox_ez/keymaps/pvinis/keymap.c +3 -3
@@ 245,11 245,11 @@ void keyboard_post_init_user_keymap(void) {
}

// light up leds based on the layer
uint32_t layer_state_set_user_keymap(uint32_t state) {
layer_state_t layer_state_set_user_keymap(layer_state_t state) {
    ergodox_right_led_1_off();
    ergodox_right_led_2_off();
    ergodox_right_led_3_off();
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
        case LR_SYSCTL:
            ergodox_right_led_3_on();  // blue
            break;


@@ 306,7 306,7 @@ uint32_t layer_state_set_user_keymap(uint32_t state) {

// SYSCTL on first tap, MOUSE ON second tap
// void layers_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
//   uint8_t layer = biton32(layer_state);
//   uint8_t layer = get_highest_layer(layer_state);

//   switch(state->count) {
//   case 1:

M keyboards/ergodox_ez/keymaps/rgb_layer/keymap.c => keyboards/ergodox_ez/keymaps/rgb_layer/keymap.c +1 -2
@@ 228,7 228,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
  ergodox_right_led_1_off();
  ergodox_right_led_2_off();
  ergodox_right_led_3_off();
  switch (biton32(state)) {
  switch (get_highest_layer(state)) {
    case SYMB:
        ergodox_right_led_1_on();
        if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_red(); rgblight_mode_noeeprom(1); }


@@ 268,4 268,3 @@ layer_state_t layer_state_set_user(layer_state_t state) {
    }
  return state;
}


M keyboards/ergodox_ez/keymaps/rishka/keymap.c => keyboards/ergodox_ez/keymaps/rishka/keymap.c +1 -1
@@ 138,7 138,7 @@ void keyboard_post_init_user(void) {
};

// Runs whenever there is a layer state change.
uint32_t layer_state_set_user(layer_state_t state) {
layer_state_t layer_state_set_user(layer_state_t state) {
  ergodox_board_led_off();
  ergodox_right_led_1_off();
  ergodox_right_led_2_off();

M keyboards/ergodox_ez/keymaps/skug/keymap.c => keyboards/ergodox_ez/keymaps/skug/keymap.c +1 -1
@@ 228,7 228,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/ergodox_ez/keymaps/smurmann/keymap.c => keyboards/ergodox_ez/keymaps/smurmann/keymap.c +4 -4
@@ 139,7 139,7 @@ void matrix_init_user(void) {

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
   uint8_t layer = biton32(layer_state);
   uint8_t layer = get_highest_layer(layer_state);

   if(layer == 1)
   {


@@ 157,7 157,7 @@ void matrix_scan_user(void) {
   }

  if(keyboard_report->mods & MOD_BIT(KC_LSFT))
  { 
  {
      ergodox_right_led_1_set (LED_BRIGHTNESS_HI);
      ergodox_right_led_1_on ();
  } else {


@@ 182,7 182,7 @@ void matrix_scan_user(void) {
  }

  if(keyboard_report->mods & MOD_BIT(KC_LCTRL))
  { 
  {
      ergodox_right_led_3_set (LED_BRIGHTNESS_HI);
      ergodox_right_led_3_on ();
  } else {


@@ 195,7 195,7 @@ void matrix_scan_user(void) {
};

void led_set_user(uint8_t usb_led){
 if (usb_led & (1 << USB_LED_CAPS_LOCK)) 
 if (usb_led & (1 << USB_LED_CAPS_LOCK))
   {
      capsOn = true;
   }else {

M keyboards/ergodox_ez/keymaps/steno/keymap.c => keyboards/ergodox_ez/keymaps/steno/keymap.c +1 -1
@@ 228,7 228,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/ergodox_ez/keymaps/testing/keymap.c => keyboards/ergodox_ez/keymaps/testing/keymap.c +1 -1
@@ 62,7 62,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

layer_state_t layer_state_set_user(layer_state_t state) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/ergodox_ez/keymaps/vim/keymap.c => keyboards/ergodox_ez/keymaps/vim/keymap.c +1 -1
@@ 330,7 330,7 @@ void matrix_init_user(void) {
};

void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/ergodox_ez/util/compile_keymap.py => keyboards/ergodox_ez/util/compile_keymap.py +46 -64
@@ 27,29 27,34 @@ PY2 = sys.version_info.major == 2
if PY2:
    chr = unichr


KEYBOARD_LAYOUTS = {
    # These map positions in the parsed layout to
    # positions in the KEYMAP MATRIX
    'ergodox_ez': [
        [ 0,  1,  2,  3,  4,  5,  6],  [38, 39, 40, 41, 42, 43, 44],
        [ 7,  8,  9, 10, 11, 12, 13],  [45, 46, 47, 48, 49, 50, 51],
        [14, 15, 16, 17, 18, 19    ],  [    52, 53, 54, 55, 56, 57],
        [20, 21, 22, 23, 24, 25, 26],  [58, 59, 60, 61, 62, 63, 64],
        [27, 28, 29, 30, 31        ],  [        65, 66, 67, 68, 69],
        [                    32, 33],  [70, 71                    ],
        [                        34],  [72                        ],
        [                35, 36, 37],  [73, 74, 75                ],
        [0, 1, 2, 3, 4, 5, 6],
        [38, 39, 40, 41, 42, 43, 44],
        [7, 8, 9, 10, 11, 12, 13],
        [45, 46, 47, 48, 49, 50, 51],
        [14, 15, 16, 17, 18, 19],
        [52, 53, 54, 55, 56, 57],
        [20, 21, 22, 23, 24, 25, 26],
        [58, 59, 60, 61, 62, 63, 64],
        [27, 28, 29, 30, 31],
        [65, 66, 67, 68, 69],
        [32, 33],
        [70, 71],
        [34],
        [72],
        [35, 36, 37],
        [73, 74, 75],
    ]
}

ROW_INDENTS = {
    'ergodox_ez': [0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 5, 0, 6, 0, 4, 0]
}
ROW_INDENTS = {'ergodox_ez': [0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 5, 0, 6, 0, 4, 0]}

BLANK_LAYOUTS = [
# Compact Layout
"""
    # Compact Layout
    """
.------------------------------------.------------------------------------.
|     |    |    |    |    |    |     |     |    |    |    |    |    |     |
!-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!


@@ 70,8 75,8 @@ BLANK_LAYOUTS = [
                  '-----------------' '-----------------'
""",

# Wide Layout
"""
    # Wide Layout
    """
.---------------------------------------------. .---------------------------------------------.
|       |     |     |     |     |     |       | !       |     |     |     |     |     |       |
!-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------!


@@ 93,26 98,22 @@ BLANK_LAYOUTS = [
""",
]


DEFAULT_CONFIG = {
    "keymaps_includes": [
        "keymap_common.h",
    ],
    "keymaps_includes": ["keymap_common.h",],
    'filler': "-+.'!:x",
    'separator': "|",
    'default_key_prefix': ["KC_"],
}


SECTIONS = [
    'layout_config',
    'layers',
]


#       Markdown Parsing

ONELINE_COMMENT_RE = re.compile(r"""
ONELINE_COMMENT_RE = re.compile(
    r"""
    ^                       # comment must be at the start of the line
    \s*                     # arbitrary whitespace
    //                      # start of the comment


@@ 121,22 122,26 @@ ONELINE_COMMENT_RE = re.compile(r"""
""", re.MULTILINE | re.VERBOSE
)

INLINE_COMMENT_RE = re.compile(r"""
INLINE_COMMENT_RE = re.compile(
    r"""
    ([\,\"\[\]\{\}\d])      # anythig that might end a expression
    \s+                     # comment must be preceded by whitespace
    //                      # start of the comment
    \s                      # and succeded by whitespace
    (?:[^\"\]\}\{\[]*)      # the comment (except things which might be json)
    $                       # until the end of line
""", re.MULTILINE | re.VERBOSE)
""", re.MULTILINE | re.VERBOSE
)

TRAILING_COMMA_RE = re.compile(r"""
TRAILING_COMMA_RE = re.compile(
    r"""
    ,                       # the comma
    (?:\s*)                 # arbitrary whitespace
    $                       # only works if the trailing comma is followed by newline
    (\s*)                   # arbitrary whitespace
    ([\]\}])                # end of an array or object
""", re.MULTILINE | re.VERBOSE)
""", re.MULTILINE | re.VERBOSE
)


def loads(raw_data):


@@ 178,9 183,7 @@ def parse_config(path):
    def end_section():
        if section['start_line'] >= 0:
            if section['name'] == 'layout_config':
                config.update(loads("\n".join(
                    section['code_lines']
                )))
                config.update(loads("\n".join(section['code_lines'])))
            elif section['sub_name'].startswith('layer'):
                layer_name = section['sub_name']
                config['layer_lines'][layer_name] = section['code_lines']


@@ 215,6 218,7 @@ def parse_config(path):
    assert 'layout' in config
    return config


#       header file parsing

IF0_RE = re.compile(r"""


@@ 224,7 228,6 @@ IF0_RE = re.compile(r"""
    #endif
""", re.MULTILINE | re.DOTALL | re.VERBOSE)


COMMENT_RE = re.compile(r"""
    /\*
    .*?


@@ 244,6 247,7 @@ def regex_partial(re_str_fmt, flags):
    def partial(*args, **kwargs):
        re_str = re_str_fmt.format(*args, **kwargs)
        return re.compile(re_str, flags)

    return partial




@@ 256,7 260,6 @@ KEYDEF_REP = regex_partial(r"""
    )                   # capture group end
""", re.MULTILINE | re.DOTALL | re.VERBOSE)


ENUM_RE = re.compile(r"""
    (
        enum


@@ 268,7 271,6 @@ ENUM_RE = re.compile(r"""
    )                   # capture group end
""", re.MULTILINE | re.DOTALL | re.VERBOSE)


ENUM_KEY_REP = regex_partial(r"""
    (
        {}              # the prefixes


@@ 309,14 311,13 @@ def parse_valid_keys(config, out_path):
        include_path = os.path.join(dirpath, include)
        if os.path.exists(include_path):
            header_data = read_header_file(include_path)
            valid_keycodes.update(
                parse_keydefs(config, header_data)
            )
            valid_keycodes.update(parse_keydefs(config, header_data))
    return valid_keycodes


#       Keymap Parsing


def iter_raw_codes(layer_lines, filler, separator):
    filler_re = re.compile("[" + filler + " ]")
    for line in layer_lines:


@@ 346,28 347,21 @@ LAYER_CHANGE_RE = re.compile(r"""
    (DF|TG|MO)\(\d+\)
""", re.VERBOSE)


MACRO_RE = re.compile(r"""
    M\(\w+\)
""", re.VERBOSE)


UNICODE_RE = re.compile(r"""
    U[0-9A-F]{4}
""", re.VERBOSE)


NON_CODE = re.compile(r"""
    ^[^A-Z0-9_]$
""", re.VERBOSE)


def parse_uni_code(raw_code):
    macro_id = "UC_" + (
        unicodedata.name(raw_code)
        .replace(" ", "_")
        .replace("-", "_")
    )
    macro_id = "UC_" + (unicodedata.name(raw_code).replace(" ", "_").replace("-", "_"))
    code = "M({})".format(macro_id)
    uc_hex = "{:04X}".format(ord(raw_code))
    return code, macro_id, uc_hex


@@ 407,19 401,13 @@ def parse_code(raw_code, key_prefixes, valid_keycodes):

def parse_keymap(config, key_indexes, layer_lines, valid_keycodes):
    keymap = {}
    raw_codes = list(iter_raw_codes(
        layer_lines, config['filler'], config['separator']
    ))
    raw_codes = list(iter_raw_codes(layer_lines, config['filler'], config['separator']))
    indexed_codes = iter_indexed_codes(raw_codes, key_indexes)
    key_prefixes = config['key_prefixes']
    for raw_code, key_index, row_index in indexed_codes:
        code, macro_id, uc_hex = parse_code(
            raw_code, key_prefixes, valid_keycodes
        )
        code, macro_id, uc_hex = parse_code(raw_code, key_prefixes, valid_keycodes)
        # TODO: line numbers for invalid codes
        err_msg = "Could not parse key '{}' on row {}".format(
            raw_code, row_index
        )
        err_msg = "Could not parse key '{}' on row {}".format(raw_code, row_index)
        assert code is not None, err_msg
        # print(repr(raw_code), repr(code), macro_id, uc_hex)
        if macro_id:


@@ 432,17 420,14 @@ def parse_keymap(config, key_indexes, layer_lines, valid_keycodes):

def parse_keymaps(config, valid_keycodes):
    keymaps = collections.OrderedDict()
    key_indexes = config.get(
        'key_indexes', KEYBOARD_LAYOUTS[config['layout']]
    )
    key_indexes = config.get('key_indexes', KEYBOARD_LAYOUTS[config['layout']])
    # TODO: maybe validate key_indexes

    for layer_name, layer_lines, in config['layer_lines'].items():
        keymaps[layer_name] = parse_keymap(
            config, key_indexes, layer_lines, valid_keycodes
        )
        keymaps[layer_name] = parse_keymap(config, key_indexes, layer_lines, valid_keycodes)
    return keymaps


#       keymap.c output

USERCODE = """


@@ 453,7 438,7 @@ void matrix_init_user(void) {

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();


@@ 572,7 557,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {{
}};
"""


UNICODE_MACRO_TEMPLATE = """
case {macro_id}:
    unicode_action_function(0x{hi:02x}, 0x{lo:02x});


@@ 584,9 568,7 @@ def unicode_macro_cases(config):
    for macro_id, uc_hex in config['unicode_macros'].items():
        hi = int(uc_hex, 16) >> 8
        lo = int(uc_hex, 16) & 0xFF
        yield UNICODE_MACRO_TEMPLATE.format(
            macro_id=macro_id, hi=hi, lo=lo
        )
        yield UNICODE_MACRO_TEMPLATE.format(macro_id=macro_id, hi=hi, lo=lo)


def iter_keymap_lines(keymap, row_indents=None):

M keyboards/ergoslab/keymaps/default/keymap.c => keyboards/ergoslab/keymaps/default/keymap.c +1 -1
@@ 51,7 51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

#ifdef RGBLIGHT_ENABLE
layer_state_t layer_state_set_user(layer_state_t state) {
  uint8_t layer = biton32(state);
  uint8_t layer = get_highest_layer(state);
  switch (layer) {
      case BASE:
          rgblight_sethsv(HSV_ERGOSLAB_ORANGE);

M keyboards/exclusive/e65/keymaps/masterzen/keymap.c => keyboards/exclusive/e65/keymaps/masterzen/keymap.c +1 -1
@@ 102,7 102,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
        edit = false;
    }

    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
        case _ADJUST:
            temp_config.mode = rgblight_get_mode();
            rgblight_mode_noeeprom(1);

M keyboards/exclusive/e7v1/keymaps/masterzen/keymap.c => keyboards/exclusive/e7v1/keymaps/masterzen/keymap.c +1 -1
@@ 121,7 121,7 @@ layer_state_t layer_state_set_user(layer_state_t state)
    edit = false;
  }

  switch (biton32(state))
  switch (get_highest_layer(state))
  {
  case _ADJUST:
    mode = rgblight_get_mode();

M keyboards/gboards/gergo/keymaps/colemak/keymap.c => keyboards/gboards/gergo/keymaps/colemak/keymap.c +2 -3
@@ 146,8 146,8 @@ void matrix_init_user(void) {

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
    //uint8_t layer = biton32(layer_state);
    biton32(layer_state);
    //uint8_t layer = get_highest_layer(layer_state);
    get_highest_layer(layer_state);
};




@@ 171,4 171,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  }
  return true;
};


M keyboards/gh60/revc/keymaps/dbroqua/keymap.c => keyboards/gh60/revc/keymaps/dbroqua/keymap.c +2 -2
@@ 101,7 101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

void matrix_scan_user(void) {
    uint32_t layer = layer_state;
    layer_state_t layer = layer_state;

    if (layer & (1<<1)) {
        gh60_fn_led_on();


@@ 120,4 120,4 @@ void matrix_scan_user(void) {
    } else {
        gh60_esc_led_off();
    }
};
\ No newline at end of file
};

M keyboards/gh60/revc/keymaps/default/keymap.c => keyboards/gh60/revc/keymaps/default/keymap.c +1 -1
@@ 31,7 31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
void matrix_scan_user(void) {

//Layer LED indicators
    uint32_t layer = layer_state;
    layer_state_t layer = layer_state;

    if (layer & (1<<1)) {
        gh60_wasd_leds_on();

M keyboards/gh60/revc/keymaps/robotmaxtron/keymap.c => keyboards/gh60/revc/keymaps/robotmaxtron/keymap.c +1 -1
@@ 97,7 97,7 @@ void matrix_scan_user(void) {

// Layer LED indicators
// ESC led on when in function layer, WASD cluster leds enabled when on arrow cluster
    uint32_t layer = layer_state;
    layer_state_t layer = layer_state;
    if (layer & (1<<1)) {
        gh60_wasd_leds_on();
    } else {

M keyboards/gh60/satan/keymaps/addcninblue/keymap.c => keyboards/gh60/satan/keymaps/addcninblue/keymap.c +1 -1
@@ 177,7 177,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}

void matrix_scan_user(void) {
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);

  if (old_layer != layer) {
    switch (layer) {

M keyboards/glenpickle/chimera_ergo/keymaps/default/keymap.c => keyboards/glenpickle/chimera_ergo/keymaps/default/keymap.c +1 -1
@@ 131,7 131,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
};

void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    switch (layer) {
      case _QWERTY:

M keyboards/glenpickle/chimera_ls/keymaps/default/keymap.c => keyboards/glenpickle/chimera_ls/keymaps/default/keymap.c +1 -1
@@ 158,7 158,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {


void matrix_scan_user(void) {
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);

  switch (layer) {
    case _QWERTY:

M keyboards/glenpickle/chimera_ortho/keymaps/default/keymap.c => keyboards/glenpickle/chimera_ortho/keymaps/default/keymap.c +1 -1
@@ 151,7 151,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {


void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    switch (layer) {
      case _QWERTY:

M keyboards/gon/nerdtkl/keymaps/gam3cat/keymap.c => keyboards/gon/nerdtkl/keymaps/gam3cat/keymap.c +1 -1
@@ 241,7 241,7 @@ void matrix_scan_user(void) {
}

layer_state_t layer_state_set_user(layer_state_t state) {
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
        case _BL:
            custom_backlight_level(0);
            break;

M keyboards/handwired/frenchdev/keymaps/default/keymap.c => keyboards/handwired/frenchdev/keymaps/default/keymap.c +1 -1
@@ 209,7 209,7 @@ void press_underscore(void) {
uint8_t old_layer=_BASE;

void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    frenchdev_led_1_off();
    frenchdev_led_2_off();

M keyboards/handwired/kbod/keymaps/default/keymap.c => keyboards/handwired/kbod/keymaps/default/keymap.c +1 -1
@@ 89,7 89,7 @@ void matrix_init_user(void) {
}

void matrix_scan_user(void) {
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);
  if (layer) {
    PORTC |= _BV(PC7);
  } else {

M keyboards/handwired/prime_exl/keymaps/via/keymap.c => keyboards/handwired/prime_exl/keymaps/via/keymap.c +1 -1
@@ 87,7 87,7 @@ void led_set_user(uint8_t usb_led) {
//function for layer indicator LED
layer_state_t layer_state_set_user(layer_state_t state)
{
    if (biton32(state) == 1) {
    if (get_highest_layer(state) == 1) {
    writePinHigh(C6);
	} else {
		writePinLow(C6);

M keyboards/handwired/promethium/keymaps/default/keymap.c => keyboards/handwired/promethium/keymaps/default/keymap.c +3 -3
@@ 529,7 529,7 @@ void led_reset(void) {
}

void led_set_default_layer_indicator(void) {
  uint8_t default_layer = biton32(default_layer_state);
  uint8_t default_layer = get_highest_layer(default_layer_state);
  if (default_layer == _QWERTY) {
    rgbsps_set(LED_IND_QWERTY, THEME_COLOR_QWERTY);
    rgbsps_set(LED_IND_ALT, COLOR_BLANK);


@@ 553,7 553,7 @@ void led_set_layer_indicator(void) {
  rgbsps_set(LED_IND_GREEK, COLOR_BLANK);
  rgbsps_set(LED_IND_EMOJI, COLOR_BLANK);

  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);
  if (oldlayer == layer) {
    return;
  }


@@ 1014,7 1014,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

  lshift = keyboard_report->mods & MOD_BIT(KC_LSFT);
  rshift = keyboard_report->mods & MOD_BIT(KC_RSFT);
  layer = biton32(layer_state);
  layer = get_highest_layer(layer_state);

#ifdef DOUBLESPACE_LAYER_ENABLE
  // double-space: send space immediately if any other key depressed before space is released

M keyboards/handwired/promethium/keymaps/priyadi/keymap.c => keyboards/handwired/promethium/keymaps/priyadi/keymap.c +4 -4
@@ 532,7 532,7 @@ void led_reset(void) {
}

void led_set_default_layer_indicator(void) {
  uint8_t default_layer = biton32(default_layer_state);
  uint8_t default_layer = get_highest_layer(default_layer_state);
  if (default_layer == _QWERTY) {
    rgbsps_set(LED_IND_QWERTY, THEME_COLOR_QWERTY);
    rgbsps_set(LED_IND_ALT, COLOR_BLANK);


@@ 556,7 556,7 @@ void led_set_layer_indicator(void) {
  rgbsps_set(LED_IND_GREEK, COLOR_BLANK);
  rgbsps_set(LED_IND_EMOJI, COLOR_BLANK);

  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);
  if (oldlayer == layer) {
    return;
  }


@@ 989,7 989,7 @@ void process_doublespace(bool pressed, bool *isactive, bool *otheractive, bool *
}
#endif

uint32_t layer_state_set_kb(uint32_t state)
layer_state_t layer_state_set_kb(layer_state_t state)
{
  // turn on punc layer if both fun & num are on
  if ((state & ((1UL<<_NUM) | (1UL<<_FUN))) == ((1UL<<_NUM) | (1UL<<_FUN))) {


@@ 1017,7 1017,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

  lshift = keyboard_report->mods & MOD_BIT(KC_LSFT);
  rshift = keyboard_report->mods & MOD_BIT(KC_RSFT);
  layer = biton32(layer_state);
  layer = get_highest_layer(layer_state);

#ifdef DOUBLESPACE_LAYER_ENABLE
  // double-space: send space immediately if any other key depressed before space is released

M keyboards/handwired/traveller/keymaps/default/keymap.c => keyboards/handwired/traveller/keymaps/default/keymap.c +1 -1
@@ 219,7 219,7 @@ void LayerLEDSet(uint8_t layr) {
uint8_t old_layer = _QW;

void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    if (old_layer != layer) {
        LayerLEDSet(layer);

M keyboards/handwired/tritium_numpad/keymaps/blu/keymap.c => keyboards/handwired/tritium_numpad/keymaps/blu/keymap.c +1 -1
@@ 9,7 9,7 @@ void keyboard_pre_init_user(void)
layer_state_t layer_state_set_user(layer_state_t state)
{
	// Switch layer LED accordingly
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
    case 0:
        writePinHigh(B0);
        break;

M keyboards/helix/pico/keymaps/mtei/keymap.c => keyboards/helix/pico/keymaps/mtei/keymap.c +1 -1
@@ 242,7 242,7 @@ float music_scale[][2]     = SONG(MUSIC_SCALE_SOUND);

static int current_default_layer;

uint32_t default_layer_state_set_kb(uint32_t state) {
layer_state_t default_layer_state_set_kb(layer_state_t state) {
    // 1<<_QWERTY  - 1 == 1 - 1 == _QWERTY (=0)
    // 1<<_COLEMAK - 1 == 2 - 1 == _COLEMAK (=1)
    current_default_layer = state - 1;

M keyboards/helix/rev2/keymaps/default/oled_display.c => keyboards/helix/rev2/keymaps/default/oled_display.c +1 -1
@@ 86,7 86,7 @@ static void render_layer_status(void) {
        break;
    default:
        oled_write_P(PSTR("Undef-"), false);
        snprintf(buf,sizeof(buf), "%ld", layer_state);
        snprintf(buf,sizeof(buf), "%u", layer_state);
        oled_write(buf, false);
    }
    oled_write_P(PSTR("\n"), false);

M keyboards/helix/rev2/keymaps/edvorakjp/keymap.c => keyboards/helix/rev2/keymaps/edvorakjp/keymap.c +2 -2
@@ 5,9 5,9 @@
// keymaps definitions are moved to keymap_Xrows.c.

#ifdef RGBLIGHT_ENABLE
uint32_t layer_state_set_keymap(uint32_t state) {
layer_state_t layer_state_set_keymap(layer_state_t state) {
    rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
        case L_EDVORAKJP_LOWER:
            rgblight_sethsv_noeeprom_red();
            break;

M keyboards/helix/rev2/keymaps/edvorakjp/oled.c => keyboards/helix/rev2/keymaps/edvorakjp/oled.c +1 -1
@@ 19,7 19,7 @@ void render_layer_state(void) {
    char layer_name[17];
    oled_write_P(PSTR("Layer: "), false);

    switch (biton32(layer_state)) {
    switch (get_highest_layer(layer_state)) {
        case L_EDVORAKJP_BASE:
            oled_write_ln_P(PSTR("Default"), false);
            break;

M keyboards/helix/rev2/keymaps/five_rows/keymap.c => keyboards/helix/rev2/keymaps/five_rows/keymap.c +2 -2
@@ 379,8 379,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

int current_default_layer;

uint32_t default_layer_state_set_user(uint32_t state) {
    current_default_layer = biton32(state);
layer_state_t default_layer_state_set_user(layer_state_t state) {
    current_default_layer = get_highest_layer(state);
    return state;
}


M keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c => keyboards/helix/rev3_5rows/keymaps/five_rows/keymap.c +2 -2
@@ 379,8 379,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

int current_default_layer;

uint32_t default_layer_state_set_user(uint32_t state) {
    current_default_layer = biton32(state);
layer_state_t default_layer_state_set_user(layer_state_t state) {
    current_default_layer = get_highest_layer(state);
    return state;
}


M keyboards/hineybush/h87a/keymaps/gam3cat/keymap.c => keyboards/hineybush/h87a/keymaps/gam3cat/keymap.c +1 -1
@@ 245,7 245,7 @@ void matrix_scan_user(void) {
}

layer_state_t layer_state_set_user(layer_state_t state) {
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
        case _BL:
            custom_backlight_level(0);
            rgblight_sethsv_noeeprom(180,100,255);

M keyboards/hotdox/keymaps/default/keymap.c => keyboards/hotdox/keymaps/default/keymap.c +1 -1
@@ 163,7 163,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_right_led_1_off();
    ergodox_right_led_2_off();

M keyboards/hotdox/keymaps/eozaki/keymap.c => keyboards/hotdox/keymaps/eozaki/keymap.c +1 -1
@@ 170,7 170,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/hotdox/keymaps/kloki/keymap.c => keyboards/hotdox/keymaps/kloki/keymap.c +1 -1
@@ 189,7 189,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/input_club/ergodox_infinity/keymaps/default/keymap.c => keyboards/input_club/ergodox_infinity/keymaps/default/keymap.c +1 -1
@@ 167,7 167,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/input_club/ergodox_infinity/keymaps/gordon/keymap.c => keyboards/input_club/ergodox_infinity/keymaps/gordon/keymap.c +1 -1
@@ 335,7 335,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_on();
    ergodox_led_all_on();

M keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c => keyboards/input_club/ergodox_infinity/keymaps/halfkeyboard/keymap.c +1 -1
@@ 492,7 492,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/input_club/ergodox_infinity/keymaps/input_club/keymap.c => keyboards/input_club/ergodox_infinity/keymaps/input_club/keymap.c +1 -1
@@ 223,7 223,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/input_club/ergodox_infinity/keymaps/narze/keymap.c => keyboards/input_club/ergodox_infinity/keymaps/narze/keymap.c +1 -1
@@ 659,7 659,7 @@ void matrix_setup(void) {
}

void matrix_scan_user(void) {
  // uint8_t layer = biton32(layer_state);
  // uint8_t layer = get_highest_layer(layer_state);

  //   ergodox_board_led_off();
  //   ergodox_right_led_1_off();

M keyboards/input_club/ergodox_infinity/keymaps/nordic_ergo/keymap.c => keyboards/input_club/ergodox_infinity/keymaps/nordic_ergo/keymap.c +1 -1
@@ 221,7 221,7 @@ void matrix_init_user(void){

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/input_club/ergodox_infinity/keymaps/rask/keymap.c => keyboards/input_club/ergodox_infinity/keymaps/rask/keymap.c +1 -1
@@ 179,7 179,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/input_club/ergodox_infinity/keymaps/rjhilgefort/keymap.c => keyboards/input_club/ergodox_infinity/keymaps/rjhilgefort/keymap.c +1 -1
@@ 309,7 309,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/input_club/ergodox_infinity/keymaps/trulyergonomic/keymap.c => keyboards/input_club/ergodox_infinity/keymaps/trulyergonomic/keymap.c +1 -1
@@ 137,7 137,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/input_club/infinity60/keymaps/jpetermans/keymap.c => keyboards/input_club/infinity60/keymaps/jpetermans/keymap.c +2 -2
@@ 239,7 239,7 @@ void matrix_scan_user(void) {
    //Turn on layer indicator or page depending on mode
    switch(led_mode_global) {
      case MODE_FLASH: //flash preset page leds then single indicator
        page = biton32(layer_state) > max_pages ? 7 : biton32(layer_state);
        page = get_highest_layer(layer_state) > max_pages ? 7 : get_highest_layer(layer_state);
        msg=(page << 8) | DISPLAY_PAGE;
        chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);
        chThdSleepMilliseconds(500);


@@ 254,7 254,7 @@ void matrix_scan_user(void) {
        break;

      case MODE_PAGE: //display pre-defined led page
        page = biton32(layer_state) > max_pages ? 7 : biton32(layer_state);
        page = get_highest_layer(layer_state) > max_pages ? 7 : get_highest_layer(layer_state);
        msg=(page << 8) | DISPLAY_PAGE;
        chMBPost(&led_mailbox, msg, TIME_IMMEDIATE);
        break;

M keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c => keyboards/jc65/v32u4/keymaps/gam3cat/keymap.c +1 -1
@@ 224,7 224,7 @@ void matrix_scan_user(void) {
}

layer_state_t layer_state_set_user(layer_state_t state) {
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
       case _BL:
           custom_backlight_level(0);
           rgblight_sethsv_noeeprom(180,100,255);

M keyboards/jones/v03_1/keymaps/default_ansi/keymap.c => keyboards/jones/v03_1/keymaps/default_ansi/keymap.c +1 -1
@@ 253,7 253,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
        }
    }
    if (index == 1) { /* Second encoder, Left side */
        switch(biton32(layer_state)) {
        switch(get_highest_layer(layer_state)) {
            case _LOWER:
                if (clockwise) {
                    rgblight_decrease_hue();

M keyboards/jones/v03_1/keymaps/default_jp/keymap.c => keyboards/jones/v03_1/keymaps/default_jp/keymap.c +1 -1
@@ 255,7 255,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
        }
    }
    if (index == 1) { /* Second encoder, Left side */
        switch(biton32(layer_state)) {
        switch(get_highest_layer(layer_state)) {
            case _LOWER:
                if (clockwise) {
                    rgblight_decrease_hue();

M keyboards/kakunpc/angel64/alpha/keymaps/default/keymap.c => keyboards/kakunpc/angel64/alpha/keymaps/default/keymap.c +1 -1
@@ 40,7 40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#ifdef OLED_ENABLE
bool oled_task_user(void) {
  oled_write_P(PSTR("Layer: "), false);
  switch (biton32(layer_state)) {
  switch (get_highest_layer(layer_state)) {
    case BASE:
      oled_write_P(PSTR("Default\n"), false);
      break;

M keyboards/kakunpc/angel64/rev1/keymaps/kakunpc/keymap.c => keyboards/kakunpc/angel64/rev1/keymaps/kakunpc/keymap.c +1 -1
@@ 175,7 175,7 @@ void matrix_scan_user(void) {
#ifdef OLED_ENABLE
bool oled_task_user(void) {
  oled_write_P(PSTR("Layer: "), false);
  switch (biton32(layer_state)) {
  switch (get_highest_layer(layer_state)) {
    case BASE:
      oled_write_P(PSTR("Default\n"), false);
      break;

M keyboards/kakunpc/suihankey/alpha/keymaps/default/keymap.c => keyboards/kakunpc/suihankey/alpha/keymaps/default/keymap.c +1 -1
@@ 58,7 58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#ifdef OLED_ENABLE
bool oled_task_user(void) {
  oled_write_P(PSTR("Layer: "), false);
  switch (biton32(layer_state)) {
  switch (get_highest_layer(layer_state)) {
    case BASE:
      oled_write_P(PSTR("Default\n"), false);
      break;

M keyboards/kakunpc/suihankey/rev1/keymaps/default/keymap.c => keyboards/kakunpc/suihankey/rev1/keymaps/default/keymap.c +1 -1
@@ 58,7 58,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#ifdef OLED_ENABLE
bool oled_task_user(void) {
  oled_write_P(PSTR("Layer: "), false);
  switch (biton32(layer_state)) {
  switch (get_highest_layer(layer_state)) {
    case BASE:
      oled_write_P(PSTR("Default\n"), false);
      break;

M keyboards/kbdfans/kbd6x/keymaps/othi/keymap.c => keyboards/kbdfans/kbd6x/keymaps/othi/keymap.c +1 -2
@@ 38,7 38,7 @@ void eeconfig_init_user(void) {
#define DE_UDIA_CAP UC(0x00DC)

layer_state_t layer_state_set_user(layer_state_t state) {
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
    case NM_MODE:
        rgblight_setrgb (0x00,  0x66, 0x00);
        break;


@@ 187,4 187,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      _______,   _______,         _______,         _______,         _______,   _______,      _______
      ),
};


M keyboards/kbdfans/kbd75/keymaps/edulpn/keymap.c => keyboards/kbdfans/kbd75/keymaps/edulpn/keymap.c +1 -1
@@ 45,7 45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

layer_state_t layer_state_set_user(layer_state_t state) {
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
    case WINDOWS_LAYER:
        rgblight_setrgb_blue();
        break;

M keyboards/kbdfans/niu_mini/keymaps/tobias/keymap.c => keyboards/kbdfans/niu_mini/keymaps/tobias/keymap.c +15 -15
@@ 8,7 8,7 @@
 * 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. 
 * 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/>.


@@ 103,8 103,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  KC_EQL, S(KC_EQL),   RALT(KC_2), RALT(KC_3), RALT(KC_4), RALT(KC_E), KC_RBRC, RALT(KC_7), RALT(KC_8), RALT(KC_9),    RALT(KC_0), RALT(KC_MINS),
  KC_LSFT, KC_NUBS, RALT(KC_NUBS), S(KC_NUBS), DGRMCRO, XXXXXXX, XXXXXXX,   RALT(KC_M),   KC_RBRC,  S(KC_RBRC), RALT(KC_RBRC),       _______,
  _______, _______,       KC_RALT,    _______,TO(_ADJUST), _______, _______,      _______,   _______,     _______,       _______, TO(_QWERTY)
), 
 
),


/* Lower
 * ,-----------------------------------------------------------------------------------.


@@ 257,10 257,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
                }
                else {
                    workmode = false;
                    return false;       
                }           
                    return false;
                }
        }
        

    }
    return true;
}


@@ 293,7 293,7 @@ void rgbflag(uint8_t r, uint8_t g, uint8_t b) {

layer_state_t layer_state_set_user(layer_state_t state) {
//  if(rgblight_get_mode() == 1) {
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
    case _QWERTY:
        if(!workmode){
            rgblight_mode(9);


@@ 312,7 312,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
            tap_code(KC_NLCK);
        }
        rgbflag(0xFF,  0x00, 0x00);
        

        break;
    case _ADJUST:
        rgblight_mode(1);


@@ 350,7 350,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
        rgblight_mode(1);
        if(bnumlock) {
            tap_code(KC_NLCK);
        }        
        }
        rgbflag(0xFF,  0xFF, 0xFF);
        break;
    }


@@ 363,8 363,8 @@ layer_state_t layer_state_set_user(layer_state_t state) {
    //Layer LED indicators

    uint32_t layer = layer_state;
    
    


    if (layer & (1<<2)) {
        if(!bnumlock) {
            numlock_changed = true;


@@ 373,10 373,10 @@ layer_state_t layer_state_set_user(layer_state_t state) {
            bnumlock = true;
        }
    }
} 
}
 */
 
 


void led_set_user(uint8_t usb_led) {

    if (usb_led & (1 << USB_LED_NUM_LOCK)) {


@@ 410,4 410,4 @@ void led_set_user(uint8_t usb_led) {

    }

}
\ No newline at end of file
}

M keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/keymap.c => keyboards/kbdfans/niu_mini/keymaps/xtonhasvim/keymap.c +1 -1
@@ 187,7 187,7 @@ void rgbflag(uint8_t r, uint8_t g, uint8_t b, uint8_t rr, uint8_t gg, uint8_t bb

void set_state_leds(void) {
  if (rgblight_get_mode() == 1) {
    switch (biton32(layer_state)) {
    switch (get_highest_layer(layer_state)) {
    case _RAISE:
      rgbflag(C_BLU, C_GRN);
      break;

M keyboards/keebio/bdn9/keymaps/vosechu-ksp/keymap.c => keyboards/keebio/bdn9/keymaps/vosechu-ksp/keymap.c +1 -1
@@ 64,7 64,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
    flight_mode = false;
    rcs_mode = false;

    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
    case _PANIC:
        panic_mode = true; // For use in encoder evaluation
        rgblight_sethsv_noeeprom(HSV_RED);

M keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c => keyboards/keebio/bfo9000/keymaps/abstractkb/keymap.c +1 -4
@@ 42,7 42,7 @@ void matrix_post_init_user(void) {
}

layer_state_t layer_state_set_user(layer_state_t state) {
  switch (biton32(state)) {
  switch (get_highest_layer(state)) {
    case _LIST:
      rgblight_sethsv_noeeprom(0,255,255);
      rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_SWIRL);


@@ 87,6 87,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
      return true;
  }
}




M keyboards/keebio/iris/keymaps/edvorakjp/keymap.c => keyboards/keebio/iris/keymaps/edvorakjp/keymap.c +2 -2
@@ 59,9 59,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
void matrix_init_keymap() {}

#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
uint32_t layer_state_set_keymap(uint32_t state) {
layer_state_t layer_state_set_keymap(layer_state_t state) {
    rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
        case L_EDVORAKJP_LOWER:
            rgblight_sethsv_noeeprom_red();
            break;

M keyboards/keebio/iris/keymaps/jerryhcooke/keymap.c => keyboards/keebio/iris/keymaps/jerryhcooke/keymap.c +2 -2
@@ 11,7 11,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {[0] = LAYOUT(KC_GE
#ifdef ENCODER_ENABLE
bool encoder_update_user(uint8_t index, bool clockwise) {
    if (index == 0) {
        switch (biton32(layer_state)) {
        switch (get_highest_layer(layer_state)) {
            case _LOWER:
                clockwise ? tap_code(KC_MS_WH_UP) : tap_code(KC_MS_WH_DOWN);
                break;


@@ 23,7 23,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
                break;
        }
    } else if (index == 1) {
        switch (biton32(layer_state)) {
        switch (get_highest_layer(layer_state)) {
            case _LOWER:
                clockwise ? tap_code(KC_UP) : tap_code(KC_DOWN);
                break;

M keyboards/keebio/iris/keymaps/sq5rix/keymap.c => keyboards/keebio/iris/keymaps/sq5rix/keymap.c +1 -2
@@ 134,7 134,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
    }
    // tmux screen
    else if (index == 1) {
        switch(biton32(layer_state)){
        switch(get_highest_layer(layer_state)){
             case 0:
                if (clockwise) {
                    send_string(SS_LCTL("B")"p");


@@ 182,4 182,3 @@ layer_state_t layer_state_set_user(layer_state_t state) {
    rgblight_set_layer_state(2, layer_state_cmp(state, 4));
    return state;
}


M keyboards/keebio/levinson/keymaps/issmirnov/keymap.c => keyboards/keebio/levinson/keymaps/issmirnov/keymap.c +1 -1
@@ 91,7 91,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
  #ifdef RGBLIGHT_ENABLE
    layer_state_set_rgb(state);
  #endif
  uint8_t layer = biton32(state);
  uint8_t layer = get_highest_layer(state);
  combo_enable(); // by default, enable combos.
  switch (layer) {
    case 0:

M keyboards/keebio/levinson/keymaps/issmirnov/rgb.c => keyboards/keebio/levinson/keymaps/issmirnov/rgb.c +1 -1
@@ 45,7 45,7 @@ void matrix_scan_rgb(void) {
}

void set_rgb_indicators(uint8_t this_mod, uint8_t this_osm) {
  if (biton32(layer_state) == _QWERTY) {
  if (get_highest_layer(layer_state) == _QWERTY) {
    if ((this_mod | this_osm) & MOD_MASK_SHIFT) {
      rgblight_setrgb_gold_at(SHFT_LED1);
    } else {

M keyboards/keebio/levinson/keymaps/issmirnov/rgb.h => keyboards/keebio/levinson/keymaps/issmirnov/rgb.h +1 -1
@@ 6,7 6,7 @@
void keyboard_post_init_rgb(void);

// If rgb enabled, set underglow for layer
uint32_t layer_state_set_rgb(uint32_t state);
layer_state_t layer_state_set_rgb(layer_state_t state);

// Enhance matrix scan code. Note: keep this light, since it runs every 100ms
void matrix_scan_rgb(void);

M keyboards/keebio/levinson/keymaps/xtonhasvim/keymap.c => keyboards/keebio/levinson/keymaps/xtonhasvim/keymap.c +1 -1
@@ 182,7 182,7 @@ void rgbflag(uint8_t r, uint8_t g, uint8_t b, uint8_t rr, uint8_t gg, uint8_t bb

void set_state_leds(void) {
  if (rgblight_get_mode() == 1) {
    switch (biton32(layer_state)) {
    switch (get_highest_layer(layer_state)) {
    case _RAISE:
      rgbflag(C_BLU, C_GRN);
      break;

M keyboards/keebio/nyquist/keymaps/pitty/keymap.c => keyboards/keebio/nyquist/keymaps/pitty/keymap.c +1 -1
@@ 143,7 143,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
#ifdef RGBLIGHT_ENABLE
  uint8_t default_layer = eeconfig_read_default_layer();
  if (rgb_layer_change) {
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
    case _LOWER:
      rgblight_set_purple;
      rgblight_mode(5);

M keyboards/keebio/quefrency/keymaps/georgepetri/keymap.c => keyboards/keebio/quefrency/keymaps/georgepetri/keymap.c +1 -1
@@ 64,7 64,7 @@ void keyboard_post_init_user(void) {
}

void update_led(void) {
    switch (biton32(layer_state)) {
    switch (get_highest_layer(layer_state)) {
      case _BASE:
      rgblight_sethsv_noeeprom(HSV_BLUE);
      break;

M keyboards/keyhive/honeycomb/keymaps/default/keymap.c => keyboards/keyhive/honeycomb/keymaps/default/keymap.c +1 -1
@@ 37,7 37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
report_mouse_t currentReport = {};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
	//uint8_t layer = biton32(layer_state);  // get the current layer
	//uint8_t layer = get_highest_layer(layer_state);  // get the current layer

	// Basic example functions
	switch (keycode) {

M keyboards/kinesis/keymaps/milestogo/keymap.c => keyboards/kinesis/keymaps/milestogo/keymap.c +1 -1
@@ 330,7 330,7 @@ void matrix_init_user(void) {
void matrix_scan_user(void) {

#ifdef ALVICSTEP_CONFIG_H
 int8_t layer = biton32(layer_state);
 int8_t layer = get_highest_layer(layer_state);

        switch (layer) {
        case 1:

M keyboards/kprepublic/cospad/keymaps/detrus/keymap.c => keyboards/kprepublic/cospad/keymaps/detrus/keymap.c +3 -3
@@ 271,7 271,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

// Makes sure to update the good tri-layer if a layer changes
layer_state_t layer_state_set_user(layer_state_t state) {
	switch (biton32(default_layer_state)) {
	switch (get_highest_layer(default_layer_state)) {
		case _QWERTY_LAYER:
			state = update_tri_layer_state(state, _RAISE_LAYER, _QWERTY_LOWER_LAYER, _ALTER_LAYER);
			break;


@@ 289,8 289,8 @@ layer_state_t layer_state_set_user(layer_state_t state) {
}

// Makes the tri-layer
uint32_t default_layer_state_set_kb(uint32_t state) {
	switch (biton32(state)) {
layer_state_t default_layer_state_set_kb(layer_state_t state) {
	switch (get_highest_layer(state)) {
		case _QWERTY_LAYER:
			state = update_tri_layer_state(state, _RAISE_LAYER, _QWERTZ_LOWER_LAYER, _ALTER_LAYER);
			state = update_tri_layer_state(state, _RAISE_LAYER, _COLEMA_LOWER_LAYER, _ALTER_LAYER);

M keyboards/kprepublic/jj50/keymaps/abstractkb/keymap.c => keyboards/kprepublic/jj50/keymaps/abstractkb/keymap.c +1 -1
@@ 42,7 42,7 @@ void keyboard_post_init_user(void) {
}

layer_state_t layer_state_set_user(layer_state_t state) {
  switch (biton32(state)) {
  switch (get_highest_layer(state)) {
    case _RAISE:
      rgblight_sethsv_noeeprom(170,255,255);
      rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);

M keyboards/kprepublic/jj50/keymaps/abstractkb_gergomatch/keymap.c => keyboards/kprepublic/jj50/keymaps/abstractkb_gergomatch/keymap.c +1 -1
@@ 42,7 42,7 @@ void keyboard_post_init_user(void) {
}

layer_state_t layer_state_set_user(layer_state_t state) {
  switch (biton32(state)) {
  switch (get_highest_layer(state)) {
    case _FUNC:
      rgblight_sethsv_noeeprom(170,255,255);
      rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);

M keyboards/ktec/ergodone/keymaps/eozaki/keymap.c => keyboards/ktec/ergodone/keymaps/eozaki/keymap.c +1 -1
@@ 179,7 179,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/ktec/ergodone/keymaps/erovia/keymap.c => keyboards/ktec/ergodone/keymaps/erovia/keymap.c +1 -1
@@ 204,7 204,7 @@ void matrix_init_user(void) {

layer_state_t layer_state_set_user(layer_state_t state) {
    ergodox_led_all_off();
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
      case FN:
          // Red led on Pro Micro for Fn layer
          ergodox_board_led_on();

M keyboards/ktec/ergodone/keymaps/kloki/keymap.c => keyboards/ktec/ergodone/keymaps/kloki/keymap.c +1 -1
@@ 198,7 198,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/ktec/ergodone/keymaps/vega/keymap.c => keyboards/ktec/ergodone/keymaps/vega/keymap.c +1 -1
@@ 534,7 534,7 @@ void matrix_init_user(void) {

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M keyboards/leeku/finger65/keymaps/madhatter/keymap.c => keyboards/leeku/finger65/keymaps/madhatter/keymap.c +1 -1
@@ 40,7 40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

// layer_state_t layer_state_set_user(layer_state_t state) {
//   switch(biton32(state)) {
//   switch(get_highest_layer(state)) {
//   case _FNMS:
//     led_off();
//     rgb_on();

M keyboards/lets_split/keymaps/bbaserdem/keymap.c => keyboards/lets_split/keymaps/bbaserdem/keymap.c +1 -1
@@ 13,7 13,7 @@
void matrix_init_keymap (void) {
}

uint32_t layer_state_set_keymap(uint32_t state) {
layer_state_t layer_state_set_keymap(layer_state_t state) {
    return state;
}


M keyboards/lets_split/keymaps/cpeters1982/keymap.c => keyboards/lets_split/keymaps/cpeters1982/keymap.c +1 -1
@@ 183,7 183,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
#ifdef RGBLIGHT_ENABLE
  uint8_t default_layer = eeconfig_read_default_layer();
  if (rgb_layer_change) {
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
    case _RAISE:
      rgblight_set_orange;
      rgblight_mode(5);

M keyboards/lets_split/keymaps/geripgeri/keymap.c => keyboards/lets_split/keymaps/geripgeri/keymap.c +1 -1
@@ 255,7 255,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
  state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
  writePin(B0, !(state & (1UL << (_NUMPAD))));

  switch(biton32(state)) {
  switch(get_highest_layer(state)) {
    case _RAISE:
      rgblight_setrgb_at(255, 255, 255, RGBLED_NUM / 2);
      rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);

M keyboards/lets_split/keymaps/pitty/keymap.c => keyboards/lets_split/keymaps/pitty/keymap.c +1 -1
@@ 128,7 128,7 @@ void persistent_default_layer_set(uint16_t default_layer) {


void matrix_scan_user(void) {
   uint8_t layer = biton32(layer_state);
   uint8_t layer = get_highest_layer(layer_state);
   switch (layer) {
     case _NAV:
         if (RGB_INIT) {} else {

M keyboards/lily58/lib/layer_state_reader.c => keyboards/lily58/lib/layer_state_reader.c +1 -1
@@ 28,7 28,7 @@ const char *read_layer_state(void) {
    snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Adjust");
    break;
  default:
    snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%ld", layer_state);
    snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%u", layer_state);
  }

  return layer_state_str;

M keyboards/m10a/keymaps/gam3cat/keymap.c => keyboards/m10a/keymaps/gam3cat/keymap.c +1 -1
@@ 115,7 115,7 @@ void matrix_scan_user(void) {
}

layer_state_t layer_state_set_user(layer_state_t state) {
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
        case _L0:
            custom_backlight_level(0);
            break;

M keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/keymap.c => keyboards/maple_computing/lets_split_eh/keymaps/bbaserdem/keymap.c +1 -1
@@ 5,7 5,7 @@
void matrix_init_keymap (void) {
}

uint32_t layer_state_set_keymap(uint32_t state) {
layer_state_t layer_state_set_keymap(layer_state_t state) {
    return state;
}


M keyboards/maple_computing/lets_split_eh/keymaps/romus/keymap.c => keyboards/maple_computing/lets_split_eh/keymaps/romus/keymap.c +2 -2
@@ 5,8 5,8 @@
void matrix_init_keymap (void) {
}

uint32_t layer_state_set_keymap(uint32_t state) {
	
layer_state_t layer_state_set_keymap(layer_state_t state) {

    return state;
}


M keyboards/mechkeys/mechmini/v2/keymaps/wsturgiss/keymap.c => keyboards/mechkeys/mechmini/v2/keymaps/wsturgiss/keymap.c +1 -2
@@ 87,7 87,7 @@ void matrix_scan_user(void) {

//change colors and rgb modes on layer change
layer_state_t layer_state_set_user(layer_state_t state) {
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
    case raise:
        rgblight_mode_noeeprom(1);
        rgblight_setrgb(0xc7, 0x00, 0xf4);


@@ 103,4 103,3 @@ layer_state_t layer_state_set_user(layer_state_t state) {
    }
  return state;
};


M keyboards/mechllama/g35/keymaps/default/keymap.c => keyboards/mechllama/g35/keymaps/default/keymap.c +1 -1
@@ 67,7 67,7 @@ const char* get_layer_name(uint8_t layer) {
}

bool oled_task_user(void) {
    oled_write_ln_P(get_layer_name(biton32(layer_state)), false);
    oled_write_ln_P(get_layer_name(get_highest_layer(layer_state)), false);
    return false;
}
#endif

M keyboards/mechlovin/hannah910/hannah910.c => keyboards/mechlovin/hannah910/hannah910.c +3 -3
@@ 34,20 34,20 @@ void led_set_kb(uint8_t usb_led) {
layer_state_t layer_state_set_user(layer_state_t state)
{
  // if on layer 1, turn on D2 LED, otherwise off.
    if (biton32(state) == 1) {
    if (get_highest_layer(state) == 1) {
        writePinHigh(D2);
    } else {
        writePinLow(D2);
    }
  // if on layer 2, turn on D1 LED, otherwise off.
    if (biton32(state) == 2) {
    if (get_highest_layer(state) == 2) {
        writePinHigh(D1);
    } else {
        writePinLow(D1);
    }

  // if on layer 3, turn on D0 LED, otherwise off.
    if (biton32(state) == 3) {
    if (get_highest_layer(state) == 3) {
        writePinHigh(D0);
    } else {
        writePinLow(D0);

M keyboards/mechlovin/hex4b/keymaps/nazzer/keymap.c => keyboards/mechlovin/hex4b/keymaps/nazzer/keymap.c +14 -14
@@ 53,9 53,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

bool led_update_user(led_t led_state) {
	

	// Toggle CAPS_LOCK LED normally
	

#    if LED_PIN_ON_STATE == 0
        // invert the whole thing to avoid having to conditionally !led_state.x later
        led_state.raw = ~led_state.raw;


@@ 69,30 69,30 @@ bool led_update_user(led_t led_state) {
}

layer_state_t layer_state_set_user(layer_state_t state) {
	
	uint8_t layer = biton32(state);
	

	uint8_t layer = get_highest_layer(state);

#if defined(LED_NUM_LOCK_PIN) && defined(LED_SCROLL_LOCK_PIN)
    switch (layer) {
        case 0:
			writePin(LED_SCROLL_LOCK_PIN, !LED_PIN_ON_STATE); 
			writePin(LED_NUM_LOCK_PIN, !LED_PIN_ON_STATE); 
			writePin(LED_SCROLL_LOCK_PIN, !LED_PIN_ON_STATE);
			writePin(LED_NUM_LOCK_PIN, !LED_PIN_ON_STATE);
            break;
        case 1:
			writePin(LED_SCROLL_LOCK_PIN, LED_PIN_ON_STATE); 
			writePin(LED_NUM_LOCK_PIN, !LED_PIN_ON_STATE); 
			writePin(LED_SCROLL_LOCK_PIN, LED_PIN_ON_STATE);
			writePin(LED_NUM_LOCK_PIN, !LED_PIN_ON_STATE);
            break;
        case 2:
			writePin(LED_SCROLL_LOCK_PIN, !LED_PIN_ON_STATE); 
			writePin(LED_NUM_LOCK_PIN, LED_PIN_ON_STATE); 
			writePin(LED_SCROLL_LOCK_PIN, !LED_PIN_ON_STATE);
			writePin(LED_NUM_LOCK_PIN, LED_PIN_ON_STATE);
            break;
        case 3:
			writePin(LED_SCROLL_LOCK_PIN, LED_PIN_ON_STATE); 
			writePin(LED_NUM_LOCK_PIN, LED_PIN_ON_STATE); 
			writePin(LED_SCROLL_LOCK_PIN, LED_PIN_ON_STATE);
			writePin(LED_NUM_LOCK_PIN, LED_PIN_ON_STATE);
            break;
    }
#endif

	return state;												
	return state;

}

M keyboards/minimacro5/keymaps/devdev/keymap.c => keyboards/minimacro5/keymaps/devdev/keymap.c +1 -1
@@ 37,7 37,7 @@ enum tap_dances{

bool encoder_update_user(uint8_t index, bool clockwise) {
  if (index == 0) { /* First encoder*/
    switch(biton32(layer_state)){
    switch(get_highest_layer(layer_state)){
		case _MAIN:
			if (clockwise) {
			  tap_code(KC_VOLU);

M keyboards/mitosis/keymaps/carvac_dv/keymap.c => keyboards/mitosis/keymaps/carvac_dv/keymap.c +1 -2
@@ 105,7 105,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    switch (layer) {
    	case _STD:


@@ 121,4 121,3 @@ void matrix_scan_user(void) {
            break;
    }
};


M keyboards/mitosis/keymaps/datagrok/keymap.c => keyboards/mitosis/keymaps/datagrok/keymap.c +2 -2
@@ 102,7 102,7 @@ const size_t defaultlayers_n = sizeof(defaultlayers) / sizeof(defaultlayers[0]);
// New keycode KC_LAYO rotates between available default layers (for e.g.,
// selecting a base layout). Shift+KC_LAYO makes the current one persistent.
bool process_record_layout(uint16_t keycode, keyrecord_t *record) {
  uint32_t default_layer;
  uint8_t default_layer;
  uint8_t i;
  #if defined(AUDIO_ENABLE)
  float saved_song[][2] = SONG(COIN_SOUND);


@@ 121,7 121,7 @@ bool process_record_layout(uint16_t keycode, keyrecord_t *record) {
  } else {
    // rotate default layer.
    // find the current default layer
    default_layer = biton32(default_layer_state);
    default_layer = get_highest_layer(default_layer_state);
    // find next valid default layer
    for (i = 1; i < defaultlayers_n; i++) {
      if (defaultlayers[(default_layer + i) % defaultlayers_n]) {

M keyboards/mitosis/keymaps/default/keymap.c => keyboards/mitosis/keymaps/default/keymap.c +2 -3
@@ 77,7 77,7 @@ static bool singular_key = false;
bool process_record_user(uint16_t keycode, keyrecord_t *record) {

	uint8_t layer;
  layer = biton32(layer_state);  // get the current layer
  layer = get_highest_layer(layer_state);  // get the current layer

  //custom layer handling for tri_layer,
  switch (keycode) {


@@ 174,7 174,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
};

void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    switch (layer) {
    	case _MALT:


@@ 193,4 193,3 @@ void matrix_scan_user(void) {
            break;
    }
};


M keyboards/mitosis/keymaps/mjt/keymap.c => keyboards/mitosis/keymaps/mjt/keymap.c +2 -2
@@ 181,7 181,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    return false;
  }
  uint8_t layer;
  layer = biton32(layer_state);  // get the current layer
  layer = get_highest_layer(layer_state);  // get the current layer

  //custom layer handling for tri_layer,
  switch (keycode) {


@@ 310,7 310,7 @@ void music_scale_user(void)
#endif

void matrix_scan_user(void) {
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);

  switch (layer) {
  case _QWERTY:

M keyboards/mitosis/keymaps/nzen/keymap.c => keyboards/mitosis/keymaps/nzen/keymap.c +1 -3
@@ 175,7 175,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    switch (layer) {
    	case _QWERTY:


@@ 205,5 205,3 @@ void matrix_scan_user(void) {
void matrix_init_user(void) {
	set_unicode_input_mode(UC_LNX); // or UC_WINC
};



M keyboards/mschwingen/modelm/modelm.c => keyboards/mschwingen/modelm/modelm.c +2 -2
@@ 163,8 163,8 @@ void update_layer_leds(void) {
    static uint8_t old_layer         = 255;
    static uint8_t old_default_layer = 255;

    layer         = biton32(layer_state);
    default_layer = biton32(default_layer_state);
    layer         = get_highest_layer(layer_state);
    default_layer = get_highest_layer(default_layer_state);

    if (isRecording && timer_elapsed(blink_cycle_timer) > 150) {
        blink_state       = !blink_state;

M keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c => keyboards/mwstudio/mw65_rgb/keymaps/via/keymap.c +2 -2
@@ 95,9 95,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
bool encoder_update_user(uint8_t index, bool clockwise) {
  if (index == 0) {
    if (clockwise) {
        tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 4, 3));
        tap_code(dynamic_keymap_get_keycode(get_highest_layer(layer_state), 4, 3));
    } else {
        tap_code(dynamic_keymap_get_keycode(biton32(layer_state), 4, 4));
        tap_code(dynamic_keymap_get_keycode(get_highest_layer(layer_state), 4, 4));
    }
  }
  return true;

M keyboards/pearl/keymaps/cijanzen/keymap.c => keyboards/pearl/keymaps/cijanzen/keymap.c +1 -1
@@ 46,7 46,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/**
 * Status LED layer indicators courtesy of jetpacktuxedo's firmware
 */
uint32_t layer_state_set_kb(uint32_t state)
layer_state_t layer_state_set_kb(layer_state_t state)
{
  if (state & (1<<1)) { // if we are on layer 1
    PORTD |= (1 << PD0); // light num lock led

M keyboards/pearl/keymaps/jetpacktuxedo/keymap.c => keyboards/pearl/keymaps/jetpacktuxedo/keymap.c +1 -1
@@ 27,7 27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  ),
};

uint32_t layer_state_set_kb(uint32_t state) {
layer_state_t layer_state_set_kb(layer_state_t state) {
  // if we are on layer 1
  if (state & (1<<1)){
    // light num lock led

M keyboards/pearl/keymaps/phil/keymap.c => keyboards/pearl/keymaps/phil/keymap.c +1 -1
@@ 64,7 64,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
      ),
};

uint32_t layer_state_set_kb(uint32_t state) {
layer_state_t layer_state_set_kb(layer_state_t state) {
  if (state & (1<<QWERTY)){
    PORTD &= ~(1 << PD0);
  } else {

M keyboards/pearl/keymaps/rask/keymap.c => keyboards/pearl/keymaps/rask/keymap.c +1 -1
@@ 43,7 43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/**
 * Status LED layer indicators courtesy of jetpacktuxedo's firmware
 */
uint32_t layer_state_set_kb(uint32_t state)
layer_state_t layer_state_set_kb(layer_state_t state)
{
    // if we are on layer 1
    if (state & (1<<1)){

M keyboards/percent/canoe/keymaps/dhertz/keymap.c => keyboards/percent/canoe/keymaps/dhertz/keymap.c +2 -2
@@ 49,8 49,8 @@ void keyboard_post_init_user(void) {
    rgblight_sethsv_teal();
}

uint32_t layer_state_set_keymap(uint32_t state) {
    switch (biton32(state)) {
layer_state_t layer_state_set_keymap(layer_state_t state) {
    switch (get_highest_layer(state)) {
        case 1:
            rgblight_sethsv_noeeprom_magenta();
            break;

M keyboards/phoenix/phoenix.c => keyboards/phoenix/phoenix.c +1 -1
@@ 74,7 74,7 @@ void manipulate_led(uint32_t led, bool on) {
}


layer_state_t layer_state_set_kb(uint32_t state) {
layer_state_t layer_state_set_kb(layer_state_t state) {
    state = layer_state_set_user(state);

    uint8_t layer = get_highest_layer(state);

M keyboards/planck/keymaps/aviator/keymap.c => keyboards/planck/keymaps/aviator/keymap.c +4 -4
@@ 142,7 142,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    case LOWER:
      if (record->event.pressed) {
        layer_on(_LOWER);
        uint8_t default_layer = biton32(default_layer_state);
        uint8_t default_layer = get_highest_layer(default_layer_state);
        if (default_layer == _QWERTY) {
          #ifdef BACKLIGHT_BREATHING
            breathing_enable();


@@ 151,7 151,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
        update_tri_layer(_LOWER, _RAISE, _ADJUST);
      } else {
        layer_off(_LOWER);
        uint8_t default_layer = biton32(default_layer_state);
        uint8_t default_layer = get_highest_layer(default_layer_state);
        if (default_layer == _QWERTY) {
          #ifdef BACKLIGHT_BREATHING
            breathing_self_disable();


@@ 164,7 164,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    case RAISE:
      if (record->event.pressed) {
        layer_on(_RAISE);
        uint8_t default_layer = biton32(default_layer_state);
        uint8_t default_layer = get_highest_layer(default_layer_state);
        if (default_layer == _QWERTY) {
          #ifdef BACKLIGHT_BREATHING
            breathing_enable();


@@ 173,7 173,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
        update_tri_layer(_LOWER, _RAISE, _ADJUST);
      } else {
        layer_off(_RAISE);
        uint8_t default_layer = biton32(default_layer_state);
        uint8_t default_layer = get_highest_layer(default_layer_state);
        if (default_layer == _QWERTY) {
          #ifdef BACKLIGHT_BREATHING
            breathing_self_disable();

M keyboards/planck/keymaps/charlesrocket/keymap.c => keyboards/planck/keymaps/charlesrocket/keymap.c +1 -1
@@ 101,7 101,7 @@ void set_layer_color(int layer) {

void rgb_matrix_indicators_user(void) {
  if (g_suspend_state || keyboard_config.disable_layer_led) { return; }
  switch (biton32(layer_state)) {
  switch (get_highest_layer(layer_state)) {
    case 0:
      set_layer_color(0);
      break;

M keyboards/planck/keymaps/grahampheath/keymap.c => keyboards/planck/keymaps/grahampheath/keymap.c +1 -1
@@ 231,7 231,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  bool has_layer_changed = true;

  void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);
    static uint8_t old_layer = 0;

    if (old_layer != layer) {

M keyboards/planck/keymaps/oryx/keymap.c => keyboards/planck/keymaps/oryx/keymap.c +1 -1
@@ 94,7 94,7 @@ void rgb_matrix_indicators_user(void) {
    if (keyboard_config.disable_layer_led) {
        return;
    }
    switch (biton32(layer_state)) {
    switch (get_highest_layer(layer_state)) {
        case 1:
            set_layer_color(0);
            break;

M keyboards/planck/keymaps/rootiest/keymap.c => keyboards/planck/keymaps/rootiest/keymap.c +1 -1
@@ 502,7 502,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
        } else {
            if (index == 0) { /* First encoder */
                uint16_t held_keycode_timer = timer_read();
                switch (biton32(layer_state)) {
                switch (get_highest_layer(layer_state)) {
                    case 0:                                 // Base Layer
                        if ((get_mods() & MOD_MASK_GUI)) {  // GUI-ed
                            if (clockwise) {

M keyboards/planck/keymaps/tom/keymap.c => keyboards/planck/keymaps/tom/keymap.c +1 -1
@@ 228,7 228,7 @@ bool music_mask_user(uint16_t keycode) {

void rgb_matrix_indicators_user(void) {
  #ifdef RGB_MATRIX_ENABLE
  switch (biton32(layer_state)) {
  switch (get_highest_layer(layer_state)) {
    case _RAISE:
      for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
        if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {

M keyboards/planck/keymaps/tylerwince/keymap.c => keyboards/planck/keymaps/tylerwince/keymap.c +2 -2
@@ 168,7 168,7 @@ void set_layer_color(int layer) {

void rgb_matrix_indicators_user(void) {
  if (g_suspend_state || disable_layer_color) { return; }
  switch (biton32(layer_state)) {
  switch (get_highest_layer(layer_state)) {
    case 0:
      set_layer_color(0);
      break;


@@ 276,7 276,7 @@ bool music_mask_user(uint16_t keycode) {
layer_state_t layer_state_set_user(layer_state_t state) {
    palClearPad(GPIOB, 8);
    palClearPad(GPIOB, 9);
    uint8_t layer = biton32(state);
    uint8_t layer = get_highest_layer(state);
    switch (layer) {
        case _LOWER:
            palSetPad(GPIOB, 9);

M keyboards/preonic/keymaps/dudeofawesome/keymap.c => keyboards/preonic/keymaps/dudeofawesome/keymap.c +1 -1
@@ 275,7 275,7 @@ bool numpadActive = false;
float tone_numpad_on[][2] = SONG(NUMPAD_ON_SOUND);

void matrix_scan_user (void) {
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);

  switch (layer) {
    case _NUMPAD:

M keyboards/preonic/keymaps/senseored/keymap.c => keyboards/preonic/keymaps/senseored/keymap.c +1 -1
@@ 367,7 367,7 @@ bool dip_switch_update_user(uint8_t index, bool active) {

layer_state_t layer_state_set_user(layer_state_t state) {
//  if(rgblight_get_mode() == 1) {
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
    case _QWERTY:
        if(bnumlock) {
            tap_code(KC_NLCK);

M keyboards/primekb/prime_e/keymaps/via/keymap.c => keyboards/primekb/prime_e/keymaps/via/keymap.c +1 -1
@@ 108,7 108,7 @@ void led_set_user(uint8_t usb_led) {
//function for layer indicator LED
layer_state_t layer_state_set_user(layer_state_t state)
{
    if (biton32(state) == 1) {
    if (get_highest_layer(state) == 1) {
    writePinHigh(B3);
	} else {
		writePinLow(B3);

M keyboards/redox_w/keymaps/italian/keymap.c => keyboards/redox_w/keymaps/italian/keymap.c +5 -7
@@ 53,7 53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐       ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
     KC_LSFT ,KC_Z    ,KC_X    ,KC_C    ,KC_V    ,KC_B    ,KC_ADPU ,KC_PGDN ,        KC_HOME ,KC_ADEN ,KC_N    ,KC_M    ,KC_COMM ,KC_DOT  ,IT_UGRV ,IT_SHSL ,
  //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤       ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
     GUI_LESS,KC_PPLS ,KC_PMNS ,KC_ALAS ,     KC_CTPL ,    KC_BSPC ,KC_DEL  ,        KC_ENT  ,KC_SPC  ,    ALT_IACC,     KC_LEFT ,KC_DOWN ,KC_UP   ,KC_RGHT 
     GUI_LESS,KC_PPLS ,KC_PMNS ,KC_ALAS ,     KC_CTPL ,    KC_BSPC ,KC_DEL  ,        KC_ENT  ,KC_SPC  ,    ALT_IACC,     KC_LEFT ,KC_DOWN ,KC_UP   ,KC_RGHT
  //└────────┴────────┴────────┴────────┘    └────────┘   └────────┴────────┘       └────────┴────────┘   └────────┘    └────────┴────────┴────────┴────────┘
  ),



@@ 67,7 67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐       ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
     _______ ,IT_PERC ,IT_CIRC ,IT_LPRN ,IT_RPRN ,IT_TILD ,_______ ,_______ ,        _______ ,_______ ,XXXXXXX ,KC_KP_1 ,KC_KP_2 ,KC_KP_3 ,XXXXXXX ,XXXXXXX ,
  //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤       ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
     _______ ,_______ ,_______ ,_______ ,     _______ ,    _______ ,_______ ,        _______ ,_______ ,    KC_KP_0 ,     KC_KP_0 ,KC_PDOT ,XXXXXXX ,XXXXXXX 
     _______ ,_______ ,_______ ,_______ ,     _______ ,    _______ ,_______ ,        _______ ,_______ ,    KC_KP_0 ,     KC_KP_0 ,KC_PDOT ,XXXXXXX ,XXXXXXX
  //└────────┴────────┴────────┴────────┘    └────────┘   └────────┴────────┘       └────────┴────────┘   └────────┘    └────────┴────────┴────────┴────────┘
  ),



@@ 81,7 81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐       ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,_______ ,        _______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
  //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤       ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,     KC_BTN1 ,    KC_BTN2 ,_______ ,        _______ ,_______ ,    XXXXXXX ,     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX 
     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,     KC_BTN1 ,    KC_BTN2 ,_______ ,        _______ ,_______ ,    XXXXXXX ,     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX
  //└────────┴────────┴────────┴────────┘    └────────┘   └────────┴────────┘       └────────┴────────┘   └────────┘    └────────┴────────┴────────┴────────┘
  ),



@@ 95,14 95,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  //├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┐       ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,_______ ,XXXXXXX ,        XXXXXXX ,_______ ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,
  //├────────┼────────┼────────┼────────┼────┬───┴────┬───┼────────┼────────┤       ├────────┼────────┼───┬────┴───┬────┼────────┼────────┼────────┼────────┤
     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,     XXXXXXX ,    XXXXXXX ,XXXXXXX ,        XXXXXXX ,XXXXXXX ,    XXXXXXX ,     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX 
     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX ,     XXXXXXX ,    XXXXXXX ,XXXXXXX ,        XXXXXXX ,XXXXXXX ,    XXXXXXX ,     XXXXXXX ,XXXXXXX ,XXXXXXX ,XXXXXXX
  //└────────┴────────┴────────┴────────┘    └────────┘   └────────┴────────┘       └────────┴────────┘   └────────┘    └────────┴────────┴────────┴────────┘
  )

};

void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    switch (layer) {
        case _QWERTY:


@@ 121,5 121,3 @@ void matrix_scan_user(void) {
            break;
    }
};



M keyboards/redscarf_i/redscarf_i.c => keyboards/redscarf_i/redscarf_i.c +1 -1
@@ 36,7 36,7 @@ bool led_update_kb(led_t led_state) {
}

layer_state_t layer_state_set_kb(layer_state_t state) {
  switch (biton32(state)) {
  switch (get_highest_layer(state)) {
    case 1:
      writePinHigh(F6);
      writePinLow(F5);

M keyboards/rgbkb/pan/keymaps/default/keymap.c => keyboards/rgbkb/pan/keymaps/default/keymap.c +1 -1
@@ 75,7 75,7 @@ bool oled_task_user(void) {
    // Host Keyboard Layer Status
    oled_write_P(PSTR("RGBKB Pan\n"), false);
    oled_write_P(PSTR("Layer: "), false);
    uint8_t layer = layer_state ? biton(layer_state) : biton32(default_layer_state);
    uint8_t layer = get_highest_layer(layer_state|default_layer_state);
    switch (layer) {
        case _QWERTY:
            oled_write_P(PSTR("Default\n"), false);

M keyboards/rgbkb/sol/keymaps/default/keymap.c => keyboards/rgbkb/sol/keymaps/default/keymap.c +2 -2
@@ 233,7 233,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
  } else
#endif
  {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);
    uint16_t keycode = pgm_read_word(&encoders[layer][index][clockwise]);
    while (keycode == KC_TRANSPARENT && layer > 0)
    {


@@ 325,7 325,7 @@ static void render_status(void) {

  // Define layers here
  oled_write_P(PSTR("Layer"), false);
  uint8_t layer = layer_state ? biton(layer_state) : biton32(default_layer_state);
  uint8_t layer = get_highest_layer(layer_state|default_layer_state);
  switch (layer) {
    case _QWERTY:
      oled_write_P(PSTR("BASE "), false);

M keyboards/rgbkb/sol/keymaps/xyverz/keymap.c => keyboards/rgbkb/sol/keymaps/xyverz/keymap.c +2 -2
@@ 263,7 263,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
  } else
#endif
  {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);
    uint16_t keycode = encoders[layer][index][clockwise];
    while (keycode == KC_TRANSPARENT && layer > 0)
    {


@@ 306,7 306,7 @@ static void render_status(void) {

  // Define layers here
  oled_write_P(PSTR("     Layer-----"), false);
  uint8_t layer = layer_state ? biton(layer_state) : biton32(default_layer_state);
  uint8_t layer = layer_state ? get_highest_layer(layer_state) : get_highest_layer(default_layer_state);
  switch (layer) {
    case _DVORAK:
      oled_write_P(PSTR("DVRAK"), false);

M keyboards/rgbkb/zen/rev2/rev2.c => keyboards/rgbkb/zen/rev2/rev2.c +1 -1
@@ 37,7 37,7 @@ void render_status(void) {
  // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below
  oled_set_cursor(0, 3); // Line 3
  oled_write_P(PSTR("Layer"), false); // Line 4
  oled_write_P(layer_name_user(biton32(layer_state)), false);
  oled_write_P(layer_name_user(get_highest_layer(layer_state)), false);

  // Host Keyboard LED Status
  uint8_t led_usb_state = host_keyboard_leds();

M keyboards/rgbkb/zygomorph/keymaps/default_oled/keymap.c => keyboards/rgbkb/zygomorph/keymaps/default_oled/keymap.c +1 -1
@@ 198,7 198,7 @@ static void render_status(void) {

  // Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below
  oled_write_P(PSTR("Layer: "), false);
  switch (biton32(layer_state)) {
  switch (get_highest_layer(layer_state)) {
    case _QWERTY:
      oled_write_ln_P(PSTR("QWERTY"), false);
      break;

M keyboards/satt/comet46/keymaps/default-rgbled/keymap.c => keyboards/satt/comet46/keymaps/default-rgbled/keymap.c +1 -1
@@ 173,7 173,7 @@ void matrix_init_user(void) {
}

void matrix_scan_user(void) {
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);
  uint8_t default_layer = biton32(eeconfig_read_default_layer());
  switch (layer) {
    case _LOWER:

M keyboards/satt/comet46/keymaps/default/keymap.c => keyboards/satt/comet46/keymaps/default/keymap.c +2 -2
@@ 176,8 176,8 @@ void render_status(struct CharacterMatrix *matrix) {
  // Layer state
  char layer_str[22];
  matrix_write(matrix, "Layer: ");
  uint8_t layer = biton32(layer_state);
  uint8_t default_layer = biton32(eeconfig_read_default_layer());
  uint8_t layer = get_highest_layer(layer_state);
  uint8_t default_layer = get_highest_layer(eeconfig_read_default_layer());
  switch (layer) {
    case _QWERTY:
      switch (default_layer) {

M keyboards/satt/comet46/keymaps/satt/keymap.c => keyboards/satt/comet46/keymaps/satt/keymap.c +2 -2
@@ 165,7 165,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

layer_state_t layer_state_set_user(layer_state_t state) {
  switch (biton32(state)) {
  switch (get_highest_layer(state)) {
    case _PSEUDO_US_LOWER:
    case _PSEUDO_US_RAISE:
      return update_tri_layer_state(state, _PSEUDO_US_RAISE, _PSEUDO_US_LOWER, _ADJUST);


@@ 204,7 204,7 @@ void render_status(struct CharacterMatrix *matrix) {
  // Layer state
  char layer_str[22];
  matrix_write(matrix, "Layer: ");
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);
  uint8_t default_layer = biton32(eeconfig_read_default_layer());
    switch (layer) {
      case _QWERTY:

M keyboards/splitkb/kyria/keymaps/j-inc/keymap.c => keyboards/splitkb/kyria/keymaps/j-inc/keymap.c +1 -1
@@ 341,7 341,7 @@ bool oled_task_user(void) {

#ifdef ENCODER_ENABLE
bool encoder_update_user(uint8_t index, bool clockwise) {
    switch(biton32(layer_state)){
    switch(get_highest_layer(layer_state)){
        case 1:
            if (clockwise) {
                tap_code16(C(KC_TAB));

M keyboards/splitkb/kyria/keymaps/ninjonas/oled.c => keyboards/splitkb/kyria/keymaps/ninjonas/oled.c +1 -1
@@ 111,7 111,7 @@ void oled_slash_separator(void){

void render_layout_state(void) {
  oled_write_P(PSTR("Layout: "), false);
  switch (biton32(default_layer_state)) {
  switch (get_highest_layer(default_layer_state)) {
      case _COLEMAK:
        oled_write_P(PSTR("Colemak"), false);
        break;

M keyboards/splitkb/kyria/keymaps/thomasbaart/keymap.c => keyboards/splitkb/kyria/keymaps/thomasbaart/keymap.c +2 -2
@@ 311,7 311,7 @@ bool oled_task_user(void) {
#ifdef ENCODER_ENABLE
bool encoder_update_user(uint8_t index, bool clockwise) {
    if (index == 0) {
        switch (biton32(layer_state)) {
        switch (get_highest_layer(layer_state)) {
            case QWERTY:
                // History scrubbing. For Adobe products, hold shift while moving
                // backward to go forward instead.


@@ 336,7 336,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
                break;
        }
    } else if (index == 1) {
        switch (biton32(layer_state)) {
        switch (get_highest_layer(layer_state)) {
            case QWERTY:
                // Scrolling with PageUp and PgDn.
                if (clockwise) {

M keyboards/splitography/keymaps/jeandeaual/keymap.c => keyboards/splitography/keymaps/jeandeaual/keymap.c +1 -1
@@ 225,7 225,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
            }
            return false;
        case KC_QUOT:
            if ((base_layer != dvorak) || (biton32(layer_state) != _BLUE)) {
            if ((base_layer != dvorak) || (get_highest_layer(layer_state) != _BLUE)) {
                break;
            }
            if (record->event.pressed) {

M keyboards/splitography/keymaps/multi/keymap.c => keyboards/splitography/keymaps/multi/keymap.c +1 -1
@@ 331,7 331,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
            }
            return false;
        case KC_QUOT:
            if ((base_layer != dvorak) || (biton32(layer_state) != _BLUE)) {
            if ((base_layer != dvorak) || (get_highest_layer(layer_state) != _BLUE)) {
                break;
            }
            if (record->event.pressed) {

M keyboards/tetris/keymaps/default/keymap.c => keyboards/tetris/keymaps/default/keymap.c +2 -2
@@ 37,7 37,7 @@ void matrix_init_user(void) {
}

void matrix_scan_user(void) {
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);

  if (RGB_encoder_dir != 0) {
    if (timer_elapsed(RGB_encoder_timer) > 1400) {


@@ 152,7 152,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t * record) {
bool encoder_update_user(uint8_t index, bool clockwise) {
  RGB_encoder_timer = timer_read();
  RGB_encoder_timer2 = timer_read();
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);
  if (clockwise) {
    RGB_encoder_dir = 1;
  } else {

M keyboards/thevankeyboards/roadkit/keymaps/flipphone/keymap.c => keyboards/thevankeyboards/roadkit/keymaps/flipphone/keymap.c +1 -1
@@ 147,7 147,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
      return false;
    }
    uint8_t layer;
    layer = biton32(layer_state);
    layer = get_highest_layer(layer_state);

    switch (keycode) {
    case FPH_1 ... FPH_9:

M keyboards/v60_type_r/keymaps/xtonhasvim/keymap.c => keyboards/v60_type_r/keymaps/xtonhasvim/keymap.c +1 -2
@@ 104,7 104,7 @@ void rgbflag(uint8_t r, uint8_t g, uint8_t b) {
}

void set_state_leds(void) {
  switch (biton32(layer_state)) {
  switch (get_highest_layer(layer_state)) {
  case _MOVE:
    rgbflag(C_BLU);
    break;


@@ 192,4 192,3 @@ void suspend_wakeup_init_user(void)
  backlight_set(backlight_config.level);
  rgblight_set();
}


M keyboards/xiudi/xd60/keymaps/birkir/keymap.c => keyboards/xiudi/xd60/keymaps/birkir/keymap.c +1 -1
@@ 47,7 47,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
    edit = false;
  }

  switch (biton32(state)) {
  switch (get_highest_layer(state)) {
    case 1:
      rgblight_mode(1);
      rgblight_setrgb(0xD3, 0x7F, 0xED);

M keyboards/xiudi/xd60/keymaps/kmontag42/keymap.c => keyboards/xiudi/xd60/keymaps/kmontag42/keymap.c +1 -1
@@ 25,7 25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Loop
void matrix_scan_user(void) {
  static uint8_t old_layer = 255;
  uint8_t new_layer = biton32(layer_state);
  uint8_t new_layer = get_highest_layer(layer_state);

  if (old_layer != new_layer) {
    switch (new_layer) {

M keyboards/xiudi/xd75/keymaps/arpinfidel/keymap.c => keyboards/xiudi/xd75/keymaps/arpinfidel/keymap.c +1 -1
@@ 100,7 100,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

// Runs whenever there is a layer state change.
layer_state_t layer_state_set_user(layer_state_t state) {
  uint8_t layer = biton32(state);
  uint8_t layer = get_highest_layer(state);

  gp100_led_off();
  gp103_led_off();

M keyboards/xiudi/xd75/keymaps/cbbrowne/keymap.c => keyboards/xiudi/xd75/keymaps/cbbrowne/keymap.c +1 -1
@@ 286,7 286,7 @@ void matrix_init_user(void) {
}

layer_state_t layer_state_set_user(layer_state_t state) {
  switch(biton32(state)) {
  switch(get_highest_layer(state)) {
  case _QWERTY:
    rgblight_sethsv_white();
    break;

M keyboards/xiudi/xd75/keymaps/kloki/keymap.c => keyboards/xiudi/xd75/keymaps/kloki/keymap.c +1 -1
@@ 70,7 70,7 @@ bool WINDOWN = false;
bool SHIFTDOWN = false;
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    switch (layer) {
        case 0:

M keyboards/xiudi/xd75/keymaps/tdl-jturner/keymap.c => keyboards/xiudi/xd75/keymaps/tdl-jturner/keymap.c +1 -1
@@ 180,7 180,7 @@ void matrix_init_user(void) {

//Set a color based on the layer
layer_state_t layer_state_set_user(layer_state_t state) {
  switch(biton32(state)) {
  switch(get_highest_layer(state)) {
    case _LYFK:
      rgblight_setrgb_user_LYFK();
      break;

M layouts/community/ergodox/ab/keymap.c => layouts/community/ergodox/ab/keymap.c +1 -1
@@ 130,7 130,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/absenth/keymap.c => layouts/community/ergodox/absenth/keymap.c +1 -1
@@ 157,7 157,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/adam/keymap.c => layouts/community/ergodox/adam/keymap.c +1 -1
@@ 129,7 129,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);

  switch (layer) {
    // TODO: Make this relevant to the ErgoDox EZ.

M layouts/community/ergodox/adnw_k_o_y/keymap.c => layouts/community/ergodox/adnw_k_o_y/keymap.c +1 -1
@@ 139,7 139,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/alexjj/keymap.c => layouts/community/ergodox/alexjj/keymap.c +1 -1
@@ 206,7 206,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/andrew_osx/keymap.c => layouts/community/ergodox/andrew_osx/keymap.c +1 -1
@@ 141,7 141,7 @@ LAYOUT_ergodox(
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/berfarah/keymap.c => layouts/community/ergodox/berfarah/keymap.c +2 -2
@@ 219,7 219,7 @@ static inline void mod_layer_with_rgb(keyrecord_t *record, uint8_t layer) {
    bf_set_led(layer);
  } else {
    layer_off(layer);
    uint8_t currentLayer = biton32(layer_state);
    uint8_t currentLayer = get_highest_layer(layer_state);
    bf_set_led(currentLayer);
  };
};


@@ 266,7 266,7 @@ void matrix_init_user(void) {

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);

  ergodox_right_led_1_off();
  ergodox_right_led_2_off();

M layouts/community/ergodox/bryan/keymap.c => layouts/community/ergodox/bryan/keymap.c +1 -1
@@ 200,7 200,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/choromanski/keymap.c => layouts/community/ergodox/choromanski/keymap.c +21 -21
@@ 30,15 30,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
	OSL(3),		TG(2),			TO(5),			TO(1),			KC_CAPS,
																			KC_LCTL,	KC_LALT,
																						KC_MUTE,
																KC_BSPC,	KC_DEL,		KC_LGUI,			
																KC_BSPC,	KC_DEL,		KC_LGUI,

	KC_7,		KC_8,		KC_9,		KC_0,		KC_MINS,		KC_EQL,			KC_BSPC,	
	KC_7,		KC_8,		KC_9,		KC_0,		KC_MINS,		KC_EQL,			KC_BSPC,
	KC_RPRN,	KC_J,		KC_L,		KC_U,		KC_Y,			KC_SCLN,		KC_BSLS,
				KC_H,		KC_N,		KC_E,		KC_I,			KC_O,			KC_QUOT,			
				KC_H,		KC_N,		KC_E,		KC_I,			KC_O,			KC_QUOT,
	KC_RBRC,	KC_K,		KC_M,		KC_COMM,	ALT_T(KC_DOT),	CTL_T(KC_SLSH),	KC_RSFT,
							KC_LEFT,	KC_DOWN,	KC_UP,			KC_RGHT,		TG(4),			
	KC_RALT,	KC_RCTL,			
	KC_WH_U,			
							KC_LEFT,	KC_DOWN,	KC_UP,			KC_RGHT,		TG(4),
	KC_RALT,	KC_RCTL,
	KC_WH_U,
	KC_WH_D,	KC_ENT,		KC_SPC
  ),



@@ 106,22 106,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 */
  [2] = LAYOUT_ergodox(
	KC_TRNS,		KC_F1,			KC_F2,			KC_F3,			KC_F4,			KC_F5,			KC_F6,
	KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,	
	KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		
	KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,	
	KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,
	KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,
	KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,
	KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,
																					KC_TRNS,		KC_TRNS,
																									KC_TRNS,
																	KC_TRNS,		KC_TRNS,		KC_TRNS,

	KC_F7,			KC_F8,			KC_F9,			KC_F10,			KC_F11,			KC_F12,			KC_TRNS,	
	KC_F7,			KC_F8,			KC_F9,			KC_F10,			KC_F11,			KC_F12,			KC_TRNS,
	KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,
					KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		
					KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,
	KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,
									KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,	
	KC_TRNS,		KC_TRNS,		
	KC_TRNS,		
	KC_TRNS,		KC_TRNS,		KC_TRNS	
									KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,		KC_TRNS,
	KC_TRNS,		KC_TRNS,
	KC_TRNS,
	KC_TRNS,		KC_TRNS,		KC_TRNS
  ),

  /* Keymap 3: Symbols


@@ 147,9 147,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 */
  [3] = LAYOUT_ergodox(
	KC_TRNS,	KC_F1,		KC_F2,		KC_F3,		KC_F4,		KC_F5,		KC_F6,
	KC_TRNS,	KC_PIPE,	KC_PLUS,	KC_LABK,	KC_RABK,	KC_HASH,	KC_TRNS,	
	KC_TRNS,	KC_EXLM,	KC_MINS,	KC_EQL,		KC_PERC,	KC_AT,			
	KC_TRNS,	KC_ASTR,	KC_AMPR,	KC_SLSH,	KC_DLR,		KC_CIRC,	KC_TRNS,	
	KC_TRNS,	KC_PIPE,	KC_PLUS,	KC_LABK,	KC_RABK,	KC_HASH,	KC_TRNS,
	KC_TRNS,	KC_EXLM,	KC_MINS,	KC_EQL,		KC_PERC,	KC_AT,
	KC_TRNS,	KC_ASTR,	KC_AMPR,	KC_SLSH,	KC_DLR,		KC_CIRC,	KC_TRNS,
	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,	KC_TRNS,
																KC_TRNS,	KC_TRNS,
																			KC_TRNS,


@@ 229,8 229,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  [5] = LAYOUT_ergodox(
	KC_GRV,		KC_1,			KC_2,	KC_3,		KC_4,		KC_5,		KC_6,
	KC_TAB,		KC_Q,			KC_W,	KC_E,		KC_R,		KC_T,		KC_TRNS,
	KC_LCTL,	KC_A,			KC_S,	KC_D,		KC_F,		KC_G,			
	KC_LSFT,	KC_Z,			KC_X,	KC_C,		KC_V,		KC_B,		KC_MPLY,		
	KC_LCTL,	KC_A,			KC_S,	KC_D,		KC_F,		KC_G,
	KC_LSFT,	KC_Z,			KC_X,	KC_C,		KC_V,		KC_B,		KC_MPLY,
	KC_LCTL,	LALT(KC_TAB),	TO(0),	KC_LALT,	KC_SPC,
																KC_MPRV,	KC_MNXT,
																  			KC_VOLU,


@@ 249,7 249,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

void matrix_scan_user(void) {

	uint8_t layer = biton32(layer_state);
	uint8_t layer = get_highest_layer(layer_state);

	ergodox_board_led_off();
	ergodox_right_led_1_off();

M layouts/community/ergodox/colemak/keymap.c => layouts/community/ergodox/colemak/keymap.c +1 -1
@@ 138,7 138,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/colemak_code_friendly/keymap.c => layouts/community/ergodox/colemak_code_friendly/keymap.c +10 -10
@@ 59,7 59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  KC_ESC,         KC_A,          KC_R,          KC_S,     KC_T,            KC_D,
  KC_LSFT,        LCTL_T(KC_Z),  LGUI_T(KC_X),  KC_C,     KC_V,            RALT_T(KC_B),    KC_LCBR,
  KC_LCTL,        KC_LGUI,       KC_LALT,       KC_LBRC,  KC_RBRC,
  

                                                              KC_HOME, KC_END,
                                                                      KC_PSCR,
                                            MO(LAYER_LNUM), KC_ENT,   KC_LGUI,


@@ 101,7 101,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  KC_TRNS, KC_F8,      KC_F7,   KC_F6,    KC_F5,    M_IN_PRN,
  KC_TRNS, KC_F4,      KC_F3,   KC_F2,    KC_F1,    M_IN_BRC,       KC_TRNS,
  KC_MUTE, KC_VOLD,    KC_VOLU, KC_TRNS,  KC_TRNS,
  

                                                       KC_TRNS,   KC_TRNS,
                                                           DYN_REC_START1,
                                        KC_TRNS, KC_TRNS, DYN_MACRO_PLAY1,


@@ 126,8 126,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 * |--------+------+------+------+------+------|      |  |  }   |------+------+------+------+------+--------|
 * |        |  F4  |  F3  |  F2  |  F1  |  []  |      |  |      |K/RAlt|   M  |   ,  |./Supe|/ RCtl| RShift |
 * '--------+------+------+------+------+-------------'  '-------------+------+------+------+------+--------'
 *   | MUTE | VOLD | VOLU |      |      |                              | Left | Down | Up   |Right | Del  |  
 *   '----------------------------------'                              '----------------------------------'  
 *   | MUTE | VOLD | VOLU |      |      |                              | Left | Down | Up   |Right | Del  |
 *   '----------------------------------'                              '----------------------------------'
 *                                      .-------------.  .-------------.
 *                                      |      |      |  | Ins  |ScrLck|
 *                               .------+------+------|  |------+------+------.


@@ 143,7 143,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  KC_TRNS, KC_F8,      KC_F7,   KC_F6,    KC_F5,    M_IN_PRN,
  KC_TRNS, KC_F4,      KC_F3,   KC_F2,    KC_F1,    M_IN_BRC,       KC_TRNS,
  KC_MUTE, KC_VOLD,    KC_VOLU, KC_TRNS,  KC_TRNS,
  

                                                       KC_TRNS,   KC_TRNS,
                                                           DYN_REC_START1,
                                        KC_TRNS, KC_TRNS, DYN_MACRO_PLAY1,


@@ 185,7 185,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  S(KC_ESC),   S(KC_A),     S(KC_R),     S(KC_S),     S(KC_T),     S(KC_D),
  KC_LSFT,     S(KC_Z),     S(KC_X),     S(KC_C),     S(KC_V),     S(KC_B),    KC_LCBR,
  S(KC_LCTL),  S(KC_LGUI),  S(KC_LALT),  S(KC_LBRC),  S(KC_RBRC),
  

                                                              S(KC_HOME), S(KC_END),
                                                                         S(KC_PSCR),
                                                   KC_CAPS, S(KC_ENT),   S(KC_LGUI),


@@ 227,7 227,7 @@ static bool process_record_dynamic_macro_wrapper(uint16_t keycode, keyrecord_t *
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  

  /* the purpose of the ..._wrapper is to detect START/ST0P keys to
     light the blue led during recording */
  if (!process_record_dynamic_macro_wrapper(keycode, record)) {


@@ 308,19 308,19 @@ void matrix_init_user(void) {

/* Runs constantly in the background, in a loop. */
void matrix_scan_user(void) {
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);

  //led 1, RED, Caps-Lock ON
  //if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ergodox_right_led_1_on();

  //led 2, GREEN
  if (layer == LAYER_NUM) 
  if (layer == LAYER_NUM)
      ergodox_right_led_2_on();
  else
      ergodox_right_led_2_off();

  //led 3, BLUE
  if (recording_dynamic_macro) 
  if (recording_dynamic_macro)
      ergodox_right_led_3_on();
  else
      ergodox_right_led_3_off();

M layouts/community/ergodox/colemak_programmer/keymap.c => layouts/community/ergodox/colemak_programmer/keymap.c +4 -4
@@ 23,7 23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 *                                 |symbol|N-Lock| End   |       | PgDn |       |      |
 *                                 `---------------------'       `---------------------'
 */
[0] = LAYOUT_ergodox(  // layer 0 : default 
[0] = LAYOUT_ergodox(  // layer 0 : default
        // left hand
        KC_GRV,     KC_1,       KC_2,       KC_3,       KC_4,        KC_5,        KC_6,
        KC_TAB,     KC_Q,       KC_W,       KC_F,       KC_P,        KC_G,        TG(3),


@@ 68,7 68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 *                                 |      |      |      |       |      |        |      |
 *                                 `--------------------'       `----------------------'
 */
[1] = LAYOUT_ergodox(  // layer 1: QWERTY layer (games) 
[1] = LAYOUT_ergodox(  // layer 1: QWERTY layer (games)
       KC_TRNS,        KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS,
       KC_TRNS,        KC_Q,       KC_W,       KC_E,       KC_R,       KC_T,       KC_TRNS,
       KC_TRNS,        KC_A,       KC_S,       KC_D,       KC_F,       KC_G,


@@ 78,7 78,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
                       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_Y,       KC_U,       KC_I,       KC_O,       KC_P,       KC_TRNS,


@@ 243,7 243,7 @@ void matrix_scan_user(void) {
    //bit 1: default layer 1 - QWERTY
    if (default_layer_state & (1UL << 1)) ergodox_right_led_1_on();

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    //layer 2 : Symbols (& Fs)
    //if (layer == 2) ergodox_right_led_2_on();

M layouts/community/ergodox/common_nighthawk/keymap.c => layouts/community/ergodox/common_nighthawk/keymap.c +1 -1
@@ 188,7 188,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/csharp_dev/keymap.c => layouts/community/ergodox/csharp_dev/keymap.c +20 -20
@@ 57,7 57,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        KC_RPRN,        KC_Q,         KC_W,   KC_E,   KC_R,   KC_T,   KC_BSPACE,
        KC_LCBR,        KC_A,         KC_S,   KC_D,   KC_F,   KC_G,
        KC_RCBR,        ALT_T(KC_Z),  KC_X,   KC_C,   KC_V,   KC_B,   KC_SLASH,
        CTL_T(KC_TAB), LSFT(KC_COMMA),LSFT(KC_DOT),KC_PIPE,KC_AMPR, 
        CTL_T(KC_TAB), LSFT(KC_COMMA),LSFT(KC_DOT),KC_PIPE,KC_AMPR,
                                              LT(1,KC_DOT),  KC_COMM,
                                                              LCTL(KC_C),
                                               GUI_T(KC_ENTER),SFT_T(KC_SPACE),LCTL(KC_V),


@@ 125,81 125,81 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
		case MACRO_PUBLIC:
			if (record->event.pressed) {
				return MACRO( T(P), T(U), T(B), T(L), T(I), T(C), T(SPACE),END);
			} 
			}
			break;
		case MACRO_PRIVATE:
			if (record->event.pressed) {
				return MACRO( T(P), T(R), T(I), T(V), T(A), T(T), T(E), T(SPACE),END);
			} 
			}
			break;
		case MACRO_STATIC:
			if (record->event.pressed) {
				return MACRO( T(S), T(T), T(A), T(T), T(I), T(C), T(SPACE), END);
			} 
			}
			break;
		case MACRO_CONST:
			if (record->event.pressed) {
				return MACRO( T(C), T(O), T(N), T(S), T(T), T(SPACE), END);
			} 
			}
			break;
		case MACRO_VOID:
			if (record->event.pressed) {
				return MACRO( T(V), T(O), T(I), T(D), T(SPACE), END);
			} 
			}
			break;
		case MACRO_VAR:
			if (record->event.pressed) {
				return MACRO( T(V), T(A), T(R), T(SPACE), END);
			} 
			}
			break;
		case MACRO_STRING:
			if (record->event.pressed) {
				return MACRO( T(S), T(T), T(R), T(I), T(N), T(G), T(SPACE), END);
			} 
			break;		
			}
			break;
		case MACRO_BOOL:
			if (record->event.pressed) {
				return MACRO( T(B), T(O), T(O), T(L), T(SPACE), END);
			} 
			break;		
			}
			break;
		case MACRO_INT:
			if (record->event.pressed) {
				return MACRO( T(I), T(N), T(T), T(SPACE), END);
			} 
			}
			break;
		case MACRO_FLOAT:
			if (record->event.pressed) {
				return MACRO( T(F), T(L), T(O), T(A),T(T),T(SPACE), END);
			} 
			}
			break;
		case MACRO_RETURN:
			if (record->event.pressed) {
				return MACRO( T(R), T(E), T(T), T(U),T(R),T(N), END);
			} 
			}
			break;
		case MACRO_NULL:
			if (record->event.pressed) {
				return MACRO( T(N), T(U), T(L), T(L), END);
			} 
			}
		case MACRO_BREAK:
			if (record->event.pressed) {
				return MACRO( T(B), T(R), T(E), T(A), T(K), T(SCOLON), END);
			} 
			}
			break;
		case MACRO_TODO:
			if (record->event.pressed) {
				return MACRO( T(SLASH), T(SLASH), D(LSHIFT) ,T(T), T(O), T(D), T(O),U(LSHIFT), T(SPACE),END);
			} 
			}
			break;
		case MACRO_NEW:
			if (record->event.pressed) {
				return MACRO( T(N), T(E), T(W), T(SPACE), END);
			} 
			}
			break;
		case MACRO_PARENTHESE:
			if (record->event.pressed) {
				return MACRO(  D(LSHIFT),T(9), T(0),U(LSHIFT), T(SCOLON), END);
			} 
			}
			break;
      }
    return MACRO_NONE;


@@ 213,7 213,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/dave/keymap.c => layouts/community/ergodox/dave/keymap.c +1 -1
@@ 147,7 147,7 @@ void matrix_scan_user(void) {
     */
    static uint8_t leds[4];
    uint8_t led;
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();


M layouts/community/ergodox/deadcyclo/keymap.c => layouts/community/ergodox/deadcyclo/keymap.c +8 -8
@@ 90,10 90,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
		KC_LALT,  KC_RALT,KC_LEAD,LCTL(LSFT(KC_U)),          LT(SYMB,KC_TILD),
             KC_PGUP,        KC_INS,
             KC_PGDN,
             KC_RBRC,KC_BSPC, KC_ENT   
             KC_RBRC,KC_BSPC, KC_ENT
    ),
/* Keymap 1: Symbol Layer LCTL(LSFT(KC_U))  
 *                                                  
/* Keymap 1: Symbol Layer LCTL(LSFT(KC_U))
 *
 * ,--------------------------------------------------.           ,--------------------------------------------------.
 * |        |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |           |  F6  |  F7  |  F8  |  F9  |  F10 |  F11 |   F12  |
 * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|


@@ 192,7 192,7 @@ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, I3_RUN, KC_TRNS, KC_TRNS,
 *                                        ,-------------.       ,-------------.
 *                                        |      |      |       |   ▒  |  ▓   |
 *                                 ,------|------|------|       |------+------+------.
 *                                 |      |      |      |       |      |      |      | 
 *                                 |      |      |      |       |      |      |      |
 *                                 |      |      |------|       |------|      |      |
 *                                 |      |      |      |       |      |      |      |
 *                                 `--------------------'       `--------------------'


@@ 218,7 218,7 @@ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, I3_RUN, KC_TRNS, KC_TRNS,
		KC_TRNS, KC_TRNS, KC_TRNS
),

/* Keymap 4: Unicode 2 
/* Keymap 4: Unicode 2
 *
 * ,--------------------------------------------------.           ,--------------------------------------------------.
 * |        |  ¹   |  ²   |  ³   |  ⁴   |  ⁵   |  ⁶   |           |  ⁶   |  ⁷   |  ⁸   |  ⁹   |  ⁰   |  ℃   |   ™    |


@@ 234,12 234,12 @@ KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, I3_RUN, KC_TRNS, KC_TRNS,
 *                                        ,-------------.       ,-------------.
 *                                        |      |      |       |      |      |
 *                                 ,------|------|------|       |------+------+------.
 *                                 |      |      |      |       |      |      |      | 
 *                                 |      |      |      |       |      |      |      |
 *                                 |      |      |------|       |------|      |      |
 *                                 |      |      |      |       |      |      |      |
 *                                 `--------------------'       `--------------------'
 */
// Unicode 2   
// Unicode 2
[UNI2] = LAYOUT_ergodox(
		KC_TRNS, UC(0x00b9), UC(0x00b2), UC(0x00b3), UC(0x2074), UC(0x2075), UC(0x2076),
		KC_TRNS, UC(0x2081), UC(0x2082), UC(0x2083), UC(0x2084), UC(0x2085), UC(0x2086),


@@ 346,7 346,7 @@ void matrix_init_user(void) {

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/dragon788/keymap.c => layouts/community/ergodox/dragon788/keymap.c +1 -1
@@ 183,7 183,7 @@ LAYOUT_ergodox(
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/dvorak/keymap.c => layouts/community/ergodox/dvorak/keymap.c +1 -1
@@ 138,7 138,7 @@ LAYOUT_ergodox(
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/dvorak_emacs/keymap.c => layouts/community/ergodox/dvorak_emacs/keymap.c +1 -1
@@ 120,7 120,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/dvorak_emacs_software/keymap.c => layouts/community/ergodox/dvorak_emacs_software/keymap.c +1 -1
@@ 121,7 121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/dvorak_intl_squisher/keymap.c => layouts/community/ergodox/dvorak_intl_squisher/keymap.c +1 -1
@@ 139,7 139,7 @@ LAYOUT_ergodox(  // layer 0 : default
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/dvorak_plover/keymap.c => layouts/community/ergodox/dvorak_plover/keymap.c +1 -1
@@ 181,7 181,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/dvorak_programmer/keymap.c => layouts/community/ergodox/dvorak_programmer/keymap.c +34 -34
@@ 45,7 45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        KC_TAB,                    KC_QUOT,        KC_COMM,     KC_DOT,       KC_P,        KC_Y,        MO(KEY_SEL),
        MO(BRACKETS),              KC_A,           KC_O,        KC_E,         KC_U,        KC_I,
        MO(SHELL_NAV),             KC_SCLN,        KC_Q,        KC_J,         KC_K,        KC_X,        MO(KEY_NAV),
                   OSL(SHORTCUTS),OSM(MOD_LCTL), OSM(MOD_LALT),OSL(SYMBOL),MO(NUMBER),  
                   OSL(SHORTCUTS),OSM(MOD_LCTL), OSM(MOD_LALT),OSL(SYMBOL),MO(NUMBER),
                                              // thumb cluster
                                               OSM(MOD_LSFT), RCTL(KC_S),
                                                          RCTL(KC_DEL),


@@ 62,10 62,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
             KC_UP,
             KC_DOWN,KC_ENT, KC_SPC
    ),
     

	 
	 



// shell navigation layer
[SHELL_NAV] = LAYOUT_ergodox(
       // left hand


@@ 92,7 92,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       KC_TRNS, KC_TRNS, KC_TRNS
),

    

// key navigation layer
[KEY_NAV] = LAYOUT_ergodox(
       // left hand


@@ 177,7 177,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,       
       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
                                       KC_TRNS,KC_TRNS,
                                               KC_TRNS,


@@ 187,7 187,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       KC_TRNS, KC_PLUS, KC_AMPR, KC_ASTR, KC_GRAVE,KC_TILD, KC_TRNS,
                KC_MINS, KC_DLR,  KC_PERC, KC_CIRC, KC_PIPE, KC_TRNS,
       KC_TRNS, KC_EQUAL,KC_EXLM, KC_AT,   KC_HASH, 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(SEMICOLON_NEWLINE), M(END_NEWLINE),
       KC_TRNS,
       KC_TRNS, KC_TRNS, KC_TRNS


@@ 198,7 198,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       KC_TRNS,KC_TRNS,KC_TRNS,             KC_TRNS,            KC_TRNS,               KC_TRNS,KC_TRNS,
       KC_TRNS,KC_TRNS,M(OPEN_CLOSE_CURLY), M(OPEN_CLOSE_PAREN),M(OPEN_CLOSE_BRACKET), KC_TRNS,KC_TRNS,
       KC_TRNS,KC_LPRN, KC_RPRN,            KC_LBRC,            KC_RBRC,               KC_TRNS,
       KC_TRNS,KC_TRNS,KC_TRNS,             KC_LCBR,            KC_RCBR,               KC_TRNS,KC_TRNS,       
       KC_TRNS,KC_TRNS,KC_TRNS,             KC_LCBR,            KC_RCBR,               KC_TRNS,KC_TRNS,
       KC_TRNS,KC_TRNS,KC_TRNS,             KC_TRNS,            KC_TRNS,
                                        KC_TRNS,KC_TRNS,
                                               KC_TRNS,


@@ 207,8 207,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
       KC_TRNS, KC_TRNS, M(OPEN_CLOSE_BRACKET),M(OPEN_CLOSE_PAREN),M(OPEN_CLOSE_CURLY),KC_TRNS,KC_TRNS,
                KC_TRNS, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_TRNS,
       KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_TRNS, 
                         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
       KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_TRNS,
                         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
       KC_TRNS, KC_TRNS,
       KC_TRNS,
       KC_TRNS, KC_TRNS, KC_TRNS


@@ 219,7 219,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       KC_NO,  MEH(KC_F1), MEH(KC_F2), MEH(KC_F3),  MEH(KC_F4), MEH(KC_F5), MEH(KC_F6),
       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,       
       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
                                         MEH(KC_0),MEH(KC_1),
                                                   MEH(KC_2),


@@ 272,12 272,12 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
        case MC_CUT_LINE:
            if (record->event.pressed) {
                return MACRO( T(HOME), D(LSFT), T(END), U(LSFT), D(LCTL), T(X), U(LCTL), END);
            }        
            }
            break;
        case MC_PASTE_LINE:
            if (record->event.pressed) {
                return MACRO( T(END), T(ENTER), D(LCTL), T(V), U(LCTL), END);
            }                
            }
            break;
        case MC_NEW_SEARCH_TAB:
             if (record->event.pressed) {


@@ 287,17 287,17 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
        case SCREEN_TAB_LEFT:
             if (record->event.pressed) {
                return MACRO( D(LCTL), T(A), U(LCTL), T(P), END);
            }        
            }
            break;
        case SCREEN_TAB_RIGHT:
             if (record->event.pressed) {
                return MACRO( D(LCTL), T(A), U(LCTL), T(N), END);
            }                    
            }
            break;
        case SCREEN_NEW_TAB:
             if (record->event.pressed) {
                return MACRO( D(LCTL), T(A), U(LCTL), T(C), END);
            }                                
            }
        break;
        case SCREEN_COPY_MODE:
            if (record->event.pressed) {


@@ 306,14 306,14 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
        break;
        case SCREEN_PASTE:
            if (record->event.pressed) {
                return MACRO( D(LCTL), T(A), U(LCTL), T(RBRC), END); 
                return MACRO( D(LCTL), T(A), U(LCTL), T(RBRC), END);
            }
        break;        
        break;
        case SWITCH_NDS:
             if (record->event.pressed) {
                return MACRO( D(LSFT), T(F11), U(LSFT), W(255), D(LALT), T(TAB), U(LALT), END);
            }                                
        break;        
            }
        break;
        case OPEN_CLOSE_PAREN:
            if (record->event.pressed) {
                return MACRO( D(LSFT), T(9), T(0), U(LSFT), T(LEFT), END);


@@ 323,39 323,39 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
            if (record->event.pressed) {
                return MACRO( T(LBRC), T(RBRC), T(LEFT), END);
            }
        break;        
        break;
        case OPEN_CLOSE_CURLY:
            if (record->event.pressed) {
                return MACRO( D(LSFT), T(LBRC), T(RBRC), U(LSFT), T(LEFT), END);
            }
        break;                
        break;
        case OPEN_CLOSE_SINGLE_QUOTE:
            if (record->event.pressed) {
                return MACRO( T(QUOT), T(QUOT), T(LEFT), END);
            }
        break;        
        break;
        case OPEN_CLOSE_DOUBLE_QUOTE:
            if (record->event.pressed) {
                return MACRO( D(LSFT), T(QUOT), T(QUOT), U(LSFT), T(LEFT), END);
            }
        break;                        
        break;
        case SHELL_RECALL_LAST_ARG_REMOVE_FIRST_COMMAND:
            if (record->event.pressed) {
                return MACRO( T(UP), T(HOME), D(LALT), T(D), U(LALT), END);
            }
        break;                                
        break;
		case SEMICOLON_NEWLINE:
            if (record->event.pressed) {
                return MACRO( T(END), T(SCLN), T(ENTER), END);
            }		
            }
		break;
		case END_NEWLINE:
            if (record->event.pressed) {
                return MACRO( T(END), T(ENTER), END);
            }		
		break;	
		
        
            }
		break;


      }
    return MACRO_NONE;
};


@@ 378,7 378,7 @@ void led_set_user(uint8_t usb_led) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_2_off();


@@ 387,13 387,13 @@ void matrix_scan_user(void) {
        case NUMBER:
        case SYMBOL:
		case BRACKETS:
		//case SHELL_LAYER:		
		//case SHELL_LAYER:
            ergodox_right_led_2_on();
            break;
        case KEY_NAV:
        case KEY_SEL:
            ergodox_right_led_3_on();
            break;        
            break;
        case SHORTCUTS:
            ergodox_right_led_2_on();
            ergodox_right_led_3_on();


@@ 401,6 401,6 @@ void matrix_scan_user(void) {
        default:
            // none
            break;
    } 
    }
    return;
};

M layouts/community/ergodox/dvorak_programmer_swe/keymap.c => layouts/community/ergodox/dvorak_programmer_swe/keymap.c +1 -1
@@ 306,7 306,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/dvorak_spanish/keymap.c => layouts/community/ergodox/dvorak_spanish/keymap.c +21 -22
@@ 192,13 192,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
            if (record->event.pressed) {
                key_timer = timer_read();
                register_code(KC_RSFT);
            } else { 
            } else {
                unregister_code(KC_RSFT);
                if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { 
                    register_code(KC_RALT); 
                    register_code(KC_BSLS); 
                    unregister_code(KC_BSLS); 
                    unregister_code(KC_RALT); 
                if (timer_elapsed(key_timer) < KEY_TAP_SLOW) {
                    register_code(KC_RALT);
                    register_code(KC_BSLS);
                    unregister_code(KC_BSLS);
                    unregister_code(KC_RALT);
                }
            }
            break;


@@ 207,13 207,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
            if (record->event.pressed) {
                key_timer = timer_read();
                register_code(KC_LALT);
            } else { 
            } else {
                unregister_code(KC_LALT);
                if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { 
                    register_code(KC_RALT); 
                    register_code(KC_LBRACKET); 
                    unregister_code(KC_LBRACKET); 
                    unregister_code(KC_RALT); 
                if (timer_elapsed(key_timer) < KEY_TAP_SLOW) {
                    register_code(KC_RALT);
                    register_code(KC_LBRACKET);
                    unregister_code(KC_LBRACKET);
                    unregister_code(KC_RALT);
                }
            }
            break;


@@ 222,13 222,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
            if (record->event.pressed) {
                key_timer = timer_read();
                register_code(KC_LALT);
            } else { 
            } else {
                unregister_code(KC_LALT);
                if (timer_elapsed(key_timer) < KEY_TAP_SLOW) { 
                    register_code(KC_RALT); 
                    register_code(KC_RBRACKET); 
                    unregister_code(KC_RBRACKET); 
                    unregister_code(KC_RALT); 
                if (timer_elapsed(key_timer) < KEY_TAP_SLOW) {
                    register_code(KC_RALT);
                    register_code(KC_RBRACKET);
                    unregister_code(KC_RBRACKET);
                    unregister_code(KC_RALT);
                }
            }
            break;


@@ 236,7 236,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
        case CAPS: {
            if (record->event.pressed) {
                register_code(KC_CAPSLOCK);
            } else { 
            } else {
                unregister_code(KC_CAPSLOCK);
            }
            break;


@@ 253,7 253,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();


@@ 270,11 270,10 @@ void matrix_scan_user(void) {
            // none
            break;
    }
    

    // Turn the caps lock led on
    if (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) {
        ergodox_right_led_1_on();
    }

}


M layouts/community/ergodox/dvorak_svorak_a5/keymap.c => layouts/community/ergodox/dvorak_svorak_a5/keymap.c +1 -1
@@ 186,7 186,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/emacs_osx_dk/keymap.c => layouts/community/ergodox/emacs_osx_dk/keymap.c +1 -1
@@ 138,7 138,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/french_hacker/keymap.c => layouts/community/ergodox/french_hacker/keymap.c +1 -1
@@ 147,7 147,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/galson/keymap.c => layouts/community/ergodox/galson/keymap.c +2 -2
@@ 53,7 53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    ),
/* Keymap 1: Symbol Layer
 *
 * ,--------------------------------------------------. 
 * ,--------------------------------------------------.
 * |Version |  F1  |  F2  |  F3  |  F4  |  F5  |      |           |      |  F6  |  F7  |  F8  |  F9  |  F10 |   F11  |
 * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
 * |        |   !  |   @  |   {  |   }  |   |  |      |           |      |   Up |   7  |   8  |   9  |   *  |   F12  |


@@ 157,7 157,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/german-kinergo/keymap.c => layouts/community/ergodox/german-kinergo/keymap.c +1 -1
@@ 165,7 165,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/german-lukas/keymap.c => layouts/community/ergodox/german-lukas/keymap.c +1 -1
@@ 188,7 188,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/german-manuneo/compile_keymap.py => layouts/community/ergodox/german-manuneo/compile_keymap.py +46 -64
@@ 27,29 27,34 @@ PY2 = sys.version_info.major == 2
if PY2:
    chr = unichr


KEYBOARD_LAYOUTS = {
    # These map positions in the parsed layout to
    # positions in the LAYOUT_ergodox MATRIX
    'ergodox_ez': [
        [ 0,  1,  2,  3,  4,  5,  6],  [38, 39, 40, 41, 42, 43, 44],
        [ 7,  8,  9, 10, 11, 12, 13],  [45, 46, 47, 48, 49, 50, 51],
        [14, 15, 16, 17, 18, 19    ],  [    52, 53, 54, 55, 56, 57],
        [20, 21, 22, 23, 24, 25, 26],  [58, 59, 60, 61, 62, 63, 64],
        [27, 28, 29, 30, 31        ],  [        65, 66, 67, 68, 69],
        [                    32, 33],  [70, 71                    ],
        [                        34],  [72                        ],
        [                35, 36, 37],  [73, 74, 75                ],
        [0, 1, 2, 3, 4, 5, 6],
        [38, 39, 40, 41, 42, 43, 44],
        [7, 8, 9, 10, 11, 12, 13],
        [45, 46, 47, 48, 49, 50, 51],
        [14, 15, 16, 17, 18, 19],
        [52, 53, 54, 55, 56, 57],
        [20, 21, 22, 23, 24, 25, 26],
        [58, 59, 60, 61, 62, 63, 64],
        [27, 28, 29, 30, 31],
        [65, 66, 67, 68, 69],
        [32, 33],
        [70, 71],
        [34],
        [72],
        [35, 36, 37],
        [73, 74, 75],
    ]
}

ROW_INDENTS = {
    'ergodox_ez': [0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 5, 0, 6, 0, 4, 0]
}
ROW_INDENTS = {'ergodox_ez': [0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 5, 0, 6, 0, 4, 0]}

BLANK_LAYOUTS = [
# Compact Layout
"""
    # Compact Layout
    """
.------------------------------------.------------------------------------.
|     |    |    |    |    |    |     |     |    |    |    |    |    |     |
!-----+----+----+----+----+----------!-----+----+----+----+----+----+-----!


@@ 70,8 75,8 @@ BLANK_LAYOUTS = [
                  '-----------------' '-----------------'
""",

# Wide Layout
"""
    # Wide Layout
    """
.---------------------------------------------. .---------------------------------------------.
|       |     |     |     |     |     |       | !       |     |     |     |     |     |       |
!-------+-----+-----+-----+-----+-------------! !-------+-----+-----+-----+-----+-----+-------!


@@ 93,26 98,22 @@ BLANK_LAYOUTS = [
""",
]


DEFAULT_CONFIG = {
    "keymaps_includes": [
        "keymap_common.h",
    ],
    "keymaps_includes": ["keymap_common.h",],
    'filler': "-+.'!:x",
    'separator': "|",
    'default_key_prefix': ["KC_"],
}


SECTIONS = [
    'layout_config',
    'layers',
]


#       Markdown Parsing

ONELINE_COMMENT_RE = re.compile(r"""
ONELINE_COMMENT_RE = re.compile(
    r"""
    ^                       # comment must be at the start of the line
    \s*                     # arbitrary whitespace
    //                      # start of the comment


@@ 121,22 122,26 @@ ONELINE_COMMENT_RE = re.compile(r"""
""", re.MULTILINE | re.VERBOSE
)

INLINE_COMMENT_RE = re.compile(r"""
INLINE_COMMENT_RE = re.compile(
    r"""
    ([\,\"\[\]\{\}\d])      # anythig that might end a expression
    \s+                     # comment must be preceded by whitespace
    //                      # start of the comment
    \s                      # and succeded by whitespace
    (?:[^\"\]\}\{\[]*)      # the comment (except things which might be json)
    $                       # until the end of line
""", re.MULTILINE | re.VERBOSE)
""", re.MULTILINE | re.VERBOSE
)

TRAILING_COMMA_RE = re.compile(r"""
TRAILING_COMMA_RE = re.compile(
    r"""
    ,                       # the comma
    (?:\s*)                 # arbitrary whitespace
    $                       # only works if the trailing comma is followed by newline
    (\s*)                   # arbitrary whitespace
    ([\]\}])                # end of an array or object
""", re.MULTILINE | re.VERBOSE)
""", re.MULTILINE | re.VERBOSE
)


def loads(raw_data):


@@ 178,9 183,7 @@ def parse_config(path):
    def end_section():
        if section['start_line'] >= 0:
            if section['name'] == 'layout_config':
                config.update(loads("\n".join(
                    section['code_lines']
                )))
                config.update(loads("\n".join(section['code_lines'])))
            elif section['sub_name'].startswith('layer'):
                layer_name = section['sub_name']
                config['layer_lines'][layer_name] = section['code_lines']


@@ 215,6 218,7 @@ def parse_config(path):
    assert 'layout' in config
    return config


#       header file parsing

IF0_RE = re.compile(r"""


@@ 224,7 228,6 @@ IF0_RE = re.compile(r"""
    #endif
""", re.MULTILINE | re.DOTALL | re.VERBOSE)


COMMENT_RE = re.compile(r"""
    /\*
    .*?


@@ 244,6 247,7 @@ def regex_partial(re_str_fmt, flags):
    def partial(*args, **kwargs):
        re_str = re_str_fmt.format(*args, **kwargs)
        return re.compile(re_str, flags)

    return partial




@@ 256,7 260,6 @@ KEYDEF_REP = regex_partial(r"""
    )                   # capture group end
""", re.MULTILINE | re.DOTALL | re.VERBOSE)


ENUM_RE = re.compile(r"""
    (
        enum


@@ 268,7 271,6 @@ ENUM_RE = re.compile(r"""
    )                   # capture group end
""", re.MULTILINE | re.DOTALL | re.VERBOSE)


ENUM_KEY_REP = regex_partial(r"""
    (
        {}              # the prefixes


@@ 309,14 311,13 @@ def parse_valid_keys(config, out_path):
        include_path = os.path.join(dirpath, include)
        if os.path.exists(include_path):
            header_data = read_header_file(include_path)
            valid_keycodes.update(
                parse_keydefs(config, header_data)
            )
            valid_keycodes.update(parse_keydefs(config, header_data))
    return valid_keycodes


#       Keymap Parsing


def iter_raw_codes(layer_lines, filler, separator):
    filler_re = re.compile("[" + filler + " ]")
    for line in layer_lines:


@@ 346,28 347,21 @@ LAYER_CHANGE_RE = re.compile(r"""
    (DF|TG|MO)\(\d+\)
""", re.VERBOSE)


MACRO_RE = re.compile(r"""
    M\(\w+\)
""", re.VERBOSE)


UNICODE_RE = re.compile(r"""
    U[0-9A-F]{4}
""", re.VERBOSE)


NON_CODE = re.compile(r"""
    ^[^A-Z0-9_]$
""", re.VERBOSE)


def parse_uni_code(raw_code):
    macro_id = "UC_" + (
        unicodedata.name(raw_code)
        .replace(" ", "_")
        .replace("-", "_")
    )
    macro_id = "UC_" + (unicodedata.name(raw_code).replace(" ", "_").replace("-", "_"))
    code = "M({})".format(macro_id)
    uc_hex = "{:04X}".format(ord(raw_code))
    return code, macro_id, uc_hex


@@ 407,19 401,13 @@ def parse_code(raw_code, key_prefixes, valid_keycodes):

def parse_keymap(config, key_indexes, layer_lines, valid_keycodes):
    keymap = {}
    raw_codes = list(iter_raw_codes(
        layer_lines, config['filler'], config['separator']
    ))
    raw_codes = list(iter_raw_codes(layer_lines, config['filler'], config['separator']))
    indexed_codes = iter_indexed_codes(raw_codes, key_indexes)
    key_prefixes = config['key_prefixes']
    for raw_code, key_index, row_index in indexed_codes:
        code, macro_id, uc_hex = parse_code(
            raw_code, key_prefixes, valid_keycodes
        )
        code, macro_id, uc_hex = parse_code(raw_code, key_prefixes, valid_keycodes)
        # TODO: line numbers for invalid codes
        err_msg = "Could not parse key '{}' on row {}".format(
            raw_code, row_index
        )
        err_msg = "Could not parse key '{}' on row {}".format(raw_code, row_index)
        assert code is not None, err_msg
        # print(repr(raw_code), repr(code), macro_id, uc_hex)
        if macro_id:


@@ 432,17 420,14 @@ def parse_keymap(config, key_indexes, layer_lines, valid_keycodes):

def parse_keymaps(config, valid_keycodes):
    keymaps = collections.OrderedDict()
    key_indexes = config.get(
        'key_indexes', KEYBOARD_LAYOUTS[config['layout']]
    )
    key_indexes = config.get('key_indexes', KEYBOARD_LAYOUTS[config['layout']])
    # TODO: maybe validate key_indexes

    for layer_name, layer_lines, in config['layer_lines'].items():
        keymaps[layer_name] = parse_keymap(
            config, key_indexes, layer_lines, valid_keycodes
        )
        keymaps[layer_name] = parse_keymap(config, key_indexes, layer_lines, valid_keycodes)
    return keymaps


#       keymap.c output

USERCODE = """


@@ 453,7 438,7 @@ void matrix_init_user(void) {

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();


@@ 572,7 557,6 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {{
}};
"""


UNICODE_MACRO_TEMPLATE = """
case {macro_id}:
    unicode_action_function(0x{hi:02x}, 0x{lo:02x});


@@ 584,9 568,7 @@ def unicode_macro_cases(config):
    for macro_id, uc_hex in config['unicode_macros'].items():
        hi = int(uc_hex, 16) >> 8
        lo = int(uc_hex, 16) & 0xFF
        yield UNICODE_MACRO_TEMPLATE.format(
            macro_id=macro_id, hi=hi, lo=lo
        )
        yield UNICODE_MACRO_TEMPLATE.format(macro_id=macro_id, hi=hi, lo=lo)


def iter_keymap_lines(keymap, row_indents=None):

M layouts/community/ergodox/german-manuneo/keymap.c => layouts/community/ergodox/german-manuneo/keymap.c +1 -1
@@ 741,7 741,7 @@ void matrix_init_user(void) {

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/german/keymap.c => layouts/community/ergodox/german/keymap.c +1 -1
@@ 140,7 140,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/haegin/keymap.c => layouts/community/ergodox/haegin/keymap.c +1 -1
@@ 226,7 226,7 @@ qk_tap_dance_action_t tap_dance_actions[] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/ishigoya-jp/keymap.c => layouts/community/ergodox/ishigoya-jp/keymap.c +39 -39
@@ 109,7 109,7 @@ static uint16_t start;
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
 *
 * 
 *
 * ,----------------------------------------------------.           ,--------------------------------------------------.
 * | En / 和  |      |   ^  |   %  |      |      |Selall|           | Undo |      |   $  |   @  |   LT |  UP  |   RT   |
 * |----------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|


@@ 129,9 129,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 *                                 |      |      | Num  |       |  Esc |        |      |
 *                                 `--------------------'       `----------------------'
 *
 * 
 *
 * tmux prefix set to C-b
 * 
 *
 */
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*


@@ 175,9 175,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 *                                 | shift|  fn  |------|       |------|      |kazari|
 *                                 |      |      | Num  |       |      |      |      |
 *                                 `--------------------'       `--------------------'
 * 
 * 
 * 
 *
 *
 *
 */
[JP] = LAYOUT_ergodox(
       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,


@@ 218,14 218,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 *                                 |      |      |------|       |------|      |      |
 *                                 |      |      |      |       |      |      |      |
 *                                 `--------------------'       `--------------------'
 * 
 * 
 * 
 *
 *
 *
 */
[JPXON] = LAYOUT_ergodox(
	   KC_NO, KC_NO,    KC_NO,        KC_NO,    KC_NO, KC_NO, KC_NO,
	   KC_NO, KC_NO,    M(JPXE),        KC_NO,    M(JPXKE),   KC_NO, KC_NO,
       KC_NO, KC_NO,    KC_NO,          M(JPXKA),      KC_NO, KC_NO, 
       KC_NO, KC_NO,    KC_NO,          M(JPXKA),      KC_NO, KC_NO,
       KC_NO, KC_NO,    KC_NO,        KC_NO,    KC_NO, KC_NO, KC_NO,
       KC_TRNS, KC_NO,    KC_NO,        KC_NO,    KC_NO,
                                           KC_NO, KC_NO,


@@ 261,14 261,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 *                                 |      |      |------|       |------|      |      |
 *                                 |      |      |      |       |      |      |      |
 *                                 `--------------------'       `--------------------'
 * 
 * 
 * 
 *
 *
 *
 */
[JPKAZARI] = LAYOUT_ergodox(
	   KC_NO, KC_NO,    KC_NO,        KC_NO,    KC_NO, KC_NO, KC_NO,
	   KC_NO, KC_NO,    M(JPGO),        M(JPZA),    M(JPBE), M(JPGE), KC_NO,
       KC_NO, M(JPDO),    M(JPJI),        M(JPGA),    M(JPGI), M(JPZU), 
       KC_NO, M(JPDO),    M(JPJI),        M(JPGA),    M(JPGI), M(JPZU),
       KC_NO, KC_NO,    M(JPZO),        M(JPBI),    M(JPDI), KC_NO, KC_NO,
       KC_TRNS, KC_NO,    KC_NO,        KC_NO,    KC_NO,
                                           KC_NO, KC_NO,


@@ 304,14 304,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 *                                 |      |      |------|       |------|      |      |
 *                                 |      |      |      |       |      |      |      |
 *                                 `--------------------'       `--------------------'
 * 
 * 
 * 
 *
 *
 *
 */
[JPTOPROW] = LAYOUT_ergodox(
	   KC_NO, KC_NO,    KC_NO,        KC_NO,    KC_NO,   KC_NO, KC_NO,
	   KC_NO, KC_NO,    KC_E,       KC_MINS,  M(JPRE), KC_NO, KC_NO,
       KC_NO, M(JPRA),  M(JPRI),       M(JPNA),  M(JPNO), M(JPMI), 
       KC_NO, M(JPRA),  M(JPRI),       M(JPNA),  M(JPNO), M(JPMI),
       KC_NO, KC_NO, KC_NO,    KC_NO,  KC_NO, KC_NO, KC_NO,
       KC_TRNS, KC_NO,    KC_NO,        KC_NO,    KC_NO,
                                           KC_NO, KC_NO,


@@ 348,14 348,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 *                                 |      |      |------|       |------|      |      |
 *                                 |      |      |      |       |      |      |      |
 *                                 `--------------------'       `--------------------'
 * 
 * 
 * 
 *
 *
 *
 */
[JPTRKZ] = LAYOUT_ergodox(
	   KC_NO, KC_NO,    KC_NO,        KC_NO,    KC_NO, KC_NO, KC_NO,
	   KC_NO, KC_NO,    KC_NO,        KC_NO,    M(JPPE),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,        M(JPPI),    KC_NO, KC_NO, KC_NO,
       KC_TRNS, KC_NO,    KC_NO,        KC_NO,    KC_NO,
                                           KC_NO, KC_NO,


@@ 397,7 397,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       // left hand
	   KC_NO, KC_F1,      KC_F2,          KC_F3,      KC_F4,   KC_F5,   KC_NO,
	   KC_NO, KC_NO,    KC_NO,        JP_DQUO,   KC_RBRACKET,   KC_BSPC, KC_SCLN,
       KC_NO, KC_NO,    KC_SLSH,        JP_PLUS,    LSFT(KC_RBRACKET),   JP_RCBR, 
       KC_NO, KC_NO,    KC_SLSH,        JP_PLUS,    LSFT(KC_RBRACKET),   JP_RCBR,
       KC_NO, KC_NO,    JP_ASTR,        KC_MINS,    LSFT(KC_8), LSFT(KC_9), JP_COLN,
       KC_TRNS, KC_NO,    KC_NO,        KC_NO,    KC_HASH,
                                           KC_NO, KC_NO,


@@ 417,7 417,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
	

  // MACRO only works in this function
	switch(id) {
		case 0:


@@ 445,9 445,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
				}
			}
			break;
			

		// kana macros start here
			

		case JPVU:
			if (record->event.pressed) {
				return MACRO( I(1), T(V), T(U), END);


@@ 641,7 641,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
		case JPDI:
			if (record->event.pressed) {
				return MACRO( I(1), T(D), T(I), END);
			} 
			}
			break;
		case JPZE:
			if (record->event.pressed) {


@@ 838,9 838,9 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
				return MACRO( I(1), T(B), T(U), END);
			}
			break;
			

			// kana macros end here
			

			break;
		case SHIFT:
		if (record->event.pressed) {


@@ 848,8 848,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
			if (layer_state == (1<<JPKAZARI)) {
				layer_state = (1<<JPTOPROW)| (1<<JPTRKZ);
			} else {
				layer_state = (1<<JPTOPROW);							
			} 
				layer_state = (1<<JPTOPROW);
			}
      } else {
			layer_state = (0<<JPTOPROW);
			clear_keyboard_but_mods();


@@ 864,8 864,8 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
			if (layer_state == (1<<JPTOPROW)) {
				layer_state = (1<<JPKAZARI)| (1<<JPTRKZ);
			} else {
				layer_state = (1<<JPKAZARI);							
			} 
				layer_state = (1<<JPKAZARI);
			}
			break;
      } else {
		  	layer_state = (0<<JPKAZARI);


@@ 874,7 874,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
          return MACRO( T(ENTER), END);
        }
      }
      break;  
      break;
		case JPFN:
			if (record->event.pressed) {
				start = timer_read();


@@ 917,7 917,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
			break;
*/
		}
    return MACRO_NONE;   
    return MACRO_NONE;
};

// Runs just one time when the keyboard initializes.


@@ 927,15 927,15 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

	uint8_t layer = biton32(layer_state);
   uint8_t deflayer = biton32(default_layer_state);
	uint8_t layer = get_highest_layer(layer_state);
   uint8_t deflayer = get_highest_layer(default_layer_state);

	ergodox_board_led_off();
	ergodox_right_led_1_off();
	ergodox_right_led_2_off();
	ergodox_right_led_3_off();
    
  


	switch (layer) {
		case 0:
			//none

M layouts/community/ergodox/issmirnov/keymap.c => layouts/community/ergodox/issmirnov/keymap.c +3 -3
@@ 125,7 125,7 @@ _______, _______, KC_LGUI

// called by QMK during key processing before the actual key event is handled. Useful for macros.
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);
  switch (keycode) {
    case TAP_TOG_LAYER:
      process_tap_tog(_SYMB,record);


@@ 157,7 157,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// Runs constantly in the background, in a loop every 100ms or so.
// Best used for LED status output triggered when user isn't actively typing.
void matrix_scan_user(void) {
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);
  if (layer == 0) {
    // Set up LED indicators for stuck modifier keys.
    // https://github.com/qmk/qmk_firmware/blob/master/tmk_core/common/report.h#L118


@@ 202,7 202,7 @@ void matrix_scan_user(void) {

// only runs when when the layer is changed, good for updating LED's and clearing sticky state
layer_state_t layer_state_set_user(layer_state_t state) {
  uint8_t layer = biton32(state);
  uint8_t layer = get_highest_layer(state);

  ergodox_board_led_off();
  ergodox_right_led_1_off();

M layouts/community/ergodox/italian/keymap.c => layouts/community/ergodox/italian/keymap.c +2 -2
@@ 43,7 43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        KC_GRV,                      KC_1,         KC_2,   KC_3,   KC_4,   KC_5,   KC_ESC,
        KC_TAB,                      KC_Q,         KC_W,   KC_E,   KC_R,   KC_T,   TT(SYMB),
        KC_CAPS,                     KC_A,         KC_S,   KC_D,   KC_F,   KC_G,
        KC_LSFT,                     KC_Z,         KC_X,   KC_C,   KC_V,   KC_B,   KC_LALT, 
        KC_LSFT,                     KC_Z,         KC_X,   KC_C,   KC_V,   KC_B,   KC_LALT,
        MT(MOD_LGUI,KC_NONUS_BSLASH),KC_PPLS,      KC_PMNS,KC_PAST,MT(MOD_LCTL,KC_PSLS),
                                                           KC_INS,  KC_LGUI,
                                                                    KC_HOME,


@@ 197,7 197,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/j3rn/keymap.c => layouts/community/ergodox/j3rn/keymap.c +1 -1
@@ 141,7 141,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/jackhumbert/keymap.c => layouts/community/ergodox/jackhumbert/keymap.c +7 -7
@@ 23,7 23,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
             KC_NO,     RGB_TOG,   RGB_MOD,   RGB_HUI,   RGB_HUD,   KC_P,             KC_BSPC,
                        RGB_SAI,   RGB_SAD,   RGB_VAI,   RGB_VAD,   KC_SCLN,          KC_QUOT,
             KC_NO,     KC_N,   KC_M,   KC_COMM,KC_DOT, KC_SLSH,          KC_ENT,
                                  MO(1), KC_LEFT,KC_DOWN,KC_UP,  KC_RGHT,  
                                  MO(1), KC_LEFT,KC_DOWN,KC_UP,  KC_RGHT,
             RGB_TOG,        RGB_HUI,
             RGB_MOD,
             M(2), KC_SPC,KC_SPC


@@ 32,7 32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       // left hand
       KC_TRNS,KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_TRNS,
       KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,  KC_TRNS,
       KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5, 
       KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,
       KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,KC_TRNS,
       KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
                                       KC_TRNS,KC_TRNS,


@@ 43,7 43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       KC_TRNS, KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_BSPC,
                KC_F6,   KC_MINS, KC_EQL,  KC_LBRC, KC_RBRC, KC_BSLS,
       KC_TRNS, KC_F12,  KC_NO,   KC_NO, KC_NO, RESET,   KC_TRNS,
                         KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, 
                         KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY,
       KC_TRNS, KC_TRNS,
       KC_TRNS,
       KC_TRNS, KC_TRNS, KC_TRNS


@@ 51,9 51,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[MDIA] = LAYOUT_ergodox(
       KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
       KC_TILD, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_TRNS,
       KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,  
       KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,
       KC_TRNS, KC_F7,   KC_F8,   KC_F9,   KC_F10,  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,


@@ 62,7 62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
       KC_TRNS,  KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
                 KC_F6,   KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
       KC_TRNS,  KC_F12,  KC_NO,   KC_NO, KC_NO, RESET,   KC_TRNS,
                          KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, 
                          KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY,
       KC_TRNS, KC_TRNS,
       KC_TRNS,
       KC_TRNS, KC_TRNS, KC_TRNS


@@ 97,7 97,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/jacobono/keymap.c => layouts/community/ergodox/jacobono/keymap.c +1 -1
@@ 227,7 227,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

	uint8_t layer = biton32(layer_state);
	uint8_t layer = get_highest_layer(layer_state);

	ergodox_board_led_off();
	ergodox_right_led_1_off();

M layouts/community/ergodox/jafo/keymap.c => layouts/community/ergodox/jafo/keymap.c +1 -1
@@ 139,7 139,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/jgarr/keymap.c => layouts/community/ergodox/jgarr/keymap.c +1 -1
@@ 138,7 138,7 @@ LAYOUT_ergodox(
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/josh/keymap.c => layouts/community/ergodox/josh/keymap.c +1 -1
@@ 188,7 188,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/kastyle/keymap.c => layouts/community/ergodox/kastyle/keymap.c +2 -2
@@ 1,5 1,5 @@
/* Setup to approximate a Kinesis Advantage with an eye to use in a
 * Mac/OSX environment 
 * Mac/OSX environment
 * This version adds a hand swap feature to flip the keyboard */
#include QMK_KEYBOARD_H
#include "debug.h"


@@ 143,7 143,7 @@ LAYOUT_ergodox(
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/kejadlen/keymap.c => layouts/community/ergodox/kejadlen/keymap.c +1 -1
@@ 74,7 74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
};

void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/kines-ish/keymap.c => layouts/community/ergodox/kines-ish/keymap.c +1 -1
@@ 138,7 138,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/kristian/keymap.c => layouts/community/ergodox/kristian/keymap.c +1 -1
@@ 35,7 35,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)

void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/maz/keymap.c => layouts/community/ergodox/maz/keymap.c +1 -1
@@ 183,7 183,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/mclennon_osx/keymap.c => layouts/community/ergodox/mclennon_osx/keymap.c +1 -1
@@ 98,7 98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/meagerfindings/keymap.c => layouts/community/ergodox/meagerfindings/keymap.c +1 -1
@@ 538,7 538,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
};

void matrix_scan_user(void) {
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);

  ergodox_board_led_off();
  ergodox_right_led_1_off();

M layouts/community/ergodox/msc/keymap.c => layouts/community/ergodox/msc/keymap.c +1 -1
@@ 138,7 138,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/naps62/keymap.c => layouts/community/ergodox/naps62/keymap.c +1 -1
@@ 141,7 141,7 @@ LAYOUT_ergodox(
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/neo2_on_qwertz_hardware/keymap.c => layouts/community/ergodox/neo2_on_qwertz_hardware/keymap.c +2 -2
@@ 5,7 5,7 @@
#define UM 0

#define L0   0      // layer_0
#define L1   1      // layer_1  
#define L1   1      // layer_1
#define L2   2      // layer_2
#define L3   3      // layer_3
#define L4   4      // layer_4


@@ 344,7 344,7 @@ void unicode_action_function(uint16_t hi, uint16_t lo) {

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/osx_de/keymap.c => layouts/community/ergodox/osx_de/keymap.c +98 -99
@@ 31,117 31,117 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE]=LAYOUT_ergodox(
//left half
    KC_ESC, DE_1, DE_2, DE_3, DE_4, DE_5, M(M_CTL_SFT_HASH), 
    KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_LGUI, 
    KC_LALT, DE_A, DE_S, DE_D, DE_F, DE_G, 
    KC_LSFT, CTL_T(DE_Y), DE_X, DE_C, DE_V, DE_B, KC_LALT, 
                  LT(SYMB,DE_LABK), M(M_DE_CIRC_CTRLCMD), M(M_DE_PLUS_CTRLALT), KC_UP, KC_DOWN, 
                                              M(M_MEH_SH_ACUT), TG(MDIA), 
                                                     KC_HOME, 
                                       KC_BSPC, KC_DEL, LT(SMLY,KC_END), 
    KC_ESC, DE_1, DE_2, DE_3, DE_4, DE_5, M(M_CTL_SFT_HASH),
    KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_LGUI,
    KC_LALT, DE_A, DE_S, DE_D, DE_F, DE_G,
    KC_LSFT, CTL_T(DE_Y), DE_X, DE_C, DE_V, DE_B, KC_LALT,
                  LT(SYMB,DE_LABK), M(M_DE_CIRC_CTRLCMD), M(M_DE_PLUS_CTRLALT), KC_UP, KC_DOWN,
                                              M(M_MEH_SH_ACUT), TG(MDIA),
                                                     KC_HOME,
                                       KC_BSPC, KC_DEL, LT(SMLY,KC_END),
    //right half
    M(M_CTL_SFT_HASH), DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS, 
    KC_RGUI, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UDIA, 
           DE_H, DE_J, DE_K, DE_L, DE_ODIA, ALT_T(DE_ADIA), 
    KC_RALT, DE_N, DE_M, DE_COMM, DE_DOT, CTL_T(DE_MINS), KC_RSFT, 
                         KC_LEFT, KC_RIGHT, LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_PLUS), 
    TG(NUMB), ALL_T(DE_ACUT), 
    KC_PGUP, 
    M(M_CTL_SFT_HASH), DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS,
    KC_RGUI, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UDIA,
           DE_H, DE_J, DE_K, DE_L, DE_ODIA, ALT_T(DE_ADIA),
    KC_RALT, DE_N, DE_M, DE_COMM, DE_DOT, CTL_T(DE_MINS), KC_RSFT,
                         KC_LEFT, KC_RIGHT, LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_PLUS),
    TG(NUMB), ALL_T(DE_ACUT),
    KC_PGUP,
    KC_PGDN, KC_ENT, KC_SPC),
[SYMB]=LAYOUT_ergodox(
//left half
    KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, 
    KC_TRNS, DE_LABK, DE_RABK, DE_EXLM, DE_QUES, KC_TRNS, KC_TRNS, 
    KC_TRNS, DE_HASH, DE_DLR, DE_BSLS, DE_SLSH, KC_DOT, 
    KC_TRNS, KC_TRNS, DE_LABK, DE_PERC, DE_PIPE, DE_TILD, KC_TRNS, 
                  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
                                              KC_TRNS, KC_TRNS, 
                                                     KC_TRNS, 
                                       KC_TRNS, KC_DEL, KC_TRNS, 
    KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
    KC_TRNS, DE_LABK, DE_RABK, DE_EXLM, DE_QUES, KC_TRNS, KC_TRNS,
    KC_TRNS, DE_HASH, DE_DLR, DE_BSLS, DE_SLSH, KC_DOT,
    KC_TRNS, KC_TRNS, DE_LABK, DE_PERC, DE_PIPE, DE_TILD, KC_TRNS,
                  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
                                              KC_TRNS, KC_TRNS,
                                                     KC_TRNS,
                                       KC_TRNS, KC_DEL, KC_TRNS,
    //right half
    M(M_TOGGLE_5), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, 
    KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), DE_LABK, DE_RABK, DE_EXLM, 
           DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), DE_HASH, 
    KC_TRNS, DE_PIPE, DE_TILD, DE_CIRC, KC_UP, DE_MINS, LSFT(KC_4), 
                         DE_QUOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, 
    KC_F13, KC_F12, 
    KC_F14, 
    M(M_TOGGLE_5), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
    KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), DE_LABK, DE_RABK, DE_EXLM,
           DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), DE_HASH,
    KC_TRNS, DE_PIPE, DE_TILD, DE_CIRC, KC_UP, DE_MINS, LSFT(KC_4),
                         DE_QUOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS,
    KC_F13, KC_F12,
    KC_F14,
    KC_F15, KC_TRNS, KC_TRNS),
[MDIA]=LAYOUT_ergodox(
//left half
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, 
    KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, 
                  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
                                              KC_TRNS, KC_TRNS, 
                                                     KC_TRNS, 
                                       KC_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_MS_U, KC_BTN2, KC_WH_U, KC_TRNS,
    KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D,
    KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, 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 half
    KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, 
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
           KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
    KC_TRNS, KC_VOLD, KC_TRNS, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS, 
                         KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 
    KC_TRNS, KC_TRNS, 
    KC_TRNS, 
    KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
           KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
    KC_TRNS, KC_VOLD, KC_TRNS, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS,
                         KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,
    KC_TRNS, KC_TRNS,
    KC_TRNS,
    KC_TRNS, KC_TRNS, KC_WBAK),
[SMLY]=LAYOUT_ergodox(
//left half
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
                  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
                                              KC_TRNS, KC_TRNS, 
                                                     KC_TRNS, 
                                       KC_TRNS, KC_TRNS, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 half
    M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
    KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS, 
           M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_TRNS, 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(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
    KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS,
           M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
                         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
    KC_TRNS, KC_TRNS,
    KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS),
[NUMB]=LAYOUT_ergodox(
//left half
    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_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
                  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
                                              KC_TRNS, KC_TRNS, 
                                                     KC_TRNS, 
                                       KC_TRNS, KC_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_LEFT, KC_DOWN, KC_RGHT, KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 half
    KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, 
    KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12, 
           KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, DE_MINS, 
    KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, 
                         KC_0, KC_DOT, KC_COMM, DE_EQL, KC_TRNS, 
    KC_TRNS, KC_TRNS, 
    KC_TRNS, 
    KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
    KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12,
           KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, DE_MINS,
    KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS,
                         KC_0, KC_DOT, KC_COMM, DE_EQL, KC_TRNS,
    KC_TRNS, KC_TRNS,
    KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS),
[EGOS]=LAYOUT_ergodox(
//left half
    KC_TRNS, KC_TRNS, KC_TRNS, 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_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_F1, KC_F2, 
                                                     KC_F3, 
                                       KC_SPC, KC_LCTL, KC_F4, 
    KC_TRNS, KC_TRNS, KC_TRNS, 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_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_F1, KC_F2,
                                                     KC_F3,
                                       KC_SPC, KC_LCTL, KC_F4,
    //right half
    M(M_TOGGLE_5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
           KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_TRNS, 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(M_TOGGLE_5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
           KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
                         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
    KC_TRNS, KC_TRNS,
    KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS),
};



@@ 318,7 318,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

uint8_t layer = biton32(layer_state);
uint8_t layer = get_highest_layer(layer_state);

ergodox_board_led_off();
ergodox_right_led_1_off();


@@ 328,22 328,22 @@ switch (layer) {

    case SYMB:
        ergodox_right_led_1_on();
        
        


        break;
    case MDIA:
        

        ergodox_right_led_2_on();
        

        break;
    case SMLY:
        
        


        ergodox_right_led_3_on();
        break;
    case NUMB:
        ergodox_right_led_1_on();
        

        ergodox_right_led_3_on();
        break;
    case EGOS:


@@ 357,4 357,3 @@ break;
}

};


M layouts/community/ergodox/osx_de_adnw_koy/keymap.c => layouts/community/ergodox/osx_de_adnw_koy/keymap.c +76 -77
@@ 27,105 27,105 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE]=LAYOUT_ergodox(
//left half
    KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LCTL, 
    KC_TAB, KC_K, KC_DOT, KC_O, KC_COMM, KC_Z, KC_LGUI, 
    TG(QWERTZ), KC_H, KC_A, KC_E, KC_I, KC_U, 
    KC_LSFT, CTL_T(KC_X), KC_Q, DE_ADIA, DE_UDIA, DE_ODIA, KC_LALT, 
                  LT(SYMB,KC_GRV), DE_LABK, LALT(KC_LSFT), KC_LEFT, KC_RGHT, 
                                              TG(MDIA), MEH_T(LSFT(DE_ACUT)), 
                                                     KC_HOME, 
                                       KC_BSPC, KC_DEL, KC_END, 
    KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LCTL,
    KC_TAB, KC_K, KC_DOT, KC_O, KC_COMM, KC_Z, KC_LGUI,
    TG(QWERTZ), KC_H, KC_A, KC_E, KC_I, KC_U,
    KC_LSFT, CTL_T(KC_X), KC_Q, DE_ADIA, DE_UDIA, DE_ODIA, KC_LALT,
                  LT(SYMB,KC_GRV), DE_LABK, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
                                              TG(MDIA), MEH_T(LSFT(DE_ACUT)),
                                                     KC_HOME,
                                       KC_BSPC, KC_DEL, KC_END,
    //right half
    KC_RCTL, KC_6, KC_7, KC_8, KC_9, KC_0, DE_MINS, 
    KC_RGUI, KC_V, KC_G, KC_C, KC_L, KC_MINS, KC_Y, 
           KC_D, KC_T, KC_R, KC_N, KC_S, LT(MDIA,KC_F), 
    KC_RALT, KC_B, KC_P, KC_W, KC_M, CTL_T(KC_J), KC_RSFT, 
                         KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS), 
    ALL_T(DE_ACUT), TG(NUMB), 
    KC_PGUP, 
    KC_RCTL, KC_6, KC_7, KC_8, KC_9, KC_0, DE_MINS,
    KC_RGUI, KC_V, KC_G, KC_C, KC_L, KC_MINS, KC_Y,
           KC_D, KC_T, KC_R, KC_N, KC_S, LT(MDIA,KC_F),
    KC_RALT, KC_B, KC_P, KC_W, KC_M, CTL_T(KC_J), KC_RSFT,
                         KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS),
    ALL_T(DE_ACUT), TG(NUMB),
    KC_PGUP,
    KC_PGDN, KC_ENT, KC_SPC),
[SYMB]=LAYOUT_ergodox(
//left half
    KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, 
    KC_TRNS, KC_GRV, LSFT(KC_GRV), DE_EXLM, DE_QUES, KC_TRNS, KC_TRNS, 
    KC_TRNS, DE_HASH, DE_DLR, LALT(LSFT(KC_7)), DE_SLSH, KC_DOT, 
    KC_TRNS, KC_TRNS, DE_LABK, DE_PERC, LALT(KC_7), LALT(KC_N), KC_TRNS, 
                  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
                                              KC_TRNS, KC_TRNS, 
                                                     KC_TRNS, 
                                       KC_TRNS, KC_DEL, KC_TRNS, 
    KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
    KC_TRNS, KC_GRV, LSFT(KC_GRV), DE_EXLM, DE_QUES, KC_TRNS, KC_TRNS,
    KC_TRNS, DE_HASH, DE_DLR, LALT(LSFT(KC_7)), DE_SLSH, KC_DOT,
    KC_TRNS, KC_TRNS, DE_LABK, DE_PERC, LALT(KC_7), LALT(KC_N), KC_TRNS,
                  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
                                              KC_TRNS, KC_TRNS,
                                                     KC_TRNS,
                                       KC_TRNS, KC_DEL, KC_TRNS,
    //right half
    KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, 
    KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, KC_F12, 
           DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), KC_TRNS, 
    KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQUO, DE_QUOT, DE_QUES, 
                         KC_TRNS, KC_DOT, KC_EXLM, KC_TRNS, KC_TRNS, 
    KC_TRNS, KC_TRNS, 
    KC_TRNS, 
    KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
    KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), LALT(KC_7), DE_HASH, KC_F12,
           DE_SLSH, DE_LPRN, DE_RPRN, LALT(KC_8), LALT(KC_9), KC_TRNS,
    KC_TRNS, DE_AMPR, KC_GRV, LSFT(KC_GRV), DE_DQUO, DE_QUOT, DE_QUES,
                         KC_TRNS, KC_DOT, KC_EXLM, KC_TRNS, KC_TRNS,
    KC_TRNS, KC_TRNS,
    KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS),
[MDIA]=LAYOUT_ergodox(
//left half
    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_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, 
                  KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, 
                                              KC_TRNS, KC_TRNS, 
                                                     KC_TRNS, 
                                       KC_TRNS, KC_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_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
    KC_TRNS, KC_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS,
                  KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
                                              KC_TRNS, KC_TRNS,
                                                     KC_TRNS,
                                       KC_TRNS, KC_TRNS, KC_TRNS,
    //right half
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, 
    KC_TRNS, KC_TRNS, KC_TRNS, KC_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_MPRV, KC_MNXT, KC_UP, KC_TRNS, 
                         KC_VOLU, KC_VOLD, KC_LEFT, KC_DOWN, KC_RIGHT, 
    KC_TRNS, KC_TRNS, 
    KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_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_MPRV, KC_MNXT, KC_UP, KC_TRNS,
                         KC_VOLU, KC_VOLD, KC_LEFT, KC_DOWN, KC_RIGHT,
    KC_TRNS, KC_TRNS,
    KC_TRNS,
    KC_TRNS, KC_TRNS, KC_WBAK),
[QWERTZ]=LAYOUT_ergodox(
//left half
    KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_V), 
    KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LGUI, 
    KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, 
    KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT, 
                  LT(SYMB,KC_GRV), DE_LABK, LALT(KC_LSFT), KC_LEFT, KC_RGHT, 
                                              KC_TRNS, MEH_T(LSFT(DE_ACUT)), 
                                                     KC_HOME, 
                                       KC_BSPC, KC_DEL, KC_END, 
    KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, LGUI(KC_V),
    KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LGUI,
    KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G,
    KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT,
                  LT(SYMB,KC_GRV), DE_LABK, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
                                              KC_TRNS, MEH_T(LSFT(DE_ACUT)),
                                                     KC_HOME,
                                       KC_BSPC, KC_DEL, KC_END,
    //right half
    LGUI(KC_C), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, 
    KC_RGUI, KC_Y, KC_U, KC_I, KC_O, KC_P, DE_UDIA, 
           KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(MDIA,DE_ADIA), 
    KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT, 
                         KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS), 
    ALL_T(DE_ACUT), KC_TRNS, 
    KC_PGUP, 
    LGUI(KC_C), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
    KC_RGUI, KC_Y, KC_U, KC_I, KC_O, KC_P, DE_UDIA,
           KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(MDIA,DE_ADIA),
    KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
                         KC_UP, KC_DOWN, LGUI(KC_LSFT), KC_RBRC, LT(SYMB,KC_BSLS),
    ALL_T(DE_ACUT), KC_TRNS,
    KC_PGUP,
    KC_PGDN, KC_ENT, KC_SPC),
[NUMB]=LAYOUT_ergodox(
//left half
    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_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
                  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
                                              KC_TRNS, KC_TRNS, 
                                                     KC_TRNS, 
                                       KC_TRNS, KC_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_LEFT, KC_DOWN, KC_RGHT, KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 half
    KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, 
    KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12, 
           KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, KC_TRNS, 
    KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS, 
                         KC_0, KC_DOT, KC_0, KC_EQL, KC_TRNS, 
    KC_TRNS, KC_TRNS, 
    KC_TRNS, 
    KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
    KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12,
           KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, KC_TRNS,
    KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS,
                         KC_0, KC_DOT, KC_0, KC_EQL, KC_TRNS,
    KC_TRNS, KC_TRNS,
    KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS),
};

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

uint8_t layer = biton32(layer_state);
uint8_t layer = get_highest_layer(layer_state);

ergodox_board_led_off();
ergodox_right_led_1_off();


@@ 139,4 139,3 @@ break;
}

};


M layouts/community/ergodox/osx_de_experimental/keymap.c => layouts/community/ergodox/osx_de_experimental/keymap.c +277 -278
@@ 66,315 66,315 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/**
* Layer: BASE
* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/                        /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/                       
* | ESC                | 1                  | 2                  | 3                  | 4                  | 5                  | Hold or toggle     |                       | Hold or toggle     | 6                  | 7                  | 8                  | 9                  | 0                  | ß                  |                      
* |                    |                    |                    |                    |                    |                    | Layer NUMB         |                       | Layer MDIA         |                    |                    |                    |                    |                    |                    |                      
* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/                        /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/                       
* | TAB                | Q                  | W                  | E                  | R                  | T                  | Cmd                |                       | Cmd                | Z                  | U                  | I                  | O                  | P                  | Ü                  |                      
* |                    |                    |                    |                    |                    |                    |                    |                       |                    |                    |                    |                    |                    |                    |                    |                      
* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/\-------------------\                        \-------------------\/-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/                       
* | Alt                | A                  | S                  | D                  | F                  | G                  |                                                                 | H                  | J                  | K                  | L                  | Ö                  | Ä                  |                      
* |                    |                    |                    |                    |                    |                    |                                                                 |                    |                    |                    |                    |                    | ALT                |                      
* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/                        /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/                       
* | Shift              | Y                  | X                  | C                  | V                  | B                  | Alt                |                       | Alt                | N                  | M                  | ,                  | .                  | -                  | Shift              |                      
* |                    | Ctrl               |                    |                    |                    |                    |                    |                       |                    |                    |                    |                    |                    | Ctrl               |                    |                      
* \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\                        \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\                       
*                                                                                                                                                                                                                                                                                                                                                      
*                                                                                                                                                                                                                                                                                                                                                      
*                                           /-------------------//-------------------//-------------------//-------------------//-------------------/                                                                                       /-------------------//-------------------//-------------------//-------------------//-------------------/  
*                                           | <                  | LongPress / Type   | LongPress / Type   | Shift+Ctrl         | Type               |                                                                                      | #                  | ACUT               | CMD+Shift          | ALT+Shift          | +                  | 
*                                           | SYMB               | DE_CIRC_CTRLCMD    | DE_PLUS_CTRAlt     |                    | Toggle SMLY        |                                                                                      | Meh                | Hyper              |                    |                    | SYMB               | 
*                                           \-------------------\\-------------------\\-------------------\\-------------------\/-------------------//-------------------/   /-------------------//-------------------/                     \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\  
*                                                                                                                               | HOME               | END                |  | LEFT               | RIGHT              |                                                                                                                               
*                                                                                                                               |                    |                    |  |                    |                    |                                                                                                                               
*                                                                                                                               \-------------------\/-------------------/   /-------------------/\-------------------\                                                                                                                                
*                                                                                                                                                    | PGUP               |  | UP                 |                                                                                                                                                    
*                                                                                                                                                    |                    |  |                    |                                                                                                                                                    
*                                                                                                          /-------------------//-------------------//-------------------/   /-------------------//-------------------//-------------------/                                                                                                           
*                                                                                                          | BSPC               | DEL                | PGDN               |  | DOWN               | ENT                | SPC                |                                                                                                          
*                                                                                                          |                    |                    |                    |  |                    |                    |                    |                                                                                                          
*                                                                                                          \-------------------\\-------------------\\-------------------\   \-------------------\\-------------------\\-------------------\                                                                                                           
*                                                                                                                                                                                                                                                                                                                                                      
* 
* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/                        /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/
* | ESC                | 1                  | 2                  | 3                  | 4                  | 5                  | Hold or toggle     |                       | Hold or toggle     | 6                  | 7                  | 8                  | 9                  | 0                  | ß                  |
* |                    |                    |                    |                    |                    |                    | Layer NUMB         |                       | Layer MDIA         |                    |                    |                    |                    |                    |                    |
* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/                        /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/
* | TAB                | Q                  | W                  | E                  | R                  | T                  | Cmd                |                       | Cmd                | Z                  | U                  | I                  | O                  | P                  | Ü                  |
* |                    |                    |                    |                    |                    |                    |                    |                       |                    |                    |                    |                    |                    |                    |                    |
* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/\-------------------\                        \-------------------\/-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/
* | Alt                | A                  | S                  | D                  | F                  | G                  |                                                                 | H                  | J                  | K                  | L                  | Ö                  | Ä                  |
* |                    |                    |                    |                    |                    |                    |                                                                 |                    |                    |                    |                    |                    | ALT                |
* /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/                        /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/
* | Shift              | Y                  | X                  | C                  | V                  | B                  | Alt                |                       | Alt                | N                  | M                  | ,                  | .                  | -                  | Shift              |
* |                    | Ctrl               |                    |                    |                    |                    |                    |                       |                    |                    |                    |                    |                    | Ctrl               |                    |
* \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\                        \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\
*
*
*                                           /-------------------//-------------------//-------------------//-------------------//-------------------/                                                                                       /-------------------//-------------------//-------------------//-------------------//-------------------/
*                                           | <                  | LongPress / Type   | LongPress / Type   | Shift+Ctrl         | Type               |                                                                                      | #                  | ACUT               | CMD+Shift          | ALT+Shift          | +                  |
*                                           | SYMB               | DE_CIRC_CTRLCMD    | DE_PLUS_CTRAlt     |                    | Toggle SMLY        |                                                                                      | Meh                | Hyper              |                    |                    | SYMB               |
*                                           \-------------------\\-------------------\\-------------------\\-------------------\/-------------------//-------------------/   /-------------------//-------------------/                     \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\
*                                                                                                                               | HOME               | END                |  | LEFT               | RIGHT              |
*                                                                                                                               |                    |                    |  |                    |                    |
*                                                                                                                               \-------------------\/-------------------/   /-------------------/\-------------------\
*                                                                                                                                                    | PGUP               |  | UP                 |
*                                                                                                                                                    |                    |  |                    |
*                                                                                                          /-------------------//-------------------//-------------------/   /-------------------//-------------------//-------------------/
*                                                                                                          | BSPC               | DEL                | PGDN               |  | DOWN               | ENT                | SPC                |
*                                                                                                          |                    |                    |                    |  |                    |                    |                    |
*                                                                                                          \-------------------\\-------------------\\-------------------\   \-------------------\\-------------------\\-------------------\
*
*
**/
[BASE]=LAYOUT_ergodox(
//left half
    KC_ESC, DE_1, DE_2, DE_3, DE_4, DE_5, M(TGH_NUM), 
    KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_LGUI, 
    KC_LALT, DE_A, DE_S, DE_D, DE_F, DE_G, 
    KC_LSFT, CTL_T(DE_Y), DE_X, DE_C, DE_V, DE_B, KC_LALT, 
                  LT(SYMB,DE_LABK), M(M_DE_CIRC_CTRLCMD), M(M_DE_PLUS_CTRLALT), LSFT(KC_LCTRL), M(SMLY_TOG_QUOT), 
                                              KC_HOME, KC_END, 
                                                     KC_PGUP, 
                                       KC_BSPC, KC_DEL, KC_PGDN, 
    KC_ESC, DE_1, DE_2, DE_3, DE_4, DE_5, M(TGH_NUM),
    KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_LGUI,
    KC_LALT, DE_A, DE_S, DE_D, DE_F, DE_G,
    KC_LSFT, CTL_T(DE_Y), DE_X, DE_C, DE_V, DE_B, KC_LALT,
                  LT(SYMB,DE_LABK), M(M_DE_CIRC_CTRLCMD), M(M_DE_PLUS_CTRLALT), LSFT(KC_LCTRL), M(SMLY_TOG_QUOT),
                                              KC_HOME, KC_END,
                                                     KC_PGUP,
                                       KC_BSPC, KC_DEL, KC_PGDN,
    //right half
    M(TOG_HLD_MDIA), DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS, 
    KC_RGUI, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UDIA, 
           DE_H, DE_J, DE_K, DE_L, DE_ODIA, ALT_T(DE_ADIA), 
    KC_RALT, DE_N, DE_M, DE_COMM, DE_DOT, CTL_T(DE_MINS), KC_RSFT, 
                         MEH_T(DE_HASH), ALL_T(DE_ACUT), LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_PLUS), 
    KC_LEFT, KC_RIGHT, 
    KC_UP, 
    M(TOG_HLD_MDIA), DE_6, DE_7, DE_8, DE_9, DE_0, DE_SS,
    KC_RGUI, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UDIA,
           DE_H, DE_J, DE_K, DE_L, DE_ODIA, ALT_T(DE_ADIA),
    KC_RALT, DE_N, DE_M, DE_COMM, DE_DOT, CTL_T(DE_MINS), KC_RSFT,
                         MEH_T(DE_HASH), ALL_T(DE_ACUT), LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_PLUS),
    KC_LEFT, KC_RIGHT,
    KC_UP,
    KC_DOWN, KC_ENT, KC_SPC),
/**
* Layer: SYMB
* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/                /-----------//-----------//-----------//-----------//-----------//-----------//-----------/               
* | APPLICATION| F1         | F2         | F3         | F4         | F5         | F5         |               | F6         | F6         | F7         | F8         | F9         | F10        | F11        |              
* |            |            |            |            |            |            |            |               |            |            |            |            |            |            |            |              
* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/                /-----------//-----------//-----------//-----------//-----------//-----------//-----------/               
* |            | <          | >          | !          | ?          |            |            |               |            | \          | [          | ]          | <          | >          | !          |              
* |            |            |            |            |            |            |            |               |            |            |            |            |            |            |            |              
* /-----------//-----------//-----------//-----------//-----------//-----------/\-----------\                \-----------\/-----------//-----------//-----------//-----------//-----------//-----------/               
* |            | #          | $          | \          | /          | .          |                                         | /          | (          | )          | {          | }          | #          |              
* |            |            |            |            |            |            |                                         |            |            |            |            |            |            |              
* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/                /-----------//-----------//-----------//-----------//-----------//-----------//-----------/               
* |            |            | <          | %          | |          | ~          |            |               |            | |          | ~          |            |            |            |            |              
* |            |            |            |            |            |            |            |               |            |            |            |            |            |            |            |              
* \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\                \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\               
*                                                                                                                                                                                                                      
*                                                                                                                                                                                                                      
*                           /-----------//-----------//-----------//-----------//-----------/                                                       /-----------//-----------//-----------//-----------//-----------/  
*                           |            |            |            |            |            |                                                      | '          | DQOT       |            | Toggle 5   |            | 
*                           |            |            |            |            |            |                                                      |            |            |            |            |            | 
*                           \-----------\\-----------\\-----------\\-----------\/-----------//-----------/   /-----------//-----------/             \-----------\\-----------\\-----------\\-----------\\-----------\  
*                                                                               |            |            |  | F13        | F12        |                                                                               
*                                                                               |            |            |  |            |            |                                                                               
*                                                                               \-----------\/-----------/   /-----------/\-----------\                                                                                
*                                                                                            |            |  | F14        |                                                                                            
*                                                                                            |            |  |            |                                                                                            
*                                                                  /-----------//-----------//-----------/   /-----------//-----------//-----------/                                                                   
*                                                                  |            | DEL        |            |  | F15        |            |            |                                                                  
*                                                                  |            |            |            |  |            |            |            |                                                                  
*                                                                  \-----------\\-----------\\-----------\   \-----------\\-----------\\-----------\                                                                   
*                                                                                                                                                                                                                      
* 
* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/                /-----------//-----------//-----------//-----------//-----------//-----------//-----------/
* | APPLICATION| F1         | F2         | F3         | F4         | F5         | F5         |               | F6         | F6         | F7         | F8         | F9         | F10        | F11        |
* |            |            |            |            |            |            |            |               |            |            |            |            |            |            |            |
* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/                /-----------//-----------//-----------//-----------//-----------//-----------//-----------/
* |            | <          | >          | !          | ?          |            |            |               |            | \          | [          | ]          | <          | >          | !          |
* |            |            |            |            |            |            |            |               |            |            |            |            |            |            |            |
* /-----------//-----------//-----------//-----------//-----------//-----------/\-----------\                \-----------\/-----------//-----------//-----------//-----------//-----------//-----------/
* |            | #          | $          | \          | /          | .          |                                         | /          | (          | )          | {          | }          | #          |
* |            |            |            |            |            |            |                                         |            |            |            |            |            |            |
* /-----------//-----------//-----------//-----------//-----------//-----------//-----------/                /-----------//-----------//-----------//-----------//-----------//-----------//-----------/
* |            |            | <          | %          | |          | ~          |            |               |            | |          | ~          |            |            |            |            |
* |            |            |            |            |            |            |            |               |            |            |            |            |            |            |            |
* \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\                \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\
*
*
*                           /-----------//-----------//-----------//-----------//-----------/                                                       /-----------//-----------//-----------//-----------//-----------/
*                           |            |            |            |            |            |                                                      | '          | DQOT       |            | Toggle 5   |            |
*                           |            |            |            |            |            |                                                      |            |            |            |            |            |
*                           \-----------\\-----------\\-----------\\-----------\/-----------//-----------/   /-----------//-----------/             \-----------\\-----------\\-----------\\-----------\\-----------\
*                                                                               |            |            |  | F13        | F12        |
*                                                                               |            |            |  |            |            |
*                                                                               \-----------\/-----------/   /-----------/\-----------\
*                                                                                            |            |  | F14        |
*                                                                                            |            |  |            |
*                                                                  /-----------//-----------//-----------/   /-----------//-----------//-----------/
*                                                                  |            | DEL        |            |  | F15        |            |            |
*                                                                  |            |            |            |  |            |            |            |
*                                                                  \-----------\\-----------\\-----------\   \-----------\\-----------\\-----------\
*
*
**/
[SYMB]=LAYOUT_ergodox(
//left half
    KC_APPLICATION, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F5, 
    KC_TRNS, DE_LABK, DE_RABK, DE_EXLM, DE_QST, KC_TRNS, KC_TRNS, 
    KC_TRNS, DE_HASH, DE_DLR, DE_BSLS, DE_SLSH, KC_DOT, 
    KC_TRNS, KC_TRNS, DE_LABK, DE_PERC, DE_PIPE, DE_TILD, KC_TRNS, 
                  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
                                              KC_TRNS, KC_TRNS, 
                                                     KC_TRNS, 
                                       KC_TRNS, KC_DEL, KC_TRNS, 
    KC_APPLICATION, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F5,
    KC_TRNS, DE_LABK, DE_RABK, DE_EXLM, DE_QST, KC_TRNS, KC_TRNS,
    KC_TRNS, DE_HASH, DE_DLR, DE_BSLS, DE_SLSH, KC_DOT,
    KC_TRNS, KC_TRNS, DE_LABK, DE_PERC, DE_PIPE, DE_TILD, KC_TRNS,
                  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
                                              KC_TRNS, KC_TRNS,
                                                     KC_TRNS,
                                       KC_TRNS, KC_DEL, KC_TRNS,
    //right half
    KC_F6, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, 
    KC_TRNS, DE_BSLS, DE_LBRC, DE_RBRC, DE_LABK, DE_RABK, DE_EXLM, 
           DE_SLSH, DE_LPRN, DE_RPRN, DE_LCBR, DE_RCBR, DE_HASH, 
    KC_TRNS, DE_PIPE, DE_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
                         DE_QUOT, DE_DQUO, KC_TRNS, M(M_TOGGLE_5), KC_TRNS, 
    KC_F13, KC_F12, 
    KC_F14, 
    KC_F6, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
    KC_TRNS, DE_BSLS, DE_LBRC, DE_RBRC, DE_LABK, DE_RABK, DE_EXLM,
           DE_SLSH, DE_LPRN, DE_RPRN, DE_LCBR, DE_RCBR, DE_HASH,
    KC_TRNS, DE_PIPE, DE_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
                         DE_QUOT, DE_DQUO, KC_TRNS, M(M_TOGGLE_5), KC_TRNS,
    KC_F13, KC_F12,
    KC_F14,
    KC_F15, KC_TRNS, KC_TRNS),
/**
* Layer: MDIA
* /-----//-----//-----//-----//-----//-----//-----/          /-----//-----//-----//-----//-----//-----//-----/         
* |      |      |      |      |      |      |      |         |      |      |      |      |      |      |      |        
* |      |      |      |      |      |      |      |         |      |      |      |      |      |      |      |        
* /-----//-----//-----//-----//-----//-----//-----/          /-----//-----//-----//-----//-----//-----//-----/         
* |      |      | BTN1 | U    | BTN2 | U    |      |         |      |      |      |      |      |      |      |        
* |      |      |      |      |      |      |      |         |      |      |      |      |      |      |      |        
* /-----//-----//-----//-----//-----//-----/\-----\          \-----\/-----//-----//-----//-----//-----//-----/         
* |      |      | L    | D    | R    | D    |                       |      |      |      |      |      |      |        
* |      |      |      |      |      |      |                       |      |      |      |      |      |      |        
* /-----//-----//-----//-----//-----//-----//-----/          /-----//-----//-----//-----//-----//-----//-----/         
* |      |      | L    | D    | R    | BTN3 |      |         |      |      |      |      |      | UP   |      |        
* |      |      |      |      |      |      |      |         |      |      |      |      |      |      |      |        
* \-----\\-----\\-----\\-----\\-----\\-----\\-----\          \-----\\-----\\-----\\-----\\-----\\-----\\-----\         
*                                                                                                                      
*                                                                                                                      
*               /-----//-----//-----//-----//-----/                               /-----//-----//-----//-----//-----/  
*               |      |      |      |      |      |                              |      |      | LEFT | DOWN | RIGHT| 
*               |      |      |      |      |      |                              |      |      |      |      |      | 
*               \-----\\-----\\-----\\-----\/-----//-----/   /-----//-----/       \-----\\-----\\-----\\-----\\-----\  
*                                           |      |      |  | MPRV | MNXT |                                           
*                                           |      |      |  |      |      |                                           
*                                           \-----\/-----/   /-----/\-----\                                            
*                                                  |      |  | VOLU |                                                  
*                                                  |      |  |      |                                                  
*                                    /-----//-----//-----/   /-----//-----//-----/                                     
*                                    |      |      |      |  | VOLD | MUTE | MPLY |                                    
*                                    |      |      |      |  |      |      |      |                                    
*                                    \-----\\-----\\-----\   \-----\\-----\\-----\                                     
*                                                                                                                      
* 
* /-----//-----//-----//-----//-----//-----//-----/          /-----//-----//-----//-----//-----//-----//-----/
* |      |      |      |      |      |      |      |         |      |      |      |      |      |      |      |
* |      |      |      |      |      |      |      |         |      |      |      |      |      |      |      |
* /-----//-----//-----//-----//-----//-----//-----/          /-----//-----//-----//-----//-----//-----//-----/
* |      |      | BTN1 | U    | BTN2 | U    |      |         |      |      |      |      |      |      |      |
* |      |      |      |      |      |      |      |         |      |      |      |      |      |      |      |
* /-----//-----//-----//-----//-----//-----/\-----\          \-----\/-----//-----//-----//-----//-----//-----/
* |      |      | L    | D    | R    | D    |                       |      |      |      |      |      |      |
* |      |      |      |      |      |      |                       |      |      |      |      |      |      |
* /-----//-----//-----//-----//-----//-----//-----/          /-----//-----//-----//-----//-----//-----//-----/
* |      |      | L    | D    | R    | BTN3 |      |         |      |      |      |      |      | UP   |      |
* |      |      |      |      |      |      |      |         |      |      |      |      |      |      |      |
* \-----\\-----\\-----\\-----\\-----\\-----\\-----\          \-----\\-----\\-----\\-----\\-----\\-----\\-----\
*
*
*               /-----//-----//-----//-----//-----/                               /-----//-----//-----//-----//-----/
*               |      |      |      |      |      |                              |      |      | LEFT | DOWN | RIGHT|
*               |      |      |      |      |      |                              |      |      |      |      |      |
*               \-----\\-----\\-----\\-----\/-----//-----/   /-----//-----/       \-----\\-----\\-----\\-----\\-----\
*                                           |      |      |  | MPRV | MNXT |
*                                           |      |      |  |      |      |
*                                           \-----\/-----/   /-----/\-----\
*                                                  |      |  | VOLU |
*                                                  |      |  |      |
*                                    /-----//-----//-----/   /-----//-----//-----/
*                                    |      |      |      |  | VOLD | MUTE | MPLY |
*                                    |      |      |      |  |      |      |      |
*                                    \-----\\-----\\-----\   \-----\\-----\\-----\
*
*
**/
[MDIA]=LAYOUT_ergodox(
//left half
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, 
    KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, 
                  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
                                              KC_TRNS, KC_TRNS, 
                                                     KC_TRNS, 
                                       KC_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_MS_U, KC_BTN2, KC_WH_U, KC_TRNS,
    KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D,
    KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, 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 half
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_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_LEFT, KC_DOWN, KC_RIGHT, 
    KC_MPRV, KC_MNXT, 
    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, KC_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_LEFT, KC_DOWN, KC_RIGHT,
    KC_MPRV, KC_MNXT,
    KC_VOLU,
    KC_VOLD, KC_MUTE, KC_MPLY),
/**
* Layer: SMLY
* /--------//--------//--------//--------//--------//--------//--------/             /--------//--------//--------//--------//--------//--------//--------/            
* |         |         |         |         |         |         |         |            | Typing  | Typing  | Typing  |         |         |         |         |           
* |         |         |         |         |         |         |         |            | SM_SMILE| SM_SMIRK| SM_LAUGH|         |         |         |         |           
* /--------//--------//--------//--------//--------//--------//--------/             /--------//--------//--------//--------//--------//--------//--------/            
* |         |         |         |         |         |         |         |            |         | Typing  | Typing  | Typing  |         |         |         |           
* |         |         |         |         |         |         |         |            |         | SM_FROWN| SM_SAD  | SM_CRY  |         |         |         |           
* /--------//--------//--------//--------//--------//--------/\--------\             \--------\/--------//--------//--------//--------//--------//--------/            
* |         |         |         |         |         |         |                                | Typing  | Typing  |         |         |         |         |           
* |         |         |         |         |         |         |                                | SM_HEART| SM_KISS |         |         |         |         |           
* /--------//--------//--------//--------//--------//--------//--------/             /--------//--------//--------//--------//--------//--------//--------/            
* |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |           
* |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |           
* \--------\\--------\\--------\\--------\\--------\\--------\\--------\             \--------\\--------\\--------\\--------\\--------\\--------\\--------\            
*                                                                                                                                                                      
*                                                                                                                                                                      
*                     /--------//--------//--------//--------//--------/                                           /--------//--------//--------//--------//--------/  
*                     |         |         |         |         |         |                                          |         |         |         |         |         | 
*                     |         |         |         |         |         |                                          |         |         |         |         |         | 
*                     \--------\\--------\\--------\\--------\/--------//--------/   /--------//--------/          \--------\\--------\\--------\\--------\\--------\  
*                                                             |         |         |  |         |         |                                                             
*                                                             |         |         |  |         |         |                                                             
*                                                             \--------\/--------/   /--------/\--------\                                                              
*                                                                       |         |  |         |                                                                       
*                                                                       |         |  |         |                                                                       
*                                                   /--------//--------//--------/   /--------//--------//--------/                                                    
*                                                   |         |         |         |  |         |         |         |                                                   
*                                                   |         |         |         |  |         |         |         |                                                   
*                                                   \--------\\--------\\--------\   \--------\\--------\\--------\                                                    
*                                                                                                                                                                      
* 
* /--------//--------//--------//--------//--------//--------//--------/             /--------//--------//--------//--------//--------//--------//--------/
* |         |         |         |         |         |         |         |            | Typing  | Typing  | Typing  |         |         |         |         |
* |         |         |         |         |         |         |         |            | SM_SMILE| SM_SMIRK| SM_LAUGH|         |         |         |         |
* /--------//--------//--------//--------//--------//--------//--------/             /--------//--------//--------//--------//--------//--------//--------/
* |         |         |         |         |         |         |         |            |         | Typing  | Typing  | Typing  |         |         |         |
* |         |         |         |         |         |         |         |            |         | SM_FROWN| SM_SAD  | SM_CRY  |         |         |         |
* /--------//--------//--------//--------//--------//--------/\--------\             \--------\/--------//--------//--------//--------//--------//--------/
* |         |         |         |         |         |         |                                | Typing  | Typing  |         |         |         |         |
* |         |         |         |         |         |         |                                | SM_HEART| SM_KISS |         |         |         |         |
* /--------//--------//--------//--------//--------//--------//--------/             /--------//--------//--------//--------//--------//--------//--------/
* |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |
* |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |
* \--------\\--------\\--------\\--------\\--------\\--------\\--------\             \--------\\--------\\--------\\--------\\--------\\--------\\--------\
*
*
*                     /--------//--------//--------//--------//--------/                                           /--------//--------//--------//--------//--------/
*                     |         |         |         |         |         |                                          |         |         |         |         |         |
*                     |         |         |         |         |         |                                          |         |         |         |         |         |
*                     \--------\\--------\\--------\\--------\/--------//--------/   /--------//--------/          \--------\\--------\\--------\\--------\\--------\
*                                                             |         |         |  |         |         |
*                                                             |         |         |  |         |         |
*                                                             \--------\/--------/   /--------/\--------\
*                                                                       |         |  |         |
*                                                                       |         |  |         |
*                                                   /--------//--------//--------/   /--------//--------//--------/
*                                                   |         |         |         |  |         |         |         |
*                                                   |         |         |         |  |         |         |         |
*                                                   \--------\\--------\\--------\   \--------\\--------\\--------\
*
*
**/
[SMLY]=LAYOUT_ergodox(
//left half
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
                  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
                                              KC_TRNS, KC_TRNS, 
                                                     KC_TRNS, 
                                       KC_TRNS, KC_TRNS, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 half
    M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
    KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS, 
           M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_TRNS, 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(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
    KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS,
           M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
                         KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
    KC_TRNS, KC_TRNS,
    KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS),
/**
* Layer: NUMB
* /----//----//----//----//----//----//----/         /----//----//----//----//----//----//----/        
* |     |     |     |     |     |     |     |        |     | F6  | F7  | F8  | F9  | F10 | F11 |       
* |     |     |     |     |     |     |     |        |     |     |     |     |     |     |     |       
* /----//----//----//----//----//----//----/         /----//----//----//----//----//----//----/        
* |     |     |     | UP  |     |     |     |        |     | /   | 7   | 8   | 9   | *   | F12 |       
* |     |     |     |     |     |     |     |        |     |     |     |     |     |     |     |       
* /----//----//----//----//----//----/\----\         \----\/----//----//----//----//----//----/        
* |     |     | LEFT| DOWN| RGHT|     |                    | /   | 4   | 5   | 6   | +   | -   |       
* |     |     |     |     |     |     |                    |     |     |     |     |     |     |       
* /----//----//----//----//----//----//----/         /----//----//----//----//----//----//----/        
* |     |     |     |     |     |     |     |        |     | %   | 1   | 2   | 3   |     |     |       
* |     |     |     |     |     |     |     |        |     |     |     |     |     |     |     |       
* \----\\----\\----\\----\\----\\----\\----\         \----\\----\\----\\----\\----\\----\\----\        
*                                                                                                      
*                                                                                                      
*             /----//----//----//----//----/                           /----//----//----//----//----/  
*             |     |     |     |     |     |                          | 0   | .   | ,   | =   |     | 
*             |     |     |     |     |     |                          |     |     |     |     |     | 
*             \----\\----\\----\\----\/----//----/   /----//----/      \----\\----\\----\\----\\----\  
*                                     |     |     |  |     |     |                                     
*                                     |     |     |  |     |     |                                     
*                                     \----\/----/   /----/\----\                                      
*                                           |     |  |     |                                           
*                                           |     |  |     |                                           
*                               /----//----//----/   /----//----//----/                                
*                               |     |     |     |  |     |     |     |                               
*                               |     |     |     |  |     |     |     |                               
*                               \----\\----\\----\   \----\\----\\----\                                
*                                                                                                      
* 
* /----//----//----//----//----//----//----/         /----//----//----//----//----//----//----/
* |     |     |     |     |     |     |     |        |     | F6  | F7  | F8  | F9  | F10 | F11 |
* |     |     |     |     |     |     |     |        |     |     |     |     |     |     |     |
* /----//----//----//----//----//----//----/         /----//----//----//----//----//----//----/
* |     |     |     | UP  |     |     |     |        |     | /   | 7   | 8   | 9   | *   | F12 |
* |     |     |     |     |     |     |     |        |     |     |     |     |     |     |     |
* /----//----//----//----//----//----/\----\         \----\/----//----//----//----//----//----/
* |     |     | LEFT| DOWN| RGHT|     |                    | /   | 4   | 5   | 6   | +   | -   |
* |     |     |     |     |     |     |                    |     |     |     |     |     |     |
* /----//----//----//----//----//----//----/         /----//----//----//----//----//----//----/
* |     |     |     |     |     |     |     |        |     | %   | 1   | 2   | 3   |     |     |
* |     |     |     |     |     |     |     |        |     |     |     |     |     |     |     |
* \----\\----\\----\\----\\----\\----\\----\         \----\\----\\----\\----\\----\\----\\----\
*
*
*             /----//----//----//----//----/                           /----//----//----//----//----/
*             |     |     |     |     |     |                          | 0   | .   | ,   | =   |     |
*             |     |     |     |     |     |                          |     |     |     |     |     |
*             \----\\----\\----\\----\/----//----/   /----//----/      \----\\----\\----\\----\\----\
*                                     |     |     |  |     |     |
*                                     |     |     |  |     |     |
*                                     \----\/----/   /----/\----\
*                                           |     |  |     |
*                                           |     |  |     |
*                               /----//----//----/   /----//----//----/
*                               |     |     |     |  |     |     |     |
*                               |     |     |     |  |     |     |     |
*                               \----\\----\\----\   \----\\----\\----\
*
*
**/
[NUMB]=LAYOUT_ergodox(
//left half
    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_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
                  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
                                              KC_TRNS, KC_TRNS, 
                                                     KC_TRNS, 
                                       KC_TRNS, KC_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_LEFT, KC_DOWN, KC_RGHT, KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 half
    KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, 
    KC_TRNS, DE_SLSH, KC_7, KC_8, KC_9, DE_ASTR, KC_F12, 
           DE_SLSH, KC_4, KC_5, KC_6, DE_PLUS, DE_MINS, 
    KC_TRNS, DE_PERC, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS, 
                         KC_0, KC_DOT, KC_COMM, DE_EQL, KC_TRNS, 
    KC_TRNS, KC_TRNS, 
    KC_TRNS, 
    KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
    KC_TRNS, DE_SLSH, KC_7, KC_8, KC_9, DE_ASTR, KC_F12,
           DE_SLSH, KC_4, KC_5, KC_6, DE_PLUS, DE_MINS,
    KC_TRNS, DE_PERC, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS,
                         KC_0, KC_DOT, KC_COMM, DE_EQL, KC_TRNS,
    KC_TRNS, KC_TRNS,
    KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS),
/**
* Layer: EGOS
* /--------//--------//--------//--------//--------//--------//--------/             /--------//--------//--------//--------//--------//--------//--------/            
* |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |           
* |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |           
* /--------//--------//--------//--------//--------//--------//--------/             /--------//--------//--------//--------//--------//--------//--------/            
* |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |           
* |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |           
* /--------//--------//--------//--------//--------//--------/\--------\             \--------\/--------//--------//--------//--------//--------//--------/            
* | Shift   |         |         |         |         |         |                                |         |         |         |         |         |         |           
* |         |         |         |         |         |         |                                |         |         |         |         |         |         |           
* /--------//--------//--------//--------//--------//--------//--------/             /--------//--------//--------//--------//--------//--------//--------/            
* |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |           
* |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |           
* \--------\\--------\\--------\\--------\\--------\\--------\\--------\             \--------\\--------\\--------\\--------\\--------\\--------\\--------\            
*                                                                                                                                                                      
*                                                                                                                                                                      
*                     /--------//--------//--------//--------//--------/                                           /--------//--------//--------//--------//--------/  
*                     | Ctrl    |         |         |         |         |                                          |         |         |         | Toggle 5|         | 
*                     |         |         |         |         |         |                                          |         |         |         |         |         | 
*                     \--------\\--------\\--------\\--------\/--------//--------/   /--------//--------/          \--------\\--------\\--------\\--------\\--------\  
*                                                             | F1      | F2      |  |         |         |                                                             
*                                                             |         |         |  |         |         |                                                             
*                                                             \--------\/--------/   /--------/\--------\                                                              
*                                                                       | F3      |  |         |                                                                       
*                                                                       |         |  |         |                                                                       
*                                                   /--------//--------//--------/   /--------//--------//--------/                                                    
*                                                   | SPC     | Ctrl    | F4      |  |         |         |         |                                                   
*                                                   |         |         |         |  |         |         |         |                                                   
*                                                   \--------\\--------\\--------\   \--------\\--------\\--------\                                                    
*                                                                                                                                                                      
* 
* /--------//--------//--------//--------//--------//--------//--------/             /--------//--------//--------//--------//--------//--------//--------/
* |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |
* |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |
* /--------//--------//--------//--------//--------//--------//--------/             /--------//--------//--------//--------//--------//--------//--------/
* |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |
* |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |
* /--------//--------//--------//--------//--------//--------/\--------\             \--------\/--------//--------//--------//--------//--------//--------/
* | Shift   |         |         |         |         |         |                                |         |         |         |         |         |         |
* |         |         |         |         |         |         |                                |         |         |         |         |         |         |
* /--------//--------//--------//--------//--------//--------//--------/             /--------//--------//--------//--------//--------//--------//--------/
* |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |
* |         |         |         |         |         |         |         |            |         |         |         |         |         |         |         |
* \--------\\--------\\--------\\--------\\--------\\--------\\--------\             \--------\\--------\\--------\\--------\\--------\\--------\\--------\
*
*
*                     /--------//--------//--------//--------//--------/                                           /--------//--------//--------//--------//--------/
*                     | Ctrl    |         |         |         |         |                                          |         |         |         | Toggle 5|         |
*                     |         |         |         |         |         |                                          |         |         |         |         |         |
*                     \--------\\--------\\--------\\--------\/--------//--------/   /--------//--------/          \--------\\--------\\--------\\--------\\--------\
*                                                             | F1      | F2      |  |         |         |
*                                                             |         |         |  |         |         |
*                                                             \--------\/--------/   /--------/\--------\
*                                                                       | F3      |  |         |
*                                                                       |         |  |         |
*                                                   /--------//--------//--------/   /--------//--------//--------/
*                                                   | SPC     | Ctrl    | F4      |  |         |         |         |
*                                                   |         |         |         |  |         |         |         |
*                                                   \--------\\--------\\--------\   \--------\\--------\\--------\
*
*
**/
[EGOS]=LAYOUT_ergodox(
//left half
    KC_TRNS, KC_TRNS, KC_TRNS, 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_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_F1, KC_F2, 
                                                     KC_F3, 
                                       KC_SPC, KC_LCTL, KC_F4, 
    KC_TRNS, KC_TRNS, KC_TRNS, 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_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_F1, KC_F2,
                                                     KC_F3,
                                       KC_SPC, KC_LCTL, KC_F4,
    //right half
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
           KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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(M_TOGGLE_5), KC_TRNS, 
    KC_TRNS, KC_TRNS, 
    KC_TRNS, 
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
           KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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(M_TOGGLE_5), KC_TRNS,
    KC_TRNS, KC_TRNS,
    KC_TRNS,
    KC_TRNS, KC_TRNS, KC_TRNS),
};



@@ 556,7 556,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

uint8_t layer = biton32(layer_state);
uint8_t layer = get_highest_layer(layer_state);

ergodox_board_led_off();
ergodox_right_led_1_off();


@@ 566,17 566,17 @@ switch (layer) {

    case SYMB:
        ergodox_right_led_1_on();
        
        


    break;
    case MDIA:
        

        ergodox_right_led_2_on();
        

    break;
    case NUMB:
        
        


        ergodox_right_led_3_on();
    break;
    case EGOS:


@@ 590,4 590,3 @@ break;
}

};


M layouts/community/ergodox/osx_fr/keymap.c => layouts/community/ergodox/osx_fr/keymap.c +1 -1
@@ 141,7 141,7 @@ LAYOUT_ergodox(
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/osx_kinesis_pnut/keymap.c => layouts/community/ergodox/osx_kinesis_pnut/keymap.c +1 -1
@@ 145,7 145,7 @@ LAYOUT_ergodox(
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/osx_neo2/keymap.c => layouts/community/ergodox/osx_neo2/keymap.c +1 -1
@@ 704,7 704,7 @@ void matrix_init_user(void){

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);

  ergodox_board_led_off();
  ergodox_right_led_1_off();

M layouts/community/ergodox/phoenix/keymap.c => layouts/community/ergodox/phoenix/keymap.c +1 -1
@@ 138,7 138,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/plover/keymap.c => layouts/community/ergodox/plover/keymap.c +1 -1
@@ 182,7 182,7 @@ LAYOUT_ergodox(
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/qwerty_code_friendly/keymap.c => layouts/community/ergodox/qwerty_code_friendly/keymap.c +1 -1
@@ 662,7 662,7 @@ void matrix_init_user(void) {
/* Runs constantly in the background, in a loop. */
void matrix_scan_user(void) {

  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);

  ergodox_board_led_off();
  ergodox_right_led_1_off();

M layouts/community/ergodox/reset_eeprom/keymap.c => layouts/community/ergodox/reset_eeprom/keymap.c +1 -1
@@ 96,7 96,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/romanzolotarev-norman-plover-osx-hjkl/keymap.c => layouts/community/ergodox/romanzolotarev-norman-plover-osx-hjkl/keymap.c +1 -1
@@ 88,7 88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);
  ergodox_board_led_off();
  ergodox_right_led_1_off();
  ergodox_right_led_2_off();

M layouts/community/ergodox/romanzolotarev-norman-plover-osx/keymap.c => layouts/community/ergodox/romanzolotarev-norman-plover-osx/keymap.c +1 -1
@@ 88,7 88,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);
  ergodox_board_led_off();
  ergodox_right_led_1_off();
  ergodox_right_led_2_off();

M layouts/community/ergodox/romanzolotarev-norman-qwerty-osx/keymap.c => layouts/community/ergodox/romanzolotarev-norman-qwerty-osx/keymap.c +1 -1
@@ 48,7 48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);
  ergodox_board_led_off();
  ergodox_right_led_1_off();
  ergodox_right_led_2_off();

M layouts/community/ergodox/sethbc/keymap.c => layouts/community/ergodox/sethbc/keymap.c +1 -1
@@ 77,7 77,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/siroken3/keymap.c => layouts/community/ergodox/siroken3/keymap.c +1 -1
@@ 141,7 141,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/sneako/keymap.c => layouts/community/ergodox/sneako/keymap.c +1 -1
@@ 141,7 141,7 @@ LAYOUT_ergodox(
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/software_neo2/keymap.c => layouts/community/ergodox/software_neo2/keymap.c +1 -1
@@ 98,7 98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/swedish-lindhe/keymap.c => layouts/community/ergodox/swedish-lindhe/keymap.c +1 -1
@@ 162,7 162,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/swedish/keymap.c => layouts/community/ergodox/swedish/keymap.c +1 -1
@@ 203,7 203,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/swissgerman/keymap.c => layouts/community/ergodox/swissgerman/keymap.c +1 -1
@@ 222,7 222,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    switch (layer) {
      // TODO: Make this relevant to the ErgoDox EZ.

M layouts/community/ergodox/techtomas/keymap.c => layouts/community/ergodox/techtomas/keymap.c +1 -1
@@ 180,7 180,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/tkuichooseyou/keymap.c => layouts/community/ergodox/tkuichooseyou/keymap.c +1 -1
@@ 138,7 138,7 @@ LAYOUT_ergodox(
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/tonyabra_osx/keymap.c => layouts/community/ergodox/tonyabra_osx/keymap.c +1 -1
@@ 138,7 138,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/townk_osx/keymap.c => layouts/community/ergodox/townk_osx/keymap.c +1 -1
@@ 229,7 229,7 @@ uint8_t current_layer = BASE;

// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
  uint8_t layer = biton32(layer_state);
  uint8_t layer = get_highest_layer(layer_state);

  ergodox_led_all_off();
  ergodox_led_all_set(LED_BRIGHTNESS_LO);

M layouts/community/ergodox/twentylives_dvorak_with_hebrew/keymap.c => layouts/community/ergodox/twentylives_dvorak_with_hebrew/keymap.c +11 -11
@@ 36,7 36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
	                                          KC_DELETE, KC_TRNS,
	                                                     KC_LGUI,
	                              KC_BSPACE,CTL_T(KC_NO),KC_LALT,
	

	KC_TILD,   KC_6,    KC_7,        KC_8,        KC_9,      KC_0,     KC_EQUAL,
	KC_TRNS,   KC_F,    KC_G,        KC_C,        KC_R,      KC_L,     KC_SLASH,
	KC_D,      KC_H,    KC_T,        KC_N,        KC_S,      KC_MINUS,


@@ 77,7 77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
	                                               KC_TRNS, KC_TRNS,
	                                                        KC_TRNS,
	                                      KC_TRNS, KC_TRNS, KC_TRNS,
	

	KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,  KC_TRNS,   KC_TRNS,   KC_TRNS,
	KC_TRNS, KC_Y,    KC_U,    KC_E,     KC_O,      KC_P,      KC_TRNS,
	         KC_H,    KC_J,    KC_K,     KC_L,      KC_SCOLON, KC_TRNS,


@@ 110,9 110,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 *                                 `--------------------'       `--------------------'
 */
[2] = LAYOUT_ergodox(
	KC_TRNS, KC_F1,   KC_F2,      KC_F3,      KC_F4,       KC_F5,   KC_TRNS, 
	KC_TRNS, KC_F1,   KC_F2,      KC_F3,      KC_F4,       KC_F5,   KC_TRNS,
	KC_TRNS, KC_TRNS, KC_TRNS,    KC_MS_UP,   KC_TRNS,     KC_TRNS, KC_TRNS,
	KC_TRNS, KC_TRNS, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, 
	KC_TRNS, KC_TRNS, KC_MS_LEFT, KC_MS_DOWN, KC_MS_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_TRNS,


@@ 120,12 120,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
	                                              KC_TRNS, KC_TRNS, KC_TRNS,

	KC_TRNS,    KC_F6,      KC_F7,      KC_F8,      KC_F9,   KC_F10,  KC_TRNS,
	KC_F11,     KC_TRNS,    KC_TRNS,    KC_UP,      KC_TRNS, KC_TRNS, KC_TRNS, 
	KC_F11,     KC_TRNS,    KC_TRNS,    KC_UP,      KC_TRNS, KC_TRNS, KC_TRNS,
	KC_TRNS,    KC_LEFT,    KC_DOWN,    KC_RIGHT,   KC_TRNS, KC_TRNS,
	KC_F12,     KC_TRNS,    KC_TRNS,    KC_TRNS,    KC_TRNS, KC_TRNS, KC_TRNS,
	                        KC_MS_BTN1, KC_MS_BTN2, KC_TRNS, KC_TRNS, KC_TRNS,
	KC_TRNS,    KC_TRNS,
	KC_TRNS, 
	KC_TRNS,
	KC_TRNS,    KC_TRNS,    KC_TRNS
),



@@ 154,19 154,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
	// 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_TRNS,
	KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,    KC_TRNS,     KC_TRNS, 
	KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,    KC_TRNS,     KC_TRNS,
	KC_TRNS, KC_TRNS, KC_TRNS,    KC_TRNS,    KC_TRNS,     KC_TRNS, 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_LOCKING_NUM, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_TRNS, 
	KC_TRNS, KC_TRNS,  KC_LOCKING_NUM, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_TRNS,
	KC_TRNS, KC_TRNS,  KC_KP_7,        KC_KP_8,     KC_KP_9,        KC_KP_PLUS,  KC_TRNS,
	         KC_TRNS,  KC_KP_4,        KC_KP_5,     KC_KP_6,        KC_KP_PLUS,  KC_TRNS,     
	         KC_TRNS,  KC_KP_4,        KC_KP_5,     KC_KP_6,        KC_KP_PLUS,  KC_TRNS,
	KC_TRNS, KC_TRNS,  KC_KP_1,        KC_KP_2,     KC_KP_3,        KC_ENTER,    KC_TRNS,
	                   KC_KP_0,        KC_KP_0,     KC_KP_DOT,      KC_ENTER,    KC_TRNS,
	KC_TRNS,  KC_TRNS, 
	KC_TRNS,  KC_TRNS,
	KC_TRNS,
	KC_TRNS, KC_TRNS, KC_TRNS
),


@@ 175,7 175,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/win10_writers-block/keymap.c => layouts/community/ergodox/win10_writers-block/keymap.c +14 -14
@@ 4,8 4,8 @@
#include "version.h"
#include "wait.h"

#define BASE 0 // default layer  -  helpful for writing in Office-style word processors. 
#define SYMB 1 // symbol layer   -  NumPad, etc. - same as Ergodox EZ default but no EEPROM or Version key 
#define BASE 0 // default layer  -  helpful for writing in Office-style word processors.
#define SYMB 1 // symbol layer   -  NumPad, etc. - same as Ergodox EZ default but no EEPROM or Version key
#define RIMW 2 // rimworld layer -  made for the game RimWorld, by Tynan Sylvester | feel free to remap for your favorite game!
#define MDIA 3 // media layer    -  mouse and music - close to Ergodox EZ default media layer



@@ 27,19 27,19 @@ enum {
};

void cake_count (qk_tap_dance_state_t *state, void *user_data) {
  if (state->count == 2) {         
  if (state->count == 2) {
    layer_on (SYMB);        //define double tap here
    layer_off (MDIA);
  } 
  else {    
  }
  else {
    layer_off (SYMB);       //define single tap or hold here
    layer_off (MDIA);
  }
  if (state->count == 3) {         
  if (state->count == 3) {
     layer_on (RIMW);       //define triple tap here
     layer_off (MDIA);
  } 
  else {    
  }
  else {
   	layer_off (RIMW);       //define single tap or hold here
	layer_off (MDIA);
    reset_tap_dance (state);


@@ 83,7 83,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 * ,--------------------------------------------------.           ,--------------------------------------------------.
 * |   `    |   1  |   2  |   3  |   4  |   5  | 6    |           |  7   |   7  |   8  |   9  |   0  |   -  |   =    |
 * |--------+------+------+------+------+-------------|           |------+------+------+------+------+------+--------|
 * | F12/L1 |   Q  |   W  |   E  |   R  |   T  |  {/[ |           |TD(L0 |   Y  |   U  |   I  |   O  |   P  |   \    | 
 * | F12/L1 |   Q  |   W  |   E  |   R  |   T  |  {/[ |           |TD(L0 |   Y  |   U  |   I  |   O  |   P  |   \    |
 * |--------+------+------+------+------+------|      |           |L1 L2)|------+------+------+------+------+--------|
 * |Caps/Win|   A  |   S  |   D  |   F  |   G  |------|           |------|   H  |   J  |   K  |   L  |   ;  |   '    |
 * |--------+------+------+------+------+------|  }/] |           TD(ctrl|------+------+------+------+------+--------|


@@ 163,8 163,8 @@ LT(SYMB, KC_F12),         KC_Q,         KC_W,         KC_E,        KC_R,   KC_T,
       KC_TRNS, KC_TRNS,
       KC_TRNS,
       KC_TRNS, KC_TRNS, KC_TRNS
),	
	
),

/* Keymap 2: RimWorld Layer
 *
 * ,--------------------------------------------------.           ,--------------------------------------------------.


@@ 186,7 186,7 @@ LT(SYMB, KC_F12),         KC_Q,         KC_W,         KC_E,        KC_R,   KC_T,
 *                                 |      |      |  Q   |       |      |      |      |
 *                                 `--------------------'       `--------------------'
 */
// RIMWORLD 
// RIMWORLD
[RIMW] = LAYOUT_ergodox(
       // left hand
        KC_ESC,   KC_1,    KC_2,     KC_3,    KC_4,    KC_5,    KC_6,


@@ 300,7 300,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();


@@ 315,7 315,7 @@ void matrix_scan_user(void) {
            break;
        case 3:
            ergodox_right_led_3_on();
            break;			
            break;
        default:
            // none
            break;

M layouts/community/ergodox/xyverz/keymap.c => layouts/community/ergodox/xyverz/keymap.c +3 -3
@@ 1,6 1,6 @@
/*
 * About this keymap:
 * 
 *
 * The Dvorak layout shown here stems from my early Kinesis years, using the Contour PS/2 with a Dvorak
 * software layout. Because of this, the RBRC and LBRC were on opposite sides of the board in the corner
 * keys. When I originally set up this keymap, I'd decided to continue using this layout with my ErgoDox.


@@ 14,7 14,7 @@
 * layouts.
 *
 * What's New:
 * 
 *
 * I've overhauled this Dvorak layout a bit to more match what I've got on my other Ortho boards. For
 * some keys, I'm moving away from my old Kinesis keymap and adding the brackets and braces to the
 * inner column vertical keys. I figure this will help me have better ease of use. In this update, I


@@ 246,7 246,7 @@ void matrix_init_user(void) {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ergodox/zweihander-macos/keymap.c => layouts/community/ergodox/zweihander-macos/keymap.c +1 -1
@@ 140,7 140,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {

    uint8_t layer = biton32(layer_state);
    uint8_t layer = get_highest_layer(layer_state);

    ergodox_board_led_off();
    ergodox_right_led_1_off();

M layouts/community/ortho_4x12/peej/keymap.c => layouts/community/ortho_4x12/peej/keymap.c +1 -1
@@ 56,7 56,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
    writePinLow(LED_RED);
    writePinLow(LED_GREEN);

    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
    case _FUNCTION:
        writePinHigh(LED_RED);
        break;

M quantum/action_layer.h => quantum/action_layer.h +1 -1
@@ 41,7 41,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
#endif

#if !defined(LAYER_STATE_8BIT) && !defined(LAYER_STATE_16BIT) && !defined(LAYER_STATE_32BIT)
#    define LAYER_STATE_32BIT
#    define LAYER_STATE_16BIT
#endif

#if defined(LAYER_STATE_8BIT)

M tmk_core/protocol/arm_atsam/md_rgb_matrix.c => tmk_core/protocol/arm_atsam/md_rgb_matrix.c +1 -1
@@ 450,7 450,7 @@ static void md_rgb_matrix_config_override(int i) {
    float bo = 0;
    float po;

    uint8_t highest_active_layer = biton32(layer_state);
    uint8_t highest_active_layer = get_highest_layer(layer_state);

    if (led_animation_circular) {
        // TODO: should use min/max values from LED configuration instead of

M users/333fred/333fred.c => users/333fred/333fred.c +1 -1
@@ 115,7 115,7 @@ void tap_dance_process_keycode(uint16_t keycode) {
}

__attribute__ ((weak))
void layer_state_set_rgb(uint32_t state) {}
void layer_state_set_rgb(layer_state_t state) {}

layer_state_t layer_state_set_user(layer_state_t state) {
  layer_state_set_rgb(state);

M users/333fred/rgb.c => users/333fred/rgb.c +2 -2
@@ 23,8 23,8 @@
#include "quantum.h"
#include "333fred.h"

void layer_state_set_rgb(uint32_t state) {
  switch (biton32(state)) {
void layer_state_set_rgb(layer_state_t state) {
  switch (get_highest_layer(state)) {
    case BASE:
      // purple
      rgblight_sethsv_noeeprom(210, 255, 20);

M users/bbaserdem/bbaserdem.c => users/bbaserdem/bbaserdem.c +2 -2
@@ 59,7 59,7 @@ __attribute__ ((weak)) void matrix_scan_keymap(void) { }
__attribute__ ((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
    return true;
}
__attribute__ ((weak)) uint32_t layer_state_set_keymap (uint32_t state) {
__attribute__ ((weak)) layer_state_t layer_state_set_keymap (layer_state_t state) {
    return state;
}
__attribute__ ((weak)) void led_set_keymap(uint8_t usb_led) { }


@@ 627,7 627,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
    state = layer_state_set_keymap (state);
#ifdef RGBLIGHT_ENABLE
    // Change RGB lighting depending on the last layer activated
    rgblight_change( biton32(state) );
    rgblight_change( get_highest_layer(state) );
#endif
    return state;
}

M users/billypython/billypython.c => users/billypython/billypython.c +1 -1
@@ 23,7 23,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}

__attribute__((weak))
uint32_t layer_state_set_keymap(uint32_t state) {
layer_state_t layer_state_set_keymap(layer_state_t state) {
  return state;
}


M users/billypython/billypython.h => users/billypython/billypython.h +1 -1
@@ 31,4 31,4 @@ enum layers_user {
};

bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
uint32_t layer_state_set_keymap(uint32_t state);
layer_state_t layer_state_set_keymap(layer_state_t state);

M users/dhertz/dhertz.c => users/dhertz/dhertz.c +1 -2
@@ 18,7 18,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
  return true;
}
__attribute__ ((weak))
uint32_t layer_state_set_keymap (uint32_t state) {
layer_state_t layer_state_set_keymap (layer_state_t state) {
  return state;
}
__attribute__ ((weak))


@@ 107,4 107,3 @@ layer_state_t layer_state_set_user (layer_state_t state) {
void led_set_user(uint8_t usb_led) {
   led_set_keymap(usb_led);
}


M users/doogle999/doogle999.c => users/doogle999/doogle999.c +3 -3
@@ 382,7 382,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record)
	static char text[CALC_BUFFER_SIZE + 1]; // Used to store input and then output when ready to print
	static char backspaceText[CALC_BUFFER_SIZE + 1]; // Pretty dumb waste of memory because only backspace characters, used with send_string to backspace and remove input

	if((biton32(layer_state) == CALC_LAYER && CALC_FORCE_NUM_LOCK_INSIDE_CALC) || (biton32(layer_state) != CALC_LAYER && CALC_FORCE_NUM_LOCK_OUTSIDE_CALC))
	if((get_highest_layer(layer_state) == CALC_LAYER && CALC_FORCE_NUM_LOCK_INSIDE_CALC) || (get_highest_layer(layer_state) != CALC_LAYER && CALC_FORCE_NUM_LOCK_OUTSIDE_CALC))
	{
		bool numpadKeyPressed = record->event.pressed &&
			!(get_mods() & MODS_SHIFT_MASK) &&


@@ 397,7 397,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record)
		}
	}

	if(biton32(layer_state) != CALC_LAYER) { return true; }
	if(get_highest_layer(layer_state) != CALC_LAYER) { return true; }

	int action = process_input(keycode, get_mods(), record->event);
	switch(action)


@@ 457,4 457,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t* record)
		send_string(characterToSend);
	}
	return false;
}
\ No newline at end of file
}

M users/edvorakjp/edvorakjp.c => users/edvorakjp/edvorakjp.c +1 -1
@@ 12,7 12,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
    return layer_state_set_keymap(state);
}

__attribute__((weak)) uint32_t layer_state_set_keymap(uint32_t state) { return state; }
__attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state) { return state; }

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    bool process_record_user_result = process_record_keymap(keycode, record) && process_record_edvorakjp_swap_scln(keycode, record) && process_record_edvorakjp_config(keycode, record) && process_record_layer(keycode, record) && process_record_ime(keycode, record);

M users/edvorakjp/edvorakjp.h => users/edvorakjp/edvorakjp.h +1 -1
@@ 68,7 68,7 @@ enum tap_dance_code {
void     matrix_init_user(void);
void     matrix_init_keymap(void);
layer_state_t layer_state_set_user(layer_state_t state);
uint32_t layer_state_set_keymap(uint32_t state);
layer_state_t layer_state_set_keymap(layer_state_t state);
bool     process_record_user(uint16_t keycode, keyrecord_t *record);
bool     process_record_keymap(uint16_t keycode, keyrecord_t *record);


M users/ericgebhart/ericgebhart.c => users/ericgebhart/ericgebhart.c +1 -1
@@ 40,7 40,7 @@ __attribute__ ((weak))
void matrix_scan_keymap(void) {}

__attribute__ ((weak))
uint32_t layer_state_set_keymap (uint32_t state) {
layer_state_t layer_state_set_keymap (layer_state_t state) {
  return state;
}


M users/ericgebhart/tap_dances.c => users/ericgebhart/tap_dances.c +2 -2
@@ 47,7 47,7 @@ void tap_dance_mouse_btns (qk_tap_dance_state_t *state, void *user_data) {

// counting on all the qwerty layers to be less than dvorak_on_bepo
int on_qwerty(){
    uint8_t deflayer = (biton32(default_layer_state));
    uint8_t deflayer = (get_highest_layer(default_layer_state));
    return (deflayer < _DVORAK_BP);
}



@@ 58,7 58,7 @@ static void switch_default_layer(uint8_t layer) {

// so the keyboard remembers which layer it's in after power disconnect.
/*
  uint32_t default_layer_state_set_kb(uint32_t state) {
  layer_state_t default_layer_state_set_kb(layer_state_t state) {
  eeconfig_update_default_layer(state);
  return state;
  }

M users/kuchosauronad0/kuchosauronad0.c => users/kuchosauronad0/kuchosauronad0.c +3 -3
@@ 117,7 117,7 @@ void matrix_scan_user(void){
}

__attribute__ ((weak))
uint32_t layer_state_set_keymap (uint32_t state) {
layer_state_t layer_state_set_keymap (layer_state_t state) {
  return state;
}



@@ 133,12 133,12 @@ layer_state_t layer_state_set_user(layer_state_t state) {


__attribute__ ((weak))
uint32_t default_layer_state_set_keymap (uint32_t state) {
layer_state_t default_layer_state_set_keymap (layer_state_t state) {
  return state;
}

// Runs state check and changes underglow color and animation
uint32_t default_layer_state_set_user(uint32_t state) {
layer_state_t default_layer_state_set_user(layer_state_t state) {
  state = default_layer_state_set_keymap(state);
#if 0
#ifdef RGBLIGHT_ENABLE

M users/kuchosauronad0/kuchosauronad0.h => users/kuchosauronad0/kuchosauronad0.h +2 -2
@@ 65,8 65,8 @@ void     shutdown_keymap(void);
void     suspend_power_down_keymap(void);
void     suspend_wakeup_init_keymap(void);
void     matrix_scan_keymap(void);
uint32_t layer_state_set_keymap (uint32_t state);
uint32_t default_layer_state_set_keymap (uint32_t state);
layer_state_t layer_state_set_keymap (layer_state_t state);
layer_state_t default_layer_state_set_keymap (layer_state_t state);
void     led_set_keymap(uint8_t usb_led);
void     eeconfig_init_keymap(void);


M users/kuchosauronad0/rgblight_user.c => users/kuchosauronad0/rgblight_user.c +10 -10
@@ 84,7 84,7 @@ void matrix_scan_rgb(void) {
layer_state_t layer_state_set_rgb(layer_state_t state) {
# ifdef RGBLIGHT_ENABLE
  if (userspace_config.rgb_layer_change) {
    switch (biton32(state)) {  // _RAISE, _LOWER and _ADJUST use a custom color and the breathing effect
    switch (get_highest_layer(state)) {  // _RAISE, _LOWER and _ADJUST use a custom color and the breathing effect
      case _RAISE:
        rgblight_sethsv_noeeprom_green();
        rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3);


@@ 98,7 98,7 @@ layer_state_t layer_state_set_rgb(layer_state_t state) {
        rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 2);
        break;
      default:  // Use a solid color for normal layers
        switch (biton32(default_layer_state)) {
        switch (get_highest_layer(default_layer_state)) {
          case _QWERTY:
            rgblight_sethsv_noeeprom_magenta();
            break;


@@ 118,7 118,7 @@ layer_state_t layer_state_set_rgb(layer_state_t state) {
            rgblight_sethsv_noeeprom_white();
            break;
        }
        biton32(state) == _MODS ? rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING) : rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);  // if _MODS layer is on, then breath to denote it
        get_highest_layer(state) == _MODS ? rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING) : rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);  // if _MODS layer is on, then breath to denote it
        break;
    }
  }


@@ 135,7 135,7 @@ void matrix_scan_indicator(void) {
#endif // !INDICATOR_LIGHTS

void rgblight_fade_helper(bool direction){
  // true: increase val = fade in 
  // true: increase val = fade in
  // false: decrease val = fade out
  for (uint8_t index = 0; index <  RGBLIGHT_VAL_STEP ; index++) {
    direction ? rgblight_increase_val()  : rgblight_decrease_val();


@@ 147,10 147,10 @@ void fadeflash_leds(uint8_t hue, uint8_t sat, uint8_t val){
  // fade out, set new hue and saturation, fade in, fade out, set old color, fade in
  // this is used in leader.c
  // TODO: come up with a better name maybe
  rgblight_fade_helper(false); 
  rgblight_sethsv_noeeprom(hue, sat, 0); 
  rgblight_fade_helper(true); 
  rgblight_fade_helper(false); 
  rgblight_sethsv_noeeprom(base_hue, base_sat, 0); 
  rgblight_fade_helper(true); 
  rgblight_fade_helper(false);
  rgblight_sethsv_noeeprom(hue, sat, 0);
  rgblight_fade_helper(true);
  rgblight_fade_helper(false);
  rgblight_sethsv_noeeprom(base_hue, base_sat, 0);
  rgblight_fade_helper(true);
}

M users/kuchosauronad0/template.c => users/kuchosauronad0/template.c +2 -2
@@ 63,11 63,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {


__attribute__ ((weak))
uint32_t layer_state_set_keymap (uint32_t state) {
layer_state_t layer_state_set_keymap (layer_state_t state) {
  return state;
}

uint32_t layer_state_set_user (uint32_t state) {
layer_state_t layer_state_set_user (layer_state_t state) {
  return layer_state_set_keymap (state);
}


M users/mtdjr/mtdjr.c => users/mtdjr/mtdjr.c +1 -1
@@ 137,7 137,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
};

layer_state_t layer_state_set_user(layer_state_t state) {
  switch (biton32(state)) {
  switch (get_highest_layer(state)) {
    case _RAISE:
      #ifdef RGBLIGHT_ENABLE
      rgblight_sethsv_noeeprom (240, 255, 255);

M users/ninjonas/oled.c => users/ninjonas/oled.c +1 -1
@@ 23,7 23,7 @@ bool process_record_oled(uint16_t keycode, keyrecord_t *record) {

void render_layout_state(void) {
  oled_write_P(PSTR("Layout: "), false);
  switch (biton32(default_layer_state)) {
  switch (get_highest_layer(default_layer_state)) {
      case _COLEMAK:
        oled_write_P(PSTR("Colemak"), false);
        break;

M users/pvinis/pvinis.c => users/pvinis/pvinis.c +1 -1
@@ 95,4 95,4 @@ void keyboard_post_init_user(void) {
// Default functions.
__attribute__((weak)) void keyboard_post_init_user_keymap(void) {}

__attribute__((weak)) uint32_t layer_state_set_user_keymap(uint32_t state) { return state; }
__attribute__((weak)) layer_state_t layer_state_set_user_keymap(layer_state_t state) { return state; }

M users/pvinis/pvinis.h => users/pvinis/pvinis.h +1 -1
@@ 169,4 169,4 @@ enum {

// Extra stuff that might be needed.
void     keyboard_post_init_user_keymap(void);
uint32_t layer_state_set_user_keymap(uint32_t state);
layer_state_t layer_state_set_user_keymap(layer_state_t state);

M users/romus/romus.c => users/romus/romus.c +2 -2
@@ 59,7 59,7 @@ __attribute__ ((weak)) void matrix_scan_keymap(void) { }
__attribute__ ((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
    return true;
}
__attribute__ ((weak)) uint32_t layer_state_set_keymap (uint32_t state) {
__attribute__ ((weak)) layer_state_t layer_state_set_keymap (layer_state_t state) {
    return state;
}
__attribute__ ((weak)) void led_set_keymap(uint8_t usb_led) { }


@@ 551,7 551,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
    state = layer_state_set_keymap (state);
#ifdef RGBLIGHT_ENABLE
    // Change RGB lighting depending on the last layer activated
    rgblight_change( biton32(state) );
    rgblight_change( get_highest_layer(state) );
#endif
    return state;
}

M users/sigma/sigma.c => users/sigma/sigma.c +2 -2
@@ 49,12 49,12 @@ bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {


__attribute__ ((weak))
uint32_t layer_state_set_keymap (uint32_t state) {
layer_state_t layer_state_set_keymap (layer_state_t state) {
  return state;
}

__attribute__ ((weak))
uint32_t default_layer_state_set_keymap (uint32_t state) {
layer_state_t default_layer_state_set_keymap (layer_state_t state) {
  return state;
}


M users/stanrc85/layer_rgb.c => users/stanrc85/layer_rgb.c +1 -1
@@ 5,7 5,7 @@ void matrix_init_user(void) {
};

layer_state_t layer_state_set_user(layer_state_t state) {
  switch (biton32(state)) {
  switch (get_highest_layer(state)) {
    case 0:
      rgblight_setrgb (0xFF, 0x00, 0x00);
      break;

M users/talljoe/talljoe.c => users/talljoe/talljoe.c +1 -1
@@ 138,7 138,7 @@ void matrix_init_user(void) {
  }
}

uint32_t default_layer_state_set_kb(uint32_t state) {
layer_state_t default_layer_state_set_kb(layer_state_t state) {
  // persist changes to default layers
  eeconfig_update_default_layer(state);
  return state;

M users/tominabox1/tominabox1.c => users/tominabox1/tominabox1.c +2 -2
@@ 128,7 128,7 @@ layer_state_t layer_state_set_keymap (layer_state_t state) {

layer_state_t layer_state_set_user(layer_state_t state) {
    state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
        case _LOWER:
            break;
        case _RAISE:


@@ 231,7 231,7 @@ void render_status_main(void) {

    // Host Keyboard Layer Status
    oled_write_P(PSTR("Layer: "), false);
    switch (biton32(layer_state)) {
    switch (get_highest_layer(layer_state)) {
        case _BASE:
            oled_write_P(PSTR("Colemak\n"), false);
            break;

M users/turbomech/backupturbomech.c => users/turbomech/backupturbomech.c +3 -3
@@ 31,7 31,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
  return true;
}
__attribute__ ((weak))
uint32_t layer_state_set_keymap (uint32_t state) {
layer_state_t layer_state_set_keymap (layer_state_t state) {
  return state;
}
__attribute__ ((weak))


@@ 300,7 300,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
#ifdef RGBLIGHT_ENABLE
  uint8_t default_layer = eeconfig_read_default_layer();
  if (rgb_layer_change) {
    switch (biton32(state)) {
    switch (get_highest_layer(state)) {
    case _FUNCTION:
      rgblight_set_blue;
     rgblight_mode(1);


@@ 377,7 377,7 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
  return true;
}
__attribute__ ((weak))
uint32_t layer_state_set_keymap (uint32_t state) {
layer_state_t layer_state_set_keymap (layer_state_t state) {
  return state;
}
__attribute__ ((weak))

M users/xulkal/custom_oled.c => users/xulkal/custom_oled.c +1 -1
@@ 37,7 37,7 @@ static void render_icon(void)

static void render_layer(void)
{
    uint8_t layer = layer_state ? biton(layer_state) : biton32(default_layer_state);
    uint8_t layer = layer_state ? get_highest_layer(layer_state) : get_highest_layer(default_layer_state);
#ifdef OLED_90ROTATION
    oled_write_P(PSTR("Layer"), false);
#else

M users/zer09/zer09.c => users/zer09/zer09.c +1 -1
@@ 43,7 43,7 @@ void matrix_init_user(void) {

void matrix_scan_user(void) {
  static uint8_t is_leds_changes = 1;
  c_lyr = biton32(layer_state);
  c_lyr = get_highest_layer(layer_state);

  is_leds_changes = is_leds_changes << set_layer_led(c_lyr);
  is_leds_changes = is_leds_changes << shifted_layer();