]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - users/drashna/drashna.h
Have hexwire Iris keymap use I2C
[qmk_firmware.git] / users / drashna / drashna.h
index aa9c83086ee6f639d3f2a0d1f1047cb29e0f45cc..507504f04e5c5f92d3f387049ae195bc9fa34dbc 100644 (file)
@@ -15,131 +15,90 @@ You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#ifndef USERSPACE
-#define USERSPACE
-
+#pragma once
 #include "quantum.h"
-
-// Define layer names 
-#define _QWERTY 0
-#define _NUMLOCK 0
-#define _COLEMAK 1
-#define _DVORAK 2
-#define _WORKMAN 3
-#define _NAV 5
-#define _COVECUBE 6
-#define _SYMB 8
-#define _GAMEPAD 9
-#define _DIABLO 10
-#define _MOUS 11
-#define _MACROS 12
-#define _MEDIA 13
-#define _LOWER 14
-#define _RAISE 15
-#define _ADJUST 16
-
-
-//define modifiers
-#define MODS_SHIFT_MASK  (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
-#define MODS_CTRL_MASK  (MOD_BIT(KC_LCTL)|MOD_BIT(KC_RCTRL))
-#define MODS_ALT_MASK  (MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT))
-#define MODS_GUI_MASK  (MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI))
-
-#ifndef RGBLIGHT_ANIMATIONS // add "EXTRA_FLADS=-DDRASHNA_SETRGB" to enable this ... but don't
-#define rgblight_set_blue        rgblight_setrgb (0x00,  0x00, 0xFF);
-#define rgblight_set_red         rgblight_setrgb (0xFF,  0x00, 0x00);
-#define rgblight_set_green       rgblight_setrgb (0x00,  0xFF, 0x00);
-#define rgblight_set_orange      rgblight_setrgb (0xFF,  0x80, 0x00);
-#define rgblight_set_teal        rgblight_setrgb (0x00,  0xFF, 0xFF);
-#define rgblight_set_magenta     rgblight_setrgb (0xFF,  0x00, 0xFF);
-#define rgblight_set_yellow      rgblight_setrgb (0xFF,  0xFF, 0x00);
-#define rgblight_set_purple      rgblight_setrgb (0x7A,  0x00, 0xFF);
-#define rgblight_set_white       rgblight_setrgb (0xFF,  0xFF, 0xFF);
-#else
-#define rgblight_set_blue        rgblight_sethsv (0xFF,  0xFF, 0xFF);
-#define rgblight_set_red         rgblight_sethsv (0x00,  0xFF, 0xFF);
-#define rgblight_set_green       rgblight_sethsv (0x78,  0xFF, 0xFF);
-#define rgblight_set_orange      rgblight_sethsv (0x1E,  0xFF, 0xFF);
-#define rgblight_set_teal        rgblight_sethsv (0xB4,  0xFF, 0xFF);
-#define rgblight_set_magenta     rgblight_sethsv (0x12C, 0xFF, 0xFF);
-#define rgblight_set_yellow      rgblight_sethsv (0x3C,  0xFF, 0xFF);
-#define rgblight_set_purple      rgblight_sethsv (0x10E, 0xFF, 0xFF);
-#define rgblight_set_white       rgblight_sethsv (0x00,  0x00, 0xFF);
-#endif // DRASHNA_SETRGB
-
-extern bool is_overwatch;
-extern bool rgb_layer_change;
-
-enum userspace_custom_keycodes {
-  EPRM = SAFE_RANGE, // can always be here
-  VRSN,
-  KC_QWERTY,
-  KC_COLEMAK,
-  KC_DVORAK,
-  KC_WORKMAN,
-  LOWER,
-  RAISE,
-  ADJUST,
-  KC_DIABLO_CLEAR,
-  KC_OVERWATCH,
-  KC_SALT,
-  KC_MORESALT,
-  KC_SALTHARD,
-  KC_GOODGAME,
-  KC_SYMM,
-  KC_JUSTGAME,
-  KC_GLHF,
-  KC_TORB,
-  KC_AIM,
-  KC_C9,
-  KC_GGEZ,
-  KC_MAKE,
-  KC_RESET,
-  KC_RGB_T,
-  KC_SECRET_1,
-  KC_SECRET_2,
-  KC_SECRET_3,
-  KC_SECRET_4,
-  KC_SECRET_5,
-  KC_FXCL,
-  NEW_SAFE_RANGE //use "NEWPLACEHOLDER for keymap specific codes
-};
-
+#include "version.h"
+#include "eeprom.h"
+#include "wrappers.h"
+#include "process_records.h"
 #ifdef TAP_DANCE_ENABLE
-enum {
-  TD_D3_1 = 0,
-  TD_D3_2,
-  TD_D3_3,
-  TD_D3_4
-};
+#   include "tap_dances.h"
+#endif // TAP_DANCE_ENABLE
+#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
+#   include "rgb_stuff.h"
 #endif
-
-#ifdef TAP_DANCE_ENABLE
-#define KC_D3_1 TD(TD_D3_1)
-#define KC_D3_2 TD(TD_D3_2)
-#define KC_D3_3 TD(TD_D3_3)
-#define KC_D3_4 TD(TD_D3_4)
-#else
-#define KC_D3_1 KC_1
-#define KC_D3_2 KC_2
-#define KC_D3_3 KC_3
-#define KC_D3_4 KC_4
+#if defined(AUDIO_ENABLE) && __GNUC__ > 7
+#   if __has_include("drashna_song_list.h")
+#       include "drashna_song_list.h"
+#   endif
 #endif
 
-#define QMK_KEYS_PER_SCAN 8
-
-#ifdef RGBLIGHT_ENABLE
-#define RGBLIGHT_SLEEP
-#endif
+/* Define layer names */
+enum userspace_layers {
+    _QWERTY = 0,
+    _NUMLOCK = 0,
+    _COLEMAK,
+    _DVORAK,
+    _WORKMAN,
+    _NORMAN,
+    _MALTRON,
+    _EUCALYN,
+    _CARPLAX,
+    _MODS, /* layer 8 */
+    _GAMEPAD,
+    _DIABLO,
+    _MACROS,
+    _MEDIA,
+    _LOWER,
+    _RAISE,
+    _ADJUST,
+};
 
-#define IGNORE_MOD_TAP_INTERRUPT // this makes it possible to do rolling combos (zx) with keys that convert to other keys on hold (z becomes ctrl when you hold it, and when this option isn't enabled, z rapidly followed by x actually sends Ctrl-x. That's bad.)
+/*
+define modifiers here, since MOD_* doesn't seem to work for these
+ */
+
+
+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 send_game_macro(const char *str, keyrecord_t *record, bool override);
+void matrix_init_keymap(void);
+void shutdown_keymap(void);
+void suspend_power_down_keymap(void);
+void suspend_wakeup_init_keymap(void);
+void matrix_scan_keymap(void);
+layer_state_t layer_state_set_keymap (layer_state_t state);
+layer_state_t default_layer_state_set_keymap (layer_state_t state);
+void led_set_keymap(uint8_t usb_led);
+void eeconfig_init_keymap(void);
+
+typedef union {
+    uint32_t raw;
+    struct {
+        bool     rgb_layer_change :1;
+        bool     is_overwatch     :1;
+        bool     nuke_switch      :1;
+        uint8_t  unicode_mod      :4;
+        bool     swapped_numbers  :1;
+    };
+} userspace_config_t;
+
+extern userspace_config_t userspace_config;
 
-#ifdef FAUXCLICKY_ENABLE
-#define AUD_ON  FC_ON
-#define AUD_OFF FC_OFF
-#else
-#define AUD_ON  AU_ON
-#define AUD_OFF AU_OFF
-#endif 
 
-#endif
+/*
+Custom Keycodes for Diablo 3 layer
+But since TD() doesn't work when tap dance is disabled
+We use custom codes here, so we can substitute the right stuff
+*/
+#ifdef TAP_DANCE_ENABLE
+#   define KC_D3_1 TD(TD_D3_1)
+#   define KC_D3_2 TD(TD_D3_2)
+#   define KC_D3_3 TD(TD_D3_3)
+#   define KC_D3_4 TD(TD_D3_4)
+#else // TAP_DANCE_ENABLE
+#   define KC_D3_1 KC_1
+#   define KC_D3_2 KC_2
+#   define KC_D3_3 KC_3
+#   define KC_D3_4 KC_4
+#endif // TAP_DANCE_ENABLE