// Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com> // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include QMK_KEYBOARD_H #include "eeprom.h" #include "keyrecords/wrappers.h" #include "keyrecords/process_records.h" #include "callbacks.h" #ifdef TAP_DANCE_ENABLE # include "keyrecords/tap_dances.h" #endif // TAP_DANCE_ENABLE #if defined(RGBLIGHT_ENABLE) # include "rgb/rgb_stuff.h" #endif #if defined(RGB_MATRIX_ENABLE) # include "rgb/rgb_matrix_stuff.h" #endif #if defined(OLED_ENABLE) # include "oled/oled_stuff.h" #endif #ifdef SPLIT_KEYBOARD # include "split/transport_sync.h" #endif #ifdef POINTING_DEVICE_ENABLE # include "pointing/pointing.h" #endif /* Define layer names */ enum userspace_layers { _QWERTY = 0, _NUMLOCK = 0, FIRST_DEFAULT_LAYER = 0, _COLEMAK_DH, _COLEMAK, _DVORAK, LAST_DEFAULT_LAYER = _DVORAK, _GAMEPAD, _DIABLO, _DIABLOII, _MOUSE, _MEDIA, _LOWER, _RAISE, _ADJUST, }; #define _MACROS _MOUSE #define _DEFAULT_LAYER_1 FIRST_DEFAULT_LAYER #define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 1) #define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 2) #define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 3) #if LAST_DEFAULT_LAYER > (FIRST_DEFAULT_LAYER + 3) # define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 4) # define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 5) # define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 6) # define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 7) # if LAST_DEFAULT_LAYER > (FIRST_DEFAULT_LAYER + 7) # define _DEFAULT_LAYER_2 (FIRST_DEFAULT_LAYER + 8) # define _DEFAULT_LAYER_3 (FIRST_DEFAULT_LAYER + 9) # define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 10) # define _DEFAULT_LAYER_4 (FIRST_DEFAULT_LAYER + 11) # endif #endif #define DEFAULT_LAYER_1_HSV HSV_CYAN #define DEFAULT_LAYER_2_HSV HSV_CHARTREUSE #define DEFAULT_LAYER_3_HSV HSV_MAGENTA #define DEFAULT_LAYER_4_HSV HSV_GOLDENROD #define DEFAULT_LAYER_1_RGB RGB_CYAN #define DEFAULT_LAYER_2_RGB RGB_CHARTREUSE #define DEFAULT_LAYER_3_RGB RGB_MAGENTA #define DEFAULT_LAYER_4_RGB RGB_GOLDENROD bool mod_key_press_timer(uint16_t code, uint16_t mod_code, bool pressed); bool mod_key_press(uint16_t code, uint16_t mod_code, bool pressed, uint16_t this_timer); bool hasAllBitsInMask(uint8_t value, uint8_t mask); void tap_code16_nomods(uint16_t kc); void software_reset(void); // clang-format off typedef union { uint32_t raw; struct { bool rgb_layer_change :1; bool is_overwatch :1; bool nuke_switch :1; bool swapped_numbers :1; bool rgb_matrix_idle_anim :1; bool autocorrection :1; }; } userspace_config_t; // clang-format on extern userspace_config_t userspace_config;