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;
}