summary refs log tree commit diff
path: root/users
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2017-12-13 21:02:48 -0800
committerJack Humbert <jack.humb@gmail.com>2017-12-14 00:02:48 -0500
commit2ec1ab2b3585adca78e2fde0bd4f92df4d0311cc (patch)
treed1e7ebaff5f0d9e0f319a744a6b1098f7bf133cf /users
parent557745ba9f1155660026ff8043fc32282264c8c7 (diff)
Update Drashna keymaps (#2145)
* Change overwatch to Gamepad

* Remove secrets file

* Add sample sensitive.h file

* Borrow @colinta's secrets.h include method

* Remove unnessary placeholder for macros

* Set secrets to use PROGMEM for char string

* Add readme files to my keymaps and userspace
Diffstat (limited to 'users')
-rw-r--r--users/drashna/drashna.c17
-rw-r--r--users/drashna/drashna.h11
-rw-r--r--users/drashna/readme.md106
-rw-r--r--users/drashna/sensitive.h8
4 files changed, 114 insertions, 28 deletions
diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c
index b7ca84fafa..95fb793a7b 100644
--- a/users/drashna/drashna.c
+++ b/users/drashna/drashna.c
@@ -19,7 +19,18 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #include "quantum.h"
 #include "action.h"
 #include "version.h"
-#include "sensitive.h"
+
+#if (__has_include("secrets.h"))
+#include "secrets.h"
+#else
+PROGMEM const char secret[][64] = {
+  "test1",
+  "test2",
+  "test3",
+  "test4",
+  "test5"
+};
+#endif
 
 #ifdef TAP_DANCE_ENABLE
 //define diablo macro timer variables
@@ -486,7 +497,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
     break;
   case KC_SECRET_1 ... KC_SECRET_5:
     if (!record->event.pressed) {
-      send_string(secret[keycode - KC_SECRET_1]);
+      send_string_P(secret[keycode - KC_SECRET_1]);
     }
     return false;
     break;
@@ -538,7 +549,7 @@ uint32_t layer_state_set_user(uint32_t state) {
       rgblight_set_green;
       rgblight_mode(22);
       break;
-    case _OVERWATCH:
+    case _GAMEPAD:
       rgblight_set_orange;
       rgblight_mode(17);
       break;
diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h
index 4fd42acb90..0b9347f1d0 100644
--- a/users/drashna/drashna.h
+++ b/users/drashna/drashna.h
@@ -19,7 +19,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define USERSPACE
 
 #include "quantum.h"
-#include "song_list.h"
 
 // Define layer names 
 #define _QWERTY 0
@@ -30,7 +29,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define _NAV 5
 #define _COVECUBE 6
 #define _SYMB 8
-#define _OVERWATCH 9
+#define _GAMEPAD 9
 #define _DIABLO 10
 #define _MOUS 11
 #define _MACROS 12
@@ -55,14 +54,14 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #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
 
 extern bool is_overwatch;
 extern bool rgb_layer_change;
 
-enum userrpace_custom_keycodes {
-  PLACEHOLDER = SAFE_RANGE, // can always be here
-  EPRM,
+enum userspace_custom_keycodes {
+  EPRM = SAFE_RANGE, // can always be here
   VRSN,
   KC_QWERTY,
   KC_COLEMAK,
@@ -105,7 +104,7 @@ enum {
 #endif
 
 
-#define QMK_KEYS_PER_SCAN 4
+#define QMK_KEYS_PER_SCAN 8
 
 #ifdef RGBLIGHT_ENABLE
 #define RGBLIGHT_SLEEP
diff --git a/users/drashna/readme.md b/users/drashna/readme.md
index 0d553f08ee..0523be2a6d 100644
--- a/users/drashna/readme.md
+++ b/users/drashna/readme.md
@@ -1,14 +1,98 @@
-Copyright 2017 Christopher Courtney <drashna@live.com> @drashna
+Overview
+========
 
-This program 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 2 of the License, or
-(at your option) any later version.
+This is my personal userspace file.  Most of my code exists here, as it's heavily shared. 
 
-This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.
+Custom handlers
+---------------
+
+All (most) `_user` functions are handled here instead.  To allow keyboard specific configuration, I've created `_keymap` functions that can be called by the keymap.c files instead.
+
+This allows for keyboard specific configuration while maintaining the ability to customize the board. 
+
+My Ergodox EZ Keymap is a good example of this, as it uses the LEDs as modifier indicators.
+
+Custom Keycodes
+---------------
+
+Keycods are defined in the drashna.h file and need to be included in the keymap.c files, so that they can be used there. 
+
+A bunch of macros are present and are only included on boards that are not the Ergodox EZ or Orthodox, as they are not needed for those boards. 
+
+Included is a custom macro for compiling my keyboards.  This includes the bootloader target (`:teensy`, `:avrdude`, or `:dfu`), and keeps RGBLIGHT, AUDIO and/or FAUXCLICKY enabled, if it previously was (regardless of the rules file).
+
+This also includes a modified RESET keycode as well, that sets the underglow to red. 
+
+Layer Indication
+----------------
+
+This uses the `layer_state_set_*` command to change the layer color, to indicate which layer it is on.  This includes the default keymap, as well.
+
+Since this is done via userspace, it is the same between all systems. 
+
+Additionally, there is a custom keycode to toggle layer indication. And all RGB keycodes disable layer indication by default, as well.  This way, I can leave special effects doing when I want.
+
+Also. I use `rgblight_sethsv` since it works with animation modes (that support it).
+
+
+Diablo Layer
+------------
+
+This layer has some special handling.
+
+When Tap Dances are enabled, this layer has the ability to "spam" keypresses.  
+
+For instance, tapping the TD "1" twice causes the layer to hit "1" ever 1 second (appoximately).  This is useful for auto-hotkeying skills (such as bone armor or devour).
+
+Tappind once disables this, and switching layers temporarily disables this, until you switch back to the layer. 
+
+For critics that think this is cheating, search "diablo 3 num lock auto cast".  This is just a simpler method, since I no longer own a normal (non QMK) numpad. 
+
+Secret Macros
+-------------
+
+With help from gitter and Colinta, this adds the ability to add hidden strings to be used for macros.
+
+I have a number of long strings that I need to use that are semi-private.  This uses the `__has_include` function to check for the file. If it exists, then it includes the custom text. Otherwise, it uses some default values. 
+
+If you would *also* like to take advantage of this feature, you'll first want to make sure your "secrets" file isn't included in the repo.  Open `.git/info/exclude` and add `secrets.h` to that file, below the comments.
+
+###### .git/info/exclude
+```
+# git ls-files --others --exclude-from=.git/info/exclude
+# Lines that start with '#' are comments.
+# For a project mostly in C, the following would be a good set of
+# exclude patterns (uncomment them if you want to use them):
+# *.[oa]
+# *~
+/users/drashna/secrets.h
+```
+
+Then you can create this file and add your macro strings to it:
+
+###### secrets.h
+```
+PROGMEM const char secret[][64] = {
+  "secret1",
+  "secret2",
+  "secret3",
+  "secret4",
+  "secret5"
+};
+```
+
+Replacing the strings with the codes that you need. 
+
+
+These are called in the `process_record_user` function, using this block:
+```
+  case KC_SECRET_1 ... KC_SECRET_5:
+    if (!record->event.pressed) {
+      send_string_P(secret[keycode - KC_SECRET_1]);
+    }
+    return false;
+    break;
+```
+
+And this requires `KC_SECRET_1` through `KC_SECRET_5` to be defined, as well. 
diff --git a/users/drashna/sensitive.h b/users/drashna/sensitive.h
deleted file mode 100644
index bf47263bd6..0000000000
--- a/users/drashna/sensitive.h
+++ /dev/null
@@ -1,8 +0,0 @@
-const char secret[][64] = {
-  "test1",
-  "test2",
-  "test3",
-  "test4",
-  "test5"
-};
-