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  + 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 | 
| 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 | 
| Code | 
Description | 
| MT_DEL | 
Tap for Delete, hold for  + 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 | 
| Code | 
Description | 
| M_PYNV | 
macro to activate pyenv with the name jira | 
| M_MAKE | 
macro to send QMK make command to compile keyboard | 
| 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  + 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_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  + GRV | 
| T_GUI | 
Tap once for , double to open spotlight | 
| T_W | 
Tap for W, double tap for  + W | 
| T_Q | 
Tap for Q, double tap for  + Q | 
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;
}