QMK User Configuration for ninjonas
Tired of copying and pasting the same macros and tap dances for all my keymaps. Utilizing user keymaps functionality.
See: https://docs.qmk.fm/#/feature_userspace
Supported Keyboards
Features
Code |
Description |
K_LOCK |
MacOS shortcut to execute lock command Cmd + CTRL + Q |
K_CSCN |
MacOS shortcut to copy a portion of the screen to the clipboard |
K_MDSH |
MacOS shortcut to get em-dash – |
K_RAPP |
MacOS shortcut to switch apps to the right |
K_LAPP |
MacOS shortcut to switch apps to the left |
K_CPRF |
Cmd + Shift + M. Used for switching Google Chrome profiles |
Code |
Description |
LT_LOW |
Tap for ENTER, hold for RAISE |
LT_RAI |
Tap for SPACE, hold for LOWER |
LT_LOW + LT_RAI |
Hold for ADJUST |
LM_LOW |
Dedicated key to momentarily toggle to use LOWER layer |
LM_RAI |
Dedicated key to momentarily toggle to use RAISE layer |
LG_LOW |
Press to toggle LOWER layer |
LG_RAI |
Press to toggle RAISE layer |
Code |
Description |
MT_DEL |
Tap for Delete, hold for Cmd + ALT + SHIFT |
MT_EQL |
Tap for =, hold for ALT + SHIFT |
Predefined keyboard layout templates to speed up configuring split keyboards
Code |
Description |
QWERTY |
Qwerty Layout |
DVORAK |
Dvorak Layout |
COLEMAK |
Colemak Layout |
NUM |
Number Rows |
FUNC |
Function Rows |
SYM |
Symbol Rows When holding shift on numbers |
NAV |
Navigation Cluster |
MOUSE |
Mouse Cluster |
MEDIA |
Media Cluster |
MOD |
Modifier Cluster |
NUMPAD |
Numpad Cluster |
Code |
Description |
M_PYNV |
Macro to activate pyenv with the name jira |
M_MAKE |
Macro to send QMK make command to compile keyboard |
M_MALL |
Macro to send QMK make command to all ninjonas keyboards |
M_FLSH |
Macro to send QMK make command to compile keyboard with the correct bootloader |
M_VRSN |
Macro to send QMK version |
M_SHFT |
Sends Cmd + alt + shift to a keycode to activate ShiftIt |
M_CODE |
Opens Visual Studio Code on current directory |
M_TERM |
Launches Spotlight and calls Terminal |
M_COPA |
Single key copy/paste |
M_XXX1 to M_XXX5 |
Reserved for secret macros see Secrets |
Code |
Description |
T_ESC |
Tap once for ESC, double tap for CAPS_LOCK |
T_LBRC |
Tap once for [, double for back browser |
T_RBRC |
Tap once for ], double for forward browser |
T_TAB |
Tap once for TAB, double for CTRL + TAB |
T_GRV |
Tap once for GRV, double for Cmd + GRV |
T_GUI |
Tap once for Cmd, double to open spotlight |
T_W |
Tap for W, double tap for Cmd + W |
T_Q |
Tap for Q, double tap for Cmd + Q |
T_CPNU |
Tap for Cmd + V, hold for Cmd + C, double tap for NUMPAD layer |
T_Y |
Tap for Y, double tap for NUMPAD layer |
Secrets
There's times where you have macros you don't want to share like emails, an address you need but you always forget, passwords 😱, & and private strings. Based off drashna's secret macros, it's now possible to do this. All you need to do is create a secrets.c
file. Below is an example of how this is used.
// secrets.c
#include "ninjonas.h"
static const char * const secret[] = {
"BLANK1",
"BLANK2",
"BLANK3",
"BLANK4",
"BLANK5"
};
bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case M_XXX1...M_XXX5:
if (record->event.pressed) {
send_string(secret[keycode - M_XXX1]);
}
break;
}
return true;
}