]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - users/drashna/drashna.h
Add Faux Clicking as subset of Audio feature (#2748)
[qmk_firmware.git] / users / drashna / drashna.h
index 8354c55c9552717945337a4a91cd026746bb6f9c..b7cbaa44afb0a229f2e65ada0a3682419ad4c948 100644 (file)
@@ -17,10 +17,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 #ifndef USERSPACE
 #define USERSPACE
-
 #include "quantum.h"
 
-// Define layer names 
+// Define layer names
 #define _QWERTY 0
 #define _NUMLOCK 0
 #define _COLEMAK 1
@@ -47,27 +46,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #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
+// RGB color codes are no longer located here anymore.  Instead, you will want to
+// head to https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight_list.h
 
 extern bool is_overwatch;
 extern bool rgb_layer_change;
@@ -103,10 +83,21 @@ enum userspace_custom_keycodes {
   KC_SECRET_3,
   KC_SECRET_4,
   KC_SECRET_5,
-  KC_FXCL,
   NEW_SAFE_RANGE //use "NEWPLACEHOLDER for keymap specific codes
 };
 
+#define KC_SEC1 KC_SECRET_1
+#define KC_SEC2 KC_SECRET_2
+#define KC_SEC3 KC_SECRET_3
+#define KC_SEC4 KC_SECRET_4
+#define KC_SEC5 KC_SECRET_5
+
+#define QWERTY KC_QWERTY
+#define DVORAK KC_DVORAK
+#define COLEMAK KC_COLEMAK
+#define WORKMAN KC_WORKMAN
+#define KC_RST KC_RESET
+
 #ifdef TAP_DANCE_ENABLE
 enum {
   TD_D3_1 = 0,
@@ -114,50 +105,65 @@ enum {
   TD_D3_3,
   TD_D3_4
 };
-#endif
+#endif // TAP_DANCE_ENABLE
+
 
+// 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
+#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
+#endif // TAP_DANCE_ENABLE
 
-#define QMK_KEYS_PER_SCAN 8
+// OSM keycodes, to keep things clean and easy to change
+#define KC_MLSF OSM(MOD_LSFT)
+#define KC_MRSF OSM(MOD_RSFT)
 
-#ifdef RGBLIGHT_ENABLE
-#define RGBLIGHT_SLEEP
-#endif
 
-#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.)
 
+// If we're still using the official Faux Clicky feature, substitute codes
+// so that we don't have any unused/blank keys.
 #ifdef FAUXCLICKY_ENABLE
 #define AUD_ON  FC_ON
 #define AUD_OFF FC_OFF
-#else
+#else // FAUXCLICKY_ENABLE
 #define AUD_ON  AU_ON
 #define AUD_OFF AU_OFF
-#endif 
+#endif // FAUXCLICKY_ENABLE
 
 
 
-// Since our quirky block definitions are basically a list of comma separated 
-// arguments, we need a wrapper in order for these definitions to be 
+// Since our quirky block definitions are basically a list of comma separated
+// arguments, we need a wrapper in order for these definitions to be
 // expanded before being used as arguments to the LAYOUT_xxx macro.
+#if (!defined(LAYOUT) && defined(KEYMAP))
+#define LAYOUT KEYMAP
+#endif
+
 #define LAYOUT_ergodox_wrapper(...)   LAYOUT_ergodox(__VA_ARGS__)
-#define KEYMAP_wrapper(...)           KEYMAP(__VA_ARGS__)
+#define LAYOUT_ergodox_pretty_wrapper(...)   LAYOUT_ergodox_pretty(__VA_ARGS__)
+#define KEYMAP_wrapper(...)           LAYOUT(__VA_ARGS__)
+#define LAYOUT_wrapper(...)           LAYOUT(__VA_ARGS__)
+
 
 // Blocks for each of the four major keyboard layouts
 // Organized so we can quickly adapt and modify all of them
 // at once, rather than for each keyboard, one at a time.
-// And this allows wor much cleaner blocks in the keymaps.
+// And this allows for much cleaner blocks in the keymaps.
 // For instance Tap/Hold for Control on all of the layouts
 
+// NOTE: These are all the same length.  If you do a search/replace
+//       then you need to add/remove underscores to keep the
+//       lengths consistent.
+
 #define _________________QWERTY_L1_________________        KC_Q,    KC_W,    KC_E,    KC_R,    KC_T
 #define _________________QWERTY_L2_________________        KC_A,    KC_S,    KC_D,    KC_F,    KC_G
 #define _________________QWERTY_L3_________________  CTL_T(KC_Z),   KC_X,    KC_C,    KC_V,    KC_B
@@ -175,6 +181,14 @@ enum {
 #define _________________COLEMAK_R2________________       KC_H,    KC_N,    KC_E,    KC_I,    KC_O
 #define _________________COLEMAK_R3________________       KC_K,    KC_M,    KC_COMM, KC_DOT,  CTL_T(KC_SLASH)
 
+#define ______________COLEMAK_MOD_DH_L1____________       KC_Q,    KC_W,    KC_F,    KC_P,    KC_B
+#define ______________COLEMAK_MOD_DH_L2____________       KC_A,    KC_R,    KC_S,    KC_T,    KC_G
+#define ______________COLEMAK_MOD_DH_L3____________ CTL_T(KC_Z),   KC_X,    KC_C,    KC_D,    KC_V
+
+#define ______________COLEMAK_MOD_DH_R1____________       KC_J,    KC_L,    KC_U,    KC_Y,    KC_SCLN
+#define ______________COLEMAK_MOD_DH_R2____________       KC_K,    KC_N,    KC_E,    KC_I,    KC_O
+#define ______________COLEMAK_MOD_DH_R3____________       KC_M,    KC_H,    KC_COMM, KC_DOT,  CTL_T(KC_SLASH)
+
 
 #define _________________DVORAK_L1_________________        KC_QUOT, KC_COMM, KC_DOT, KC_P,     KC_Y
 #define _________________DVORAK_L2_________________        KC_A,    KC_O,    KC_E,   KC_U,     KC_I
@@ -194,11 +208,22 @@ enum {
 #define _________________WORKMAN_R3________________       KC_B,    KC_M,    KC_W,    KC_V,    CTL_T(KC_Z)
 
 
+#define _________________NORMAN_L1_________________       KC_Q,    KC_W,    KC_D,    KC_F,    KC_K
+#define _________________NORMAN_L2_________________       KC_A,    KC_S,    KC_E,    KC_T,    KC_G
+#define _________________NORMAN_L3_________________ CTL_T(KC_Z),   KC_X,    KC_C,    KC_V,    KC_B
+
+#define _________________NORMAN_R1_________________       KC_J,    KC_U,    KC_R,    KC_L,    KC_SCLN
+#define _________________NORMAN_R2_________________       KC_J,    KC_N,    KC_I,    KC_O,    KC_U
+#define _________________NORMAN_R3_________________       KC_P,    KC_M,    KC_COMM, KC_DOT,  CTL_T(KC_SLASH)
+
+
 
 // Since we have 4 default layouts (QWERTY, DVORAK, COLEMAK and WORKMAN),
 // this allows us to quickly modify the bottom row for all of the layouts
 // so we don't have to alter it 4 times and hope that we haven't missed
 // anything
-#define ___________ERGODOX_BOTTOM_LEFT_____________       KC_QUOT, KC_LGUI, KC_LBRC, KC_RBRC
+#define ___________ERGODOX_BOTTOM_LEFT_____________       OSM(MOD_MEH), OSM(MOD_LGUI), KC_LBRC, KC_RBRC
 #define ___________ERGODOX_BOTTOM_RIGHT____________       KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT
+
+
 #endif