forked from mirrors/qmk_firmware
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
This commit is contained in:
parent
557745ba9f
commit
2ec1ab2b35
9 changed files with 204 additions and 42 deletions
25
keyboards/ergodox_ez/keymaps/drashna/README.md
Normal file
25
keyboards/ergodox_ez/keymaps/drashna/README.md
Normal file
|
@ -0,0 +1,25 @@
|
|||
Overview
|
||||
========
|
||||
|
||||
This is my personal Ergodox EZ configuration, and my daily driver.
|
||||
|
||||
Most of the code resides in my userspace, rather than here, as I have multiple keyboards.
|
||||
|
||||
How to build
|
||||
------------
|
||||
make ergodox_ez:drashna:teensy
|
||||
|
||||
Layers
|
||||
------
|
||||
* QWERTY/DVORAK/COLEMAK/WORKMAN: basic layout, default set like the OLKB boards. Default is set and persists on power cycle.
|
||||
* SYMB: F keys across the top, symbols on the left and numpad on the right.
|
||||
* GAMEPAD: This is the QWERTY layout shifted to the right for FPS type games. Destiny and Overwatch are the primary games for this.
|
||||
* DIABLO: This contains a Diablo 3 layout, that requires much less reaching or shifting. If Tap Dance is enabled, then it has a "spam" feature. See Userspace for details.
|
||||
* MOUSE: mouse navigation
|
||||
|
||||
All layers have RGB specific indicators, so you can see what layer you're on by the underglow.
|
||||
|
||||
Ergodox Specific Code
|
||||
---------------------
|
||||
|
||||
Aside from my userspace code, this includes LED indications for Shift (Green LED), Ctrl (Red LED), and Alt (Blue LED).
|
|
@ -71,7 +71,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
KC_EQUAL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_MOUS),
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(_DIABLO),
|
||||
KC_BSPACE, KC_A, KC_S, KC_D, KC_F, KC_G,
|
||||
KC_LSHIFT, LCTL_T(KC_Z),KC_X, KC_C, KC_V, KC_B, TG(_OVERWATCH),
|
||||
KC_LSHIFT, LCTL_T(KC_Z),KC_X, KC_C, KC_V, KC_B, TG(_GAMEPAD),
|
||||
LT(_SYMB,KC_GRAVE),KC_QUOTE, KC_LGUI, KC_LBRACKET,KC_RBRACKET,
|
||||
|
||||
ALT_T(KC_APPLICATION), KC_LGUI,
|
||||
|
@ -81,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
TG(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS,
|
||||
TG(_DIABLO), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH,
|
||||
KC_H, KC_J, KC_K, KC_L, KC_SCOLON, GUI_T(KC_QUOTE),
|
||||
TG(_OVERWATCH), KC_N, KC_M, KC_COMMA, KC_DOT, RCTL_T(KC_SLASH),KC_RSHIFT,
|
||||
TG(_GAMEPAD), KC_N, KC_M, KC_COMMA, KC_DOT, RCTL_T(KC_SLASH),KC_RSHIFT,
|
||||
KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(_SYMB),
|
||||
KC_RGUI, CTL_T(KC_ESCAPE),
|
||||
KC_PGUP,
|
||||
|
@ -115,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_MOUS),
|
||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, TG(_DIABLO),
|
||||
KC_BSPC, KC_A, KC_R, KC_S, KC_T, KC_D,
|
||||
KC_LSFT, LCTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, TG(_OVERWATCH),
|
||||
KC_LSFT, LCTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, TG(_GAMEPAD),
|
||||
LT(_SYMB,KC_GRV),KC_QUOT, KC_LGUI, KC_LBRACKET,KC_RBRACKET,
|
||||
ALT_T(KC_APP), KC_LGUI,
|
||||
KC_HOME,
|
||||
|
@ -124,7 +124,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
TG(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||
TG(_DIABLO), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
|
||||
KC_H, KC_N, KC_E, KC_I, KC_O, GUI_T(KC_QUOTE),
|
||||
TG(_OVERWATCH),KC_K, KC_M, KC_COMM,KC_DOT, RCTL_T(KC_SLASH), KC_RSHIFT,
|
||||
TG(_GAMEPAD),KC_K, KC_M, KC_COMM,KC_DOT, RCTL_T(KC_SLASH), KC_RSHIFT,
|
||||
KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(_SYMB),
|
||||
KC_RGUI, CTL_T(KC_ESC),
|
||||
KC_PGUP,
|
||||
|
@ -158,7 +158,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_MOUS),
|
||||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, TG(_DIABLO),
|
||||
KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I,
|
||||
KC_LSFT, LCTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, TG(_OVERWATCH),
|
||||
KC_LSFT, LCTL_T(KC_SCLN), KC_Q, KC_J, KC_K, KC_X, TG(_GAMEPAD),
|
||||
LT(_SYMB,KC_GRV),KC_QUOT, KC_LGUI, KC_LBRACKET, KC_RBRACKET,
|
||||
ALT_T(KC_APP), KC_LEAD,
|
||||
KC_HOME,
|
||||
|
@ -167,7 +167,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
TG(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS,
|
||||
TG(_DIABLO), KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
|
||||
KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
|
||||
TG(_OVERWATCH),KC_B, KC_M, KC_W, KC_V, RCTL_T(KC_Z), KC_RSHIFT,
|
||||
TG(_GAMEPAD),KC_B, KC_M, KC_W, KC_V, RCTL_T(KC_Z), KC_RSHIFT,
|
||||
KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, TT(_SYMB),
|
||||
KC_LALT, CTL_T(KC_ESC),
|
||||
KC_PGUP,
|
||||
|
@ -201,7 +201,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_MOUS),
|
||||
KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, TG(_DIABLO),
|
||||
KC_BSPC, KC_A, KC_S, KC_H, KC_T, KC_G,
|
||||
KC_LSFT, LCTL_T(KC_Z), KC_X, KC_M, KC_C, KC_V, TG(_OVERWATCH),
|
||||
KC_LSFT, LCTL_T(KC_Z), KC_X, KC_M, KC_C, KC_V, TG(_GAMEPAD),
|
||||
LT(_SYMB,KC_GRV),KC_QUOT, KC_LGUI, KC_LBRACKET,KC_RBRACKET,
|
||||
ALT_T(KC_APP), KC_LEAD,
|
||||
KC_HOME,
|
||||
|
@ -210,7 +210,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
TG(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||
TG(_DIABLO), KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSLS,
|
||||
KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOTE,
|
||||
TG(_OVERWATCH),KC_K, KC_L, KC_COMM,KC_DOT, RCTL_T(KC_SLASH), KC_RSHIFT,
|
||||
TG(_GAMEPAD),KC_K, KC_L, KC_COMM,KC_DOT, RCTL_T(KC_SLASH), KC_RSHIFT,
|
||||
KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(_SYMB),
|
||||
KC_LALT, CTL_T(KC_ESC),
|
||||
KC_PGUP,
|
||||
|
@ -279,7 +279,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
* | | | H | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[_OVERWATCH] = LAYOUT_ergodox(
|
||||
[_GAMEPAD] = LAYOUT_ergodox(
|
||||
KC_ESCAPE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T,
|
||||
KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F,
|
||||
|
@ -291,9 +291,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
|
||||
KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
TG(_OVERWATCH), KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_I, KC_O, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
TG(_GAMEPAD), KC_N, KC_M, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_NO,
|
||||
KC_NO, KC_NO,
|
||||
KC_NO,
|
||||
KC_PGDOWN, KC_DELETE, KC_ENTER
|
||||
|
|
25
keyboards/handwired/woodpad/keymaps/drashna/README.md
Normal file
25
keyboards/handwired/woodpad/keymaps/drashna/README.md
Normal file
|
@ -0,0 +1,25 @@
|
|||
Overview
|
||||
========
|
||||
|
||||
This is my personal Numpad (Woodpad) configuration, and my daily driver.
|
||||
|
||||
Most of the code resides in my userspace, rather than here, as I have multiple keyboards.
|
||||
|
||||
How to build
|
||||
------------
|
||||
make handwired/woodpad:drashna:avrdude
|
||||
|
||||
Layers
|
||||
------
|
||||
* NUMLOCK: Num pad, locked to NUM LOCK enabled.
|
||||
* NAV: Navigation codes without needing to enable numlock.
|
||||
* DIABLO: This contains a Diablo 3 layout, that requires much less reaching or shifting. If Tap Dance is enabled, then it has a "spam" feature. See Userspace for details.
|
||||
* MACROS: This layer contains a bunch of macros for spamming chat, with a toggle on what key to open up chat with.
|
||||
* MEDIA: Media and RGB commands
|
||||
|
||||
All layers have RGB specific indicators, so you can see what layer you're on by the underglow.
|
||||
|
||||
Woodpad Specific Code
|
||||
---------------------
|
||||
|
||||
Aside from my userspace code, this includes LED indications for numlock and macro mode. It also forces NUMLOCK to be enabled.
|
26
keyboards/orthodox/keymaps/drashna/README.md
Normal file
26
keyboards/orthodox/keymaps/drashna/README.md
Normal file
|
@ -0,0 +1,26 @@
|
|||
Overview
|
||||
========
|
||||
|
||||
This is my personal Orthodox configuration, and my daily driver.
|
||||
|
||||
Most of the code resides in my userspace, rather than here, as I have multiple keyboards.
|
||||
|
||||
How to build
|
||||
------------
|
||||
make orthodox/rev1:drashna:teensy
|
||||
|
||||
Layers
|
||||
------
|
||||
* QWERTY/DVORAK/COLEMAK/WORKMAN: basic layout, default set like the OLKB boards. Default is set and persists on power cycle.
|
||||
* RAISE: Contains function keys and unshifted symbols
|
||||
* LOWER: Contains function keys and shifted symbols
|
||||
* ADJUST: contains special codes (layout defaults, RGB codes, Audio codes, and volume control)
|
||||
|
||||
All layers have RGB specific indicators, so you can see what layer you're on by the underglow.
|
||||
|
||||
Orthodox Specific Code
|
||||
----------------------
|
||||
|
||||
Left side is designed to have RGB underglow and Faux Clicking enabled, while the right has Audio enabled.
|
||||
|
||||
The make commend ensures that the correct settings are retained.
|
|
@ -17,7 +17,7 @@ extern keymap_config_t keymap_config;
|
|||
|
||||
#define LMACRO TG(_MACROS)
|
||||
#define DIABLO TG(_DIABLO)
|
||||
#define GAMEPAD TG(_OVERWATCH)
|
||||
#define GAMEPAD TG(_GAMEPAD)
|
||||
#define MEDIA TG(_MEDIA)
|
||||
#define COVECUBE TG(_COVECUBE)
|
||||
|
||||
|
@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
KC_LALT, KC_F4, KC_F5, KC_F8, KC_F9, KC_F10, SFT_T(KC_SPACE), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
|
||||
),
|
||||
|
||||
[_OVERWATCH] = KEYMAP( // Game pad layout designed primarily for Overwatch
|
||||
[_GAMEPAD] = KEYMAP( // Game pad layout designed primarily for Overwatch
|
||||
LMACRO, KC_ESC, GAMEPAD, KC_1, KC_2, KC_3, KC_4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
MEDIA, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
KC_Z, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
const char secret[][64] = {
|
||||
"test1",
|
||||
"test2",
|
||||
"test3",
|
||||
"test4",
|
||||
"test5"
|
||||
};
|
||||
|
Loading…
Reference in a new issue