You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

117 lines
3.4 KiB

[Keymap] ninjonas keymap for crkbd & ninjonas userspace updates (#6797) * [keymap(crkbd)] introducing crkbd keymap on ninjonas profile * [keymap(crkbd)] introducing crkbd keymap on ninjonas profile * [refactor(crkbd)] reducing file size by selecting RGB animations * [refactor(crkbd)] added shiftit key * [refactor(crkbd)] added shiftit key * [chore(crkbd)] adding SLEEP_LED_ENABLE on rules.mk * [refactor(crkbd)] added keylog & removed static rainbow RGB * [feat(crkbd)] introduced em-dash '—' keymap * [feat(crkbd)] added screenshot functionality * [refactor(lily58,pinky3)] moving media keys * [refactor(lily58)] Added emdash key * [chore] removing NUMBERS & FUNCTIONS layers as they're useless * [chore] removing NUMBERS & FUNCTIONS layers as they're useless * [chore(crkbd,lily48)] Updating README.md * [feat] added K_LAPP & K_RAPP to mimic command + tab * [feat] added K_LAPP & K_RAPP to mimic command + tab * [fix(#6797)] resolving changes requested by @drashna * [fix(#6797)] first cut on using QMK OLED Driver * [fix(#6797)] cleaning up rules.mk * [fix(#6797)] making scrolling logo work * [fix(#6797)] Using OLED Driver for Lily58 * [fix(#6797)] Moved OLED driver implementation to ninjonas userspace * [fix(#6797)] Bringing back crkbd & lily58 logos * [fix(#6797)] Turning off OLED based off @drashna's workaround in #5982 * [fix(#6797)] whoops! forgot to checkin crkbd/config.h * [fix(#6797)] fixing issue with OLED randomly turning on * [fix(#6797)] using default glcdfont.c for lily58 & crkbd * [fix(#6797)] Using LINK_TIME_OPTIMIZATION_ENABLE rather than EXTRAFLAGS as per code review * [fix(#6797)] updating M_MALL macro as per code review by @fauxpark
4 years ago
[Keymap] ninjonas keymap for crkbd & ninjonas userspace updates (#6797) * [keymap(crkbd)] introducing crkbd keymap on ninjonas profile * [keymap(crkbd)] introducing crkbd keymap on ninjonas profile * [refactor(crkbd)] reducing file size by selecting RGB animations * [refactor(crkbd)] added shiftit key * [refactor(crkbd)] added shiftit key * [chore(crkbd)] adding SLEEP_LED_ENABLE on rules.mk * [refactor(crkbd)] added keylog & removed static rainbow RGB * [feat(crkbd)] introduced em-dash '—' keymap * [feat(crkbd)] added screenshot functionality * [refactor(lily58,pinky3)] moving media keys * [refactor(lily58)] Added emdash key * [chore] removing NUMBERS & FUNCTIONS layers as they're useless * [chore] removing NUMBERS & FUNCTIONS layers as they're useless * [chore(crkbd,lily48)] Updating README.md * [feat] added K_LAPP & K_RAPP to mimic command + tab * [feat] added K_LAPP & K_RAPP to mimic command + tab * [fix(#6797)] resolving changes requested by @drashna * [fix(#6797)] first cut on using QMK OLED Driver * [fix(#6797)] cleaning up rules.mk * [fix(#6797)] making scrolling logo work * [fix(#6797)] Using OLED Driver for Lily58 * [fix(#6797)] Moved OLED driver implementation to ninjonas userspace * [fix(#6797)] Bringing back crkbd & lily58 logos * [fix(#6797)] Turning off OLED based off @drashna's workaround in #5982 * [fix(#6797)] whoops! forgot to checkin crkbd/config.h * [fix(#6797)] fixing issue with OLED randomly turning on * [fix(#6797)] using default glcdfont.c for lily58 & crkbd * [fix(#6797)] Using LINK_TIME_OPTIMIZATION_ENABLE rather than EXTRAFLAGS as per code review * [fix(#6797)] updating M_MALL macro as per code review by @fauxpark
4 years ago
[Keymap] ninjonas keymap for crkbd & ninjonas userspace updates (#6797) * [keymap(crkbd)] introducing crkbd keymap on ninjonas profile * [keymap(crkbd)] introducing crkbd keymap on ninjonas profile * [refactor(crkbd)] reducing file size by selecting RGB animations * [refactor(crkbd)] added shiftit key * [refactor(crkbd)] added shiftit key * [chore(crkbd)] adding SLEEP_LED_ENABLE on rules.mk * [refactor(crkbd)] added keylog & removed static rainbow RGB * [feat(crkbd)] introduced em-dash '—' keymap * [feat(crkbd)] added screenshot functionality * [refactor(lily58,pinky3)] moving media keys * [refactor(lily58)] Added emdash key * [chore] removing NUMBERS & FUNCTIONS layers as they're useless * [chore] removing NUMBERS & FUNCTIONS layers as they're useless * [chore(crkbd,lily48)] Updating README.md * [feat] added K_LAPP & K_RAPP to mimic command + tab * [feat] added K_LAPP & K_RAPP to mimic command + tab * [fix(#6797)] resolving changes requested by @drashna * [fix(#6797)] first cut on using QMK OLED Driver * [fix(#6797)] cleaning up rules.mk * [fix(#6797)] making scrolling logo work * [fix(#6797)] Using OLED Driver for Lily58 * [fix(#6797)] Moved OLED driver implementation to ninjonas userspace * [fix(#6797)] Bringing back crkbd & lily58 logos * [fix(#6797)] Turning off OLED based off @drashna's workaround in #5982 * [fix(#6797)] whoops! forgot to checkin crkbd/config.h * [fix(#6797)] fixing issue with OLED randomly turning on * [fix(#6797)] using default glcdfont.c for lily58 & crkbd * [fix(#6797)] Using LINK_TIME_OPTIMIZATION_ENABLE rather than EXTRAFLAGS as per code review * [fix(#6797)] updating M_MALL macro as per code review by @fauxpark
4 years ago
  1. #include "ninjonas.h"
  2. __attribute__((weak))
  3. bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
  4. __attribute__((weak))
  5. bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { return true; }
  6. #ifdef OLED_DRIVER_ENABLE
  7. __attribute__((weak))
  8. bool process_record_oled(uint16_t keycode, keyrecord_t *record) { return true; }
  9. #endif
  10. bool process_record_user(uint16_t keycode, keyrecord_t *record) {
  11. switch (keycode) {
  12. // Sends pyenv to activate 'jira' environment
  13. case M_PYNV:
  14. if (record->event.pressed) {
  15. SEND_STRING("pyenv activate jira\n");
  16. }
  17. break;
  18. // Sends Cmd + alt + shift to a keycode to activate shiftit. See: https://github.com/fikovnik/ShiftIt
  19. case M_SHFT:
  20. if (record->event.pressed) {
  21. register_code(KC_LGUI);
  22. register_code(KC_LALT);
  23. register_code(KC_LCTL);
  24. } else {
  25. unregister_code(KC_LGUI);
  26. unregister_code(KC_LALT);
  27. unregister_code(KC_LCTL);
  28. }
  29. break;
  30. // Sends QMK make command to compile keyboard
  31. case M_MAKE:
  32. if (record->event.pressed) {
  33. SEND_STRING("rm -f *.hex && rm -rf .build/ && make " QMK_KEYBOARD ":" QMK_KEYMAP SS_TAP(X_ENTER));
  34. }
  35. break;
  36. // Sends QMK make command to compile all keyboards
  37. case M_MALL:
  38. if (record->event.pressed) {
  39. SEND_STRING("rm -f *.hex && rm -rf .build/ && make crkbd:ninjonas lily58:ninjonas hotdox:ninjonas pinky/3:ninjonas kyria:ninjonas\n");
  40. }
  41. break;
  42. // Sends QMK make command with the correct bootloader
  43. case M_FLSH:
  44. if (!record->event.pressed) {
  45. SEND_STRING("rm -f *.hex && rm -rf .build/ && make " QMK_KEYBOARD ":" QMK_KEYMAP
  46. #if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
  47. ":dfu "
  48. #elif defined(BOOTLOADER_CATERINA)
  49. ":avrdude "
  50. #endif
  51. SS_TAP(X_ENTER)
  52. );
  53. // Send reset_keyboard command instead of pressing reset button
  54. #if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
  55. reset_keyboard();
  56. #endif
  57. }
  58. break;
  59. // Sends QMK version
  60. case M_VRSN:
  61. if (record->event.pressed) {
  62. SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE);
  63. }
  64. break;
  65. // Opens Visual Studio Code on current directory
  66. case M_CODE:
  67. if (record->event.pressed) {
  68. SEND_STRING("code .\n");
  69. }
  70. break;
  71. // Opens Terminal
  72. case M_TERM:
  73. if (record->event.pressed) {
  74. SEND_STRING(SS_DOWN(X_LGUI) SS_TAP(X_SPACE) SS_UP(X_LGUI));
  75. wait_ms(250);
  76. SEND_STRING("terminal\n");
  77. }
  78. break;
  79. // BEGIN: Layer macros
  80. case QWERTY:
  81. if (record->event.pressed) {
  82. set_single_persistent_default_layer(_QWERTY);
  83. }
  84. break;
  85. case DVORAK:
  86. if (record->event.pressed) {
  87. set_single_persistent_default_layer(_DVORAK);
  88. }
  89. break;
  90. case COLEMAK:
  91. if (record->event.pressed) {
  92. set_single_persistent_default_layer(_COLEMAK);
  93. }
  94. break;
  95. // END: Layer macros
  96. }
  97. return process_record_keymap(keycode, record) && process_record_secrets(keycode, record)
  98. #ifdef OLED_DRIVER_ENABLE
  99. && process_record_oled(keycode, record)
  100. #endif
  101. ; // Close return
  102. }