Browse Source

[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
Jonas Avellana 5 years ago
parent
commit
ff854565ce

+ 99 - 0
keyboards/crkbd/keymaps/ninjonas/README.md

@@ -0,0 +1,99 @@
+# ninjonas Keymap for [Corne Keyboard (crkbd)](https://github.com/foostan/crkbd)
+
+## Keymap
+This keymap is designed based off my typing habits and is subject to change. Information about custom user macros and tap dances can be found [here](../../../../users/ninjonas).
+
+More information about the crkbd keyboard can be found [here](https://thomasbaart.nl/2018/11/26/corne-keyboard-helidox-build-log/)
+
+### QWERTY
+```c
+  //,----------------------------------------------------.      ,----------------------------------------------------.
+  //      Tab,       Q,       W,       E,       R,      T,              Y,       U,       I,       O,       P,     \
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+  //      ESC,       A,       S,       D,       F,      G,              H,       J,       K,       L,       ;,     '
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+  //   LShift,       Z,       X,       C,       V,      B,              N,       M,       ,,       .,       /,     =
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+                                 //    ,    Ctrl,  Space,          Enter,  BackSP, Del
+                                 //`---------------------'      `---------------------'
+```
+
+### DVORAK
+```c
+  //,----------------------------------------------------.      ,----------------------------------------------------.
+  //      Tab,       ',       ,,       .,       P,      Y,              F,       G,       C,       R,       L,     \
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+  //      ESC,       A,       O,       E,       U,      I,              D,       H,       T,       N,       S,     /
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+  //   LShift,       ;,       Q,       J,       K,      X,              B,       M,       W,       V,       Z,     =
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+                                 //    ,    Ctrl,  Space,          Enter,  BackSP, Del
+                                 //`---------------------'      `---------------------'
+```
+
+### COLEMAK
+```c
+  //,----------------------------------------------------.      ,----------------------------------------------------.
+  //      Tab,       Q,       W,       F,       P,      G,              J,       L,       U,       Y,       ;,     \
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+  //      ESC,       A,       R,       S,       T,      D,              H,       N,       E,       I,       O,     '
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+  //   LShift,       Z,       X,       C,       V,      B,              K,       M,       ,,       .,       /,     =
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+                                 //    ,    Ctrl,  Space,          Enter,  BackSP, Del
+                                 //`---------------------'      `---------------------'
+```
+
+### LOWER
+```c
+  //,----------------------------------------------------.      ,----------------------------------------------------.
+  //         ,        , KC_BRIU,    Play,    Mute, K_CSCN,           PgUp,    Home,      Up,     End,        ,  K_MDSH
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+  //         ,        , KC_BRID,    Next,   VolUp,       ,           PgDn,    Left,    Down,   Right,  K_LOCK,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+  //         ,        ,        ,    Prev,   VolDn,      [,              ],        ,        ,  M_CODE,  M_ZOOM, M_PYNV,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+                                 //     ,        ,       ,               ,        ,
+                                 //`---------------------'      `---------------------'
+```
+
+### RAISE
+```c
+  //,----------------------------------------------------.      ,----------------------------------------------------.
+  //        `,       1,       2,       3,       4,      5,              6,       7,       8,       9,       0,      -
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+  //        ~,       !,       @,       #,       $,      %,              ^,       &,       *,       (,       ),      _
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+  //      F11,      F1,      F2,      F3,      F4,     F5,             F6,      F7,      F8,      F9,     F10,    F12
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+                                 //     ,        ,       ,               ,        ,
+                                 //`---------------------'      `---------------------'
+```
+
+### ADJUST
+```c
+  //,----------------------------------------------------.      ,----------------------------------------------------.
+  //   M_MAKE, EEP_RST,        ,        ,        ,        ,       RGB_TOG,        ,        , COLEMAK,  DVORAK, QWERTY,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+  //   M_VRSN,  M_MALL,        , RGB_SAI, RGB_HUI, RGB_VAI,              ,        ,        ,        ,        ,        ,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+  //   M_FLSH,        ,        , RGB_SAD, RGB_HUD, RGB_VAD,       RGB_M_P, RGB_M_B,RGB_M_SW,        ,        ,        ,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+                                 //     ,        ,       ,               ,        ,
+                                 //`---------------------'      `---------------------'
+```
+
+<!--
+### TEMPLATE
+```c
+  //,----------------------------------------------------.      ,----------------------------------------------------.
+  //         ,        ,        ,        ,        ,       ,               ,        ,        ,        ,        ,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+  //         ,        ,        ,        ,        ,       ,               ,        ,        ,        ,        ,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+  //         ,        ,        ,        ,        ,       ,               ,        ,        ,        ,        ,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+                                 //     ,        ,       ,               ,        ,
+                                 //`---------------------'      `---------------------'
+```
+-->

+ 48 - 0
keyboards/crkbd/keymaps/ninjonas/config.h

@@ -0,0 +1,48 @@
+/*
+This is the c configuration file for the keymap
+
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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 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/>.
+*/
+
+#pragma once
+
+//#define USE_MATRIX_I2C
+
+/* Select hand configuration */
+
+#define MASTER_LEFT
+// #define MASTER_RIGHT
+// #define EE_HANDS
+
+#define USE_SERIAL_PD2
+
+#define TAPPING_FORCE_HOLD
+
+#ifdef RGBLIGHT_ENABLE
+    #undef RGBLED_NUM
+    #undef RGBLIGHT_ANIMATIONS   // https://docs.qmk.fm/#/feature_rgblight?id=effect-and-animation-toggles
+    #define RGBLIGHT_EFFECT_BREATHING
+    #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+    #define RGBLED_NUM 27
+    #define RGBLIGHT_LIMIT_VAL 120
+    #define RGBLIGHT_HUE_STEP 10
+    #define RGBLIGHT_SAT_STEP 17
+    #define RGBLIGHT_VAL_STEP 17
+#endif 
+
+#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
+#define OLED_DISABLE_TIMEOUT

+ 89 - 0
keyboards/crkbd/keymaps/ninjonas/keymap.c

@@ -0,0 +1,89 @@
+#include QMK_KEYBOARD_H
+#include "ninjonas.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  [_QWERTY] = LAYOUT_wrapper(
+  //,----------------------------------------------------.      ,----------------------------------------------------.
+     _____________________QWERTY_L1______________________,       _____________________QWERTY_R1______________________,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+     _____________________QWERTY_L2______________________,       _____________________QWERTY_R2______________________,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+     _____________________QWERTY_L3______________________,       _____________________QWERTY_R3______________________,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+                                    T_GUI, KC_LCTL,LT_RAI,       LT_LOW,KC_BSPC,KC_DEL
+                                 //`---------------------'      `---------------------'
+  ),
+
+  [_DVORAK] = LAYOUT_wrapper(
+  //,----------------------------------------------------.      ,----------------------------------------------------.
+     _____________________DVORAK_L1______________________,       _____________________DVORAK_R1______________________,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+     _____________________DVORAK_L2______________________,       _____________________DVORAK_R2______________________,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+     _____________________DVORAK_L3______________________,       _____________________DVORAK_R3______________________,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+                                    T_GUI, KC_LCTL,LT_RAI,       LT_LOW,KC_BSPC,KC_DEL
+                                 //`---------------------'      `---------------------'
+  ),
+
+  [_COLEMAK] = LAYOUT_wrapper(
+  //,----------------------------------------------------.      ,----------------------------------------------------.
+     _____________________COLEMAK_L1_____________________,       _____________________COLEMAK_R1_____________________,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+     _____________________COLEMAK_L2_____________________,       _____________________COLEMAK_R2_____________________,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+     _____________________COLEMAK_L3_____________________,       _____________________COLEMAK_R3_____________________,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+                                    T_GUI, KC_LCTL,LT_RAI,       LT_LOW,KC_BSPC,KC_DEL
+                                 //`---------------------'      `---------------------'
+  ),
+
+  [_LOWER] = LAYOUT_wrapper(
+  //,----------------------------------------------------.      ,----------------------------------------------------.
+     XXXXXXX, XXXXXXX, _________MEDIA_1_________,  K_CSCN,       _______________NAV_1______________,  XXXXXXX, K_MDSH,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+     XXXXXXX, XXXXXXX, _________MEDIA_2_________, XXXXXXX,       _______________NAV_2______________,   K_LOCK, XXXXXXX,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+     _______,  M_SHFT, _________MEDIA_3_________,  T_LBRC,         T_RBRC, _______, XXXXXXX,  M_CODE,  M_ZOOM, M_PYNV,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+                                    _______,_______,_______,     _______,_______,_______
+                                 //`---------------------'      `---------------------'
+  ),
+
+  [_RAISE] = LAYOUT_wrapper( \
+  //,----------------------------------------------------.      ,----------------------------------------------------.
+     _____________________NUM_LEFT_______________________,       _____________________NUM_RIGHT______________________,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+     _____________________SYM_LEFT_______________________,       _____________________SYM_RIGHT______________________,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+     _____________________FUNC_LEFT______________________,       _____________________FUNC_RIGHT_____________________,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+                                    _______,_______,_______,     _______,_______,_______
+                                 //`---------------------'      `---------------------'
+  ),
+
+  [_ADJUST] = LAYOUT_wrapper( \
+  //,----------------------------------------------------.      ,----------------------------------------------------.
+       M_MAKE, EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,       RGB_TOG, XXXXXXX, XXXXXXX, COLEMAK,  DVORAK, QWERTY,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+       M_VRSN,  M_MALL, XXXXXXX, RGB_SAI, RGB_HUI, RGB_VAI,       XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+       M_FLSH, XXXXXXX, XXXXXXX, RGB_SAD, RGB_HUD, RGB_VAD,       RGB_M_P, RGB_M_B,RGB_M_SW, XXXXXXX, XXXXXXX, XXXXXXX,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+                                    _______,_______,_______,     _______,_______,_______
+                                 //`---------------------'      `---------------------'
+  ),
+/*
+  [_TEMPLATE] = LAYOUT_wrapper( \
+  //,----------------------------------------------------.      ,----------------------------------------------------.
+      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,       XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,       XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,       XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+  //|--------+--------+--------+--------+--------+-------|      |--------+--------+--------+--------+--------+-------|
+                                    _______,_______,_______,     _______,_______,_______
+                                 //`---------------------'      `---------------------'
+  ),
+*/
+};

+ 27 - 0
keyboards/crkbd/keymaps/ninjonas/rgb.c

@@ -0,0 +1,27 @@
+#include QMK_KEYBOARD_H
+
+extern keymap_config_t keymap_config;
+
+#ifdef RGBLIGHT_ENABLE
+//Following line allows macro to read current RGB settings
+extern rgblight_config_t rgblight_config;
+#endif
+
+extern uint8_t is_master;
+
+int RGB_current_mode;
+
+// Setting ADJUST layer RGB back to default
+void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
+  if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
+    layer_on(layer3);
+  } else {
+    layer_off(layer3);
+  }
+}
+
+void keyboard_post_init_user(void) {
+    #ifdef RGBLIGHT_ENABLE
+      RGB_current_mode = rgblight_config.mode;
+    #endif
+}

+ 11 - 0
keyboards/crkbd/keymaps/ninjonas/rules.mk

@@ -0,0 +1,11 @@
+RGBLIGHT_ENABLE = yes
+MOUSEKEY_ENABLE = no
+OLED_DRIVER_ENABLE = yes
+LINK_TIME_OPTIMIZATION_ENABLE = yes
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no    # Breathing sleep LED during USB suspend
+
+# If you want to change the display of OLED, you need to change here
+SRC +=  ./lib/rgb_state_reader.c \
+        rgb.c

+ 1 - 1
keyboards/hotdox/keymaps/ninjonas/keymap.c

@@ -277,7 +277,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
         //LEFT HAND
         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
         M_MAKE,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
-        M_VRSN,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+        M_VRSN,   M_MALL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
         M_FLSH,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
         XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
                                                    // LEFT THUMB

+ 3 - 3
keyboards/lily58/keymaps/ninjonas/README.md

@@ -67,11 +67,11 @@ More information about the Lily58 pro keyboard can be found [here](https://yuchi
  * ,------------------------------------------.                    ,------------------------------------------.
  * | F11  |  F1  |  F2  |  F3   |  F4  |  F5  |                    |  F6  |  F7  |  F8  |  F9  |  F10  | F12  |
  * |------+------+------+-------+------+------|                    |------+------+------+------+-------+------|
- * |      |      |      |KC_BRIU| Play | Mute |                    | PgUp | Home |  Up  | End  |       |      |
+ * |      |      |KC_BRIU| Play | Mute |      |                    | PgUp | Home |  Up  | End  |       |K_MDSH|
  * |------+------+------+-------+------+------|                    |------+------+------+------+-------+------|
- * |      |      |      |KC_BRID| Next |VolUp |-------.    ,-------| PgDn | Left | Down |Right |K_LOCK |      |
+ * |      |      |KC_BRID| Next |VolUp |      |-------.    ,-------| PgDn | Left | Down |Right |K_LOCK |      |
  * |------+------+------+-------+------+------|       |    |       |------+------+------+------+-------+------|
- * |      |M_SHFT|      |       | Prev |VolDn |-------|    |-------|      |      |      |      |M_ZOOM |M_PYNV|
+ * |M_SHFT|      |      | Prev  |VolDn |      |-------|    |-------|      |      |      |      |M_ZOOM |M_PYNV|
  * `------------------------------------------/       /     \      \------------------------------------------'
  *                    |      |      |      | /       /       \      \  |      |M_CODE|      |
  *                    |      |      |      |/       /         \      \ |      |      |      |

+ 4 - 2
keyboards/lily58/keymaps/ninjonas/config.h

@@ -26,6 +26,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 // #define MASTER_RIGHT
 // #define EE_HANDS
 
-#define SSD1306OLED
 #define USE_SERIAL_PD2
-#define TAPPING_FORCE_HOLD
+#define TAPPING_FORCE_HOLD
+
+#define OLED_FONT_H "keyboards/lily58/lib/glcdfont.c"
+#define OLED_DISABLE_TIMEOUT

+ 13 - 13
keyboards/lily58/keymaps/ninjonas/keymap.c

@@ -88,11 +88,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * ,------------------------------------------.                    ,------------------------------------------.
  * | F11  |  F1  |  F2  |  F3   |  F4  |  F5  |                    |  F6  |  F7  |  F8  |  F9  |  F10  | F12  |
  * |------+------+------+-------+------+------|                    |------+------+------+------+-------+------|
- * |      |      |      |KC_BRIU| Play | Mute |                    | PgUp | Home |  Up  | End  |       |      |
+ * |      |      |KC_BRIU| Play | Mute |      |                    | PgUp | Home |  Up  | End  |       |K_MDSH|
  * |------+------+------+-------+------+------|                    |------+------+------+------+-------+------|
- * |      |      |      |KC_BRID| Next |VolUp |-------.    ,-------| PgDn | Left | Down |Right |K_LOCK |      |
+ * |      |      |KC_BRID| Next |VolUp |      |-------.    ,-------| PgDn | Left | Down |Right |K_LOCK |      |
  * |------+------+------+-------+------+------|       |    |       |------+------+------+------+-------+------|
- * |M_SHFT|      |      |       | Prev |VolDn |-------|    |-------|      |      |      |      |M_ZOOM |M_PYNV|
+ * |M_SHFT|      |      | Prev  |VolDn |      |-------|    |-------|      |      |      |      |M_ZOOM |M_PYNV|
  * `------------------------------------------/       /     \      \------------------------------------------'
  *                    |      |      |      | /       /       \      \  |      |M_CODE|      |
  *                    |      |      |      |/       /         \      \ |      |      |      |
@@ -100,9 +100,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  */
 [_LOWER] = LAYOUT_wrapper( \
 	_____________________FUNC_LEFT______________________,                     _____________________FUNC_RIGHT_____________________, \
-	_______, _______, _______, _________MEDIA_1_________,                     _______________NAV_1______________, _______, _______, \
-	_______, _______, _______, _________MEDIA_2_________,                     _______________NAV_2______________, K_LOCK,  _______, \
-	M_SHFT,  _______, _______, _________MEDIA_3_________, _______,   _______, _______, _______, _______, _______, M_ZOOM,  M_PYNV, \
+	_______, _______, _________MEDIA_1_________, _______,                     _______________NAV_1______________, _______,  K_MDSH, \
+	_______, _______, _________MEDIA_2_________, _______,                     _______________NAV_2______________, K_LOCK,  _______, \
+	M_SHFT,  _______, _________MEDIA_3_________, _______, _______,   _______, _______, _______, _______, _______, M_ZOOM,  M_PYNV, \
 	                           __________________________________,   _______, _______, M_CODE,  _______ \
 	),
 
@@ -132,20 +132,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * ,------------------------------------------.                    ,-----------------------------------------.
  * |EEP_RST|      |      |      |      |      |                    |      |      |      |COLMAK|DVORAK|QWERTY|
  * |-------+------+------+------+------+------|                    |------+------+------+------+------+------|
- * | M_MAKE|      |      |      |      |      |                    |      |      |      |      |      |      |
+ * |M_MAKE |      |      |      |      |      |                    |      |      |      |      |      |      |
  * |-------+------+------+------+------+------|                    |------+------+------+------+------+------|
- * | M_VRSN|      |      |      |      |      |-------.    ,-------|      |      |      |      |      |      |
+ * |M_VRSN |M_MALL|      |      |      |      |-------.    ,-------|      |      |      |      |      |      |
  * |-------+------+------+------+------+------|       |    |       |------+------+------+------+------+------|
- * | M_FLSH|      |      |      |      |      |-------|    |-------|      |      |      |      |      |      |
+ * |M_FLSH |      |      |      |      |      |-------|    |-------|      |      |      |      |      |      |
  * `------------------------------------------/       /     \      \-----------------------------------------'
- *                   |      |      |      | /       /       \      \  |      |      |      |
- *                   |      |      |      |/       /         \      \ |      |      |      |
- *                   `----------------------------'           '------''--------------------'
+ *                    |      |      |      | /       /       \      \  |      |      |      |
+ *                    |      |      |      |/       /         \      \ |      |      |      |
+ *                    `----------------------------'           '------''--------------------'
  */
 [_ADJUST] = LAYOUT_wrapper( \
   EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                        XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK,  DVORAK,  QWERTY, \
   M_MAKE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
-  M_VRSN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
+  M_VRSN, M_MALL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,                        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
   M_FLSH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,      XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
                             __________________________________,      __________________________________ \
   ),

+ 0 - 37
keyboards/lily58/keymaps/ninjonas/layer_state_reader.c

@@ -1,37 +0,0 @@
-#include QMK_KEYBOARD_H
-#include <stdio.h>
-#include "lily58.h"
-#include "ninjonas.h"
-
-char layer_state_str[24];
-
-const char *read_layer_state(void) {
-  switch (biton32(layer_state))
-  {
-  case _RAISE:
-    snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Raise");
-    break;
-  case _LOWER:
-    snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Lower");
-    break;
-  case _ADJUST:
-    snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Adjust");
-    break;
-  default:
-    switch (biton32(default_layer_state)) {
-        case _COLEMAK:
-           snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Colemak");
-           break;
-        case _DVORAK:
-           snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Dvorak");
-           break;
-         case _QWERTY:
-            snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Qwerty");
-            break;
-        default:
-            snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%ld", layer_state);
-    }
-  }
-
-  return layer_state_str;
-}

+ 1 - 5
keyboards/lily58/keymaps/ninjonas/rules.mk

@@ -1,5 +1 @@
-# If you want to change the display of OLED, you need to change here
-SRC +=  ./lib/glcdfont.c \
-        layer_state_reader.c \
-        ./lib/logo_reader.c \
-        ./lib/keylogger.c \
+OLED_DRIVER_ENABLE = yes

+ 7 - 36
keyboards/pinky/3/keymaps/ninjonas/README.md

@@ -15,7 +15,7 @@ More information about the Pinky3 keyboard can be found [here](https://github.co
 |---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
 |    Shift|        Z|        X|        C|        V|        B|  Spc/RAI|  |  Ent/LOW|        N|        M|        ,|        .|        /|        =|
 `---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------'
-                              |      ALT|        |     CTRL|  Spc/NUM|  | Ent/FUNC| BckSpace|      Del|    LOWER|
+                              |      ALT|        |     CTRL|  KC_LAPP|  |  KC_RAPP| BckSpace|      Del|    LOWER|
                               `---------------------------------------'  `---------------------------------------'
 */
 ```
@@ -30,7 +30,7 @@ More information about the Pinky3 keyboard can be found [here](https://github.co
 |---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
 |    Shift|        ;|        Q|        J|        K|        X|  Spc/RAI|  |  Ent/LOW|        B|        M|        W|        V|        Z|        =|
 `---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------'
-                              |      ALT|        |     CTRL|  Spc/NUM|  | Ent/FUNC| BckSpace|      Del|    LOWER|
+                              |      ALT|        |     CTRL|  KC_LAPP|  |  KC_RAPP| BckSpace|      Del|    LOWER|
                               `---------------------------------------'  `---------------------------------------'
 */
 ```
@@ -45,7 +45,7 @@ More information about the Pinky3 keyboard can be found [here](https://github.co
 |---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
 |    Shift|        Z|        X|        C|        V|        B|  Spc/RAI|  |  Ent/LOW|        K|        M|        ,|        .|        /|        =|
 `---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------'
-                              |      ALT|        |     CTRL|  Spc/NUM|  | Ent/FUNC| BckSpace|      Del|    LOWER|
+                              |      ALT|        |     CTRL|  KC_LAPP|  |  KC_RAPP| BckSpace|      Del|    LOWER|
                               `---------------------------------------'  `---------------------------------------'
 */
 ```
@@ -54,7 +54,7 @@ More information about the Pinky3 keyboard can be found [here](https://github.co
 ```c
 /*
 ,---------------------------------------------------------------------.  ,---------------------------------------------------------------------.
-|         |         |         |    BriUp|     Play|     Mute|   K_CSCN|  |         |     PgUp|     Home|       Up|      End|         |         |
+|         |         |         |    BriUp|     Play|     Mute|   K_CSCN|  |         |     PgUp|     Home|       Up|      End|         |   K_MDSH|
 |---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
 |         |         |         |    BriDn|     Next|    VolUp|         |  |         |     PgDn|     Left|     Down|    Right|   K_LOCK|         |
 |---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
@@ -69,11 +69,11 @@ More information about the Pinky3 keyboard can be found [here](https://github.co
 ```c
 /*
 ,---------------------------------------------------------------------.  ,---------------------------------------------------------------------.
-|         |         |     MS_1|     MS_U|     MS_2|     WH_U|         |  |         |         |         |         |         |         |         |
+|        `|        1|        2|        3|        4|        5|         |  |         |        6|        7|        8|        9|        0|        -|
 |---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-|         |         |     MS_L|     MS_D|     MS_R|     WH_D|         |  |         |         |         |         |         |         |         |
+|        ~|        !|        @|        #|        $|        %|         |  |         |        ^|        &|        *|        (|        )|        _|
 |---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-|         |         |         |         |         |         |         |  |         |         |         |         |         |         |         |
+|      F11|       F2|       F3|       F4|       F4|       F5|         |  |         |       F6|       F7|       F8|       F9|      F10|      F12|
 `---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------'
                               |         |         |         |         |  |         |         |         |         |
                               `---------------------------------------'  `---------------------------------------'
@@ -95,35 +95,6 @@ More information about the Pinky3 keyboard can be found [here](https://github.co
 */
 ```
 
-### NUMBERS
-```c
-/*
-,---------------------------------------------------------------------.  ,---------------------------------------------------------------------.
-|        `|        1|        2|        3|        4|        5|         |  |         |        6|        7|        8|        9|        0|        -|
-|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-|        ~|        !|        @|        #|        $|        %|         |  |         |        ^|        &|        *|        (|        )|        _|
-|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-|         |         |         |         |         |         |         |  |         |         |         |         |         |         |         |
-`---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------'
-                              |         |         |         |         |  |         |         |         |         |
-                              `---------------------------------------'  `---------------------------------------'
-*/
-```
-
-### FUNCTIONS
-```c
-/*
-,---------------------------------------------------------------------.  ,---------------------------------------------------------------------.
-|      F11|       F2|       F3|       F4|       F4|       F5|         |  |         |       F6|       F7|       F8|       F9|      F10|      F12|
-|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-|         |         |         |         |         |         |         |  |         |         |         |         |         |         |         |
-|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-|         |         |         |         |         |         |         |  |         |         |         |         |         |         |         |
-`---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------'
-                              |         |         |         |         |  |         |         |         |         |
-                              `---------------------------------------'  `---------------------------------------'
-*/
-```
 <!--
 ### TEMPLATE
 ```c

+ 33 - 57
keyboards/pinky/3/keymaps/ninjonas/keymap.c

@@ -14,7 +14,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 #include QMK_KEYBOARD_H
-#include "ninjonas.h"		
+#include "ninjonas.h"
 
 // Each layer gets a name for readability, which is then used in the keymap matrix below.
 // The underscores don't mean anything - you can have a layer called STUFF or any other name.
@@ -25,110 +25,86 @@
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   [_QWERTY] = LAYOUT_wrapper(
   //,---------------------------------------------------------------------.  ,---------------------------------------------------------------------.
-            _____________________QWERTY_L1______________________,  KC_MPLY,     KC_MUTE, _____________________QWERTY_R1______________________,\
+            _____________________QWERTY_L1______________________,  KC_MPLY,     KC_MUTE, _____________________QWERTY_R1______________________,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-            _____________________QWERTY_L2______________________,   T_LBRC,      T_RBRC, _____________________QWERTY_R2______________________,\
+            _____________________QWERTY_L2______________________,   T_LBRC,      T_RBRC, _____________________QWERTY_R2______________________,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-            _____________________QWERTY_L3______________________,   LT_RAI,      LT_LOW, _____________________QWERTY_R3______________________,\
+            _____________________QWERTY_L3______________________,   LT_RAI,      LT_LOW, _____________________QWERTY_R3______________________,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-                                       ________MOD_LEFT_________,   LT_NUM,     LT_FUNC,  ________MOD_RIGHT________ \
+                                   ________MOD_LEFT_________,       K_LAPP,   K_RAPP,   ________MOD_RIGHT________
                                 //`---------------------------------------'  `---------------------------------------'
   ),
 
   [_DVORAK] = LAYOUT_wrapper(
   //,---------------------------------------------------------------------.  ,---------------------------------------------------------------------.
-            _____________________DVORAK_L1______________________,  KC_MPLY,     KC_MUTE, _____________________DVORAK_R1______________________,\
+            _____________________DVORAK_L1______________________,  KC_MPLY,     KC_MUTE, _____________________DVORAK_R1______________________,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-            _____________________DVORAK_L2______________________,   T_LBRC,      T_RBRC, _____________________DVORAK_R2______________________,\
+            _____________________DVORAK_L2______________________,   T_LBRC,      T_RBRC, _____________________DVORAK_R2______________________,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-            _____________________DVORAK_L3______________________,   LT_RAI,      LT_LOW, _____________________DVORAK_R3______________________,\
+            _____________________DVORAK_L3______________________,   LT_RAI,      LT_LOW, _____________________DVORAK_R3______________________,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-                                       ________MOD_LEFT_________,   LT_NUM,     LT_FUNC,  ________MOD_RIGHT________ \
+                                   ________MOD_LEFT_________,       K_LAPP,   K_RAPP,   ________MOD_RIGHT________
                                 //`---------------------------------------'  `---------------------------------------'
   ),
 
   [_COLEMAK] = LAYOUT_wrapper(
   //,---------------------------------------------------------------------.  ,---------------------------------------------------------------------.
-            _____________________COLEMAK_L1_____________________,  KC_MPLY,     KC_MUTE, _____________________COLEMAK_R1_____________________,\
+            _____________________COLEMAK_L1_____________________,  KC_MPLY,     KC_MUTE, _____________________COLEMAK_R1_____________________,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-            _____________________COLEMAK_L2_____________________,   T_LBRC,      T_RBRC, _____________________COLEMAK_R2_____________________,\
+            _____________________COLEMAK_L2_____________________,   T_LBRC,      T_RBRC, _____________________COLEMAK_R2_____________________,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-            _____________________COLEMAK_L3_____________________,   LT_RAI,      LT_LOW, _____________________COLEMAK_R3_____________________,\
+            _____________________COLEMAK_L3_____________________,   LT_RAI,      LT_LOW, _____________________COLEMAK_R3_____________________,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-                                       ________MOD_LEFT_________,   LT_NUM,     LT_FUNC,  ________MOD_RIGHT________ \
+                                   ________MOD_LEFT_________,       K_LAPP,   K_RAPP,   ________MOD_RIGHT________
                                 //`---------------------------------------'  `---------------------------------------'
   ),
 
-  [_LOWER] = LAYOUT_wrapper( \
+  [_LOWER] = LAYOUT_wrapper(
   //,---------------------------------------------------------------------.  ,---------------------------------------------------------------------.
-       XXXXXXX,  XXXXXXX,  XXXXXXX,    _________MEDIA_1_________,   K_CSCN,     XXXXXXX, _______________NAV_1______________,      XXXXXXX,  XXXXXXX,\
+       XXXXXXX,  XXXXXXX,  _________MEDIA_1_________,    XXXXXXX,   K_CSCN,     XXXXXXX, _______________NAV_1______________,      XXXXXXX,  K_MDSH,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-       XXXXXXX,  XXXXXXX,  XXXXXXX,    _________MEDIA_2_________,  XXXXXXX,     XXXXXXX, _______________NAV_2______________,       K_LOCK,  XXXXXXX,\
+       XXXXXXX,  XXXXXXX,  _________MEDIA_2_________,    XXXXXXX,  XXXXXXX,     XXXXXXX, _______________NAV_2______________,       K_LOCK,  XXXXXXX,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-        M_SHFT,  XXXXXXX,  XXXXXXX,    _________MEDIA_3_________,  _______,     _______,  XXXXXXX,  _______,  XXXXXXX,  XXXXXXX,   M_ZOOM,   M_PYNV,\
+        M_SHFT,  XXXXXXX,  _________MEDIA_3_________,    XXXXXXX,  _______,     _______,  XXXXXXX,  _______,  XXXXXXX,  XXXXXXX,   M_ZOOM,   M_PYNV,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-                                        __________________________________,     _______,  _______,   M_CODE,  _______ \
+                                        __________________________________,     _______,  _______,   M_CODE,  _______
                                 //`---------------------------------------'  `---------------------------------------'
   ),
 
-  [_RAISE] = LAYOUT_wrapper( \
+  [_RAISE] = LAYOUT_wrapper(
   //,---------------------------------------------------------------------.  ,---------------------------------------------------------------------.
-       XXXXXXX,  XXXXXXX,     _____________MOUSE_1______________,  XXXXXXX,     XXXXXXX,  _____________________XXXXXXX________________________,\
+            _____________________NUM_LEFT_______________________,  XXXXXXX,     XXXXXXX,  _____________________NUM_RIGHT______________________,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-       XXXXXXX,  XXXXXXX,     _____________MOUSE_2______________,  XXXXXXX,     XXXXXXX,  _____________________XXXXXXX________________________,\
+            _____________________SYM_LEFT_______________________,  XXXXXXX,     XXXXXXX,  _____________________SYM_RIGHT______________________,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-            _____________________XXXXXXX________________________,  _______,     _______,  _____________________XXXXXXX________________________,\
+            _____________________FUNC_LEFT______________________,  _______,     _______,  _____________________FUNC_RIGHT_____________________,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-                                        __________________________________,     __________________________________ \
+                                        __________________________________,     __________________________________
                                 //`---------------------------------------'  `---------------------------------------'
   ),
 
-  [_ADJUST] = LAYOUT_wrapper( \
+  [_ADJUST] = LAYOUT_wrapper(
   //,---------------------------------------------------------------------.  ,---------------------------------------------------------------------.
-        M_MAKE,  EEP_RST,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,     XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  COLEMAK,   DVORAK,   QWERTY,\
+        M_MAKE,  EEP_RST,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,     XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  COLEMAK,   DVORAK,   QWERTY,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-        M_VRSN,       _____________________XXXXXXX________________________,     XXXXXXX,  _____________________XXXXXXX________________________,\
+        M_VRSN,   M_MALL,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,     XXXXXXX,  _____________________XXXXXXX________________________,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-        M_FLSH,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  _______,     _______,  _____________________XXXXXXX________________________,\
+        M_FLSH,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  XXXXXXX,  _______,     _______,  _____________________XXXXXXX________________________,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-                                        __________________________________,     __________________________________ \
-                                //`---------------------------------------'  `---------------------------------------'
-  ),
-
-  [_NUMBERS] = LAYOUT_wrapper( \
-  //,---------------------------------------------------------------------.  ,---------------------------------------------------------------------.
-            _____________________NUM_LEFT_______________________,  XXXXXXX,     XXXXXXX,  _____________________NUM_RIGHT______________________,\
-  //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-            _____________________SYM_LEFT_______________________,  XXXXXXX,     XXXXXXX,  _____________________SYM_RIGHT______________________,\
-  //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-            ____________________________________________________,  _______,     _______,  ____________________________________________________,\
-  //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-                                        __________________________________,     __________________________________ \
-                                //`---------------------------------------'  `---------------------------------------'
-  ),
-
-  [_FUNCTIONS] = LAYOUT_wrapper( \
-  //,---------------------------------------------------------------------.  ,---------------------------------------------------------------------.
-            _____________________FUNC_LEFT______________________,  XXXXXXX,     XXXXXXX,  _____________________FUNC_RIGHT_____________________,\
-  //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-            _____________________XXXXXXX________________________,  XXXXXXX,     XXXXXXX,  _____________________XXXXXXX________________________,\
-  //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-            _____________________XXXXXXX________________________,  _______,     _______,  _____________________XXXXXXX________________________,\
-  //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-                                        __________________________________,     __________________________________ \
+                                        __________________________________,     __________________________________
                                 //`---------------------------------------'  `---------------------------------------'
   ),
 
   /*
-  [_TEMPLATE] = LAYOUT( \
+  [_TEMPLATE] = LAYOUT(
   //,---------------------------------------------------------------------.  ,---------------------------------------------------------------------.
-       _______,  _______,  _______,  _______,  _______,  _______,  _______,     _______,  _______,  _______,  _______,  _______,  _______,  _______,\
+       _______,  _______,  _______,  _______,  _______,  _______,  _______,     _______,  _______,  _______,  _______,  _______,  _______,  _______,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-       _______,  _______,  _______,  _______,  _______,  _______,  _______,     _______,  _______,  _______,  _______,  _______,  _______,  _______,\
+       _______,  _______,  _______,  _______,  _______,  _______,  _______,     _______,  _______,  _______,  _______,  _______,  _______,  _______,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-       _______,  _______,  _______,  _______,  _______,  _______,  _______,     _______,  _______,  _______,  _______,  _______,  _______,  _______,\
+       _______,  _______,  _______,  _______,  _______,  _______,  _______,     _______,  _______,  _______,  _______,  _______,  _______,  _______,
   //|---------+---------+---------+---------+---------+---------+---------|  |---------+---------+---------+---------+---------+---------+---------|
-                                     _______,  _______,  _______,  _______,     _______,  _______,  _______,  _______ \
+                                     _______,  _______,  _______,  _______,     _______,  _______,  _______,  _______
                                 //`---------------------------------------'  `---------------------------------------'
   )
   */

+ 2 - 0
keyboards/pinky/3/keymaps/ninjonas/rules.mk

@@ -0,0 +1,2 @@
+MOUSEKEY_ENABLE = no
+LINK_TIME_OPTIMIZATION_ENABLE = yes

+ 16 - 8
users/ninjonas/README.md

@@ -6,27 +6,35 @@ See: https://docs.qmk.fm/#/feature_userspace
 - ninjonas [QMK user configuration](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_userspace.md)
 - On `keymap.c` include `ninjonas.h`
   ```c
-  #include "ninjonas.h"     
+  #include "ninjonas.h"
   ```
 
+## Supported Keyboards
+- [Crkbd ](../../keyboards/crkbd/keymaps/ninjonas)
+- [Hotdox](../../keyboards/hotdox/keymaps/ninjonas)
+- [Pinky3](../../keyboards/pinky/3/keymaps/ninjonas)
+- [Lily58](../../keyboards/lily58/keymaps/ninjonas)
+
 ## Features
-### [Keys](ninjonas.h#L44)
+### [Keys](ninjonas.h#L40)
 |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 |
 
-### [Layers](ninjonas.h#L48)
+### [Layers](ninjonas.h#L47)
 |Code | Description |
 |---|---|
 |LT_LOW | Tap for ENTER, hold for RAISE |
-|LT_FUNC | Tap for ENTER, hold for FUNCTIONS |
 |LT_RAI | Tap for SPACE, hold for LOWER |
-|LT_NUM | Tap for SPACE, hold for NUMBERS |
 |LT_LOW + LT_RAI | Hold for ADJUST  |
-|L_LOWER | Dedicated key to momentarily toggle to use LOWER layer |
+|LM_LOW | Dedicated key to momentarily toggle to use LOWER layer |
+|LM_RAI | Dedicated key to momentarily toggle to use RAISE layer |
 
-### [Layout Blocks](ninjonas.h#L57)
+### [Layout Blocks](ninjonas.h#L53)
 Predefined keyboard layout templates to speed up configuring split keyboards
 
 |Code | Description |
@@ -69,7 +77,7 @@ There's times where you have macros you don't want to share like emails, passwor
 
 ```c
 // secrets.c
-#include "ninjonas.h" 
+#include "ninjonas.h"
 
 bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
   switch (keycode) {

+ 1 - 49
users/ninjonas/ninjonas.c

@@ -17,52 +17,4 @@
 
 layer_state_t layer_state_set_user (layer_state_t state) {
   return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
-}
-
-// BEGIN: SSD1306OLED
-// SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
-#if defined(KEYBOARD_lily58_rev1) & defined(PROTOCOL_LUFA)
-extern uint8_t is_master;
-
-void matrix_init_user(void) {
-    //SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
-    iota_gfx_init(!has_usb());   // turns on the display
-}
-
-// When add source files to SRC in rules.mk, you can use functions.
-const char *read_layer_state(void);
-const char *read_logo(void);
-//void set_keylog(uint16_t keycode, keyrecord_t *record); // Moved to process_records.h
-const char *read_keylog(void);
-const char *read_keylogs(void);
-
-void matrix_scan_user(void) {
-   iota_gfx_task();
-}
-
-void matrix_render_user(struct CharacterMatrix *matrix) {
-  if (is_master) {
-    // If you want to change the display of OLED, you need to change here
-    matrix_write_ln(matrix, read_layer_state());
-    matrix_write_ln(matrix, read_keylog());
-    matrix_write_ln(matrix, read_keylogs());
-  } else {
-    matrix_write(matrix, read_logo());
-  }
-}
-
-void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) {
-  if (memcmp(dest->display, source->display, sizeof(dest->display))) {
-    memcpy(dest->display, source->display, sizeof(dest->display));
-    dest->dirty = true;
-  }
-}
-
-void iota_gfx_task_user(void) {
-  struct CharacterMatrix matrix;
-  matrix_clear(&matrix);
-  matrix_render_user(&matrix);
-  matrix_update(&display, &matrix);
-}
-#endif
-// END: SSD1306OLED
+}

+ 6 - 10
users/ninjonas/ninjonas.h

@@ -36,23 +36,19 @@
 #define _LOWER 3
 #define _RAISE 4
 #define _ADJUST 5
-#ifdef KEYBOARD_pinky_3
-  #define _NUMBERS 6
-  #define _FUNCTIONS 7
-#endif
 
 // Shortcut Keys
 #define K_LOCK LGUI(LCTL(KC_Q)) // Locks screen on MacOS
 #define K_CSCN LGUI(LCTL(LSFT(KC_4))) // Copy a portion of the screen to the clipboard
+#define K_MDSH LSFT(LALT(KC_MINS))
+#define K_LAPP SGUI(KC_TAB) //  + Shift + Tab
+#define K_RAPP LGUI(KC_TAB) //  + Tab
 
 // Layer Keys
-#define L_LOWER MO(_LOWER)
+#define LM_LOW MO(_LOWER)
+#define LM_RAI MO(_RAISE)
 #define LT_LOW LT(_LOWER, KC_ENT)
 #define LT_RAI LT(_RAISE, KC_SPC)
-#ifdef KEYBOARD_pinky_3
-  #define LT_NUM LT(_NUMBERS, KC_SPC)
-  #define LT_FUNC LT(_FUNCTIONS, KC_ENT)
-#endif
 
 // Layout blocks
 #define _____________________QWERTY_L1______________________ T_TAB, T_Q, T_W, KC_E, KC_R, KC_T
@@ -105,7 +101,7 @@
 #define _________MEDIA_3_________ XXXXXXX, KC_MRWD, KC__VOLDOWN
 
 #define ________MOD_LEFT_________ KC_LALT, T_GUI, KC_LCTL
-#define ________MOD_RIGHT________ KC_BSPC, KC_DEL, L_LOWER
+#define ________MOD_RIGHT________ KC_BSPC, KC_DEL, LM_LOW
 
 // Layout wrappers
 #define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)

+ 82 - 0
users/ninjonas/oled.c

@@ -0,0 +1,82 @@
+#include QMK_KEYBOARD_H
+#include <stdio.h>
+#include "ninjonas.h"
+
+#ifdef OLED_DRIVER_ENABLE
+
+static uint16_t oled_timer = 0;
+extern uint8_t is_master;
+
+bool process_record_oled(uint16_t keycode, keyrecord_t *record) { 
+    if (record->event.pressed) {
+        oled_timer = timer_read();
+    }	    
+    return true;
+}
+
+void render_default_layer_state(void) {
+  oled_write_P(PSTR("Layout: "), false);
+  switch (biton32(default_layer_state)) {
+      case _COLEMAK:
+        oled_write_P(PSTR("Colemak"), false);
+        break;
+      case _DVORAK:
+        oled_write_P(PSTR("Dvorak"), false);
+        break;
+      case _QWERTY:
+        oled_write_P(PSTR("Qwerty"), false);
+        break;
+      default:
+        oled_write_ln_P(PSTR("Undefined"), false);
+  }
+}
+
+void render_layer_state(void) {
+    oled_write_P(PSTR("\nLayer:"), false);
+    oled_write_P(PSTR(" LOW"), layer_state_is(_LOWER));
+    oled_write_P(PSTR(" RAI"), layer_state_is(_RAISE));
+    oled_write_P(PSTR(" ADJ"), layer_state_is(_ADJUST));
+}
+
+void render_mod_status(uint8_t modifiers) {
+    oled_write_P(PSTR("\nMods: "), false);
+    oled_write_P(PSTR("SHF "), (modifiers & MOD_MASK_SHIFT));
+    oled_write_P(PSTR("CTL "), (modifiers & MOD_MASK_CTRL));
+    oled_write_P(PSTR("ALT "), (modifiers & MOD_MASK_ALT));
+    oled_write_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI));
+}
+
+void render_status(void){
+  render_default_layer_state();
+  render_layer_state();
+  render_mod_status(get_mods()|get_oneshot_mods());
+}
+
+static void render_logo(void) {
+  static const char PROGMEM qmk_logo[] = {
+      0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
+      0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
+      0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
+      0};
+
+  oled_write_P(qmk_logo, false);
+}
+
+void oled_task_user(void) {
+    if (timer_elapsed(oled_timer) > 30000) {
+        oled_off();
+        return;
+    }
+    #ifndef SPLIT_KEYBOARD
+    else { oled_on(); }
+    #endif
+    
+    if (is_master) {
+        render_status();     
+    } else {
+        render_logo();       
+        oled_scroll_left();  
+    }
+}
+
+#endif

+ 14 - 2
users/ninjonas/process_records.c

@@ -6,10 +6,15 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true;
 __attribute__((weak))
 bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { return true; }
 
+#ifdef OLED_DRIVER_ENABLE
+__attribute__((weak))
+bool process_record_oled(uint16_t keycode, keyrecord_t *record) { return true; }
+#endif
+
 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
   if (record->event.pressed) {
-    #ifdef SSD1306OLED
-    set_keylog(keycode, record);
+    #ifdef OLED_DRIVER_ENABLE
+    process_record_oled(keycode, record);
     #endif
   }
 
@@ -42,6 +47,13 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
       }
       break;
 
+    // Sends QMK make command to compile all keyboards
+    case M_MALL:
+     if (record->event.pressed) {
+        SEND_STRING("rm -f *.hex && rm -rf .build/ && make crkbd:ninjonas lily58:ninjonas hotdox:ninjonas pinky/3:ninjonas\n");
+      }
+      break;
+
     // Sends QMK make command with the correct bootloader
     case M_FLSH:
       if (!record->event.pressed) {

+ 1 - 0
users/ninjonas/process_records.h

@@ -11,6 +11,7 @@ enum custom_keycodes {
   M_PYNV,
   M_SHFT,
   M_MAKE,
+  M_MALL,
   M_FLSH,
   M_VRSN,
   M_CODE,

+ 2 - 7
users/ninjonas/rules.mk

@@ -3,15 +3,10 @@ MOUSEKEY_ENABLE = yes       # Mouse keys(+4700)
 EXTRAKEY_ENABLE = yes       # Audio control and System control(+450)
 TAP_DANCE_ENABLE = yes      # Enable Tap Dance.
 
-Link_Time_Optimization = no # if firmware size over limit, try this option
-
-ifeq ($(strip $(Link_Time_Optimization)),yes)
-    EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
-endif
-
 SRC += ninjonas.c \
        process_records.c \
-       tap_dances.c
+       tap_dances.c \
+       oled.c
 
 ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
     SRC += secrets.c