diff options
| -rw-r--r-- | keyboards/vision_division/config.h | 19 | ||||
| -rw-r--r-- | keyboards/vision_division/keymaps/default/Makefile | 26 | ||||
| -rw-r--r-- | keyboards/vision_division/keymaps/default/config.h | 46 | ||||
| -rw-r--r-- | keyboards/vision_division/keymaps/default/keymap.c | 940 | ||||
| -rw-r--r-- | keyboards/vision_division/matrix_types.h | 33 | ||||
| -rw-r--r-- | keyboards/vision_division/rules.mk | 2 | ||||
| -rw-r--r-- | keyboards/vision_division/vision_division.c | 40 | ||||
| -rw-r--r-- | tmk_core/common/avr/bootloader.c | 8 | ||||
| -rw-r--r-- | tmk_core/common/command.c | 3 | 
9 files changed, 574 insertions, 543 deletions
| diff --git a/keyboards/vision_division/config.h b/keyboards/vision_division/config.h index f50378ffa8..1f8466a546 100644 --- a/keyboards/vision_division/config.h +++ b/keyboards/vision_division/config.h @@ -26,10 +26,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  /* COL2ROW or ROW2COL */  #define DIODE_DIRECTION ROW2COL -// #define BACKLIGHT_PIN B7 -// #define BACKLIGHT_BREATHING -// #define BACKLIGHT_LEVELS 3 - +#define BACKLIGHT_PIN B7 +#define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 3  /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */  #define DEBOUNCING_DELAY 5 @@ -124,10 +123,18 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.   */  /* disable debug print */ -//#define NO_DEBUG +// #ifndef NO_DEBUG +// #  define NO_DEBUG +// #endif  /* disable print */ -//#define NO_PRINT +// #ifndef NO_PRINT +// #  define NO_PRINT +// #endif + +/* Only print user print statements */ +// #define USER_PRINT +  /* disable action features */  //#define NO_ACTION_LAYER diff --git a/keyboards/vision_division/keymaps/default/Makefile b/keyboards/vision_division/keymaps/default/Makefile index ecbe7e1ab2..5a930e85ed 100644 --- a/keyboards/vision_division/keymaps/default/Makefile +++ b/keyboards/vision_division/keymaps/default/Makefile @@ -2,19 +2,19 @@  #   change to "no" to disable the options, or define them in the Makefile in  #   the appropriate keymap folder that will get included automatically  # -BOOTMAGIC_ENABLE = yes      # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = yes       # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes       # Audio control and System control(+450) -CONSOLE_ENABLE = yes        # Console for debug(+400) -COMMAND_ENABLE = yes        # Commands for debug and configuration -NKRO_ENABLE = yes           # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality -MIDI_ENABLE = no            # MIDI controls -AUDIO_ENABLE = yes          # Audio output on port C6 -UNICODE_ENABLE = no         # Unicode -BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID -RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time. -SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend +BOOTMAGIC_ENABLE   = yes  # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE    = yes  # Mouse keys(+4700) +EXTRAKEY_ENABLE    = yes  # Audio control and System control(+450) +CONSOLE_ENABLE     = yes  # Console for debug(+400) +COMMAND_ENABLE     = yes  # Commands for debug and configuration +NKRO_ENABLE        = yes  # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE   = yes  # Enable keyboard backlight functionality +MIDI_ENABLE        = no   # MIDI controls +AUDIO_ENABLE       = yes  # Audio output on port C6 +UNICODE_ENABLE     = no   # Unicode +BLUETOOTH_ENABLE   = no   # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE    = no   # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time. +SLEEP_LED_ENABLE   = no   # Breathing sleep LED during USB suspend  ifndef QUANTUM_DIR  	include ../../../../Makefile diff --git a/keyboards/vision_division/keymaps/default/config.h b/keyboards/vision_division/keymaps/default/config.h index 16740fb15b..efd43f41b4 100644 --- a/keyboards/vision_division/keymaps/default/config.h +++ b/keyboards/vision_division/keymaps/default/config.h @@ -4,25 +4,44 @@  #include "../../config.h"  #include "matrix_types.h" -  /* USB Device descriptor parameter */  #define VENDOR_ID       0xFEED -#define PRODUCT_ID      GET_PID(NUMERIC_NORMAL, HOMING_MAX_TEENSY)  #define DEVICE_VER      0x0001  #define MANUFACTURER    IBNobody  #define PRODUCT         Vision Division  #define DESCRIPTION     Full / Split Keyboard - -#define MATRIX_ROWS 6 +#define MATRIX_ROWS     6  #define MATRIX_ROW_PINS { C2, C3, F4, F5, F6, F7 } -#define MATRIX_COLS GET_MATRIX_COLS(NUMERIC_NORMAL, HOMING_MAX_TEENSY) -#define MATRIX_COL_PINS GET_MATRIX_COL_PINS(NUMERIC_NORMAL, HOMING_MAX_TEENSY) +// !!! MAKE SURE THAT THE LEFT/RIGHT PCB DEFINES MATCH ON ALL OF THESE COLUMNS -#define UNUSED_PINS +//                                               **LEFT**                 **RIGHT** +#define PRODUCT_ID      GET_PID(                 NUMERIC_NORMAL,          NUMERIC_MAX_TEENSY) +#define MATRIX_COLS     GET_MATRIX_COLS(         NUMERIC_NORMAL,          NUMERIC_MAX_TEENSY) +#define MATRIX_COL_PINS GET_MATRIX_COL_PINS(     NUMERIC_NORMAL,          NUMERIC_MAX_TEENSY) -/*#define KEYMAP( \ +#define KEYMAP(MATRIX_LAYER, \ +      k101, k102, k103, k104,       k105, k106, k107, k108, k109, k10A,               k111, k112, k113, k114, k115, k116, k117, k118,       k119, k11A, k11B, k11C, \ +      k201, k202, k203, k204,       k205, k206, k207, k208, k209, k20A,               k211, k212, k213, k214, k215, k216, k217, k218,       k219, k21A, k21B, k21C, \ +      k301, k302, k303, k304,       k305, k306, k307, k308, k309, k30A,               k311, k312, k313, k314, k315, k316, k317, k318,       k319, k31A, k31B, k31C, \ +      k401, k402, k403, k404,       k405, k406, k407, k408, k409, k40A,               k411, k412, k413, k414, k415, k416, k417, k418,       k419, k41A, k41B, k41C, \ +      k501, k502, k503, k504,       k505, k506, k507, k508, k509, k50A,               k511, k512, k513, k514, k515, k516, k517, k518,       k519, k51A, k51B, k51C, \ +      k601, k602, k603, k604,       k605, k606, k607, k608, k609, k60A,               k611, k612, k613, k614, k615, k616, k617, k618,       k619, k61A, k61B, k61C  \ +) \ +KEYMAP_MASTER(MATRIX_LAYER,                      NUMERIC_NORMAL,          NUMERIC_MAX_TEENSY, \ +      k101, k102, k103, k104,       k105, k106, k107, k108, k109, k10A, KC_NO, KC_NO, k111, k112, k113, k114, k115, k116, k117, k118,       k119, k11A, k11B, k11C, \ +      k201, k202, k203, k204,       k205, k206, k207, k208, k209, k20A, KC_NO, KC_NO, k211, k212, k213, k214, k215, k216, k217, k218,       k219, k21A, k21B, k21C, \ +      k301, k302, k303, k304,       k305, k306, k307, k308, k309, k30A, KC_NO, KC_NO, k311, k312, k313, k314, k315, k316, k317, k318,       k319, k31A, k31B, k31C, \ +      k401, k402, k403, k404,       k405, k406, k407, k408, k409, k40A, KC_NO, KC_NO, k411, k412, k413, k414, k415, k416, k417, k418,       k419, k41A, k41B, k41C, \ +      k501, k502, k503, k504,       k505, k506, k507, k508, k509, k50A, KC_NO, KC_NO, k511, k512, k513, k514, k515, k516, k517, k518,       k519, k51A, k51B, k51C, \ +      k601, k602, k603, k604,       k605, k606, k607, k608, k609, k60A, KC_NO, KC_NO, k611, k612, k613, k614, k615, k616, k617, k618,       k619, k61A, k61B, k61C  \ +) + +// Example Keymap Macros + +/* +#define KEYMAP(MATRIX_LAYER, \        k101, k102, k103, k104,       k105, k106, k107, k108, k109, k10A, k10B, k10C, k111, k112, k113, k114, k115, k116, k117, k118,       k119, k11A, k11B, k11C, \        k201, k202, k203, k204,       k205, k206, k207, k208, k209, k20A, k20B, k20C, k211, k212, k213, k214, k215, k216, k217, k218,       k219, k21A, k21B, k21C, \        k301, k302, k303, k304,       k305, k306, k307, k308, k309, k30A, k30B, k30C, k311, k312, k313, k314, k315, k316, k317, k318,       k319, k31A, k31B, k31C, \ @@ -30,16 +49,18 @@        k501, k502, k503, k504,       k505, k506, k507, k508, k509, k50A, k50B, k50C, k511, k512, k513, k514, k515, k516, k517, k518,       k519, k51A, k51B, k51C, \        k601, k602, k603, k604,       k605, k606, k607, k608, k609, k60A, k60B, k60C, k611, k612, k613, k614, k615, k616, k617, k618,       k619, k61A, k61B, k61C  \  ) \ -KEYMAP_MASTER(NUMERIC_MAX_TEENSY, NUMERIC_MAX, \ +KEYMAP_MASTER(MATRIX_LAYER,                      NUMERIC_MAX_TEENSY,      NUMERIC_MAX, \        k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k10B, k10C, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C, \        k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k20B, k20C, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C, \        k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k30B, k30C, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C, \        k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k40B, k40C, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C, \        k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k50B, k50C, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C, \        k601, k602, k603, k604, k605, k606, k607, k608, k609, k60A, k60B, k60C, k611, k612, k613, k614, k615, k616, k617, k618, k619, k61A, k61B, k61C  \ -)*/ +) +*/ -#define KEYMAP( \ +/* +#define KEYMAP(MATRIX_LAYER, \        k101, k102, k103, k104,       k105, k106, k107, k108, k109, k10A, k111, k112, k113, k114, k115, k116, k117, k118,       k119, k11A, k11B, \        k201, k202, k203, k204,       k205, k206, k207, k208, k209, k20A, k211, k212, k213, k214, k215, k216, k217, k218,       k219, k21A, k21B, \        k301, k302, k303, k304,       k305, k306, k307, k308, k309, k30A, k311, k312, k313, k314, k315, k316, k317, k318,       k319, k31A, k31B, \ @@ -47,7 +68,7 @@ KEYMAP_MASTER(NUMERIC_MAX_TEENSY, NUMERIC_MAX, \        k501, k502, k503, k504,       k505, k506, k507, k508, k509, k50A, k511, k512, k513, k514, k515, k516, k517, k518,       k519, k51A, k51B, \        k601, k602, k603, k604,       k605, k606, k607, k608, k609, k60A, k611, k612, k613, k614, k615, k616, k617, k618,       k619, k61A, k61B  \  ) \ -KEYMAP_MASTER(NUMERIC_NORMAL, HOMING_MAX_TEENSY, \ +KEYMAP_MASTER(MATRIX_LAYER,                      NUMERIC_NORMAL,          HOMING_MAX_TEENSY, \        k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, KC_NO, KC_NO, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, KC_NO, \        k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, KC_NO, KC_NO, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, KC_NO, \        k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, KC_NO, KC_NO, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, KC_NO, \ @@ -55,5 +76,6 @@ KEYMAP_MASTER(NUMERIC_NORMAL, HOMING_MAX_TEENSY, \        k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, KC_NO, KC_NO, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, KC_NO, \        k601, k602, k603, k604, k605, k606, k607, k608, k609, k60A, KC_NO, KC_NO, k611, k612, k613, k614, k615, k616, k617, k618, k619, k61A, k61B, KC_NO  \  ) +*/  #endif
\ No newline at end of file diff --git a/keyboards/vision_division/keymaps/default/keymap.c b/keyboards/vision_division/keymaps/default/keymap.c index b8cef9c759..64118abdce 100644 --- a/keyboards/vision_division/keymaps/default/keymap.c +++ b/keyboards/vision_division/keymaps/default/keymap.c @@ -8,46 +8,70 @@      #include "song_list.h"  #endif -#define LAYER_QWERTY                     0 -#define LAYER_COLEMAK                    1 -#define LAYER_DVORAK                     2 -#define LAYER_UPPER                      3 -#define LAYER_LOWER                      4 -#define LAYER_FUNCTION                   5 -#define LAYER_MOUSE                      6 -#define LAYER_ADJUST                     7 - -#define MACRO_QWERTY                     0 -#define MACRO_COLEMAK                    1 -#define MACRO_DVORAK                     2 -#define MACRO_UPPER                      3 -#define MACRO_LOWER                      4 -#define MACRO_FUNCTION                   5 -#define MACRO_MOUSE                      6 -#define MACRO_TIMBRE_1                   7 -#define MACRO_TIMBRE_2                   8 -#define MACRO_TIMBRE_3                   9 -#define MACRO_TIMBRE_4                  10 -#define MACRO_TEMPO_U                   11 -#define MACRO_TEMPO_D                   12 -#define MACRO_TONE_DEFAULT              13 -#define MACRO_MUSIC_TOGGLE              14 -#define MACRO_AUDIO_TOGGLE              16 -#define MACRO_INC_VOICE                 18 -#define MACRO_DEC_VOICE                 19 -#define MACRO_BACKLIGHT                 20 -#define MACRO_BREATH_TOGGLE             21 -#define MACRO_BREATH_SPEED_INC          23 -#define MACRO_BREATH_SPEED_DEC          24 -#define MACRO_BREATH_DEFAULT            25 +enum keyboard_layers { +  LAYER_QWERTY = 0, +  LAYER_UPPER, +  LAYER_LOWER, +  LAYER_FUNCTION, +  LAYER_MOUSE, +  LAYER_ADJUST, +}; +enum keyboard_macros { +  MACRO_QWERTY = 0, +  MACRO_UPPER, +  MACRO_LOWER, +  MACRO_FUNCTION, +  MACRO_MOUSE, +  MACRO_TIMBRE_1, +  MACRO_TIMBRE_2, +  MACRO_TIMBRE_3, +  MACRO_TIMBRE_4, +  MACRO_TEMPO_U, +  MACRO_TEMPO_D, +  MACRO_TONE_DEFAULT, +  MACRO_MUSIC_TOGGLE, +  MACRO_AUDIO_TOGGLE, +  MACRO_INC_VOICE, +  MACRO_DEC_VOICE, +  MACRO_BACKLIGHT, +  MACRO_BREATH_TOGGLE, +  MACRO_BREATH_SPEED_INC, +  MACRO_BREATH_SPEED_DEC, +  MACRO_BREATH_DEFAULT, +  MACRO_MOUSE_MOVE_UL, +  MACRO_MOUSE_MOVE_UR, +  MACRO_MOUSE_MOVE_DL, +  MACRO_MOUSE_MOVE_DR, +  MACRO_HELP, +  MACRO_HELP_1, +  MACRO_HELP_2, +  MACRO_HELP_3, +  MACRO_HELP_4, +  MACRO_HELP_5, +  MACRO_HELP_6, +  MACRO_HELP_7, +  MACRO_HELP_8, +  MACRO_HELP_9, +  MACRO_HELP_0, +  MACRO_GENERAL_1, +  MACRO_GENERAL_2, +  MACRO_GENERAL_3, +  MACRO_GENERAL_4, +  MACRO_GENERAL_5, +  MACRO_CURSOR_UL, +  MACRO_CURSOR_UR, +  MACRO_CURSOR_DL, +  MACRO_CURSOR_DR, +  MACRO_MUTE_APP, +  MACRO_COPY_CUT, +};  #define M_QWRTY             M(MACRO_QWERTY) -#define M_COLMK             M(MACRO_COLEMAK) -#define M_DVORK             M(MACRO_DVORAK)  #define M_UPPER             M(MACRO_UPPER)  #define M_LOWER             M(MACRO_LOWER)  #define M_FUNCT             M(MACRO_FUNCTION)  #define M_MOUSE             M(MACRO_MOUSE) +  #define TIMBR_1             M(MACRO_TIMBRE_1)  #define TIMBR_2             M(MACRO_TIMBRE_2)  #define TIMBR_3             M(MACRO_TIMBRE_3) @@ -55,15 +79,47 @@  #define TMPO_UP             M(MACRO_TEMPO_U)  #define TMPO_DN             M(MACRO_TEMPO_D)  #define TMPO_DF             M(MACRO_TONE_DEFAULT) + +#define VC_UP               M(MACRO_INC_VOICE) +#define VC_DOWN             M(MACRO_DEC_VOICE) +  #define M_BACKL             M(MACRO_BACKLIGHT)  #define M_BRTOG             M(MACRO_BREATH_TOGGLE)  #define M_BSPDU             M(MACRO_BREATH_SPEED_INC)  #define M_BSPDD             M(MACRO_BREATH_SPEED_DEC)  #define M_BDFLT             M(MACRO_BREATH_DEFAULT) +#define M_MS_UL             M(MACRO_MOUSE_MOVE_UL) +#define M_MS_UR             M(MACRO_MOUSE_MOVE_UR) +#define M_MS_DL             M(MACRO_MOUSE_MOVE_DL) +#define M_MS_DR             M(MACRO_MOUSE_MOVE_DR) -#define VC_UP               M(MACRO_INC_VOICE) -#define VC_DOWN             M(MACRO_DEC_VOICE) +#define M_HELP              M(MACRO_HELP) +#define M_HELP1             M(MACRO_HELP_1) +#define M_HELP2             M(MACRO_HELP_2) +#define M_HELP3             M(MACRO_HELP_3) +#define M_HELP4             M(MACRO_HELP_4) +#define M_HELP5             M(MACRO_HELP_5) +#define M_HELP6             M(MACRO_HELP_6) +#define M_HELP7             M(MACRO_HELP_7) +#define M_HELP8             M(MACRO_HELP_8) +#define M_HELP9             M(MACRO_HELP_9) +#define M_HELP0             M(MACRO_HELP_0) + +#define M_M1                M(MACRO_GENERAL_1) +#define M_M2                M(MACRO_GENERAL_2) +#define M_M3                M(MACRO_GENERAL_3) +#define M_M4                M(MACRO_GENERAL_4) +#define M_M5                M(MACRO_GENERAL_5) + +#define M_UL                M(MACRO_CURSOR_UL) +#define M_UR                M(MACRO_CURSOR_UR) +#define M_DL                M(MACRO_CURSOR_DL) +#define M_DR                M(MACRO_CURSOR_DR) + +#define M_MUTEA             M(MACRO_MUTE_APP) + +#define M_CP_CT             M(MACRO_COPY_CUT)  #define SC_UNDO             LCTL(KC_Z) @@ -77,6 +133,7 @@  #define SC_ACLS             LALT(KC_F4)  #define SC_CCLS             LCTL(KC_F4) +#define TG_NKRO             MAGIC_TOGGLE_NKRO  #define OS_SHFT             KC_FN0  #define _______             KC_TRNS @@ -84,208 +141,128 @@  #define ________________    _______, _______  #define XXXXXXXXXXXXXXXX    XXXXXXX, XXXXXXX -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - -KEYMAP( \ -      KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX,       KC_F1,   KC_F2,   KC_F3,   KC_F4,   XXXXXXX, KC_F5,   KC_F6,   KC_F7,   KC_F8,   XXXXXXX, KC_F9,   KC_F10,  KC_F11,  KC_F12,        KC_PSCR, KC_SLCK, KC_PAUS, \ -      KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,       KC_ESC,  KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_EQL,  KC_BSPC,       KC_INS,  KC_HOME, KC_PGUP, \ -      KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS,       KC_TAB,  KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_MINS, KC_BSLS,       KC_DEL,  KC_END,  KC_PGDN, \ -      KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS,       KC_CAPS, KC_BSPC, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_ENT,        XXXXXXX, XXXXXXX, XXXXXXX, \ -      KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT,       KC_LSFT, KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_RSFT,       XXXXXXX, KC_UP,   XXXXXXX, \ -      KC_KP_0, KC_KP_0, KC_PDOT, KC_PENT,       KC_LCTL, KC_LCTL, XXXXXXX, KC_LALT, KC_LGUI, XXXXXXX, KC_SPC,  KC_SPC,  XXXXXXX, OS_SHFT, KC_RALT, KC_APP,  KC_RCTL, KC_RCTL,       KC_LEFT, KC_DOWN, KC_RGHT  \ -) - - -//  [LAYER_QWERTY]       = { // QWERTY -//   { KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_BSPC  }, -//   { KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL   }, -//   { KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_ENT,  KC_ENT,  KC_PGUP  }, -//   { KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_RSFT, KC_UP,   KC_PGDN  }, -//   { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC,  KC_SPC,  M_LOWER, OS_SHFT, KC_RALT, KC_APP,  KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT  }, -//  }, - - -// /* Numeric Max / Homing Normal - Traditional -//  * .-----------------------------------.       .-----------------------------------.        .-----------------_-----------------.        .-----------------------------------.       .--------------------------. -//  * |        |        |        |        |       |        |        |        |        |        |        |        |        |        |        |        |        |        |        |       |        |        |        | -//  * '-----------------------------------'       '-----------------------------------'        '-----------------------------------'        '-----------------------------------'       '--------------------------' -//  * .-----------------------------------.       .-----------------------------------------------------------------------------------------------------------------------------.       .--------------------------. -//  * |        |        |        |        |       | ESC    | ESC    | 1      | 2      | 3      | 4      | 5      | 6      | 7      | 8      | 9      | 0      | -      |        |       |        |        |        | -//  * |--------+--------+--------+--------|       | -------+ -------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|       |--------+--------+--------| -//  * |        |        |        |        |       | TAB    | TAB    | Q      | W      | E      | R      | T      | Y      | U      | I      | O      | P      | [      |        |       |        |        |        | -//  * |--------+--------+--------+        |   o   | -------+ -------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|       '--------+--------+--------' -//  * |        |        |        |        |   o   | CAPS   | CAPS   | A      | S      | D      | F      | G      | H      | J      | K      | L      | ;      | '      |        | -//  * |--------+--------+--------+--------|   o   | -------+ -------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---+--------|                .--------. -//  * |        |        |        |        |       | LSHIFT | LSHIFT | Z      | X      | C      | V      | B      | N      | M      | ,      | .      | /      | XXXXXX |        |                |        | -//  * |--------+--------+--------+        |       | -------+ -------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+--------+--------|       .--------+--------+--------. -//  * |                 |        |        |       | LCTRL  | LCTRL  | LWIN   | FN     | LALT   | UPPER  | XXXXXX . SPACE  | LOWER  | SHIFT  | RALT   | APP    | RCTRL  |        |       |        |        |        | -//  * '-----------------------------------'       '-----------------------------------------------------------------------------------------------------------------------------'       '--------------------------' -//  */ - - -// /* QWERTY -//  * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. -//  * | ESC    | 1      | 2      | 3      | 4      | 5      | 6      | 7      | 8      | 9      | 0      | -      | =      | XXXXXX . BACKSP | -//  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| -//  * | TAB    | Q      | W      | E      | R      | T      | Y      | U      | I      | O      | P      | [      | ]      | \      | DEL    | -//  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| -//  * | CAPS   | A      | S      | D      | F      | G      | H      | J      | K      | L      | ;      | '      | XXXXXX . ENTER  | PG UP  | -//  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| -//  * | LSHIFT | Z      | X      | C      | V      | B      | N      | M      | ,      | .      | /      | XXXXXX . RSHIFT | UP     | PG DN  | -//  * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| -//  * | LCTRL  | LWIN   | FN     | LALT   | UPPER  | XXXXXX . SPACE  | LOWER  | SHIFT  | RALT   | APP    | RCTRL  | LEFT   | DOWN   | RIGHT  | -//  * '--------------------------------------------------------------------------------------------------------------------------------------' -//  */ - -//  [LAYER_QWERTY]       = { // QWERTY -//   { KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_BSPC  }, -//   { KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL   }, -//   { KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_ENT,  KC_ENT,  KC_PGUP  }, -//   { KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_RSFT, KC_UP,   KC_PGDN  }, -//   { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC,  KC_SPC,  M_LOWER, OS_SHFT, KC_RALT, KC_APP,  KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT  }, -//  }, - -//  /* COLEMAK -//  * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. -//  * | ESC    | 1      | 2      | 3      | 4      | 5      | 6      | 7      | 8      | 9      | 0      | -      | =      | XXXXXX . BACKSP | -//  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| -//  * | TAB    | Q      | W      | F      | P      | G      | J      | L      | U      | Y      | ;      | [      | ]      | \      | DEL    | -//  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| -//  * | BACKSP | A      | R      | S      | T      | D      | H      | N      | E      | I      | O      | '      | XXXXXX . ENTER  | PG UP  | -//  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| -//  * | LSHIFT | Z      | X      | C      | V      | B      | K      | M      | ,      | .      | /      | XXXXXX . RSHIFT | UP     | PG DN  | -//  * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| -//  * | LCTRL  | LWIN   | FN     | LALT   | UPPER  | XXXXXX . SPACE  | LOWER  | SHIFT  | RALT   | APP    | RCTRL  | LEFT   | DOWN   | RIGHT  | -//  * '--------------------------------------------------------------------------------------------------------------------------------------' -//  */ - -//  [LAYER_COLEMAK]      = { // COLEMAK -//   { KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_BSPC  }, -//   { KC_TAB,  KC_Q,    KC_W,    KC_F,    KC_P,    KC_G,    KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL   }, -//   { KC_BSPC, KC_A,    KC_R,    KC_S,    KC_T,    KC_D,    KC_H,    KC_N,    KC_E,    KC_I,    KC_O,    KC_QUOT, KC_ENT,  KC_ENT,  KC_PGUP  }, -//   { KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_RSFT, KC_UP,   KC_PGDN  }, -//   { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC,  KC_SPC,  M_LOWER, OS_SHFT, KC_RALT, KC_APP,  KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT  }, -// }, - -// /* DVORAK -//  * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. -//  * | ESC    | 1      | 2      | 3      | 4      | 5      | 6      | 7      | 8      | 9      | 0      | [      | ]      | XXXXXX . BACKSP | -//  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| -//  * | TAB    | '      | ,      | .      | P      | Y      | F      | G      | C      | R      | L      | /      | =      | \      | DEL    | -//  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| -//  * | CAPS   | A      | O      | E      | U      | I      | D      | H      | T      | N      | S      | -      | XXXXXX . ENTER  | PG UP  | -//  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| -//  * | LSHIFT | ;      | Q      | J      | K      | X      | B      | M      | W      | V      | Z      | XXXXXX . RSHIFT | UP     | PG DN  | -//  * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| -//  * | LCTRL  | LWIN   | FN     | LALT   | UPPER  | XXXXXX . SPACE  | LOWER  | SHIFT  | RALT   | APP    | RCTRL  | LEFT   | DOWN   | RIGHT  | -//  * '--------------------------------------------------------------------------------------------------------------------------------------' -//  */ - -//  [LAYER_DVORAK]       = { // DVORAK -//   { KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_LBRC, KC_RBRC, KC_BSPC, KC_BSPC  }, -//   { KC_TAB,  KC_QUOT, KC_COMM, KC_DOT,  KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L,    KC_SLSH, KC_EQL,  KC_BSLS, KC_DEL   }, -//   { KC_CAPS, KC_A,    KC_O,    KC_E,    KC_U,    KC_I,    KC_D,    KC_H,    KC_T,    KC_N,    KC_S,    KC_MINS, KC_ENT,  KC_ENT,  KC_PGUP  }, -//   { KC_LSFT, KC_SCLN, KC_Q,    KC_J,    KC_K,    KC_X,    KC_B,    KC_M,    KC_W,    KC_V,    KC_Z,    KC_RSFT, KC_RSFT, KC_UP,   KC_PGDN  }, -//   { KC_LCTL, KC_LGUI, M_FUNCT, KC_LALT, M_UPPER, KC_SPC,  KC_SPC,  M_LOWER, OS_SHFT, KC_RALT, KC_APP,  KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT  }, -//  }, - -// /* UPPER -//  * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. -//  * | PRINT  | BR TOG | BR SP+ | BR SP- | BR RST | XXXXXX | XXXXXX | NUM LK | /      | *      |        | NUM LK | SCR LK | XXXXXX . PAUSE  | -//  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| -//  * |        | F1     | F2     | F3     | F4     |        |        | 7      | 8      | 9      | -      |        |        |        | INS    | -//  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| -//  * | CAP LK | F5     | F6     | F7     | F8     |        |        | 4      | 5      | 6      | +      |        | XXXXXX .        | HOME   | -//  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| -//  * |        | F9     | F10    | F11    | F12    |        |        | 1      | 2      | 3      | ENTER  | XXXXXX .        |        | END    | -//  * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| -//  * |        |        |        |        |        | 0               |        | RALT   | .      | ENTER  |        |        |        |        | -//  * '--------------------------------------------------------------------------------------------------------------------------------------' -//  */ - -//  [LAYER_UPPER]        = { // UPPER -//   { KC_PSCR, M_BRTOG, M_BSPDU, M_BSPDD, M_BDFLT, XXXXXXX, XXXXXXX, KC_NLCK, KC_PSLS, KC_PAST, XXXXXXX, XXXXXXX, KC_SLCK, KC_PAUS, KC_PAUS  }, -//   { _______, KC_F1,   KC_F2,   KC_F3,   KC_F4,   XXXXXXX, XXXXXXX, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______, _______, _______, KC_INS   }, -//   { KC_CAPS, KC_F5,   KC_F6,   KC_F7,   KC_F8,   XXXXXXX, XXXXXXX, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, ________________, KC_HOME  }, -//   { _______, KC_F9,   KC_F10,  KC_F11,  KC_F12,  XXXXXXX, XXXXXXX, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, ________________, _______, KC_END   }, -//   { _______, _______, _______, _______, _______, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, _______, _______, _______, _______  }, -//  }, - -// /* LOWER -//  * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. -//  * |        | F1     | F2     | F3     | F4     | F5     | F6     | F7     | F8     | F9     | F10    | F11    | F12    | XXXXXX . BACKSP | -//  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| -//  * |        | $      | {      | [      | (      | %      | #      | )      | ]      | }      | @      |        |        |        | INS    | -//  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| -//  * |        | ^      | *      | +      | -      | /      | \      | _      | '      | "      | `      |        | XXXXXX .        | HOME   | -//  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| -//  * |        | |      | &      | !      | ~      | ;      | :      | =      | <      | >      | ?      | XXXXXX .        |        | END    | -//  * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| -//  * |        |        |        |        |        |                 |        |        |        |        |        |        |        |        | -//  * '--------------------------------------------------------------------------------------------------------------------------------------' -//  */ - -//  [LAYER_LOWER]        = { // LOWER -//   { _______, 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_DLR,  KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT,   _______, _______, _______, KC_INS   }, -//   { _______, KC_CIRC, KC_ASTR, KC_PPLS, KC_PMNS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT,  KC_GRV,  _______, ________________, KC_HOME  }, -//   { _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SCLN, KC_COLN, KC_EQL,  KC_LT,   KC_GT,   KC_QUES, ________________, _______, KC_END   }, -//   { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, _______, _______  }, -//  }, - -// /* FUNCTION -//  * .---------------------------------------------------------------------------------------------------------------------- 2u ------------. -//  * | NUM LK |        |        |        |        |        |        |        |        |        |        |        |        | XXXXXX .        | -//  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------| -//  * | SCR LK | F13    | F14    | F15    | F16    |        |        |        |        |        |        |        |        |        |        | -//  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------| -//  * | CAP LK | F17    | F18    | F19    | F20    |        |        |        |        |        |        |        | XXXXXX .        |        | -//  * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------| -//  * |        | F21    | F22    | F23    | F24    |        |        |        |        |        |        | XXXXXX .        | VOL UP | MUTE   | -//  * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------| -//  * |        |        |        |        |        | PLAY/PAUSE      |        |        |        |        |        | PTRACK | VOL DN | NTRACK | -//  * '--------------------------------------------------------------------------------------------------------------------------------------' -//  */ - -//  [LAYER_FUNCTION]     = { // FUNCTION -//   { KC_NLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXX  }, -//   { KC_SLCK, KC_F13,  KC_F14,  KC_F15,  KC_F16,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX  }, -//   { KC_CAPS, KC_F17,  KC_F18,  KC_F19,  KC_F20,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXX, XXXXXXX  }, -//   { _______, KC_F21,  KC_F22,  KC_F23,  KC_F24,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, ________________, KC_VOLU, KC_MUTE  }, -//   { _______, _______, _______, _______, _______, KC_MPLY, KC_MPLY, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT  }, -//  }, - -// #ifdef MOUSEKEY_ENABLE - -//  [LAYER_MOUSE]        = { // MOUSE -//   { _______, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXX  }, -//   { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX  }, -//   { XXXXXXX, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXXXXXXXXXXX, KC_WH_U  }, -//   { _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, ________________, KC_MS_U, KC_WH_D  }, -//   { _______, _______, _______, _______, _______, KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R  }, -//  }, - -// #endif - -//  [LAYER_ADJUST]       = { // ADJUST -//   { _______, TIMBR_1, TIMBR_2, TIMBR_3, TIMBR_4, TMPO_UP, TMPO_DN, TMPO_DF, _______, _______, _______, MU_TOG,  AU_TOG,  ________________  }, -//   { _______, M_QWRTY, M_COLMK, M_DVORK, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______  }, -//   { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______  }, -//   { _______, _______, _______, _______, M_BACKL, RESET,   _______, M_MOUSE, _______, _______, _______, ________________, MUV_IN,  _______  }, -//   { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, MUV_DE,  _______  }, -//  }, - - -// /* -//  [LAYER_EMPTY]        = { // LAYER -//   { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________  }, -//   { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______  }, -//   { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______  }, -//   { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ________________, _______, _______  }, -//   { _______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______, _______, _______, _______  }, -//  }, -// */ +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = +{ +/* LAYER = LAYER_QWERTY +  .-----------------------------------.       .-----------------------------------------------------------------------------------------------------------------------------.       .-----------------------------------. +  | FN     | PRINT  | SCR LK | PAUSE  |       | F1     | F2     | F3     | F4     | XXXXXX | F5     | F6     | F7     | F8     | XXXXXX | F9     | F10    | F11    | F12    |       | VOL DN | MUTE   | VOL UP | BACKLT | +  '-----------------------------------'       '-----------------------------------------------------------------------------------------------------------------------------'       '-----------------------------------' +  .-----------------------------------.       .-----------------------------------------------------------------------------------------------------------------------------.       .-----------------------------------. +  | M1     | INS    | HOME   | PG UP  |       | ESC    | `      | 1      | 2      | 3      | 4      | 5      | 6      | 7      | 8      | 9      | 0      | =      | BACKSP |       | NUM LK | KP /   | KP *   | KP -   | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|       |--------|--------|--------+--------| +  | M2     | DEL    | END    | PG DN  |       | TAB    | TAB    | Q      | W      | E      | R      | T      | Y      | U      | I      | O      | P      | -      | \      |       | KP 7   | KP 8   | KP 9   | KP +   | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|   o   |--------|--------|--------+--------| +  | M3     | UL     | UP     | UR     |       | CAP LK | BACKSP | A      | S      | D      | F      | G      | H      | J      | K      | L      | ;      | '      | ENTER  |   o   | KP 4   | KP 5   | KP 6   | KP +   | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|   o   |--------|--------|--------+--------| +  | M4     | LEFT   | CP/CT  | RIGHT  |       | LSHIFT | LSHIFT | Z      | X      | C      | V      | B      | N      | M      | ,      | .      | /      | RSHIFT | RSHIFT |       | KP 1   | KP 2   | KP 3   | KP Ent | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|       |--------|--------|--------+--------| +  | M5     | DL     | DOWN   | DR     |       | LCTRL  | XXXXXX | XXXXXX | LWIN   | LALT   | LOWER  | SPACE  . SPACE  | UPPER  | OSHIFT | RALT   | APP    | XXXXXX | RCTRL  |       | KP 0   | KP ,   | KP .   | KP Ent | +  '-----------------------------------'       '-----------------------------------------------------------------------------------------------------------------------------'       '-----------------------------------' +*/ +KEYMAP(LAYER_QWERTY, \ +    M_HELP , KC_PSCR, KC_SLCK, KC_PAUS,         KC_F1  , KC_F2  , KC_F3  , KC_F4  , XXXXXXX, KC_F5  , KC_F6  , KC_F7  , KC_F8  , XXXXXXX, KC_F9  , KC_F10 , KC_F11 , KC_F12 ,         KC_VOLD, KC_MUTE, KC_VOLU, M_BACKL, \ +    M_M1   , KC_INS , KC_HOME, KC_PGUP,         KC_ESC , KC_GRV , KC_1   , KC_2   , KC_3   , KC_4   , KC_5   , KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , KC_EQL , KC_BSPC,         KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, \ +    M_M2   , KC_DEL , KC_END , KC_PGDN,         KC_TAB , KC_TAB , KC_Q   , KC_W   , KC_E   , KC_R   , KC_T   , KC_Y   , KC_U   , KC_I   , KC_O   , KC_P   , KC_MINS, KC_BSLS,         KC_KP_7, KC_KP_8, KC_KP_9, KC_PPLS, \ +    M_M3   , M_UL   , KC_UP  , M_UR   ,         KC_CAPS, KC_BSPC, 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_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, \ +    M_M4   , KC_LEFT, M_CP_CT, KC_RGHT,         KC_LSFT, KC_LSFT, KC_Z   , KC_X   , KC_C   , KC_V   , KC_B   , KC_N   , KC_M   , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_RSFT,         KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, \ +    M_M5   , M_DL   , KC_DOWN, M_DR   ,         KC_LCTL, XXXXXXX, XXXXXXX, KC_LGUI, KC_LALT, M_LOWER, KC_SPC , KC_SPC , M_UPPER, OS_SHFT, KC_RALT, KC_APP , XXXXXXX, KC_RCTL,         KC_KP_0, KC_PCMM, KC_PDOT, KC_PENT  \ +), +/* LAYER = LAYER_LOWER +  .-----------------------------------.       .-----------------------------------------------------------------------------------------------------------------------------.       .-----------------------------------. +  | ______ | ______ | ______ | ______ |       | F13    | F14    | F15    | F16    | XXXXXX | F17    | F18    | F19    | F20    | XXXXXX | F21    | F22    | F23    | F24    |       | ______ | MUTE A | ______ | ______ | +  '-----------------------------------'       '-----------------------------------------------------------------------------------------------------------------------------'       '-----------------------------------' +  .-----------------------------------.       .-----------------------------------------------------------------------------------------------------------------------------.       .-----------------------------------. +  | ______ | ______ | ______ | ______ |       | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ |       | ______ | ______ | ______ | ______ | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|       |--------|--------|--------+--------| +  | ______ | ______ | ______ | ______ |       | ______ | ______ | $      | {      | [      | (      | %      | #      | )      | ]      | }      | @      | ______ | ______ |       | ______ | ______ | ______ | ______ | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|   o   |--------|--------|--------+--------| +  | ______ | ______ | ______ | ______ |       | ______ | ______ | ^      | *      | +      | -      | /      | \      | _      | '      | "      | `      | ______ | ______ |   o   | ______ | ______ | ______ | ______ | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|   o   |--------|--------|--------+--------| +  | ______ | ______ | ______ | ______ |       | ______ | ______ | |      | &      | !      | ~      | ;      | :      | =      | <      | >      | ?      | ______ | ______ |       | ______ | ______ | ______ | ______ | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|       |--------|--------|--------+--------| +  | ______ | ______ | ______ | ______ |       | ______ | XXXXXX | XXXXXX | ______ | ______ | ______ | ______ . ______ | LOWER  | ______ | ______ | ______ | XXXXXX | ______ |       | ______ | ______ | ______ | ______ | +  '-----------------------------------'       '-----------------------------------------------------------------------------------------------------------------------------'       '-----------------------------------' +*/ +KEYMAP(LAYER_LOWER, \ +    _______, _______, _______, _______,         KC_F13 , KC_F14 , KC_F15 , KC_F16 , XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , XXXXXXX, KC_F21 , KC_F22 , KC_F23 , KC_F24 ,         _______, M_MUTEA, _______, _______, \ +    _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, \ +    _______, _______, _______, _______,         _______, _______, KC_DLR , KC_LCBR, KC_LBRC, KC_LPRN, KC_PERC, KC_HASH, KC_RPRN, KC_RBRC, KC_RCBR, KC_AT  , _______, _______,         _______, _______, _______, _______, \ +    _______, _______, _______, _______,         _______, _______, KC_CIRC, KC_ASTR, KC_PLUS, KC_MINS, KC_SLSH, KC_BSLS, KC_UNDS, KC_QUOT, KC_DQT , KC_GRV , _______, _______,         _______, _______, _______, _______, \ +    _______, _______, _______, _______,         _______, _______, KC_PIPE, KC_AMPR, KC_EXLM, KC_TILD, KC_SCLN, KC_COLN, KC_EQL , KC_LT  , KC_GT  , KC_QUES, _______, _______,         _______, _______, _______, _______, \ +    _______, _______, _______, _______,         _______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, M_LOWER, _______, _______, _______, XXXXXXX, _______,         _______, _______, _______, _______  \ +), +/* LAYER = LAYER_UPPER +  .-----------------------------------.       .-----------------------------------------------------------------------------------------------------------------------------.       .-----------------------------------. +  | ______ | ______ | ______ | ______ |       | F13    | F14    | F15    | F16    | XXXXXX | F17    | F18    | F19    | F20    | XXXXXX | F21    | F22    | F23    | F24    |       | ______ | MUTE A | ______ | ______ | +  '-----------------------------------'       '-----------------------------------------------------------------------------------------------------------------------------'       '-----------------------------------' +  .-----------------------------------.       .-----------------------------------------------------------------------------------------------------------------------------.       .-----------------------------------. +  | ______ | ______ | ______ | ______ |       | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ |       | ______ | ______ | ______ | ______ | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|       |--------|--------|--------+--------| +  | ______ | ______ | ______ | ______ |       | ______ | ______ | F1     | F2     | F3     | F4     | NUM LK | KP /   | KP 7   | KP 8   | KP 9   | KP -   | ______ | ______ |       | ______ | ______ | ______ | ______ | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|   o   |--------|--------|--------+--------| +  | ______ | ______ | ______ | ______ |       | ______ | ______ | F5     | F6     | F7     | F8     | CAP LK | KP *   | KP 4   | KP 5   | KP 6   | KP +   | ______ | ______ |   o   | ______ | ______ | ______ | ______ | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|   o   |--------|--------|--------+--------| +  | ______ | ______ | ______ | ______ |       | ______ | ______ | F9     | F10    | F11    | F12    | SCR LK | KP 0   | KP 1   | KP 2   | KP 3   | KP Ent | ______ | ______ |       | ______ | ______ | ______ | ______ | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|       |--------|--------|--------+--------| +  | ______ | ______ | ______ | ______ |       | ______ | XXXXXX | XXXXXX | ______ | ______ | UPPER  | KP 0   . KP 0   | ______ | RALT   | KP .   | KP Ent | XXXXXX | ______ |       | ______ | ______ | ______ | ______ | +  '-----------------------------------'       '-----------------------------------------------------------------------------------------------------------------------------'       '-----------------------------------' +*/ +KEYMAP(LAYER_UPPER, \ +    _______, _______, _______, _______,         KC_F13 , KC_F14 , KC_F15 , KC_F16 , XXXXXXX, KC_F17 , KC_F18 , KC_F19 , KC_F20 , XXXXXXX, KC_F21 , KC_F22 , KC_F23 , KC_F24 ,         _______, M_MUTEA, _______, _______, \ +    _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, \ +    _______, _______, _______, _______,         _______, _______, KC_F1  , KC_F2  , KC_F3  , KC_F4  , KC_NLCK, KC_PSLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______, _______,         _______, _______, _______, _______, \ +    _______, _______, _______, _______,         _______, _______, KC_F5  , KC_F6  , KC_F7  , KC_F8  , KC_CAPS, KC_PAST, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, _______,         _______, _______, _______, _______, \ +    _______, _______, _______, _______,         _______, _______, KC_F9  , KC_F10 , KC_F11 , KC_F12 , KC_SLCK, KC_KP_0, KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT, _______, _______,         _______, _______, _______, _______, \ +    _______, _______, _______, _______,         _______, XXXXXXX, XXXXXXX, _______, _______, M_UPPER, KC_KP_0, KC_KP_0, _______, KC_RALT, KC_PDOT, KC_PENT, XXXXXXX, _______,         _______, _______, _______, _______  \ +), +/* LAYER = LAYER_MOUSE +  .-----------------------------------.       .-----------------------------------------------------------------------------------------------------------------------------.       .-----------------------------------. +  | ______ | ______ | ______ | ______ |       | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ |       | ______ | ______ | ______ | ______ | +  '-----------------------------------'       '-----------------------------------------------------------------------------------------------------------------------------'       '-----------------------------------' +  .-----------------------------------.       .-----------------------------------------------------------------------------------------------------------------------------.       .-----------------------------------. +  | MS BT1 | MS AC0 | MS WHU | MS AC2 |       | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ |       | ______ | ______ | ______ | ______ | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|       |--------|--------|--------+--------| +  | MS BT2 | MS WHL | MS WHD | MS WHU |       | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ |       | ______ | ______ | ______ | ______ | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|   o   |--------|--------|--------+--------| +  | MS BT3 | MS UL  | MS U   | MS UR  |       | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ |   o   | ______ | ______ | ______ | ______ | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|   o   |--------|--------|--------+--------| +  | MS BT4 | MS L   | MS BT1 | MS R   |       | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ | ______ |       | ______ | ______ | ______ | ______ | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|       |--------|--------|--------+--------| +  | MS BT5 | MS DL  | MS D   | MS DR  |       | ______ | ______ | ______ | ______ | ______ | ______ | ______ . ______ | ______ | ______ | ______ | ______ | ______ | ______ |       | ______ | ______ | ______ | ______ | +  '-----------------------------------'       '-----------------------------------------------------------------------------------------------------------------------------'       '-----------------------------------' +*/ +KEYMAP(LAYER_MOUSE, \ +    _______, _______, _______, _______,         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, \ +    KC_BTN1, KC_ACL0, KC_WH_U, KC_ACL2,         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, \ +    KC_BTN2, KC_WH_L, KC_WH_D, KC_WH_U,         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, \ +    KC_BTN3, M_MS_UL, KC_MS_U, M_MS_UR,         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, \ +    KC_BTN4, KC_MS_L, KC_BTN1, KC_MS_R,         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______, \ +    KC_BTN5, M_MS_DL, KC_MS_D, M_MS_DR,         _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,         _______, _______, _______, _______  \ +), +/* LAYER = LAYER_ADJUST +  .-----------------------------------.       .-----------------------------------------------------------------------------------------------------------------------------.       .-----------------------------------. +  | XXXXXX | XXXXXX | XXXXXX | XXXXXX |       | HELP 1 | HELP 2 | HELP 3 | HELP 4 | XXXXXX | HELP 5 | HELP 6 | HELP 7 | HELP 8 | XXXXXX | HELP 9 | HELP 0 | XXXXXX | XXXXXX |       | VOICE- | AUDIO  | VOICE+ | MUSIC  | +  '-----------------------------------'       '-----------------------------------------------------------------------------------------------------------------------------'       '-----------------------------------' +  .-----------------------------------.       .-----------------------------------------------------------------------------------------------------------------------------.       .-----------------------------------. +  | XXXXXX | XXXXXX | XXXXXX | XXXXXX |       | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |       | XXXXXX | XXXXXX | XXXXXX | XXXXXX | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|       |--------|--------|--------+--------| +  | XXXXXX | XXXXXX | XXXXXX | XXXXXX |       | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |       | XXXXXX | XXXXXX | XXXXXX | XXXXXX | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|   o   |--------|--------|--------+--------| +  | XXXXXX | XXXXXX | XXXXXX | XXXXXX |       | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |   o   | XXXXXX | XXXXXX | XXXXXX | XXXXXX | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|   o   |--------|--------|--------+--------| +  | XXXXXX | XXXXXX | XXXXXX | XXXXXX |       | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | RESET  | XXXXXX | MOUSE  | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |       | XXXXXX | XXXXXX | XXXXXX | XXXXXX | +  |--------+--------+--------+--------|       |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|       |--------|--------|--------+--------| +  | XXXXXX | XXXXXX | XXXXXX | XXXXXX |       | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | UPPER  | XXXXXX . XXXXXX | LOWER  | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |       | XXXXXX | XXXXXX | XXXXXX | XXXXXX | +  '-----------------------------------'       '-----------------------------------------------------------------------------------------------------------------------------'       '-----------------------------------' +*/ +KEYMAP(LAYER_ADJUST, \ +    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,         M_HELP1, M_HELP2, M_HELP3, M_HELP4, XXXXXXX, M_HELP5, M_HELP6, M_HELP7, M_HELP8, XXXXXXX, M_HELP9, M_HELP0, XXXXXXX, XXXXXXX,         MUV_DE , AU_TOG , MUV_IN , MU_TOG , \ +    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, 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, RESET  , XXXXXXX, M_MOUSE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ +    XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, M_UPPER, XXXXXXX, XXXXXXX, M_LOWER, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX  \ +),  }; @@ -313,303 +290,290 @@ float tone_scroll_off[][2] = SONG(SCROLL_LOCK_OFF_SOUND);  void persistant_default_layer_set(uint16_t default_layer)  { -    eeconfig_update_default_layer(default_layer); -    default_layer_set(default_layer); +  eeconfig_update_default_layer(default_layer); +  default_layer_set(default_layer);  }  const uint16_t PROGMEM fn_actions[] = { -    [0] = ACTION_MODS_ONESHOT(MOD_LSFT), +  [0] = ACTION_MODS_ONESHOT(MOD_LSFT),  };  const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)  { -    // MACRODOWN only works in this function -    switch(id) +  // MACRODOWN only works in this function +  switch(id) +  { + +    case MACRO_HELP_1: +      if (record->event.pressed) +      { +        uprint("H1"); +      } +      break; + +    case MACRO_HELP_2: +      if (record->event.pressed) +      { +        uprint("H2"); +      } +      break; + +    case MACRO_HELP_3: +      if (record->event.pressed) +      { +        uprint("H3"); +      } +      break; + +    case MACRO_HELP_4: +      if (record->event.pressed) +      { +        uprint("H4"); +      } +      break; + +   case MACRO_HELP_5: +     if (record->event.pressed) +     { +       uprint("H5"); +     } +     break; + +   case MACRO_HELP_6: +     if (record->event.pressed) +     { +       uprint("H6"); +     } +     break; + +   case MACRO_HELP_7: +      if (record->event.pressed) +      { +        uprint("H7"); +      } +      break; + +  case MACRO_HELP_8: +    if (record->event.pressed) +    { +      uprint("H8"); +    } +    break; + +  case MACRO_HELP_9: +    if (record->event.pressed) +    { +      uprint("H9"); +    } +    break; + +  case MACRO_BREATH_TOGGLE: +    if (record->event.pressed) +    { +      breathing_toggle(); +    } +    break; + +  case MACRO_BREATH_SPEED_INC: +    if (record->event.pressed) +    { +      breathing_speed_inc(1); +    } +    break; + +  case MACRO_BREATH_SPEED_DEC: +    if (record->event.pressed) +    { +      breathing_speed_dec(1); +    } +    break; + +  case MACRO_BREATH_DEFAULT: +    if (record->event.pressed) +    { +      breathing_defaults(); +    } +    break; + +  case MACRO_QWERTY: +    if (record->event.pressed) +    { +      persistant_default_layer_set(1UL<<LAYER_QWERTY); +    } +    break; + +  case MACRO_UPPER: +    if (record->event.pressed)      { +      layer_on(LAYER_UPPER); +      breathing_speed_set(2); +      breathing_pulse(); +      update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); +    } +    else +    { +      layer_off(LAYER_UPPER); +      update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); +    } +    break; + +  case MACRO_LOWER: +    if (record->event.pressed) +    { +      layer_on(LAYER_LOWER); +      breathing_speed_set(2); +      breathing_pulse(); +      update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); +    } +    else +    { +      layer_off(LAYER_LOWER); +      update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); +    } +    break; -        // case MACRO_BREATH_TOGGLE: -        //     if (record->event.pressed) -        //     { -        //         breathing_toggle(); -        //     } -        //     break; - -        // case MACRO_BREATH_SPEED_INC: -        //     if (record->event.pressed) -        //     { -        //         breathing_speed_inc(1); -        //     } -        //     break; - -        // case MACRO_BREATH_SPEED_DEC: -        //     if (record->event.pressed) -        //     { -        //         breathing_speed_dec(1); -        //     } -        //     break; - -        // case MACRO_BREATH_DEFAULT: -        //     if (record->event.pressed) -        //     { -        //         breathing_defaults(); -        //     } -        //     break; - -        case MACRO_QWERTY: -            if (record->event.pressed) -            { -                persistant_default_layer_set(1UL<<LAYER_QWERTY); -                #ifdef AUDIO_ENABLE -                    PLAY_NOTE_ARRAY(tone_qwerty, false, STACCATO); -                #endif /* AUDIO_ENABLE */ -            } -            break; - -        case MACRO_COLEMAK: -            if (record->event.pressed) -            { -                persistant_default_layer_set(1UL<<LAYER_COLEMAK); -                #ifdef AUDIO_ENABLE -                    PLAY_NOTE_ARRAY(tone_colemak, false, STACCATO); -                #endif /* AUDIO_ENABLE */ -            } -            break; - -        case MACRO_DVORAK: -            if (record->event.pressed) -            { -                persistant_default_layer_set(1UL<<LAYER_DVORAK); -                #ifdef AUDIO_ENABLE -                    PLAY_NOTE_ARRAY(tone_dvorak, false, STACCATO); -                #endif /* AUDIO_ENABLE */ -            } -            break; - -        case MACRO_UPPER: -            if (record->event.pressed) -            { -                layer_on(LAYER_UPPER); -                // breathing_speed_set(2); -                // breathing_pulse(); -                update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); -            } -            else -            { -                layer_off(LAYER_UPPER); -                update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); -            } -            break; - -        case MACRO_LOWER: -            if (record->event.pressed) -            { -                layer_on(LAYER_LOWER); -                // breathing_speed_set(2); -                // breathing_pulse(); -                update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); -            } -            else -            { -                layer_off(LAYER_LOWER); -                update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); -            } -            break; - -        case MACRO_FUNCTION: -            if (record->event.pressed) -            { -                // breathing_speed_set(3); -                // breathing_enable(); -                layer_on(LAYER_FUNCTION); -            } -            else -            { -                // breathing_speed_set(1); -                // breathing_self_disable(); -                layer_off(LAYER_FUNCTION); -            } -            break; +  case MACRO_FUNCTION: +    if (record->event.pressed) +    { +      breathing_speed_set(3); +      breathing_enable(); +      layer_on(LAYER_FUNCTION); +    } +    else +    { +      breathing_speed_set(1); +      breathing_self_disable(); +      layer_off(LAYER_FUNCTION); +    } +    break;  #ifdef MOUSEKEY_ENABLE -        case MACRO_MOUSE: -            if (record->event.pressed) -            { -                layer_invert(LAYER_MOUSE); -            } -            break; +  case MACRO_MOUSE: +    if (record->event.pressed) +    { +      layer_invert(LAYER_MOUSE); +    } +    break;  #endif /* MOUSEKEY_ENABLE */  #ifdef AUDIO_ENABLE -        case MACRO_TIMBRE_1: -            if (record->event.pressed) set_timbre(TIMBRE_12); -            break; - -        case MACRO_TIMBRE_2: -            if (record->event.pressed) set_timbre(TIMBRE_25); -            break; - -        case MACRO_TIMBRE_3: -            if (record->event.pressed) set_timbre(TIMBRE_50); -            break; - -        case MACRO_TIMBRE_4: -            if (record->event.pressed) set_timbre(TIMBRE_75); -            break; - -        case MACRO_TEMPO_U: -            if (record->event.pressed) increase_tempo(10); -            break; - -        case MACRO_TEMPO_D: -            if (record->event.pressed) decrease_tempo(10); -            break; - -        case MACRO_TONE_DEFAULT: -            if (record->event.pressed) -            { -                set_timbre(TIMBRE_DEFAULT); -                set_tempo(TEMPO_DEFAULT); -            } -            break; - -/* -        case MACRO_AUDIO_TOGGLE: -            if (record->event.pressed) -            { -                    if (is_audio_on()) -                    { -                        audio_off(); -                    } -                    else -                    { -                        audio_on(); -                        PLAY_NOTE_ARRAY(tone_audio_on, false, STACCATO); -                    } -            } -            break; - -        case MACRO_MUSIC_TOGGLE: -            if (record->event.pressed) -            { -                    if (IS_LAYER_ON(LAYER_MUSIC)) -                    { -                        layer_off(LAYER_MUSIC); -                        stop_all_notes(); -                    } -                    else -                    { -                    PLAY_NOTE_ARRAY(tone_music_on, false, STACCATO); -                    layer_on(LAYER_MUSIC); -                    } -            } -            break; -        case MACRO_INC_VOICE: -            if (record->event.pressed) -            { -                #ifdef AUDIO_ENABLE -                    voice_iterate(); -                    PLAY_NOTE_ARRAY(music_scale, false, STACCATO); -                #endif -            } -            break; - -        case MACRO_DEC_VOICE: -            if (record->event.pressed) -            { -                #ifdef AUDIO_ENABLE -                    voice_deiterate(); -                    PLAY_NOTE_ARRAY(music_scale, false, STACCATO); -                #endif -            } -            break; -*/ +  case MACRO_TIMBRE_1: +    if (record->event.pressed) set_timbre(TIMBRE_12); +    break; + +  case MACRO_TIMBRE_2: +    if (record->event.pressed) set_timbre(TIMBRE_25); +    break; + +  case MACRO_TIMBRE_3: +    if (record->event.pressed) set_timbre(TIMBRE_50); +    break; + +  case MACRO_TIMBRE_4: +    if (record->event.pressed) set_timbre(TIMBRE_75); +    break; + +  case MACRO_TEMPO_U: +    if (record->event.pressed) increase_tempo(10); +    break; + +  case MACRO_TEMPO_D: +    if (record->event.pressed) decrease_tempo(10); +    break; + +  case MACRO_TONE_DEFAULT: +    if (record->event.pressed) +    { +      set_timbre(TIMBRE_DEFAULT); +      set_tempo(TEMPO_DEFAULT); +    } +    break;  #endif /* AUDIO_ENABLE */  #ifdef BACKLIGHT_ENABLE -        case MACRO_BACKLIGHT: -            if (record->event.pressed) -            { -                backlight_step(); -            } -#endif +  case MACRO_BACKLIGHT: +    if (record->event.pressed) +    { +      backlight_step(); +    } +  break; +#endif /* BACKLIGHT_ENABLE */ -        default: -            break; +  default: +    break; -    } -    return MACRO_NONE; +} +return MACRO_NONE;  }; -  #ifdef AUDIO_ENABLE  void matrix_init_user(void)  { -    set_voice(default_voice); -    startup_user(); -    println("Matrix Init"); +  set_voice(default_voice); +  startup_user(); +  println("Matrix Init");  }  void led_set_user(uint8_t usb_led)  { -    static uint8_t old_usb_led = 0; +  static uint8_t old_usb_led = 0; -    _delay_ms(10); // gets rid of tick +  _delay_ms(10); // gets rid of tick -    if (!is_playing_notes()) +  if (!is_playing_notes()) +  { +    if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK))) +    { +      // If CAPS LK LED is turning on... +      PLAY_NOTE_ARRAY(tone_caps_on,  false, LEGATO); +    } +    else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK))) +    { +      // If CAPS LK LED is turning off... +      PLAY_NOTE_ARRAY(tone_caps_off, false, LEGATO); +    } +    else if ((usb_led & (1<<USB_LED_NUM_LOCK)) && !(old_usb_led & (1<<USB_LED_NUM_LOCK))) +    { +      // If NUM LK LED is turning on... +      PLAY_NOTE_ARRAY(tone_numlk_on,  false, LEGATO); +    } +    else if (!(usb_led & (1<<USB_LED_NUM_LOCK)) && (old_usb_led & (1<<USB_LED_NUM_LOCK)))      { -        if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK))) -        { -                // If CAPS LK LED is turning on... -                PLAY_NOTE_ARRAY(tone_caps_on,  false, LEGATO); -        } -        else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK))) -        { -                // If CAPS LK LED is turning off... -                PLAY_NOTE_ARRAY(tone_caps_off, false, LEGATO); -        } -        else if ((usb_led & (1<<USB_LED_NUM_LOCK)) && !(old_usb_led & (1<<USB_LED_NUM_LOCK))) -        { -                // If NUM LK LED is turning on... -                PLAY_NOTE_ARRAY(tone_numlk_on,  false, LEGATO); -        } -        else if (!(usb_led & (1<<USB_LED_NUM_LOCK)) && (old_usb_led & (1<<USB_LED_NUM_LOCK))) -        { -                // If NUM LED is turning off... -                PLAY_NOTE_ARRAY(tone_numlk_off, false, LEGATO); -        } -        else if ((usb_led & (1<<USB_LED_SCROLL_LOCK)) && !(old_usb_led & (1<<USB_LED_SCROLL_LOCK))) -        { -                // If SCROLL LK LED is turning on... -                PLAY_NOTE_ARRAY(tone_scroll_on,  false, LEGATO); -        } -        else if (!(usb_led & (1<<USB_LED_SCROLL_LOCK)) && (old_usb_led & (1<<USB_LED_SCROLL_LOCK))) -        { -                // If SCROLL LED is turning off... -                PLAY_NOTE_ARRAY(tone_scroll_off, false, LEGATO); -        } +      // If NUM LED is turning off... +      PLAY_NOTE_ARRAY(tone_numlk_off, false, LEGATO);      } +    else if ((usb_led & (1<<USB_LED_SCROLL_LOCK)) && !(old_usb_led & (1<<USB_LED_SCROLL_LOCK))) +    { +      // If SCROLL LK LED is turning on... +      PLAY_NOTE_ARRAY(tone_scroll_on,  false, LEGATO); +    } +    else if (!(usb_led & (1<<USB_LED_SCROLL_LOCK)) && (old_usb_led & (1<<USB_LED_SCROLL_LOCK))) +    { +      // If SCROLL LED is turning off... +      PLAY_NOTE_ARRAY(tone_scroll_off, false, LEGATO); +    } +  } -    old_usb_led = usb_led; +  old_usb_led = usb_led;  } -  void startup_user()  { -    _delay_ms(10); // gets rid of tick -    PLAY_NOTE_ARRAY(tone_my_startup, false, STACCATO); +  _delay_ms(10); // gets rid of tick +  PLAY_NOTE_ARRAY(tone_my_startup, false, STACCATO);  }  void shutdown_user()  { -    PLAY_NOTE_ARRAY(tone_my_goodbye, false, STACCATO); -    _delay_ms(2000); -    stop_all_notes(); +  PLAY_NOTE_ARRAY(tone_my_goodbye, false, STACCATO); +  _delay_ms(2000); +  stop_all_notes();  }  void audio_on_user(void) diff --git a/keyboards/vision_division/matrix_types.h b/keyboards/vision_division/matrix_types.h index d40b2079a6..893e5272a3 100644 --- a/keyboards/vision_division/matrix_types.h +++ b/keyboards/vision_division/matrix_types.h @@ -139,28 +139,29 @@  // Changable Row Macro -#define KEYMAP_ROW(LEFT_TYPE, RIGHT_TYPE, \ +#define _KEYMAP_ROW( _LEFT_TYPE, _RIGHT_TYPE, \    k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C, k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C \  ) \ -KEYMAP_ROW_LEFT_ ## LEFT_TYPE(k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C), KEYMAP_ROW_RIGHT_ ## RIGHT_TYPE(k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C) +KEYMAP_ROW_LEFT_ ## _LEFT_TYPE(   k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C ), \ +KEYMAP_ROW_RIGHT_ ## _RIGHT_TYPE( k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C )  // Changable Master Macro -#define KEYMAP_MASTER(LEFT_TYPE, RIGHT_TYPE, \ -      k001, k002, k003, k004,       k005, k006, k007, k008, k009, k00A, k00B, k00C, k011, k012, k013, k014, k015, k016, k017, k018,       k019, k01A, k01B, k01C, \ -      k101, k102, k103, k104,       k105, k106, k107, k108, k109, k10A, k10B, k10C, k111, k112, k113, k114, k115, k116, k117, k118,       k119, k11A, k11B, k11C, \ -      k201, k202, k203, k204,       k205, k206, k207, k208, k209, k20A, k20B, k20C, k211, k212, k213, k214, k215, k216, k217, k218,       k219, k21A, k21B, k21C, \ -      k301, k302, k303, k304,       k305, k306, k307, k308, k309, k30A, k30B, k30C, k311, k312, k313, k314, k315, k316, k317, k318,       k319, k31A, k31B, k31C, \ -      k401, k402, k403, k404,       k405, k406, k407, k408, k409, k40A, k40B, k40C, k411, k412, k413, k414, k415, k416, k417, k418,       k419, k41A, k41B, k41C, \ -      k501, k502, k503, k504,       k505, k506, k507, k508, k509, k50A, k50B, k50C, k511, k512, k513, k514, k515, k516, k517, k518,       k519, k51A, k51B, k51C  \ +#define KEYMAP_MASTER(_MATRIX_LAYER, _LEFT_TYPE, _RIGHT_TYPE, \ +                                            k001, k002, k003, k004,       k005, k006, k007, k008, k009, k00A, k00B, k00C,       k011, k012, k013, k014, k015, k016, k017, k018,       k019, k01A, k01B, k01C, \ +                                            k101, k102, k103, k104,       k105, k106, k107, k108, k109, k10A, k10B, k10C,       k111, k112, k113, k114, k115, k116, k117, k118,       k119, k11A, k11B, k11C, \ +                                            k201, k202, k203, k204,       k205, k206, k207, k208, k209, k20A, k20B, k20C,       k211, k212, k213, k214, k215, k216, k217, k218,       k219, k21A, k21B, k21C, \ +                                            k301, k302, k303, k304,       k305, k306, k307, k308, k309, k30A, k30B, k30C,       k311, k312, k313, k314, k315, k316, k317, k318,       k319, k31A, k31B, k31C, \ +                                            k401, k402, k403, k404,       k405, k406, k407, k408, k409, k40A, k40B, k40C,       k411, k412, k413, k414, k415, k416, k417, k418,       k419, k41A, k41B, k41C, \ +                                            k501, k502, k503, k504,       k505, k506, k507, k508, k509, k50A, k50B, k50C,       k511, k512, k513, k514, k515, k516, k517, k518,       k519, k51A, k51B, k51C  \  ) \ -{ \ -    { KEYMAP_ROW(LEFT_TYPE, RIGHT_TYPE, k001, k002, k003, k004, k005, k006, k007, k008, k009, k00A, k00B, k00C, k011, k012, k013, k014, k015, k016, k017, k018, k019, k01A, k01B, k01C ) },\ -    { KEYMAP_ROW(LEFT_TYPE, RIGHT_TYPE, k101, k102, k103, k104, k105, k106, k107, k108, k109, k10A, k10B, k10C, k111, k112, k113, k114, k115, k116, k117, k118, k119, k11A, k11B, k11C ) },\ -    { KEYMAP_ROW(LEFT_TYPE, RIGHT_TYPE, k201, k202, k203, k204, k205, k206, k207, k208, k209, k20A, k20B, k20C, k211, k212, k213, k214, k215, k216, k217, k218, k219, k21A, k21B, k21C ) },\ -    { KEYMAP_ROW(LEFT_TYPE, RIGHT_TYPE, k301, k302, k303, k304, k305, k306, k307, k308, k309, k30A, k30B, k30C, k311, k312, k313, k314, k315, k316, k317, k318, k319, k31A, k31B, k31C ) },\ -    { KEYMAP_ROW(LEFT_TYPE, RIGHT_TYPE, k401, k402, k403, k404, k405, k406, k407, k408, k409, k40A, k40B, k40C, k411, k412, k413, k414, k415, k416, k417, k418, k419, k41A, k41B, k41C ) },\ -    { KEYMAP_ROW(LEFT_TYPE, RIGHT_TYPE, k501, k502, k503, k504, k505, k506, k507, k508, k509, k50A, k50B, k50C, k511, k512, k513, k514, k515, k516, k517, k518, k519, k51A, k51B, k51C ) },\ +[_MATRIX_LAYER] = { \ +    { _KEYMAP_ROW( _LEFT_TYPE, _RIGHT_TYPE, k001, k002, k003, k004,       k005, k006, k007, k008, k009, k00A, k00B, k00C,       k011, k012, k013, k014, k015, k016, k017, k018,       k019, k01A, k01B, k01C ) },\ +    { _KEYMAP_ROW( _LEFT_TYPE, _RIGHT_TYPE, k101, k102, k103, k104,       k105, k106, k107, k108, k109, k10A, k10B, k10C,       k111, k112, k113, k114, k115, k116, k117, k118,       k119, k11A, k11B, k11C ) },\ +    { _KEYMAP_ROW( _LEFT_TYPE, _RIGHT_TYPE, k201, k202, k203, k204,       k205, k206, k207, k208, k209, k20A, k20B, k20C,       k211, k212, k213, k214, k215, k216, k217, k218,       k219, k21A, k21B, k21C ) },\ +    { _KEYMAP_ROW( _LEFT_TYPE, _RIGHT_TYPE, k301, k302, k303, k304,       k305, k306, k307, k308, k309, k30A, k30B, k30C,       k311, k312, k313, k314, k315, k316, k317, k318,       k319, k31A, k31B, k31C ) },\ +    { _KEYMAP_ROW( _LEFT_TYPE, _RIGHT_TYPE, k401, k402, k403, k404,       k405, k406, k407, k408, k409, k40A, k40B, k40C,       k411, k412, k413, k414, k415, k416, k417, k418,       k419, k41A, k41B, k41C ) },\ +    { _KEYMAP_ROW( _LEFT_TYPE, _RIGHT_TYPE, k501, k502, k503, k504,       k505, k506, k507, k508, k509, k50A, k50B, k50C,       k511, k512, k513, k514, k515, k516, k517, k518,       k519, k51A, k51B, k51C ) },\  } diff --git a/keyboards/vision_division/rules.mk b/keyboards/vision_division/rules.mk index 063fba29bd..6990960bf0 100644 --- a/keyboards/vision_division/rules.mk +++ b/keyboards/vision_division/rules.mk @@ -63,7 +63,7 @@ COMMAND_ENABLE ?= yes        # Commands for debug and configuration  SLEEP_LED_ENABLE ?= no       # Breathing sleep LED during USB suspend  # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work  NKRO_ENABLE ?= yes           # USB Nkey Rollover -BACKLIGHT_ENABLE ?= no       # Enable keyboard backlight functionality on B7 by default +BACKLIGHT_ENABLE ?= yes      # Enable keyboard backlight functionality on B7 by default  MIDI_ENABLE ?= no            # MIDI controls  UNICODE_ENABLE ?= no         # Unicode  BLUETOOTH_ENABLE ?= no       # Enable Bluetooth with the Adafruit EZ-Key HID diff --git a/keyboards/vision_division/vision_division.c b/keyboards/vision_division/vision_division.c index eb9336fa33..a0e0f449c4 100644 --- a/keyboards/vision_division/vision_division.c +++ b/keyboards/vision_division/vision_division.c @@ -24,5 +24,45 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {  void led_set_kb(uint8_t usb_led) {  	// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here +  if (usb_led & (1 << USB_LED_CAPS_LOCK)) +  { +    // HI +    DDRD  |= (1<<4); +    PORTD |= (1<<4); +  } +  else +  { +    // Hi-Z +    DDRD  &= ~(1<<4); +    PORTD &= ~(1<<4); +  } + +  if (usb_led & (1 << USB_LED_NUM_LOCK)) +  { +    // HI +    DDRD  |= (1<<5); +    PORTD |= (1<<5); +  } +  else +  { +    // Hi-Z +    DDRD  &= ~(1<<5); +    PORTD &= ~(1<<5); +  } + +  if (usb_led & (1 << USB_LED_SCROLL_LOCK)) +  { +    // HI +    DDRD  |= (1<<6); +    PORTD |= (1<<6); +  } +  else +  { +    // Hi-Z +    DDRD  &= ~(1<<6); +    PORTD &= ~(1<<6); +  } +  	led_set_user(usb_led);  } + diff --git a/tmk_core/common/avr/bootloader.c b/tmk_core/common/avr/bootloader.c index fb9bf2d1c3..ad547b9853 100644 --- a/tmk_core/common/avr/bootloader.c +++ b/tmk_core/common/avr/bootloader.c @@ -38,7 +38,7 @@   *          |               |                        |               |   *          =               =                        =               =   *          |               | 32KB-4KB               |               | 128KB-8KB - * 0x6000   +---------------+               0x1FC00  +---------------+ + * 0x7000   +---------------+               0x1E000  +---------------+   *          |  Bootloader   | 4KB                    |  Bootloader   | 8KB   * 0x7FFF   +---------------+               0x1FFFF  +---------------+   * @@ -64,8 +64,8 @@  #define BOOTLOADER_START    (FLASH_SIZE - BOOTLOADER_SIZE) -/*  - * Entering the Bootloader via Software  +/* + * Entering the Bootloader via Software   * http://www.fourwalledcubicle.com/files/LUFA/Doc/120730/html/_page__software_bootloader_start.html   */  #define BOOTLOADER_RESET_KEY 0xB007B007 @@ -137,7 +137,7 @@ void bootloader_jump_after_watchdog_reset(void)  #if 0  /* Jumping To The Bootloader   * http://www.pjrc.com/teensy/jump_to_bootloader.html - *  + *   * This method doen't work when using LUFA. idk why.   * - needs to initialize more regisers or interrupt setting?   */ diff --git a/tmk_core/common/command.c b/tmk_core/common/command.c index fc5aad5c1d..f3e1bf6234 100644 --- a/tmk_core/common/command.c +++ b/tmk_core/common/command.c @@ -384,9 +384,6 @@ static bool command_common(uint8_t code)                  debug_mouse    = true;              } else {                  print("\ndebug: off\n"); -                debug_matrix   = false; -                debug_keyboard = false; -                debug_mouse    = false;              }              break; | 
