aboutsummaryrefslogtreecommitdiff
path: root/users/drashna/readme.md
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/drashna/readme.md
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/drashna/readme.md')
-rw-r--r--users/drashna/readme.md106
1 files changed, 95 insertions, 11 deletions
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.