keyboard

My QMK keyboard layouts
git clone git://gtms.dev/keyboard
Log | Files | Refs | README | LICENSE

keymap.c (34758B)


      1 #include QMK_KEYBOARD_H
      2 #include "version.h"
      3 
      4 enum layers {
      5     DVRK, // Dvorak
      6     DSMB, // Dvorak symbols
      7     MDIA, // media keys
      8     MOVE, // move
      9     NUME, // numberic
     10     FKEY, // F-keys
     11     SERV, // service
     12 };
     13 
     14 // Left-hand home row mods
     15 #define HOME_A LGUI_T(KC_A)
     16 #define HOME_O LALT_T(KC_O)
     17 #define HOME_E LSFT_T(KC_E)
     18 #define HOME_U LCTL_T(KC_U)
     19 
     20 // Right-hand home row mods
     21 #define HOME_H RCTL_T(KC_H)
     22 #define HOME_T RSFT_T(KC_T)
     23 #define HOME_N LALT_T(KC_N)
     24 #define HOME_S RGUI_T(KC_S)
     25 
     26 #define LTHUMB LT(DSMB, KC_TAB)
     27 #define RTHUMB LT(DSMB, KC_ENT)
     28 
     29 // clang-format off
     30 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     31 //    ┌──────────┬────────┬────────┬────────┬──────────┬─────┬──────────┐       ┌─────┬─────┬──────────┬────────┬────────┬────────┬──────────┐
     32 //    │   caps   │        │        │        │          │     │          │       │     │     │          │        │        │        │          │
     33 //    ├──────────┼────────┼────────┼────────┼──────────┼─────┼──────────┤       ├─────┼─────┼──────────┼────────┼────────┼────────┼──────────┤
     34 //    │ CW_TOGG  │   ;    │   ,    │   .    │    p     │  y  │ MO(NUME) │       │     │  f  │    g     │   c    │   r    │   l    │          │
     35 //    ├──────────┼────────┼────────┼────────┼──────────┼─────┼──────────┘       └─────┼─────┼──────────┼────────┼────────┼────────┼──────────┤
     36 //    │   esc    │ HOME_A │ HOME_O │ HOME_E │  HOME_U  │  i  │                        │  d  │  HOME_H  │ HOME_T │ HOME_N │ HOME_S │    -     │
     37 //    ├──────────┼────────┼────────┼────────┼──────────┼─────┼──────────┐       ┌─────┼─────┼──────────┼────────┼────────┼────────┼──────────┤
     38 //    │   lsft   │   '    │   q    │   j    │    k     │  x  │          │       │     │  b  │    m     │   w    │   v    │   z    │   rsft   │
     39 //    ├──────────┼────────┼────────┼────────┼──────────┼─────┴──────────┘       └─────┴─────┼──────────┼────────┼────────┼────────┼──────────┤
     40 //    │ MO(SERV) │        │        │        │ MO(MOVE) │                                    │ MO(MDIA) │        │        │        │ MO(SERV) │
     41 //    └──────────┴────────┴────────┴────────┴──────────┼─────┬──────────┐       ┌─────┬─────┼──────────┴────────┴────────┴────────┴──────────┘
     42 //                                                     │     │          │       │     │     │
     43 //                                                     └─────┼──────────┤       ├─────┼─────┘
     44 //                                                           │          │       │     │
     45 //                                          ┌──────────┬─────┼──────────┤       ├─────┼─────┬──────────┐
     46 //                                          │  LTHUMB  │ spc │   bspc   │       │ del │ spc │  RTHUMB  │
     47 //                                          └──────────┴─────┴──────────┘       └─────┴─────┴──────────┘
     48 [DVRK] = LAYOUT_ergodox_pretty(
     49   KC_CAPS  , _______ , _______ , _______ , _______  , _______ , _______  ,         _______ , _______ , _______  , _______ , _______ , _______ , _______ ,
     50   CW_TOGG  , KC_SCLN , KC_COMM , KC_DOT  , KC_P     , KC_Y    , MO(NUME) ,         _______ , KC_F    , KC_G     , KC_C    , KC_R    , KC_L    , _______ ,
     51   KC_ESC   , HOME_A  , HOME_O  , HOME_E  , HOME_U   , KC_I    ,                              KC_D    , HOME_H   , HOME_T  , HOME_N  , HOME_S  , KC_MINS ,
     52   KC_LSFT  , KC_QUOT , KC_Q    , KC_J    , KC_K     , KC_X    , _______  ,         _______ , KC_B    , KC_M     , KC_W    , KC_V    , KC_Z    , KC_RSFT ,
     53   MO(SERV) , _______ , _______ , _______ , MO(MOVE) ,                                                  MO(MDIA) , _______ , _______ , _______ , MO(SERV),
     54                                                       _______ , _______  ,         _______ , _______                                                    ,
     55                                                                 _______  ,         _______                                                              ,
     56                                            LTHUMB   , KC_SPC  , KC_BSPC  ,         KC_DEL  , KC_SPC  , RTHUMB
     57 ),
     58 
     59 //    ┌──────┬─────┬─────┬─────┬─────┬─────┬─────┐       ┌─────┬─────┬─────┬─────┬─────┬─────┬──────┐
     60 //    │      │     │     │     │     │     │     │       │     │     │     │     │     │     │      │
     61 //    ├──────┼─────┼─────┼─────┼─────┼─────┼─────┤       ├─────┼─────┼─────┼─────┼─────┼─────┼──────┤
     62 //    │      │  &  │  <  │  >  │  %  │  @  │     │       │     │  ^  │  $  │  [  │  ]  │  `  │      │
     63 //    ├──────┼─────┼─────┼─────┼─────┼─────┼─────┘       └─────┼─────┼─────┼─────┼─────┼─────┼──────┤
     64 //    │  ~   │  |  │  :  │  (  │  0  │  )  │                   │  {  │  1  │  }  │  =  │  +  │  _   │
     65 //    ├──────┼─────┼─────┼─────┼─────┼─────┼─────┐       ┌─────┼─────┼─────┼─────┼─────┼─────┼──────┤
     66 //    │ lsft │  6  │  7  │  8  │  9  │  #  │     │       │     │  *  │  2  │  3  │  4  │  5  │ rsft │
     67 //    ├──────┼─────┼─────┼─────┼─────┼─────┴─────┘       └─────┴─────┼─────┼─────┼─────┼─────┼──────┤
     68 //    │      │     │     │     │  .  │                               │  .  │     │     │     │      │
     69 //    └──────┴─────┴─────┴─────┴─────┼─────┬─────┐       ┌─────┬─────┼─────┴─────┴─────┴─────┴──────┘
     70 //                                   │     │     │       │     │     │
     71 //                                   └─────┼─────┤       ├─────┼─────┘
     72 //                                         │     │       │     │
     73 //                             ┌─────┬─────┼─────┤       ├─────┼─────┬─────┐
     74 //                             │  \  │  !  │     │       │     │  ?  │  /  │
     75 //                             └─────┴─────┴─────┘       └─────┴─────┴─────┘
     76 [DSMB] = LAYOUT_ergodox_pretty(
     77   _______ , _______ , _______ , _______ , _______ , _______ , _______ ,         _______ , _______ , _______ , _______ , _______ , _______ , _______,
     78   _______ , KC_AMPR , KC_LT   , KC_GT   , KC_PERC , KC_AT   , _______ ,         _______ , KC_CIRC , KC_DLR  , KC_LBRC , KC_RBRC , KC_GRV  , _______,
     79   KC_TILD , KC_PIPE , KC_COLN , KC_LPRN , KC_0    , KC_RPRN ,                             KC_LCBR , KC_1    , KC_RCBR , KC_EQL  , KC_PLUS , KC_UNDS,
     80   KC_LSFT , KC_6    , KC_7    , KC_8    , KC_9    , KC_HASH , _______ ,         _______ , KC_ASTR , KC_2    , KC_3    , KC_4    , KC_5    , KC_RSFT,
     81   _______ , _______ , _______ , _______ , KC_DOT  ,                                                 KC_DOT  , _______ , _______ , _______ , _______,
     82                                                     _______ , _______ ,         _______ , _______                                                  ,
     83                                                               _______ ,         _______                                                            ,
     84                                           KC_BSLS , KC_EXLM , _______ ,         _______ , KC_QUES , KC_SLSH
     85 ),
     86 
     87 //    ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┐       ┌─────┬──────┬──────┬──────┬─────┬──────┬─────┐
     88 //    │     │     │     │     │     │     │     │       │     │      │      │      │     │      │     │
     89 //    ├─────┼─────┼─────┼─────┼─────┼─────┼─────┤       ├─────┼──────┼──────┼──────┼─────┼──────┼─────┤
     90 //    │     │     │     │     │     │     │     │       │     │      │ mply │ mstp │     │ mnxt │     │
     91 //    ├─────┼─────┼─────┼─────┼─────┼─────┼─────┘       └─────┼──────┼──────┼──────┼─────┼──────┼─────┤
     92 //    │     │     │     │     │     │     │                   │ mprv │ vold │ volu │     │      │     │
     93 //    ├─────┼─────┼─────┼─────┼─────┼─────┼─────┐       ┌─────┼──────┼──────┼──────┼─────┼──────┼─────┤
     94 //    │     │     │     │     │     │     │     │       │     │      │ mute │      │     │      │     │
     95 //    ├─────┼─────┼─────┼─────┼─────┼─────┴─────┘       └─────┴──────┼──────┼──────┼─────┼──────┼─────┤
     96 //    │     │     │     │     │     │                                │      │      │     │      │     │
     97 //    └─────┴─────┴─────┴─────┴─────┼─────┬─────┐       ┌─────┬──────┼──────┴──────┴─────┴──────┴─────┘
     98 //                                  │     │     │       │     │      │
     99 //                                  └─────┼─────┤       ├─────┼──────┘
    100 //                                        │     │       │     │
    101 //                            ┌─────┬─────┼─────┤       ├─────┼──────┬──────┐
    102 //                            │     │     │     │       │     │      │      │
    103 //                            └─────┴─────┴─────┘       └─────┴──────┴──────┘
    104 [MDIA] = LAYOUT_ergodox_pretty(
    105   _______ , _______ , _______ , _______ , _______ , _______ , _______ ,         _______ , _______ , _______ , _______ , _______ , _______ , _______,
    106   _______ , _______ , _______ , _______ , _______ , _______ , _______ ,         _______ , _______ , KC_MPLY , KC_MSTP , _______ , KC_MNXT , _______,
    107   _______ , _______ , _______ , _______ , _______ , _______ ,                             KC_MPRV , KC_VOLD , KC_VOLU , _______ , _______ , _______,
    108   _______ , _______ , _______ , _______ , _______ , _______ , _______ ,         _______ , _______ , KC_MUTE , _______ , _______ , _______ , _______,
    109   _______ , _______ , _______ , _______ , _______ ,                                                 _______ , _______ , _______ , _______ , _______,
    110                                                     _______ , _______ ,         _______ , _______                                                  ,
    111                                                               _______ ,         _______                                                            ,
    112                                           _______ , _______ , _______ ,         _______ , _______ , _______
    113 ),
    114 
    115 //    ┌─────┬─────┬─────┬──────┬──────┬─────┬─────┐       ┌─────┬─────┬──────┬──────┬──────┬──────┬─────┐
    116 //    │     │     │     │      │      │     │     │       │     │     │      │      │      │      │     │
    117 //    ├─────┼─────┼─────┼──────┼──────┼─────┼─────┤       ├─────┼─────┼──────┼──────┼──────┼──────┼─────┤
    118 //    │     │     │     │      │      │     │     │       │     │     │ home │  up  │ end  │ rght │     │
    119 //    ├─────┼─────┼─────┼──────┼──────┼─────┼─────┘       └─────┼─────┼──────┼──────┼──────┼──────┼─────┤
    120 //    │     │     │     │ pgdn │ pgup │     │                   │     │ left │ down │ rght │      │     │
    121 //    ├─────┼─────┼─────┼──────┼──────┼─────┼─────┐       ┌─────┼─────┼──────┼──────┼──────┼──────┼─────┤
    122 //    │     │     │     │ down │  up  │     │     │       │     │     │ wh_d │ wh_u │      │      │     │
    123 //    ├─────┼─────┼─────┼──────┼──────┼─────┴─────┘       └─────┴─────┼──────┼──────┼──────┼──────┼─────┤
    124 //    │     │     │     │      │      │                               │      │      │      │      │     │
    125 //    └─────┴─────┴─────┴──────┴──────┼─────┬─────┐       ┌─────┬─────┼──────┴──────┴──────┴──────┴─────┘
    126 //                                    │     │     │       │     │     │
    127 //                                    └─────┼─────┤       ├─────┼─────┘
    128 //                                          │     │       │     │
    129 //                             ┌──────┬─────┼─────┤       ├─────┼─────┬──────┐
    130 //                             │      │     │     │       │     │     │      │
    131 //                             └──────┴─────┴─────┘       └─────┴─────┴──────┘
    132 [MOVE] = LAYOUT_ergodox_pretty(
    133   _______ , _______ , _______ , _______ , _______ , _______ , _______ ,         _______ , _______ , _______ , _______ , _______ , _______ , _______,
    134   _______ , _______ , _______ , _______ , _______ , _______ , _______ ,         _______ , _______ , KC_HOME , KC_UP   , KC_END  , KC_RGHT , _______,
    135   _______ , _______ , _______ , KC_PGDN , KC_PGUP , _______ ,                             _______ , KC_LEFT , KC_DOWN , KC_RGHT , _______ , _______,
    136   _______ , _______ , _______ , KC_DOWN , KC_UP   , _______ , _______ ,         _______ , _______ , KC_WH_D , KC_WH_U , _______ , _______ , _______,
    137   _______ , _______ , _______ , _______ , _______ ,                                                 _______ , _______ , _______ , _______ , _______,
    138                                                     _______ , _______ ,         _______ , _______                                                  ,
    139                                                               _______ ,         _______                                                            ,
    140                                           _______ , _______ , _______ ,         _______ , _______ , _______
    141 ),
    142 
    143 //    ┌─────┬─────┬─────┬─────┬──────────┬─────┬─────┐       ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┐
    144 //    │     │     │     │     │          │     │     │       │     │     │     │     │     │     │     │
    145 //    ├─────┼─────┼─────┼─────┼──────────┼─────┼─────┤       ├─────┼─────┼─────┼─────┼─────┼─────┼─────┤
    146 //    │     │     │     │     │          │     │     │       │     │  ^  │  7  │  8  │  9  │  ~  │     │
    147 //    ├─────┼─────┼─────┼─────┼──────────┼─────┼─────┘       └─────┼─────┼─────┼─────┼─────┼─────┼─────┤
    148 //    │     │     │     │     │          │     │                   │  -  │  4  │  5  │  6  │  +  │  -  │
    149 //    ├─────┼─────┼─────┼─────┼──────────┼─────┼─────┐       ┌─────┼─────┼─────┼─────┼─────┼─────┼─────┤
    150 //    │     │     │     │     │          │     │     │       │  /  │  *  │  1  │  2  │  3  │  /  │     │
    151 //    ├─────┼─────┼─────┼─────┼──────────┼─────┴─────┘       └─────┴─────┼─────┼─────┼─────┼─────┼─────┤
    152 //    │     │     │     │     │          │                               │     │     │     │     │     │
    153 //    └─────┴─────┴─────┴─────┴──────────┼─────┬─────┐       ┌─────┬─────┼─────┴─────┴─────┴─────┴─────┘
    154 //                                       │     │     │       │     │     │
    155 //                                       └─────┼─────┤       ├─────┼─────┘
    156 //                                             │     │       │     │
    157 //                            ┌──────────┬─────┼─────┤       ├─────┼─────┬─────┐
    158 //                            │ MO(FKEY) │  .  │     │       │     │  =  │  0  │
    159 //                            └──────────┴─────┴─────┘       └─────┴─────┴─────┘
    160 [NUME] = LAYOUT_ergodox_pretty(
    161   _______ , _______ , _______ , _______ , _______  , _______ , _______ ,         _______ , _______ , _______ , _______ , _______ , _______ , _______,
    162   _______ , _______ , _______ , _______ , _______  , _______ , _______ ,         _______ , KC_CIRC , KC_7    , KC_8    , KC_9    , KC_TILD , _______,
    163   _______ , _______ , _______ , _______ , _______  , _______ ,                             KC_MINS , KC_4    , KC_5    , KC_6    , KC_PLUS , KC_MINS,
    164   _______ , _______ , _______ , _______ , _______  , _______ , _______ ,         KC_SLSH , KC_ASTR , KC_1    , KC_2    , KC_3    , KC_SLSH , _______,
    165   _______ , _______ , _______ , _______ , _______  ,                                                 _______ , _______ , _______ , _______ , _______,
    166                                                      _______ , _______ ,         _______ , _______                                                  ,
    167                                                                _______ ,         _______                                                            ,
    168                                           MO(FKEY) , KC_DOT  , _______ ,         _______ , KC_EQL  , KC_0
    169 ),
    170 
    171 //    ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┐       ┌─────┬─────┬────────────────────────────┬─────┬─────┬─────┬─────┐
    172 //    │     │     │     │     │     │     │     │       │     │     │                            │     │     │     │     │
    173 //    ├─────┼─────┼─────┼─────┼─────┼─────┼─────┤       ├─────┼─────┼────────────────────────────┼─────┼─────┼─────┼─────┤
    174 //    │     │     │     │     │     │     │     │       │     │ f10 │             f7             │ f8  │ f9  │     │     │
    175 //    ├─────┼─────┼─────┼─────┼─────┼─────┼─────┘       └─────┼─────┼────────────────────────────┼─────┼─────┼─────┼─────┤
    176 //    │     │     │     │     │     │     │                   │ f11 │             f4             │ f5  │ f6  │     │     │
    177 //    ├─────┼─────┼─────┼─────┼─────┼─────┼─────┐       ┌─────┼─────┼────────────────────────────┼─────┼─────┼─────┼─────┤
    178 //    │     │     │     │     │     │     │     │       │     │ f12 │             f1             │ f2  │ f3  │     │     │
    179 //    ├─────┼─────┼─────┼─────┼─────┼─────┴─────┘       └─────┴─────┼────────────────────────────┼─────┼─────┼─────┼─────┤
    180 //    │     │     │     │     │     │                               │                            │     │     │     │     │
    181 //    └─────┴─────┴─────┴─────┴─────┼─────┬─────┐       ┌─────┬─────┼────────────────────────────┴─────┴─────┴─────┴─────┘
    182 //                                  │     │     │       │     │     │
    183 //                                  └─────┼─────┤       ├─────┼─────┘
    184 //                                        │     │       │     │
    185 //                            ┌─────┬─────┼─────┤       ├─────┼─────┬────────────────────────────┐
    186 //                            │     │     │     │       │     │     │ MT(MOD_RCTL|MOD_RALT, ent) │
    187 //                            └─────┴─────┴─────┘       └─────┴─────┴────────────────────────────┘
    188 [FKEY] = LAYOUT_ergodox_pretty(
    189   _______ , _______ , _______ , _______ , _______ , _______ , _______ ,         _______ , _______ , _______                       , _______ , _______ , _______ , _______,
    190   _______ , _______ , _______ , _______ , _______ , _______ , _______ ,         _______ , KC_F10  , KC_F7                         , KC_F8   , KC_F9   , _______ , _______,
    191   _______ , _______ , _______ , _______ , _______ , _______ ,                             KC_F11  , KC_F4                         , KC_F5   , KC_F6   , _______ , _______,
    192   _______ , _______ , _______ , _______ , _______ , _______ , _______ ,         _______ , KC_F12  , KC_F1                         , KC_F2   , KC_F3   , _______ , _______,
    193   _______ , _______ , _______ , _______ , _______ ,                                                 _______                       , _______ , _______ , _______ , _______,
    194                                                     _______ , _______ ,         _______ , _______                                                                        ,
    195                                                               _______ ,         _______                                                                                  ,
    196                                           _______ , _______ , _______ ,         _______ , _______ , MT(MOD_RCTL|MOD_RALT, KC_ENT)
    197 ),
    198 
    199 //    ┌─────┬─────┬─────┬─────┬──────┬─────┬─────┐       ┌─────┬─────────┬─────────┬─────────┬─────────┬─────┬─────────┐
    200 //    │     │     │     │     │      │     │     │       │     │         │         │         │         │     │ QK_BOOT │
    201 //    ├─────┼─────┼─────┼─────┼──────┼─────┼─────┤       ├─────┼─────────┼─────────┼─────────┼─────────┼─────┼─────────┤
    202 //    │     │     │     │     │      │     │     │       │     │ RGB_TOG │ RGB_M_P │ RGB_MOD │         │     │ EE_CLR  │
    203 //    ├─────┼─────┼─────┼─────┼──────┼─────┼─────┘       └─────┼─────────┼─────────┼─────────┼─────────┼─────┼─────────┤
    204 //    │     │     │     │     │      │     │                   │ RGB_HUI │ RGB_VAI │ RGB_SAI │ RGB_SPI │     │         │
    205 //    ├─────┼─────┼─────┼─────┼──────┼─────┼─────┐       ┌─────┼─────────┼─────────┼─────────┼─────────┼─────┼─────────┤
    206 //    │     │     │     │     │      │     │     │       │     │         │ DT_DOWN │  DT_UP  │ DT_PRNT │     │         │
    207 //    ├─────┼─────┼─────┼─────┼──────┼─────┴─────┘       └─────┴─────────┼─────────┼─────────┼─────────┼─────┼─────────┤
    208 //    │     │     │     │     │      │                                   │         │         │         │     │         │
    209 //    └─────┴─────┴─────┴─────┴──────┼─────┬─────┐       ┌─────┬─────────┼─────────┴─────────┴─────────┴─────┴─────────┘
    210 //                                   │     │     │       │     │         │
    211 //                                   └─────┼─────┤       ├─────┼─────────┘
    212 //                                         │     │       │     │
    213 //                            ┌──────┬─────┼─────┤       ├─────┼─────────┬─────────┐
    214 //                            │ lsft │     │     │       │     │         │ QK_MAKE │
    215 //                            └──────┴─────┴─────┘       └─────┴─────────┴─────────┘
    216 [SERV] = LAYOUT_ergodox_pretty(
    217   _______ , _______ , _______ , _______ , _______ , _______ , _______ ,         _______ , _______ , _______ , _______ , _______ , _______ , QK_BOOT,
    218   _______ , _______ , _______ , _______ , _______ , _______ , _______ ,         _______ , RGB_TOG , RGB_M_P , RGB_MOD , _______ , _______ , EE_CLR ,
    219   _______ , _______ , _______ , _______ , _______ , _______ ,                             RGB_HUI , RGB_VAI , RGB_SAI , RGB_SPI , _______ , _______,
    220   _______ , _______ , _______ , _______ , _______ , _______ , _______ ,         _______ , _______ , DT_DOWN , DT_UP   , DT_PRNT , _______ , _______,
    221   _______ , _______ , _______ , _______ , _______ ,                                                 _______ , _______ , _______ , _______ , _______,
    222                                                     _______ , _______ ,         _______ , _______                                                  ,
    223                                                               _______ ,         _______                                                            ,
    224                                           KC_LSFT , _______ , _______ ,         _______ , _______ , QK_MAKE
    225 )
    226 };
    227 
    228 // clang-format on
    229 uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
    230     switch (keycode) {
    231         case LTHUMB:
    232             return 100;
    233         case RTHUMB:
    234             return 100;
    235         default:
    236             return TAPPING_TERM;
    237     }
    238 }
    239 
    240 // clang-format off
    241 const char chordal_hold_layout[MATRIX_ROWS][MATRIX_COLS] PROGMEM =
    242     LAYOUT_ergodox_pretty(
    243   'L' , 'L' , 'L' , 'L' , 'L' , 'L' , 'L' ,         'R' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R' ,
    244   'L' , 'L' , 'L' , 'L' , 'L' , 'L' , 'L' ,         'R' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R' ,
    245   'L' , 'L' , 'L' , 'L' , 'L' , 'L' ,                     'R' , 'R' , 'R' , 'R' , 'R' , 'R' ,
    246   'L' , 'L' , 'L' , 'L' , 'L' , 'L' , 'L' ,         'R' , 'R' , 'R' , 'R' , 'R' , 'R' , 'R' ,
    247   'L' , 'L' , 'L' , 'L' , 'L' ,                                 'R' , 'R' , 'R' , 'R' , 'R' ,
    248                                 'L' , 'L' ,         'R' , 'R' ,
    249                                       'L' ,         'R' ,
    250                           'L' , 'L' , 'L' ,         'R' , 'R' , 'R'
    251     );
    252 // clang-format on
    253 
    254 layer_state_t layer_state_set_user(layer_state_t state) {
    255     ergodox_board_led_off();
    256     ergodox_right_led_1_off();
    257     ergodox_right_led_2_off();
    258     ergodox_right_led_3_off();
    259 
    260     uint8_t layer = get_highest_layer(state);
    261     switch (layer) {
    262         case 0:
    263             break;
    264         case 1:
    265             ergodox_right_led_1_on();
    266             break;
    267         case 2:
    268             ergodox_right_led_2_on();
    269             break;
    270         case 3:
    271             ergodox_right_led_3_on();
    272             break;
    273         case 4:
    274             ergodox_right_led_1_on();
    275             ergodox_right_led_2_on();
    276             break;
    277         case 5:
    278             ergodox_right_led_1_on();
    279             ergodox_right_led_3_on();
    280             break;
    281         case 6:
    282             ergodox_right_led_2_on();
    283             ergodox_right_led_3_on();
    284             break;
    285         default:
    286             break;
    287     }
    288 
    289     return state;
    290 };