2 #include "action_layer.h"
12 enum keyboard_layers
{
20 enum keyboard_macros
{
39 MACRO_BREATH_SPEED_INC
,
40 MACRO_BREATH_SPEED_DEC
,
57 #define M_QWRTY M(MACRO_QWERTY)
58 #define M_UPPER M(MACRO_UPPER)
59 #define M_LOWER M(MACRO_LOWER)
60 #define M_FUNCT M(MACRO_FUNCTION)
61 #define M_MOUSE M(MACRO_MOUSE)
62 #define TIMBR_1 M(MACRO_TIMBRE_1)
63 #define TIMBR_2 M(MACRO_TIMBRE_2)
64 #define TIMBR_3 M(MACRO_TIMBRE_3)
65 #define TIMBR_4 M(MACRO_TIMBRE_4)
66 #define TMPO_UP M(MACRO_TEMPO_U)
67 #define TMPO_DN M(MACRO_TEMPO_D)
68 #define TMPO_DF M(MACRO_TONE_DEFAULT)
69 #define M_BACKL M(MACRO_BACKLIGHT)
70 #define M_BRTOG M(MACRO_BREATH_TOGGLE)
71 #define M_BSPDU M(MACRO_BREATH_SPEED_INC)
72 #define M_BSPDD M(MACRO_BREATH_SPEED_DEC)
73 #define M_BDFLT M(MACRO_BREATH_DEFAULT)
74 #define M_MS_UL M(MACRO_MOUSE_MOVE_UL)
75 #define M_MS_UR M(MACRO_MOUSE_MOVE_UR)
76 #define M_MS_DL M(MACRO_MOUSE_MOVE_DL)
77 #define M_MS_DR M(MACRO_MOUSE_MOVE_DR)
78 #define M_HELP1 M(MACRO_HELP_1)
79 #define M_HELP2 M(MACRO_HELP_2)
80 #define M_HELP3 M(MACRO_HELP_3)
81 #define M_HELP4 M(MACRO_HELP_4)
82 #define M_HELP5 M(MACRO_HELP_5)
83 #define M_HELP6 M(MACRO_HELP_6)
84 #define M_HELP7 M(MACRO_HELP_7)
85 #define M_HELP8 M(MACRO_HELP_8)
86 #define M_HELP9 M(MACRO_HELP_9)
89 #define VC_UP M(MACRO_INC_VOICE)
90 #define VC_DOWN M(MACRO_DEC_VOICE)
93 #define SC_UNDO LCTL(KC_Z)
94 #define SC_REDO LCTL(KC_Y)
95 #define SC_CUT LCTL(KC_X)
96 #define SC_COPY LCTL(KC_C)
97 #define SC_PSTE LCTL(KC_V)
98 #define SC_SELA LCTL(KC_A)
99 #define SC_SAVE LCTL(KC_S)
100 #define SC_OPEN LCTL(KC_O)
101 #define SC_ACLS LALT(KC_F4)
102 #define SC_CCLS LCTL(KC_F4)
104 #define TG_NKRO MAGIC_TOGGLE_NKRO
105 #define OS_SHFT KC_FN0
107 #define _______ KC_TRNS
108 #define XXXXXXX KC_NO
109 #define ________________ _______, _______
110 #define XXXXXXXXXXXXXXXX XXXXXXX, XXXXXXX
112 const uint16_t PROGMEM keymaps
[][MATRIX_ROWS
][MATRIX_COLS
] = {
114 /* LAYER = LAYER_QWERTY
115 .--------------------------------------------------------------------------------------------------------------------------------------.
116 | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | BACKSP . BACKSP |
117 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
118 | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL |
119 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
120 | CAP LK | A | S | D | F | G | H | J | K | L | ; | ' | ENTER . ENTER | PG UP |
121 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
122 | LSHIFT | Z | X | C | V | B | N | M | , | . | / | RSHIFT . RSHIFT | UP | PG DN |
123 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
124 | LCTRL | LWIN | FN | LALT | UPPER | SPACE . SPACE | LOWER | OSHIFT | RALT | APP | RCTRL | LEFT | DOWN | RIGHT |
125 '--------------------------------------------------------------------------------------------------------------------------------------'
128 { 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
},
129 { 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
},
130 { 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
},
131 { 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
},
132 { 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
}
134 /* LAYER = LAYER_UPPER
135 .--------------------------------------------------------------------------------------------------------------------------------------.
136 | PRINT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | NUM LK | KP / | KP * | KP - | XXXXXX | XXXXXX | ______ . ______ |
137 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
138 | PAUSE | F1 | F2 | F3 | F4 | NUM LK | KP / | KP 7 | KP 8 | KP 9 | KP - | ______ | ______ | ______ | INS |
139 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
140 | ______ | F5 | F6 | F7 | F8 | CAP LK | KP * | KP 4 | KP 5 | KP 6 | KP + | ______ | ______ . ______ | HOME |
141 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
142 | ______ | F9 | F10 | F11 | F12 | SCR LK | KP 0 | KP 1 | KP 2 | KP 3 | KP ENT | ______ . ______ | ______ | END |
143 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
144 | ______ | ______ | ______ | ______ | UPPER | KP 0 . KP 0 | ______ | RALT | KP . | KP ENT | ______ | ______ | ______ | ______ |
145 '--------------------------------------------------------------------------------------------------------------------------------------'
148 { KC_PSCR
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, KC_NLCK
, KC_PSLS
, KC_PAST
, KC_PMNS
, XXXXXXX
, XXXXXXX
, _______
, _______
},
149 { KC_PAUS
, KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_NLCK
, KC_PSLS
, KC_KP_7
, KC_KP_8
, KC_KP_9
, KC_PMNS
, _______
, _______
, _______
, KC_INS
},
150 { _______
, KC_F5
, KC_F6
, KC_F7
, KC_F8
, KC_CAPS
, KC_PAST
, KC_KP_4
, KC_KP_5
, KC_KP_6
, KC_PPLS
, _______
, _______
, _______
, KC_HOME
},
151 { _______
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, KC_SLCK
, KC_KP_0
, KC_KP_1
, KC_KP_2
, KC_KP_3
, KC_PENT
, _______
, _______
, _______
, KC_END
},
152 { _______
, _______
, _______
, _______
, M_UPPER
, KC_KP_0
, KC_KP_0
, _______
, KC_RALT
, KC_PDOT
, KC_PENT
, _______
, _______
, _______
, _______
}
154 /* LAYER = LAYER_LOWER
155 .--------------------------------------------------------------------------------------------------------------------------------------.
156 | PRINT | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | ______ . ______ |
157 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
158 | ______ | $ | { | [ | ( | % | # | ) | ] | } | @ | ______ | ______ | ______ | INS |
159 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
160 | ______ | ^ | * | + | - | / | \ | _ | ' | " | ` | ______ | ______ . ______ | HOME |
161 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
162 | ______ | | | & | ! | ~ | ; | : | = | < | > | ? | ______ . ______ | ______ | END |
163 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
164 | ______ | ______ | ______ | ______ | ______ | ______ . ______ | LOWER | ______ | ______ | ______ | ______ | ______ | ______ | ______ |
165 '--------------------------------------------------------------------------------------------------------------------------------------'
168 { KC_PSCR
, KC_F1
, KC_F2
, KC_F3
, KC_F4
, KC_F5
, KC_F6
, KC_F7
, KC_F8
, KC_F9
, KC_F10
, KC_F11
, KC_F12
, _______
, _______
},
169 { _______
, KC_DLR
, KC_LCBR
, KC_LBRC
, KC_LPRN
, KC_PERC
, KC_HASH
, KC_RPRN
, KC_RBRC
, KC_RCBR
, KC_AT
, _______
, _______
, _______
, KC_INS
},
170 { _______
, KC_CIRC
, KC_ASTR
, KC_PLUS
, KC_MINS
, KC_SLSH
, KC_BSLS
, KC_UNDS
, KC_QUOT
, KC_DQT
, KC_GRV
, _______
, _______
, _______
, KC_HOME
},
171 { _______
, KC_PIPE
, KC_AMPR
, KC_EXLM
, KC_TILD
, KC_SCLN
, KC_COLN
, KC_EQL
, KC_LT
, KC_GT
, KC_QUES
, _______
, _______
, _______
, KC_END
},
172 { _______
, _______
, _______
, _______
, _______
, _______
, _______
, M_LOWER
, _______
, _______
, _______
, _______
, _______
, _______
, _______
}
174 /* LAYER = LAYER_FUNCTION
175 .--------------------------------------------------------------------------------------------------------------------------------------.
176 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX |
177 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
178 | XXXXXX | F13 | F14 | F15 | F16 | NUM LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
179 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
180 | XXXXXX | F17 | F18 | F19 | F20 | SCR LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX | XXXXXX |
181 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
182 | ______ | F21 | F22 | F23 | F24 | CAP LK | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | ______ . ______ | VOL UP | MUTE |
183 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
184 | ______ | ______ | FN | ______ | ______ | PLAY . PLAY | ______ | ______ | ______ | ______ | ______ | PREV | VOL DN | NEXT |
185 '--------------------------------------------------------------------------------------------------------------------------------------'
188 { XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
},
189 { XXXXXXX
, KC_F13
, KC_F14
, KC_F15
, KC_F16
, KC_NLCK
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
},
190 { XXXXXXX
, KC_F17
, KC_F18
, KC_F19
, KC_F20
, KC_SLCK
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
},
191 { _______
, KC_F21
, KC_F22
, KC_F23
, KC_F24
, KC_CAPS
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, _______
, _______
, KC_VOLU
, KC_MUTE
},
192 { _______
, _______
, M_FUNCT
, _______
, _______
, KC_MPLY
, KC_MPLY
, _______
, _______
, _______
, _______
, _______
, KC_MPRV
, KC_VOLD
, KC_MNXT
}
194 /* LAYER = LAYER_MOUSE
195 .--------------------------------------------------------------------------------------------------------------------------------------.
196 | ESC | MS AC0 | MS AC1 | MS AC2 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX |
197 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
198 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS UL | MS U | MS UR | XXXXXX | XXXXXX | XXXXXX | MS WHL | MS WHR |
199 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
200 | XXXXXX | MS BT5 | MS BT4 | MS BT3 | MS BT2 | XXXXXX | XXXXXX | MS L | XXXXXX | MS R | XXXXXX | XXXXXX | XXXXXX . XXXXXX | MS WHU |
201 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
202 | ______ | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | MS DL | MS D | MS DR | XXXXXX | ______ . ______ | MS U | MS WHD |
203 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
204 | ______ | ______ | ______ | ______ | ______ | MS BT1 . MS BT1 | ______ | ______ | ______ | ______ | ______ | MS L | MS D | MS R |
205 '--------------------------------------------------------------------------------------------------------------------------------------'
208 { KC_ESC
, KC_ACL0
, KC_ACL1
, KC_ACL2
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
},
209 { XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, M_MS_UL
, KC_MS_U
, M_MS_UR
, XXXXXXX
, XXXXXXX
, XXXXXXX
, KC_WH_L
, KC_WH_R
},
210 { XXXXXXX
, KC_BTN5
, KC_BTN4
, KC_BTN3
, KC_BTN2
, XXXXXXX
, XXXXXXX
, KC_MS_L
, XXXXXXX
, KC_MS_R
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, KC_WH_U
},
211 { _______
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, M_MS_DL
, KC_MS_D
, M_MS_DR
, XXXXXXX
, _______
, _______
, KC_MS_U
, KC_WH_D
},
212 { _______
, _______
, _______
, _______
, _______
, KC_BTN1
, KC_BTN1
, _______
, _______
, _______
, _______
, _______
, KC_MS_L
, KC_MS_D
, KC_MS_R
}
214 /* LAYER = LAYER_ADJUST
215 .--------------------------------------------------------------------------------------------------------------------------------------.
216 | XXXXXX | HELP 1 | HELP 2 | HELP 3 | HELP 4 | HELP 5 | HELP 6 | HELP 7 | HELP 8 | HELP 9 | XXXXXX | MUSIC | AUDIO | XXXXXX . XXXXXX |
217 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
218 | XXXXXX | BRTOG | BRSPD+ | BRSPD- | BRDFLT | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX |
219 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
220 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX | XXXXXX |
221 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
222 | XXXXXX | QWERTY | XXXXXX | XXXXXX | BACKLT | RESET | XXXXXX | MOUSE | XXXXXX | XXXXXX | XXXXXX | XXXXXX . XXXXXX | VOICE+ | XXXXXX |
223 |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
224 | XXXXXX | XXXXXX | XXXXXX | XXXXXX | UPPER | XXXXXX . XXXXXX | LOWER | XXXXXX | XXXXXX | XXXXXX | XXXXXX | TEMPO- | VOICE- | TEMPO+ |
225 '--------------------------------------------------------------------------------------------------------------------------------------'
228 { XXXXXXX
, M_HELP1
, M_HELP2
, M_HELP3
, M_HELP4
, M_HELP5
, M_HELP6
, M_HELP7
, M_HELP8
, M_HELP9
, XXXXXXX
, MU_TOG
, AU_TOG
, XXXXXXX
, XXXXXXX
},
229 { XXXXXXX
, M_BRTOG
, M_BSPDU
, M_BSPDD
, M_BDFLT
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
},
230 { XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
},
231 { XXXXXXX
, M_QWRTY
, XXXXXXX
, XXXXXXX
, M_BACKL
, RESET
, XXXXXXX
, M_MOUSE
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, MUV_IN
, XXXXXXX
},
232 { XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, M_UPPER
, XXXXXXX
, XXXXXXX
, M_LOWER
, XXXXXXX
, XXXXXXX
, XXXXXXX
, XXXXXXX
, TMPO_DN
, MUV_DE
, TMPO_UP
}
238 float tone_my_startup
[][2] = SONG(ODE_TO_JOY
);
239 float tone_my_goodbye
[][2] = SONG(ROCK_A_BYE_BABY
);
241 float tone_qwerty
[][2] = SONG(QWERTY_SOUND
);
242 float tone_dvorak
[][2] = SONG(DVORAK_SOUND
);
243 float tone_colemak
[][2] = SONG(COLEMAK_SOUND
);
245 float tone_audio_on
[][2] = SONG(CLOSE_ENCOUNTERS_5_NOTE
);
246 float tone_music_on
[][2] = SONG(DOE_A_DEER
);
247 float music_scale
[][2] = SONG(MUSIC_SCALE_SOUND
);
249 float tone_caps_on
[][2] = SONG(CAPS_LOCK_ON_SOUND
);
250 float tone_caps_off
[][2] = SONG(CAPS_LOCK_OFF_SOUND
);
251 float tone_numlk_on
[][2] = SONG(NUM_LOCK_ON_SOUND
);
252 float tone_numlk_off
[][2] = SONG(NUM_LOCK_OFF_SOUND
);
253 float tone_scroll_on
[][2] = SONG(SCROLL_LOCK_ON_SOUND
);
254 float tone_scroll_off
[][2] = SONG(SCROLL_LOCK_OFF_SOUND
);
256 #endif /* AUDIO_ENABLE */
258 void persistent_default_layer_set(uint16_t default_layer
)
260 eeconfig_update_default_layer(default_layer
);
261 default_layer_set(default_layer
);
264 const uint16_t PROGMEM fn_actions
[] = {
265 [0] = ACTION_MODS_ONESHOT(MOD_LSFT
),
268 const macro_t
*action_get_macro(keyrecord_t
*record
, uint8_t id
, uint8_t opt
)
271 // MACRODOWN only works in this function
276 if (record
->event
.pressed
)
283 if (record
->event
.pressed
)
290 if (record
->event
.pressed
)
297 if (record
->event
.pressed
)
304 if (record
->event
.pressed
)
311 if (record
->event
.pressed
)
318 if (record
->event
.pressed
)
325 if (record
->event
.pressed
)
332 if (record
->event
.pressed
)
338 case MACRO_BREATH_TOGGLE
:
339 if (record
->event
.pressed
)
345 case MACRO_BREATH_SPEED_INC
:
346 if (record
->event
.pressed
)
348 breathing_period_inc();
352 case MACRO_BREATH_SPEED_DEC
:
353 if (record
->event
.pressed
)
355 breathing_period_dec();
359 case MACRO_BREATH_DEFAULT
:
360 if (record
->event
.pressed
)
362 breathing_defaults();
367 if (record
->event
.pressed
)
369 persistent_default_layer_set(1UL<<LAYER_QWERTY
);
374 if (record
->event
.pressed
)
376 layer_on(LAYER_UPPER
);
377 breathing_period_set(2);
379 update_tri_layer(LAYER_LOWER
, LAYER_UPPER
, LAYER_ADJUST
);
383 layer_off(LAYER_UPPER
);
384 update_tri_layer(LAYER_LOWER
, LAYER_UPPER
, LAYER_ADJUST
);
389 if (record
->event
.pressed
)
391 layer_on(LAYER_LOWER
);
392 breathing_period_set(2);
394 update_tri_layer(LAYER_LOWER
, LAYER_UPPER
, LAYER_ADJUST
);
398 layer_off(LAYER_LOWER
);
399 update_tri_layer(LAYER_LOWER
, LAYER_UPPER
, LAYER_ADJUST
);
404 if (record
->event
.pressed
)
406 breathing_period_set(3);
408 layer_on(LAYER_FUNCTION
);
412 breathing_period_set(1);
413 breathing_self_disable();
414 layer_off(LAYER_FUNCTION
);
418 #ifdef MOUSEKEY_ENABLE
421 if (record
->event
.pressed
)
423 layer_invert(LAYER_MOUSE
);
427 #endif /* MOUSEKEY_ENABLE */
432 if (record
->event
.pressed
) set_timbre(TIMBRE_12
);
436 if (record
->event
.pressed
) set_timbre(TIMBRE_25
);
440 if (record
->event
.pressed
) set_timbre(TIMBRE_50
);
444 if (record
->event
.pressed
) set_timbre(TIMBRE_75
);
448 if (record
->event
.pressed
) increase_tempo(10);
452 if (record
->event
.pressed
) decrease_tempo(10);
455 case MACRO_TONE_DEFAULT
:
456 if (record
->event
.pressed
)
458 set_timbre(TIMBRE_DEFAULT
);
459 set_tempo(TEMPO_DEFAULT
);
464 case MACRO_AUDIO_TOGGLE:
465 if (record->event.pressed)
474 PLAY_SONG(tone_audio_on);
479 case MACRO_MUSIC_TOGGLE:
480 if (record->event.pressed)
482 if (IS_LAYER_ON(LAYER_MUSIC))
484 layer_off(LAYER_MUSIC);
489 PLAY_SONG(tone_music_on);
490 layer_on(LAYER_MUSIC);
494 case MACRO_INC_VOICE:
495 if (record->event.pressed)
499 PLAY_SONG(music_scale);
504 case MACRO_DEC_VOICE:
505 if (record->event.pressed)
509 PLAY_SONG(music_scale);
515 #endif /* AUDIO_ENABLE */
517 #ifdef BACKLIGHT_ENABLE
518 case MACRO_BACKLIGHT
:
519 if (record
->event
.pressed
)
535 void matrix_init_user(void)
537 set_voice(default_voice
);
539 println("Matrix Init");
542 void led_set_user(uint8_t usb_led
)
544 static uint8_t old_usb_led
= 0;
546 _delay_ms(10); // gets rid of tick
548 if (!is_playing_notes())
550 if ((usb_led
& (1<<USB_LED_CAPS_LOCK
)) && !(old_usb_led
& (1<<USB_LED_CAPS_LOCK
)))
552 // If CAPS LK LED is turning on...
553 PLAY_SONG(tone_caps_on
);
555 else if (!(usb_led
& (1<<USB_LED_CAPS_LOCK
)) && (old_usb_led
& (1<<USB_LED_CAPS_LOCK
)))
557 // If CAPS LK LED is turning off...
558 PLAY_SONG(tone_caps_off
);
560 else if ((usb_led
& (1<<USB_LED_NUM_LOCK
)) && !(old_usb_led
& (1<<USB_LED_NUM_LOCK
)))
562 // If NUM LK LED is turning on...
563 PLAY_SONG(tone_numlk_on
);
565 else if (!(usb_led
& (1<<USB_LED_NUM_LOCK
)) && (old_usb_led
& (1<<USB_LED_NUM_LOCK
)))
567 // If NUM LED is turning off...
568 PLAY_SONG(tone_numlk_off
);
570 else if ((usb_led
& (1<<USB_LED_SCROLL_LOCK
)) && !(old_usb_led
& (1<<USB_LED_SCROLL_LOCK
)))
572 // If SCROLL LK LED is turning on...
573 PLAY_SONG(tone_scroll_on
);
575 else if (!(usb_led
& (1<<USB_LED_SCROLL_LOCK
)) && (old_usb_led
& (1<<USB_LED_SCROLL_LOCK
)))
577 // If SCROLL LED is turning off...
578 PLAY_SONG(tone_scroll_off
);
582 old_usb_led
= usb_led
;
588 _delay_ms(10); // gets rid of tick
589 PLAY_SONG(tone_my_startup
);
594 PLAY_SONG(tone_my_goodbye
);
599 void audio_on_user(void)
601 PLAY_SONG(tone_audio_on
);
604 void music_on_user(void)
606 PLAY_SONG(tone_music_on
);
609 void music_scale_user(void)
611 PLAY_SONG(music_scale
);
614 #endif /* AUDIO_ENABLE */