aboutsummaryrefslogtreecommitdiff
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)
downloadqmk_firmware-2ec1ab2b3585adca78e2fde0bd4f92df4d0311cc.tar.gz
qmk_firmware-2ec1ab2b3585adca78e2fde0bd4f92df4d0311cc.zip
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 b7ca84faf..95fb793a7 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/>.
19#include "quantum.h" 19#include "quantum.h"
20#include "action.h" 20#include "action.h"
21#include "version.h" 21#include "version.h"
22#include "sensitive.h" 22
23#if (__has_include("secrets.h"))
24#include "secrets.h"
25#else
26PROGMEM const char secret[][64] = {
27 "test1",
28 "test2",
29 "test3",
30 "test4",
31 "test5"
32};
33#endif
23 34
24#ifdef TAP_DANCE_ENABLE 35#ifdef TAP_DANCE_ENABLE
25//define diablo macro timer variables 36//define diablo macro timer variables
@@ -486,7 +497,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
486 break; 497 break;
487 case KC_SECRET_1 ... KC_SECRET_5: 498 case KC_SECRET_1 ... KC_SECRET_5:
488 if (!record->event.pressed) { 499 if (!record->event.pressed) {
489 send_string(secret[keycode - KC_SECRET_1]); 500 send_string_P(secret[keycode - KC_SECRET_1]);
490 } 501 }
491 return false; 502 return false;
492 break; 503 break;
@@ -538,7 +549,7 @@ uint32_t layer_state_set_user(uint32_t state) {
538 rgblight_set_green; 549 rgblight_set_green;
539 rgblight_mode(22); 550 rgblight_mode(22);
540 break; 551 break;
541 case _OVERWATCH: 552 case _GAMEPAD:
542 rgblight_set_orange; 553 rgblight_set_orange;
543 rgblight_mode(17); 554 rgblight_mode(17);
544 break; 555 break;
diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h
index 4fd42acb9..0b9347f1d 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/>.
19#define USERSPACE 19#define USERSPACE
20 20
21#include "quantum.h" 21#include "quantum.h"
22#include "song_list.h"
23 22
24// Define layer names 23// Define layer names
25#define _QWERTY 0 24#define _QWERTY 0
@@ -30,7 +29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
30#define _NAV 5 29#define _NAV 5
31#define _COVECUBE 6 30#define _COVECUBE 6
32#define _SYMB 8 31#define _SYMB 8
33#define _OVERWATCH 9 32#define _GAMEPAD 9
34#define _DIABLO 10 33#define _DIABLO 10
35#define _MOUS 11 34#define _MOUS 11
36#define _MACROS 12 35#define _MACROS 12
@@ -55,14 +54,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
55#define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF); 54#define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF);
56#define rgblight_set_yellow rgblight_sethsv (0x3C, 0xFF, 0xFF); 55#define rgblight_set_yellow rgblight_sethsv (0x3C, 0xFF, 0xFF);
57#define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF); 56#define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF);
57#define rgblight_set_white rgblight_sethsv (0x00, 0x00, 0xFF);
58#endif 58#endif
59 59
60extern bool is_overwatch; 60extern bool is_overwatch;
61extern bool rgb_layer_change; 61extern bool rgb_layer_change;
62 62
63enum userrpace_custom_keycodes { 63enum userspace_custom_keycodes {
64 PLACEHOLDER = SAFE_RANGE, // can always be here 64 EPRM = SAFE_RANGE, // can always be here
65 EPRM,
66 VRSN, 65 VRSN,
67 KC_QWERTY, 66 KC_QWERTY,
68 KC_COLEMAK, 67 KC_COLEMAK,
@@ -105,7 +104,7 @@ enum {
105#endif 104#endif
106 105
107 106
108#define QMK_KEYS_PER_SCAN 4 107#define QMK_KEYS_PER_SCAN 8
109 108
110#ifdef RGBLIGHT_ENABLE 109#ifdef RGBLIGHT_ENABLE
111#define RGBLIGHT_SLEEP 110#define RGBLIGHT_SLEEP
diff --git a/users/drashna/readme.md b/users/drashna/readme.md
index 0d553f08e..0523be2a6 100644
--- a/users/drashna/readme.md
+++ b/users/drashna/readme.md
@@ -1,14 +1,98 @@
1Copyright 2017 Christopher Courtney <drashna@live.com> @drashna 1Overview
2========
2 3
3This program is free software: you can redistribute it and/or modify 4This is my personal userspace file. Most of my code exists here, as it's heavily shared.
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7 5
8This program is distributed in the hope that it will be useful,
9but WITHOUT ANY WARRANTY; without even the implied warranty of
10MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11GNU General Public License for more details.
12 6
13You should have received a copy of the GNU General Public License 7Custom handlers
14along with this program. If not, see <http://www.gnu.org/licenses/>. 8---------------
9
10All (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.
11
12This allows for keyboard specific configuration while maintaining the ability to customize the board.
13
14My Ergodox EZ Keymap is a good example of this, as it uses the LEDs as modifier indicators.
15
16Custom Keycodes
17---------------
18
19Keycods are defined in the drashna.h file and need to be included in the keymap.c files, so that they can be used there.
20
21A 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.
22
23Included 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).
24
25This also includes a modified RESET keycode as well, that sets the underglow to red.
26
27Layer Indication
28----------------
29
30This 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.
31
32Since this is done via userspace, it is the same between all systems.
33
34Additionally, 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.
35
36Also. I use `rgblight_sethsv` since it works with animation modes (that support it).
37
38
39Diablo Layer
40------------
41
42This layer has some special handling.
43
44When Tap Dances are enabled, this layer has the ability to "spam" keypresses.
45
46For 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).
47
48Tappind once disables this, and switching layers temporarily disables this, until you switch back to the layer.
49
50For 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.
51
52Secret Macros
53-------------
54
55With help from gitter and Colinta, this adds the ability to add hidden strings to be used for macros.
56
57I 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.
58
59If 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.
60
61###### .git/info/exclude
62```
63# git ls-files --others --exclude-from=.git/info/exclude
64# Lines that start with '#' are comments.
65# For a project mostly in C, the following would be a good set of
66# exclude patterns (uncomment them if you want to use them):
67# *.[oa]
68# *~
69/users/drashna/secrets.h
70```
71
72Then you can create this file and add your macro strings to it:
73
74###### secrets.h
75```
76PROGMEM const char secret[][64] = {
77 "secret1",
78 "secret2",
79 "secret3",
80 "secret4",
81 "secret5"
82};
83```
84
85Replacing the strings with the codes that you need.
86
87
88These are called in the `process_record_user` function, using this block:
89```
90 case KC_SECRET_1 ... KC_SECRET_5:
91 if (!record->event.pressed) {
92 send_string_P(secret[keycode - KC_SECRET_1]);
93 }
94 return false;
95 break;
96```
97
98And 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 bf47263bd..000000000
--- a/users/drashna/sensitive.h
+++ /dev/null
@@ -1,8 +0,0 @@
1const char secret[][64] = {
2 "test1",
3 "test2",
4 "test3",
5 "test4",
6 "test5"
7};
8