diff options
Diffstat (limited to 'users/ninjonas')
-rw-r--r-- | users/ninjonas/.gitignore | 1 | ||||
-rw-r--r-- | users/ninjonas/README.md | 117 | ||||
-rw-r--r-- | users/ninjonas/combos.c | 55 | ||||
-rw-r--r-- | users/ninjonas/config.h | 20 | ||||
-rw-r--r-- | users/ninjonas/encoder.c | 105 | ||||
-rw-r--r-- | users/ninjonas/ninjonas.c | 39 | ||||
-rw-r--r-- | users/ninjonas/ninjonas.h | 148 | ||||
-rw-r--r-- | users/ninjonas/oled.c | 112 | ||||
-rw-r--r-- | users/ninjonas/process_records.c | 117 | ||||
-rw-r--r-- | users/ninjonas/process_records.h | 30 | ||||
-rw-r--r-- | users/ninjonas/rules.mk | 16 | ||||
-rw-r--r-- | users/ninjonas/tap_dances.c | 122 | ||||
-rw-r--r-- | users/ninjonas/tap_dances.h | 37 |
13 files changed, 0 insertions, 919 deletions
diff --git a/users/ninjonas/.gitignore b/users/ninjonas/.gitignore deleted file mode 100644 index c6df8c0139..0000000000 --- a/users/ninjonas/.gitignore +++ /dev/null @@ -1 +0,0 @@ -secrets.c diff --git a/users/ninjonas/README.md b/users/ninjonas/README.md deleted file mode 100644 index f6c2f32352..0000000000 --- a/users/ninjonas/README.md +++ /dev/null @@ -1,117 +0,0 @@ -# QMK User Configuration for [ninjonas](https://github.com/ninjonas/qmk-yonas) -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 - -## [ninjonas.c](ninjonas.c) -- 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" - ``` - -## Supported Keyboards -- [Crkbd ](../../keyboards/crkbd/keymaps/ninjonas) -- [Hotdox](../../keyboards/hotdox/keymaps/ninjonas) -- [Pinky3](../../keyboards/pinky/3/keymaps/ninjonas) -- [Lily58](../../keyboards/lily58/keymaps/ninjonas) -- [Kyria](../../keyboards/kyria/keymaps/ninjonas) - -## Features -### [Keys](ninjonas.h) -|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_CPRF | Cmd + Shift + M. Used for switching Google Chrome profiles | - -### [Layers](ninjonas.h) -|Code | Description | -|---|---| -|LT_LOW | Tap for ENTER, hold for RAISE | -|LT_RAI | Tap for SPACE, hold for LOWER | - -### [Mod-Taps](ninjonas.h) -|Code | Description | -|---|---| -|MT_DEL | Tap for Delete, hold for ALT + SHIFT | -|MT_EQL | Tap for =, SHIFT | - -### [Layout Blocks](ninjonas.h) -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 | - -### [Macros](process_records.c) -|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](#Supported%20Keyboards) 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](https://github.com/fikovnik/ShiftIt) | -|M_CODE | Opens [Visual Studio Code](https://code.visualstudio.com/) on current directory | -|M_TERM | Launches Spotlight and calls Terminal | -|M_XXX1 to M_XXX5 | Reserved for secret macros see [Secrets](#secrets) | - -### [Tap-Dance](tap_dances.h) -|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_CPAP | Tap for Cmd + V, hold for Cmd + C, double tap to open [Line](https://line.me/en/) app, triple tap for itunes. | -|T_Y | Tap for Y, double tap for NUMPAD layer | - -### [Combos](combos.h) -|Code | Description | -|---|---| -|EQ_QUIT | Press E + Q will trigger Cmd + Q | -|RW_CLOSE | Press R + W will trigger Cmd + W| -|ET_TAB | Press E + T will trigger Cmd + T| -|ZC_COPY | Press Z + C will trigger Cmd + C| -|XV_PASTE | Press X + V will trigger Cmd + V| - -### 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](https://github.com/qmk/qmk_firmware/blob/master/users/drashna/readme_secrets.md), 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. - -```c -// 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; -} - -```
\ No newline at end of file diff --git a/users/ninjonas/combos.c b/users/ninjonas/combos.c deleted file mode 100644 index 3346af4ce4..0000000000 --- a/users/ninjonas/combos.c +++ /dev/null @@ -1,55 +0,0 @@ -#include "ninjonas.h" - -#ifdef COMBO_ENABLE -enum combo_events { - EQ_QUIT, - RW_CLOSE, - QT_TAB, - ZC_COPY, - XV_PASTE -}; - -const uint16_t PROGMEM quit_combo[] = {KC_E, KC_Q, COMBO_END}; -const uint16_t PROGMEM close_combo[] = {KC_R, KC_W, COMBO_END}; -const uint16_t PROGMEM tab_combo[] = {KC_Q, KC_T, COMBO_END}; -const uint16_t PROGMEM copy_combo[] = {KC_Z, KC_C, COMBO_END}; -const uint16_t PROGMEM paste_combo[] = {KC_X, KC_V, COMBO_END}; - -combo_t key_combos[] = { - [EQ_QUIT] = COMBO_ACTION(quit_combo), - [RW_CLOSE] = COMBO_ACTION(close_combo), - [QT_TAB] = COMBO_ACTION(tab_combo), - [ZC_COPY] = COMBO_ACTION(copy_combo), - [XV_PASTE] = COMBO_ACTION(paste_combo), -}; - -void process_combo_event(uint16_t combo_index, bool pressed) { - switch(combo_index) { - case EQ_QUIT: - if (pressed) { - tap_code16(LGUI(KC_Q)); - } - break; - case RW_CLOSE: - if (pressed) { - tap_code16(LGUI(KC_W)); - } - break; - case QT_TAB: - if (pressed) { - tap_code16(LGUI(KC_T)); - } - break; - case ZC_COPY: - if (pressed) { - tap_code16(LGUI(KC_C)); - } - break; - case XV_PASTE: - if (pressed) { - tap_code16(LGUI(KC_V)); - } - break; - } -} -#endif diff --git a/users/ninjonas/config.h b/users/ninjonas/config.h deleted file mode 100644 index 17bb03865c..0000000000 --- a/users/ninjonas/config.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifdef TAPPING_TERM - #undef TAPPING_TERM - #define TAPPING_TERM 200 -#endif -#define TAPPING_TERM_PER_KEY - -// Mouse Settings: Smoothing out mouse movement on keypress -#ifndef MOUSEKEY_INTERVAL - #undef MOUSEKEY_INTERVAL - #define MOUSEKEY_INTERVAL 16 -#endif -#define MOUSEKEY_DELAY 0 -#define MOUSEKEY_TIME_TO_MAX 60 -#define MOUSEKEY_MAX_SPEED 7 -#define MOUSEKEY_WHEEL_DELAY 0 - -#ifdef COMBO_ENABLE - #undef COMBO_TERM - #define COMBO_TERM 60 -#endif diff --git a/users/ninjonas/encoder.c b/users/ninjonas/encoder.c deleted file mode 100644 index f1b448b79b..0000000000 --- a/users/ninjonas/encoder.c +++ /dev/null @@ -1,105 +0,0 @@ -/* Copyright 2020 ninjonas - * - * 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/>. - */ -#include "ninjonas.h" - -#ifdef ENCODER_ENABLE -void left_encoder_cw(void) { - switch (get_highest_layer(layer_state)) { - case _LOWER: - tap_code16(LGUI(KC_TAB)); - break; - case _RAISE: - tap_code(KC_PGDN); - break; - case _ADJUST: - rgblight_decrease_hue(); - break; - default: - tap_code(KC_BRID); - break; - } -} -void left_encoder_acw(void) { - switch (get_highest_layer(layer_state)) { - case _LOWER: - tap_code16(SGUI(KC_TAB)); - break; - case _RAISE: - tap_code(KC_PGUP); - break; - case _ADJUST: - rgblight_increase_hue(); - break; - default: - tap_code(KC_BRIU); - break; - } -} -void right_encoder_cw(void) { - switch (get_highest_layer(layer_state)) { - case _LOWER: - tap_code(KC_DOWN); - break; - case _RAISE: - tap_code16(LCTL(LSFT(KC_TAB))); - break; - case _ADJUST: - rgblight_decrease_val(); - break; - default: - tap_code(KC_VOLD); - break; - } -} -void right_encoder_acw(void) { - switch (get_highest_layer(layer_state)) { - case _LOWER: - tap_code(KC_UP); - break; - case _RAISE: - tap_code16(LCTL(KC_TAB)); - break; - case _ADJUST: - rgblight_increase_val(); - break; - default: - tap_code(KC_VOLU); - break; - } -} - -bool encoder_update_user(uint8_t index, bool clockwise) { - encoder_rotated_timer = timer_read(); - if (index == 0) { - left_encoder_rotated = true; - if (clockwise) { - left_encoder_cw(); - } else { - left_encoder_acw(); - } - } - else if (index == 1) { - right_encoder_rotated = true; - if (clockwise) { - right_encoder_cw(); - } else { - right_encoder_acw(); - } - } - return true; -} - -#endif diff --git a/users/ninjonas/ninjonas.c b/users/ninjonas/ninjonas.c deleted file mode 100644 index 8d37641aa3..0000000000 --- a/users/ninjonas/ninjonas.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2019 @ninjonas - * - * 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/>. - */ -#include "ninjonas.h" - -layer_state_t layer_state_set_user (layer_state_t state) { - return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); -} - -#ifdef RGBLIGHT_ENABLE -extern rgblight_config_t rgblight_config; -#endif -void keyboard_post_init_user(void) { - #ifdef RGBLIGHT_ENABLE - // Cycles through the entire hue wheel and resetting to default color - uint16_t default_hue = rgblight_config.hue; - rgblight_enable_noeeprom(); - layer_state_set_user(layer_state); - rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); - for (uint16_t i = 255; i > 0; i--) { - rgblight_sethsv_noeeprom((i + default_hue) % 255, rgblight_config.sat, rgblight_config.val); - matrix_scan(); - wait_ms(10); - } - #endif - layer_state_set_user(layer_state); -} diff --git a/users/ninjonas/ninjonas.h b/users/ninjonas/ninjonas.h deleted file mode 100644 index 01df7c6b12..0000000000 --- a/users/ninjonas/ninjonas.h +++ /dev/null @@ -1,148 +0,0 @@ -/* Copyright 2019 @ninjonas - * - * 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 -#include "quantum.h" -#include "version.h" -#include "eeprom.h" -#include "process_records.h" - -#ifdef TAP_DANCE_ENABLE - #include "tap_dances.h" -#endif -#if defined(KEYBOARD_lily58_rev1) & defined(PROTOCOL_LUFA) - #include "lufa.h" - #include "split_util.h" -#endif - -#ifdef ENCODER_ENABLE -bool left_encoder_rotated; -bool right_encoder_rotated; -uint16_t encoder_rotated_timer; -#endif - -#define _QWERTY 0 -#define _DVORAK 1 -#define _COLEMAK 2 -#define _LOWER 3 -#define _RAISE 4 -#define _ADJUST 5 -#define _NUMPAD 6 - -// 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_CPRF LGUI(LSFT(KC_M)) // Cmd + Shift + M. Used for switching Google Chrome profiles -#define K_MDSH LSFT(LALT(KC_MINS)) - -// Layer Keys -#define LT_LOW LT(_LOWER, KC_ENT) -#define LT_RAI LT(_RAISE, KC_SPC) - -// Mod-Tap Keys -#define MT_DEL MT(MOD_LALT | MOD_LSFT, KC_DEL) -#define MT_EQL MT(MOD_RSFT, KC_EQL) - -// Layout blocks -#define _____________________QWERTY_L1______________________ T_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T -#define _____________________QWERTY_L2______________________ T_ESC, KC_A, KC_S, KC_D, KC_F, KC_G -#define _____________________QWERTY_L3______________________ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B - -#define _____________________QWERTY_R1______________________ T_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS -#define _____________________QWERTY_R2______________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT -#define _____________________QWERTY_R3______________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT_EQL - -#define _____________________DVORAK_L1______________________ T_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y -#define _____________________DVORAK_L2______________________ T_ESC, KC_A, KC_O, KC_E, KC_U, KC_I -#define _____________________DVORAK_L3______________________ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X - -#define _____________________DVORAK_R1______________________ KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS -#define _____________________DVORAK_R2______________________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH -#define _____________________DVORAK_R3______________________ KC_B, KC_M, KC_W, KC_V, KC_Z, MT_EQL - -#define _____________________COLEMAK_L1_____________________ T_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G -#define _____________________COLEMAK_L2_____________________ T_ESC, KC_A, KC_R, KC_S, KC_T, KC_D -#define _____________________COLEMAK_L3_____________________ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B - -#define _____________________COLEMAK_R1_____________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS -#define _____________________COLEMAK_R2_____________________ KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT -#define _____________________COLEMAK_R3_____________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT_EQL - -#define _____________________NUM_LEFT_______________________ T_GRV, KC_1, KC_2, KC_3, KC_4, KC_5 -#define _____________________NUM_RIGHT______________________ KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS - -#define _____________________FUNC_LEFT______________________ KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5 -#define _____________________FUNC_RIGHT_____________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12 - -#define _____________________SYM_LEFT_______________________ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC -#define _____________________SYM_RIGHT______________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS - -#define _____________________LOWER_L1_______________________ M_XXX2, M_XXX3, _________MEDIA_1_________, K_CSCN -#define _____________________LOWER_L2_______________________ M_XXX4, M_XXX5, _________MEDIA_2_________, XXXXXXX -#define _____________________LOWER_L3_______________________ KC_LSFT, M_SHFT, _________MEDIA_3_________, T_LBRC - -#define _____________________LOWER_R1_______________________ _______________NAV_1______________, XXXXXXX, K_MDSH -#define _____________________LOWER_R2_______________________ _______________NAV_2______________, K_LOCK, XXXXXXX -#define _____________________LOWER_R3_______________________ T_RBRC, KC_M, M_TERM, M_CODE, M_XXX1, M_PYNV - -#define _____________________ADJUST_L1______________________ M_MAKE, EE_CLR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - -#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) - #define _____________________ADJUST_L2______________________ M_VRSN, M_MALL, RGB_SPI, RGB_SAI, RGB_HUI, RGB_VAI - #define _____________________ADJUST_L3______________________ M_FLSH, XXXXXXX, RGB_SPD, RGB_SAD, RGB_HUD, RGB_VAD -#else - #define _____________________ADJUST_L2______________________ M_VRSN, M_MALL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - #define _____________________ADJUST_L3______________________ M_FLSH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX -#endif - -#if defined(RGB_MATRIX_ENABLE) || defined(RGBLIGHT_ENABLE) - #define _____________________ADJUST_R1______________________ RGB_TOG, XXXXXXX, XXXXXXX, COLEMAK, DVORAK, QWERTY - #define _____________________ADJUST_R3______________________ RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX -#else - #define _____________________ADJUST_R1______________________ XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, DVORAK, QWERTY - #define _____________________ADJUST_R3______________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX -#endif -#define _____________________ADJUST_R2______________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - -#define _____________________NUMPAD_1_______________________ T_Y, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_PAST -#define _____________________NUMPAD_2_______________________ XXXXXXX, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PSLS -#define _____________________NUMPAD_3_______________________ KC_P0, KC_P1, KC_P2, KC_P3, KC_PDOT, KC_COLN - -#define _______________NAV_1______________ KC_PGUP, KC_HOME, KC_UP, KC_END -#define _______________NAV_2______________ KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT - -#define _____________MOUSE_1______________ KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_D -#define _____________MOUSE_2______________ KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U - -#define __________________________________ _______, _______, _______, _______ - -#define _____________MOD_LEFT_____________ KC_LALT, T_GUI, KC_LCTL, LT_RAI -#define _____________MOD_RIGHT____________ LT_LOW, KC_BSPC, MT_DEL, T_CPAP - -#define _________MEDIA_1_________ KC_BRIU, KC_MPLY, KC_MUTE -#define _________MEDIA_2_________ KC_BRID, KC_MFFD, KC_VOLU -#define _________MEDIA_3_________ XXXXXXX, KC_MRWD, KC_VOLD - -#if defined(KEYBOARD_crkbd_rev1) || defined(KEYBOARD_kyria_rev1) - #define ________MOD_LEFT_________ T_GUI, KC_LCTL, LT_RAI - #define ________MOD_RIGHT________ LT_LOW, KC_BSPC, MT_DEL -#else - #define ________MOD_LEFT_________ KC_LALT, T_GUI, KC_LCTL - #define ________MOD_RIGHT________ KC_BSPC, MT_DEL, T_CPAP -#endif - -// Layout wrappers -#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) -#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)
\ No newline at end of file diff --git a/users/ninjonas/oled.c b/users/ninjonas/oled.c deleted file mode 100644 index 73cd50fb8c..0000000000 --- a/users/ninjonas/oled.c +++ /dev/null @@ -1,112 +0,0 @@ -#include QMK_KEYBOARD_H -#include <stdio.h> -#include "ninjonas.h" - -#if defined(OLED_ENABLE) & !defined(KEYBOARD_kyria_rev1) - -static uint32_t oled_timer = 0; - - -oled_rotation_t oled_init_user(oled_rotation_t rotation) { - if (is_keyboard_master()) { - return OLED_ROTATION_0; - } - return OLED_ROTATION_180; -} - -bool process_record_oled(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - oled_timer = timer_read32(); - } - return true; -} - -void render_layout_state(void) { - oled_write_P(PSTR("Layout: "), false); - switch (get_highest_layer(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 oled_white_space(void){ - oled_write_P(PSTR(" "), false); -} - -void render_layer_state(void) { - oled_write_P(PSTR("\nLayer:"), false); - bool lower = layer_state_is(_LOWER) & !layer_state_is(_ADJUST); - bool raise = layer_state_is(_RAISE) & !layer_state_is(_ADJUST); - bool adjust = layer_state_is(_ADJUST); - bool numpad = layer_state_is(_NUMPAD); - - if(lower){ - oled_write_P(PSTR(" Lower "), true); - } else if(raise){ - oled_write_P(PSTR(" Raise "), true); - } else if(adjust){ - oled_write_P(PSTR(" Adjust "), true); - } else if(numpad) { - oled_write_P(PSTR(" Numpad "), true); - } else { - oled_write_P(PSTR(" Default"), false); - } -} - -void render_mod_state(uint8_t modifiers) { - oled_write_P(PSTR("\nMods: "), false); - oled_write_P(PSTR("SHF"), (modifiers & MOD_MASK_SHIFT)); - oled_white_space(); - oled_write_P(PSTR("CTL"), (modifiers & MOD_MASK_CTRL)); - oled_white_space(); - oled_write_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT)); - oled_white_space(); - oled_write_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI)); -} - -void render_status(void){ - render_layout_state(); - oled_write_P(PSTR("\n"), false); - render_layer_state(); - render_mod_state(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); -} - -bool oled_task_user(void) { - if (timer_elapsed32(oled_timer) > 15000) { - oled_off(); - return false; - } - #ifndef SPLIT_KEYBOARD - else { oled_on(); } - #endif - - if (is_keyboard_master()) { - render_status(); - } else { - render_logo(); - oled_write_P(PSTR("\n"), false); - oled_scroll_left(); - } - return false; -} - -#endif diff --git a/users/ninjonas/process_records.c b/users/ninjonas/process_records.c deleted file mode 100644 index c298227e51..0000000000 --- a/users/ninjonas/process_records.c +++ /dev/null @@ -1,117 +0,0 @@ -#include "ninjonas.h" - -__attribute__((weak)) -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_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) { - switch (keycode) { - - // Sends pyenv to activate 'jira' environment - case M_PYNV: - if (record->event.pressed) { - SEND_STRING("pyenv activate jira\n"); - } - break; - - // Sends Cmd + alt + shift to a keycode to activate shiftit. See: https://github.com/fikovnik/ShiftIt - case M_SHFT: - if (record->event.pressed) { - register_code(KC_LGUI); - register_code(KC_LALT); - register_code(KC_LCTL); - } else { - unregister_code(KC_LGUI); - unregister_code(KC_LALT); - unregister_code(KC_LCTL); - } - break; - - // Sends QMK make command to compile keyboard - case M_MAKE: - if (record->event.pressed) { - SEND_STRING("rm -f *.hex && rm -rf .build/ && make " QMK_KEYBOARD ":" QMK_KEYMAP SS_TAP(X_ENTER)); - } - 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 kyria:ninjonas\n"); - } - break; - - // Sends QMK make command with the correct bootloader - case M_FLSH: - if (!record->event.pressed) { - SEND_STRING("rm -f *.hex && rm -rf .build/ && make " QMK_KEYBOARD ":" QMK_KEYMAP - #if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU)) - ":dfu " - #elif defined(BOOTLOADER_CATERINA) - ":avrdude " - #endif - SS_TAP(X_ENTER) - ); - - // Send reset_keyboard command instead of pressing reset button - #if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU)) - reset_keyboard(); - #endif - } - break; - - // Sends QMK version - case M_VRSN: - if (record->event.pressed) { - SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE); - } - break; - - // Opens Visual Studio Code on current directory - case M_CODE: - if (record->event.pressed) { - SEND_STRING("code .\n"); - } - break; - - // Opens Terminal - case M_TERM: - if (record->event.pressed) { - SEND_STRING(SS_DOWN(X_LGUI) SS_TAP(X_SPACE) SS_UP(X_LGUI)); - wait_ms(250); - SEND_STRING("terminal\n"); - } - break; - - // BEGIN: Layer macros - case QWERTY: - if (record->event.pressed) { - set_single_persistent_default_layer(_QWERTY); - } - break; - case DVORAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_DVORAK); - } - break; - case COLEMAK: - if (record->event.pressed) { - set_single_persistent_default_layer(_COLEMAK); - } - break; - // END: Layer macros - } - - return process_record_keymap(keycode, record) && process_record_secrets(keycode, record) - #ifdef OLED_ENABLE - && process_record_oled(keycode, record) - #endif - ; // Close return -} diff --git a/users/ninjonas/process_records.h b/users/ninjonas/process_records.h deleted file mode 100644 index 5b901a1659..0000000000 --- a/users/ninjonas/process_records.h +++ /dev/null @@ -1,30 +0,0 @@ -#pragma once -#include "ninjonas.h" - -enum custom_keycodes { - // Layer Macros - QWERTY = SAFE_RANGE, - DVORAK, - COLEMAK, - // Custom Macros - M_PYNV, - M_SHFT, - M_MAKE, - M_MALL, - M_FLSH, - M_VRSN, - M_CODE, - M_TERM, - // Secret Macros - M_XXX1, - M_XXX2, - M_XXX3, - M_XXX4, - M_XXX5, -}; - -bool process_record_secrets(uint16_t keycode, keyrecord_t *record); -bool process_record_keymap(uint16_t keycode, keyrecord_t *record); -#ifdef OLED_ENABLE -bool process_record_oled(uint16_t keycode, keyrecord_t *record); -#endif diff --git a/users/ninjonas/rules.mk b/users/ninjonas/rules.mk deleted file mode 100644 index 7ff8f24b9e..0000000000 --- a/users/ninjonas/rules.mk +++ /dev/null @@ -1,16 +0,0 @@ -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -TAP_DANCE_ENABLE = yes # Enable Tap Dance. -COMBO_ENABLE = yes # Enable Combos - -SRC += ninjonas.c \ - process_records.c \ - tap_dances.c \ - oled.c \ - encoder.c \ - combos.c - -ifneq ("$(wildcard $(USER_PATH)/secrets.c)","") - SRC += secrets.c -endif
\ No newline at end of file diff --git a/users/ninjonas/tap_dances.c b/users/ninjonas/tap_dances.c deleted file mode 100644 index c03433e2d6..0000000000 --- a/users/ninjonas/tap_dances.c +++ /dev/null @@ -1,122 +0,0 @@ -#include "ninjonas.h" - -//// BEGIN: Advanced Tap Dances -int cur_dance (tap_dance_state_t *state) { - if (state->count == 1) { - if (state->interrupted || !state->pressed) return SINGLE_TAP; - //key has not been interrupted, but they key is still held. Means you want to send a 'HOLD'. - else return SINGLE_HOLD; - } - else if (state->count == 2) { - /* - * DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap - * action when hitting 'pp'. Suggested use case for this return value is when you want to send two - * keystrokes of the key, and not the 'double tap' action/macro. - */ - if (state->interrupted) return DOUBLE_SINGLE_TAP; - else if (state->pressed) return DOUBLE_HOLD; - else return DOUBLE_TAP; - } - //Assumes no one is trying to type the same letter three times (at least not quickly). - //If your tap dance key is 'KC_W', and you want to type "www." quickly - then you will need to add - //an exception here to return a 'TRIPLE_SINGLE_TAP', and define that enum just like 'DOUBLE_SINGLE_TAP' - if (state->count == 3) { - if (state->interrupted || !state->pressed) return TRIPLE_TAP; - else return TRIPLE_HOLD; - } - else return 8; //magic number. At some point this method will expand to work for more presses -} - -// BEGIN: Copy, Paste, Apps -// https://beta.docs.qmk.fm/features/feature_tap_dance#example-6-using-tap-dance-for-momentary-layer-switch-and-layer-toggle-keys -static tap copy_paste_app_tap_state = { - .is_press_action = true, - .state = 0 -}; - -void copy_paste_app_finished (tap_dance_state_t *state, void *user_data) { - copy_paste_app_tap_state.state = cur_dance(state); - switch (copy_paste_app_tap_state.state) { - case SINGLE_TAP: - tap_code16(LGUI(KC_V)); // Tap Cmd + V - break; - case SINGLE_HOLD: - tap_code16(LGUI(KC_C)); // Hold Cmd + C - break; - case DOUBLE_TAP: - SEND_STRING(SS_DOWN(X_LGUI) SS_TAP(X_SPACE) SS_UP(X_LGUI)); - wait_ms(250); - SEND_STRING("line\n"); - break; - case TRIPLE_TAP: - SEND_STRING(SS_DOWN(X_LGUI) SS_TAP(X_SPACE) SS_UP(X_LGUI)); - wait_ms(250); - SEND_STRING("itunes\n"); - break; - } -} - -void copy_paste_app_reset (tap_dance_state_t *state, void *user_data) { - copy_paste_app_tap_state.state = 0; -} -// END: Copy, Paste, Apps - -// BEGIN: Y, NUMPAD -static tap y_numpad_tap_state = { - .is_press_action = true, - .state = 0 -}; - -void y_numpad_finished (tap_dance_state_t *state, void *user_data) { - y_numpad_tap_state.state = cur_dance(state); - switch (y_numpad_tap_state.state) { - case SINGLE_TAP: - tap_code(KC_Y); - break; - case SINGLE_HOLD: - register_code16(KC_Y); - break; - case DOUBLE_TAP: - if (layer_state_is(_NUMPAD)) { - layer_off(_NUMPAD); - } else { - layer_on(_NUMPAD); - } - break; - } -} - -void y_numpad_reset (tap_dance_state_t *state, void *user_data) { - switch (y_numpad_tap_state.state) { - case SINGLE_HOLD: - unregister_code16(KC_Y); - break; - } - y_numpad_tap_state.state = 0; -} -// END: Y, NUMPAD - -//// END: Advanced Tap Dances - -tap_dance_action_t tap_dance_actions[] = { - [TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS), - [TD_LBRC_BACK] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, LGUI(KC_LBRC)), - [TD_RBRC_FWD] = ACTION_TAP_DANCE_DOUBLE(KC_RBRC, LGUI(KC_RBRC)), - [TD_TAB_CTRLTAB] = ACTION_TAP_DANCE_DOUBLE(KC_TAB, LCTL(KC_TAB)), - [TD_GRV_CTRLGRV] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, LGUI(KC_GRV)), - [TD_GUI_GUISPC] = ACTION_TAP_DANCE_DOUBLE(KC_LGUI, LGUI(KC_SPC)), - - // Advanced Tap Dances - [TD_COPY_PASTE_APP] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, copy_paste_app_finished, copy_paste_app_reset), - [TD_Y_NUMPAD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, y_numpad_finished, y_numpad_reset), -}; - -uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case TD(TD_COPY_PASTE_APP): - case TD(TD_Y_NUMPAD): - return 300; - default: - return TAPPING_TERM; - } -} diff --git a/users/ninjonas/tap_dances.h b/users/ninjonas/tap_dances.h deleted file mode 100644 index 11f77e7171..0000000000 --- a/users/ninjonas/tap_dances.h +++ /dev/null @@ -1,37 +0,0 @@ -#pragma once -#include "ninjonas.h" - -typedef struct { - bool is_press_action; - int state; -} tap; - -enum tapdance_types{ - SINGLE_TAP = 1, - SINGLE_HOLD = 2, - DOUBLE_TAP = 3, - DOUBLE_HOLD = 4, - DOUBLE_SINGLE_TAP = 5, //send two single taps - TRIPLE_TAP = 6, - TRIPLE_HOLD = 7 -}; - -enum custom_tapdances{ - TD_ESC_CAPS = 0, - TD_LBRC_BACK, - TD_RBRC_FWD, - TD_TAB_CTRLTAB, - TD_GRV_CTRLGRV, - TD_GUI_GUISPC, - TD_COPY_PASTE_APP, - TD_Y_NUMPAD, -}; - -#define T_ESC TD(TD_ESC_CAPS) // Tap for ESC, double tap for CAPSLOCK -#define T_LBRC TD(TD_LBRC_BACK) // Tap for [, double tap for back browser -#define T_RBRC TD(TD_RBRC_FWD) // Tap for ], double tap for forward browser -#define T_TAB TD(TD_TAB_CTRLTAB) // Tap for TAB, double tap for CTRL + TAB -#define T_GRV TD(TD_GRV_CTRLGRV) // Tap for GRV, double tap for Cmd + GRV -#define T_GUI TD(TD_GUI_GUISPC) // Tap for Cmd, double tap for Cmd + Space -#define T_CPAP TD(TD_COPY_PASTE_APP) // Tap for paste, hold for copy, double tap for Line App -#define T_Y TD(TD_Y_NUMPAD) // Tap for Y, double tap for NUMPAD
\ No newline at end of file |