summaryrefslogtreecommitdiff
path: root/users/jjerrell/jjerrell.c
diff options
context:
space:
mode:
Diffstat (limited to 'users/jjerrell/jjerrell.c')
-rw-r--r--users/jjerrell/jjerrell.c138
1 files changed, 138 insertions, 0 deletions
diff --git a/users/jjerrell/jjerrell.c b/users/jjerrell/jjerrell.c
new file mode 100644
index 0000000000..95c2acba5e
--- /dev/null
+++ b/users/jjerrell/jjerrell.c
@@ -0,0 +1,138 @@
+/**
+ * Copyright (C) 2021 Jerrell, Jacob <@jjerrell>
+ *
+ * This file is part of qmk_firmware.
+ *
+ * qmk_firmware is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * qmk_firmware is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with qmk_firmware. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "jjerrell.h"
+
+__attribute__((weak)) void matrix_scan_keymap(void) {}
+__attribute__((weak)) void leader_scan_secrets(void) {}
+
+#ifdef LEADER_ENABLE
+ LEADER_EXTERNS();
+ void matrix_scan_leader(void) {
+ static uint8_t mods = 0;
+ mods = get_mods();
+ LEADER_DICTIONARY() {
+ leading = false;
+ leader_end();
+ clear_mods();
+
+ // Website Refresh / XCode "Run"
+ SEQ_ONE_KEY(KC_R) {
+ SEND_STRING(SS_LGUI("r"));
+ }
+
+ SEQ_TWO_KEYS(KC_B, KC_D) {
+ send_string_with_delay_P(PSTR(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION " Built at: " QMK_BUILDDATE), TAP_CODE_DELAY);
+ }
+
+ SEQ_TWO_KEYS(KC_L, KC_C) {
+ send_string_with_delay("/** */", TAP_CODE_DELAY);
+ wait_ms(TAPPING_TERM);
+ tap_code(KC_LEFT);
+ tap_code(KC_LEFT);
+ tap_code(KC_LEFT);
+ if (!(mods & MOD_MASK_SHIFT)) {
+ tap_code(KC_ENT);
+ }
+ }
+
+ set_mods(mods);
+ #ifndef NO_SECRETS
+ leader_scan_secrets();
+ #endif // !NO_SECRETS
+ }
+ }
+#endif
+
+static bool is_first_run = true;
+void matrix_scan_user(void) {
+ if (is_first_run) {
+ is_first_run = false;
+ startup_user();
+ }
+ #ifdef LEADER_ENABLE
+ matrix_scan_leader();
+ #endif
+ matrix_scan_keymap();
+}
+
+__attribute__((weak)) layer_state_t layer_state_set_keymap(layer_state_t state) { return state; }
+
+// on layer change, no matter where the change was initiated
+// Then runs keymap's layer change check
+layer_state_t layer_state_set_user(layer_state_t state) {
+ if (!is_keyboard_master()) {
+ return state;
+ }
+
+ state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
+ state = layer_state_set_keymap(state);
+#if defined(RGBLIGHT_ENABLE)
+ state = layer_state_set_rgb_light(state);
+#endif // RGBLIGHT_ENABLE
+ return state;
+}
+
+__attribute__((weak)) void dip_switch_update_keymap(uint8_t index, bool active) {}
+void dip_switch_update_user(uint8_t index, bool active) {
+ dip_switch_update_keymap(index, active);
+}
+
+__attribute__((weak)) bool music_mask_keymap(uint16_t keycode) { return true; }
+bool music_mask_user(uint16_t keycode) {
+ switch (keycode){
+ default:
+ return music_mask_keymap(keycode);
+ break;
+ }
+}
+
+__attribute__((weak)) layer_state_t default_layer_state_set_keymap(layer_state_t state) { return state; }
+
+// Runs state check and changes underglow color and animation
+layer_state_t default_layer_state_set_user(layer_state_t state) {
+ if (!is_keyboard_master()) {
+ return state;
+ }
+ return default_layer_state_set_keymap(state);
+}
+
+#ifdef AUDIO_ENABLE
+__attribute__((weak)) void startup_keymap(void) {}
+void startup_user(void)
+{
+ wait_ms(TAP_CODE_DELAY); // gets rid of tick
+ startup_keymap();
+}
+
+__attribute__((weak)) void shutdown_keymap(void) {}
+void shutdown_user(void)
+{
+ wait_ms(TAP_CODE_DELAY);
+ stop_all_notes();
+ shutdown_keymap();
+}
+
+__attribute__((weak)) void music_on_keymap(void) {}
+void music_on_user(void)
+{
+ music_scale_user();
+ music_on_keymap();
+}
+#endif // AUDIO_ENABLE