diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..92ae8e6a --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "modules/elpekenin"] + path = modules/elpekenin + url = https://github.com/elpekenin/qmk_modules diff --git a/keyboards/crkbd/rev4_1/standard/keymaps/raphaelmor/config.h b/keyboards/crkbd/rev4_1/standard/keymaps/raphaelmor/config.h index 332c716a..b045efeb 100644 --- a/keyboards/crkbd/rev4_1/standard/keymaps/raphaelmor/config.h +++ b/keyboards/crkbd/rev4_1/standard/keymaps/raphaelmor/config.h @@ -20,25 +20,3 @@ along with this program. If not, see . #pragma once - -//#define USE_MATRIX_I2C - -//#define QUICK_TAP_TERM 0 -//#define TAPPING_TERM 100 - -#ifdef RGBLIGHT_ENABLE - #define RGBLIGHT_EFFECT_BREATHING - #define RGBLIGHT_EFFECT_RAINBOW_MOOD - #define RGBLIGHT_EFFECT_RAINBOW_SWIRL - #define RGBLIGHT_EFFECT_SNAKE - #define RGBLIGHT_EFFECT_KNIGHT - #define RGBLIGHT_EFFECT_CHRISTMAS - #define RGBLIGHT_EFFECT_STATIC_GRADIENT - #define RGBLIGHT_EFFECT_RGB_TEST - #define RGBLIGHT_EFFECT_ALTERNATING - #define RGBLIGHT_EFFECT_TWINKLE - #define RGBLIGHT_LIMIT_VAL 120 - #define RGBLIGHT_HUE_STEP 10 - #define RGBLIGHT_SAT_STEP 17 - #define RGBLIGHT_VAL_STEP 17 -#endif diff --git a/keyboards/crkbd/rev4_1/standard/keymaps/raphaelmor/keymap.c b/keyboards/crkbd/rev4_1/standard/keymaps/raphaelmor/keymap.c index 700a96ba..1be9ce2b 100644 --- a/keyboards/crkbd/rev4_1/standard/keymaps/raphaelmor/keymap.c +++ b/keyboards/crkbd/rev4_1/standard/keymaps/raphaelmor/keymap.c @@ -17,7 +17,6 @@ along with this program. If not, see . */ #include QMK_KEYBOARD_H - #include "raphaelmor.h" // // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { @@ -56,3 +55,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RAMO_FOR_EACH_LAYER #undef RAMO_DO }; + diff --git a/keyboards/crkbd/rev4_1/standard/keymaps/raphaelmor/keymap.json b/keyboards/crkbd/rev4_1/standard/keymaps/raphaelmor/keymap.json new file mode 100644 index 00000000..151b5e41 --- /dev/null +++ b/keyboards/crkbd/rev4_1/standard/keymaps/raphaelmor/keymap.json @@ -0,0 +1,6 @@ +{ + "modules": [ + "elpekenin/ledmap", + "elpekenin/generics" + ] +} diff --git a/modules/elpekenin b/modules/elpekenin new file mode 160000 index 00000000..04ec0e41 --- /dev/null +++ b/modules/elpekenin @@ -0,0 +1 @@ +Subproject commit 04ec0e413a1dbbe4d07d26437b135d6b4d79c5df diff --git a/users/raphaelmor/README.md b/users/raphaelmor/README.md index 35d69ff1..d9467bc6 100644 --- a/users/raphaelmor/README.md +++ b/users/raphaelmor/README.md @@ -13,5 +13,17 @@ - Combos - ~z Combo~ - ~Qu combo + linger~ + - Explore the other combos - RGB Matrix + - ~Basic Alpha Layout coloring~ + - Finish all the other layouts (Mouse and FUN) +- Explore Case Mods + - Like capsword, but for camelCase, kebab-case, snake_case, etc... - Adaptive keys + +LED color map +BLACK : Inactive +SPRING : Colemak +ORANGE : HD-p or g +CHARTREUSE : Core Keys of the layer (arrows on NAV, numbers on NUM etc...) +WHITE : Other Keys for the layer (home,end, copy cut on NAV, etc..) diff --git a/users/raphaelmor/combos.h b/users/raphaelmor/combos.h deleted file mode 100644 index 92fe13ba..00000000 --- a/users/raphaelmor/combos.h +++ /dev/null @@ -1,10 +0,0 @@ - -enum ramo_combos { - NO_COMBO = 0, // Sentinel value (0) to signify no combo is currently pressed -#ifdef USE_HD_H_DIGRAPH_COMBO - HD_COMBO_Th, -#endif - HD_COMBO_Q, - HD_COMBO_Z, - CMK_COMBO_Th, -}; diff --git a/users/raphaelmor/config.h b/users/raphaelmor/config.h index 5065bb22..7cfcaede 100644 --- a/users/raphaelmor/config.h +++ b/users/raphaelmor/config.h @@ -7,11 +7,6 @@ // Enable rapid switch from tap to hold, disables double tap hold auto-repeat. #define QUICK_TAP_TERM 0 -// Auto Shift -#define NO_AUTO_SHIFT_ALPHA -#define AUTO_SHIFT_TIMEOUT TAPPING_TERM -#define AUTO_SHIFT_NO_SETUP - // Mouse key speed and acceleration. #undef MOUSEKEY_DELAY #define MOUSEKEY_DELAY 0 @@ -26,9 +21,11 @@ #define SPLIT_LAYER_STATE_ENABLE -// CUSTOM CONFIG -#define RAMO_COMBO_HOLD (TAPPING_TERM) // time to hold to trigger delayed combo +// RAMO CUSTOM CONFIG +#define RAMO_COMBO_HOLD (TAPPING_TERM) // time to hold to trigger delayed combo +#define RAMO_USE_HD_PROMETHIUM // (Gold is the default) +#define RAMO_ADAPTIVE_TERM (TAPPING_TERM/4) // rolling threshold // Disable led stuff diff --git a/users/raphaelmor/layers/CMK-defs.h b/users/raphaelmor/layers/CMK-defs.h index 38e60366..1c6e16f5 100644 --- a/users/raphaelmor/layers/CMK-defs.h +++ b/users/raphaelmor/layers/CMK-defs.h @@ -67,11 +67,8 @@ // ╰───────────╮ ESC SPC TAB │ │ ENT BSP DEL ╭───────────╯ // ╰─────────────╯ ╰─────────────╯ // -//qwfpg jluy; -//arstd hneio -//zxcvb km,./ -#define CMK_LT5 CMK_ESC +#define CMK_LT5 KC_NO #define CMK_LT4 CMK_Q #define CMK_LT3 CMK_W #define CMK_LT2 CMK_F @@ -85,9 +82,9 @@ #define CMK_RT2 CMK_U #define CMK_RT3 CMK_Y #define CMK_RT4 CMK_QUOT -#define CMK_RT5 CMK_HYPR +#define CMK_RT5 KC_NO -#define CMK_LM5 CMK_TAB +#define CMK_LM5 KC_NO #define CMK_LM4 CMK_A #define CMK_LM3 CMK_R #define CMK_LM2 CMK_S @@ -101,7 +98,7 @@ #define CMK_RM2 CMK_E #define CMK_RM3 CMK_I #define CMK_RM4 CMK_O -#define CMK_RM5 CMK_MEH +#define CMK_RM5 KC_NO #define CMK_LB5 KC_NO #define CMK_LB4 CMK_Z @@ -115,8 +112,7 @@ #define CMK_RB2 CMK_COMM #define CMK_RB3 CMK_DOT #define CMK_RB4 CMK_SLSH -// TEMPORARY -#define CMK_RB5 DF(L_HANDSDOWN) +#define CMK_RB5 KC_NO //Primary Thumbs 1-3 (others are unique to the board) #define CMK_LH2 CMK_ESC @@ -128,6 +124,63 @@ #define CMK_RH2 CMK_DEL +// Define layer colors + +#define CMK_RGB_LT5 BLACK +#define CMK_RGB_LT4 SPRING +#define CMK_RGB_LT3 SPRING +#define CMK_RGB_LT2 SPRING +#define CMK_RGB_LT1 SPRING +#define CMK_RGB_LT0 SPRING +#define CMK_RGB_LTA BLACK + +#define CMK_RGB_RTA BLACK +#define CMK_RGB_RT0 SPRING +#define CMK_RGB_RT1 SPRING +#define CMK_RGB_RT2 SPRING +#define CMK_RGB_RT3 SPRING +#define CMK_RGB_RT4 SPRING +#define CMK_RGB_RT5 BLACK + +#define CMK_RGB_LM5 BLACK +#define CMK_RGB_LM4 SPRING +#define CMK_RGB_LM3 SPRING +#define CMK_RGB_LM2 SPRING +#define CMK_RGB_LM1 SPRING +#define CMK_RGB_LM0 SPRING +#define CMK_RGB_LMA BLACK + +#define CMK_RGB_RMA BLACK +#define CMK_RGB_RM0 SPRING +#define CMK_RGB_RM1 SPRING +#define CMK_RGB_RM2 SPRING +#define CMK_RGB_RM3 SPRING +#define CMK_RGB_RM4 SPRING +#define CMK_RGB_RM5 BLACK + +#define CMK_RGB_LB5 BLACK +#define CMK_RGB_LB4 SPRING +#define CMK_RGB_LB3 SPRING +#define CMK_RGB_LB2 SPRING +#define CMK_RGB_LB1 SPRING +#define CMK_RGB_LB0 SPRING + +#define CMK_RGB_RB0 SPRING +#define CMK_RGB_RB1 SPRING +#define CMK_RGB_RB2 SPRING +#define CMK_RGB_RB3 SPRING +#define CMK_RGB_RB4 SPRING +#define CMK_RGB_RB5 BLACK + +#define CMK_RGB_LH2 MAGENTA +#define CMK_RGB_LH1 CHARTREUSE +#define CMK_RGB_LH0 CYAN + +#define CMK_RGB_RH0 CYAN +#define CMK_RGB_RH1 CHARTREUSE +#define CMK_RGB_RH2 MAGENTA + + // H digraph combos // try to make these use the lead letter and a neighbor. // diff --git a/users/raphaelmor/layers/FUN-defs.h b/users/raphaelmor/layers/FUN-defs.h index 16cac762..8a1b9dbf 100644 --- a/users/raphaelmor/layers/FUN-defs.h +++ b/users/raphaelmor/layers/FUN-defs.h @@ -70,3 +70,58 @@ #define FUN_RH0 FUN_NO #define FUN_RH1 FUN_NO #define FUN_RH2 FUN_NO + + +#define FUN_RGB_LT5 BLACK +#define FUN_RGB_LT4 BLACK +#define FUN_RGB_LT3 BLACK +#define FUN_RGB_LT2 BLACK +#define FUN_RGB_LT1 BLACK +#define FUN_RGB_LT0 BLACK +#define FUN_RGB_LTA BLACK + +#define FUN_RGB_RTA BLACK +#define FUN_RGB_RT0 BLACK +#define FUN_RGB_RT1 BLACK +#define FUN_RGB_RT2 BLACK +#define FUN_RGB_RT3 BLACK +#define FUN_RGB_RT4 BLACK +#define FUN_RGB_RT5 BLACK + +#define FUN_RGB_LM5 BLACK +#define FUN_RGB_LM4 BLACK +#define FUN_RGB_LM3 BLACK +#define FUN_RGB_LM2 BLACK +#define FUN_RGB_LM1 BLACK +#define FUN_RGB_LM0 BLACK +#define FUN_RGB_LMA BLACK + +#define FUN_RGB_RMA BLACK +#define FUN_RGB_RM0 BLACK +#define FUN_RGB_RM1 BLACK +#define FUN_RGB_RM2 BLACK +#define FUN_RGB_RM3 BLACK +#define FUN_RGB_RM4 BLACK +#define FUN_RGB_RM5 BLACK + +#define FUN_RGB_LB5 BLACK +#define FUN_RGB_LB4 BLACK +#define FUN_RGB_LB3 BLACK +#define FUN_RGB_LB2 BLACK +#define FUN_RGB_LB1 BLACK +#define FUN_RGB_LB0 BLACK + +#define FUN_RGB_RB0 BLACK +#define FUN_RGB_RB1 BLACK +#define FUN_RGB_RB2 BLACK +#define FUN_RGB_RB3 BLACK +#define FUN_RGB_RB4 BLACK +#define FUN_RGB_RB5 BLACK + +#define FUN_RGB_LH2 BLACK +#define FUN_RGB_LH1 BLACK +#define FUN_RGB_LH0 BLACK + +#define FUN_RGB_RH0 BLACK +#define FUN_RGB_RH1 BLACK +#define FUN_RGB_RH2 BLACK diff --git a/users/raphaelmor/layers/HDG-defs.h b/users/raphaelmor/layers/HDG-defs.h index 9a090b3b..69388d57 100644 --- a/users/raphaelmor/layers/HDG-defs.h +++ b/users/raphaelmor/layers/HDG-defs.h @@ -123,6 +123,60 @@ #define HDG_RH2 HDG_BSPC +#define HDG_RGB_LT5 BLACK +#define HDG_RGB_LT4 ORANGE +#define HDG_RGB_LT3 ORANGE +#define HDG_RGB_LT2 ORANGE +#define HDG_RGB_LT1 ORANGE +#define HDG_RGB_LT0 ORANGE +#define HDG_RGB_LTA BLACK + +#define HDG_RGB_RTA BLACK +#define HDG_RGB_RT0 ORANGE +#define HDG_RGB_RT1 ORANGE +#define HDG_RGB_RT2 ORANGE +#define HDG_RGB_RT3 ORANGE +#define HDG_RGB_RT4 ORANGE +#define HDG_RGB_RT5 BLACK + +#define HDG_RGB_LM5 BLACK +#define HDG_RGB_LM4 ORANGE +#define HDG_RGB_LM3 ORANGE +#define HDG_RGB_LM2 ORANGE +#define HDG_RGB_LM1 ORANGE +#define HDG_RGB_LM0 ORANGE +#define HDG_RGB_LMA BLACK + +#define HDG_RGB_RMA BLACK +#define HDG_RGB_RM0 ORANGE +#define HDG_RGB_RM1 ORANGE +#define HDG_RGB_RM2 ORANGE +#define HDG_RGB_RM3 ORANGE +#define HDG_RGB_RM4 ORANGE +#define HDG_RGB_RM5 BLACK + +#define HDG_RGB_LB5 BLACK +#define HDG_RGB_LB4 ORANGE +#define HDG_RGB_LB3 ORANGE +#define HDG_RGB_LB2 ORANGE +#define HDG_RGB_LB1 ORANGE +#define HDG_RGB_LB0 ORANGE + +#define HDG_RGB_RB0 ORANGE +#define HDG_RGB_RB1 ORANGE +#define HDG_RGB_RB2 ORANGE +#define HDG_RGB_RB3 ORANGE +#define HDG_RGB_RB4 ORANGE +#define HDG_RGB_RB5 BLACK + +#define HDG_RGB_LH2 MAGENTA +#define HDG_RGB_LH1 CHARTREUSE +#define HDG_RGB_LH0 CYAN + +#define HDG_RGB_RH0 CYAN +#define HDG_RGB_RH1 CHARTREUSE +#define HDG_RGB_RH2 MAGENTA + // H digraph combos // try to make these use the lead letter and a neighbor. #define USE_HD_H_DIGRAPH_COMBO diff --git a/users/raphaelmor/layers/HDP-defs.h b/users/raphaelmor/layers/HDP-defs.h index f87ff78f..1778b173 100644 --- a/users/raphaelmor/layers/HDP-defs.h +++ b/users/raphaelmor/layers/HDP-defs.h @@ -76,6 +76,61 @@ #define HDP_RH1 LT(L_NUM, KC_ENT) #define HDP_RH2 LT(L_FUN, KC_BSPC) +#define HDP_RGB_LT5 BLACK +#define HDP_RGB_LT4 ORANGE +#define HDP_RGB_LT3 ORANGE +#define HDP_RGB_LT2 ORANGE +#define HDP_RGB_LT1 ORANGE +#define HDP_RGB_LT0 ORANGE +#define HDP_RGB_LTA BLACK + +#define HDP_RGB_RTA BLACK +#define HDP_RGB_RT0 ORANGE +#define HDP_RGB_RT1 ORANGE +#define HDP_RGB_RT2 ORANGE +#define HDP_RGB_RT3 ORANGE +#define HDP_RGB_RT4 ORANGE +#define HDP_RGB_RT5 BLACK + +#define HDP_RGB_LM5 BLACK +#define HDP_RGB_LM4 ORANGE +#define HDP_RGB_LM3 ORANGE +#define HDP_RGB_LM2 ORANGE +#define HDP_RGB_LM1 ORANGE +#define HDP_RGB_LM0 ORANGE +#define HDP_RGB_LMA BLACK + +#define HDP_RGB_RMA BLACK +#define HDP_RGB_RM0 ORANGE +#define HDP_RGB_RM1 ORANGE +#define HDP_RGB_RM2 ORANGE +#define HDP_RGB_RM3 ORANGE +#define HDP_RGB_RM4 ORANGE +#define HDP_RGB_RM5 BLACK + +#define HDP_RGB_LB5 BLACK +#define HDP_RGB_LB4 ORANGE +#define HDP_RGB_LB3 ORANGE +#define HDP_RGB_LB2 ORANGE +#define HDP_RGB_LB1 ORANGE +#define HDP_RGB_LB0 ORANGE + +#define HDP_RGB_RB0 ORANGE +#define HDP_RGB_RB1 ORANGE +#define HDP_RGB_RB2 ORANGE +#define HDP_RGB_RB3 ORANGE +#define HDP_RGB_RB4 ORANGE +#define HDP_RGB_RB5 BLACK + +#define HDP_RGB_LH2 MAGENTA +#define HDP_RGB_LH1 CHARTREUSE +#define HDP_RGB_LH0 CYAN + +#define HDP_RGB_RH0 CYAN +#define HDP_RGB_RH1 CHARTREUSE +#define HDP_RGB_RH2 MAGENTA + + // type p + l to type q #define HD_Q_keys HDP_LT3, HDP_LT1 diff --git a/users/raphaelmor/layers/MED-defs.h b/users/raphaelmor/layers/MED-defs.h index 81dea3d8..f03dbb07 100644 --- a/users/raphaelmor/layers/MED-defs.h +++ b/users/raphaelmor/layers/MED-defs.h @@ -43,11 +43,11 @@ #define MED_RMA KC_NO // TODO: should be a real key once a use is found #define MED_RM0 MED_NO -#define MED_RM1 MED_NO -#define MED_RM2 KC_MPRV -#define MED_RM3 KC_VOLD -#define MED_RM4 KC_VOLU -#define MED_RM5 KC_MNXT +#define MED_RM1 KC_MPRV +#define MED_RM2 KC_VOLD +#define MED_RM3 KC_VOLU +#define MED_RM4 KC_MNXT +#define MED_RM5 MED_NO #define MED_LB5 MED_NO #define MED_LB4 MED_NO @@ -71,3 +71,59 @@ #define MED_RH0 KC_MSTP #define MED_RH1 KC_MPLY #define MED_RH2 KC_MUTE + + + +#define MED_RGB_LT5 BLACK +#define MED_RGB_LT4 BLACK +#define MED_RGB_LT3 BLUE +#define MED_RGB_LT2 BLACK +#define MED_RGB_LT1 BLACK +#define MED_RGB_LT0 BLACK +#define MED_RGB_LTA BLACK + +#define MED_RGB_RTA BLACK +#define MED_RGB_RT0 MAGENTA +#define MED_RGB_RT1 WHITE +#define MED_RGB_RT2 WHITE +#define MED_RGB_RT3 WHITE +#define MED_RGB_RT4 WHITE +#define MED_RGB_RT5 BLACK + +#define MED_RGB_LM5 BLACK +#define MED_RGB_LM4 WHITE +#define MED_RGB_LM3 WHITE +#define MED_RGB_LM2 WHITE +#define MED_RGB_LM1 WHITE +#define MED_RGB_LM0 WHITE +#define MED_RGB_LMA BLACK + +#define MED_RGB_RMA BLACK +#define MED_RGB_RM0 BLACK +#define MED_RGB_RM1 MAGENTA +#define MED_RGB_RM2 ROSE +#define MED_RGB_RM3 ROSE +#define MED_RGB_RM4 MAGENTA +#define MED_RGB_RM5 BLACK + +#define MED_RGB_LB5 BLACK +#define MED_RGB_LB4 BLACK +#define MED_RGB_LB3 BLACK +#define MED_RGB_LB2 WHITE +#define MED_RGB_LB1 BLACK +#define MED_RGB_LB0 BLACK + +#define MED_RGB_RB0 BLACK +#define MED_RGB_RB1 BLACK +#define MED_RGB_RB2 BLACK +#define MED_RGB_RB3 BLACK +#define MED_RGB_RB4 BLACK +#define MED_RGB_RB5 BLACK + +#define MED_RGB_LH2 BLACK +#define MED_RGB_LH1 BLACK +#define MED_RGB_LH0 BLACK + +#define MED_RGB_RH0 MAGENTA +#define MED_RGB_RH1 MAGENTA +#define MED_RGB_RH2 ROSE diff --git a/users/raphaelmor/layers/MOS-defs.h b/users/raphaelmor/layers/MOS-defs.h index 0ced259d..7c02dc4b 100644 --- a/users/raphaelmor/layers/MOS-defs.h +++ b/users/raphaelmor/layers/MOS-defs.h @@ -70,3 +70,60 @@ #define MOS_RH0 KC_BTN2 #define MOS_RH1 KC_BTN1 #define MOS_RH2 KC_BTN3 + + + + +#define MOS_RGB_LT5 BLACK +#define MOS_RGB_LT4 BLACK +#define MOS_RGB_LT3 BLACK +#define MOS_RGB_LT2 BLACK +#define MOS_RGB_LT1 BLACK +#define MOS_RGB_LT0 BLACK +#define MOS_RGB_LTA BLACK + +#define MOS_RGB_RTA BLACK +#define MOS_RGB_RT0 BLACK +#define MOS_RGB_RT1 BLACK +#define MOS_RGB_RT2 BLACK +#define MOS_RGB_RT3 BLACK +#define MOS_RGB_RT4 BLACK +#define MOS_RGB_RT5 BLACK + +#define MOS_RGB_LM5 BLACK +#define MOS_RGB_LM4 BLACK +#define MOS_RGB_LM3 BLACK +#define MOS_RGB_LM2 BLACK +#define MOS_RGB_LM1 BLACK +#define MOS_RGB_LM0 BLACK +#define MOS_RGB_LMA BLACK + +#define MOS_RGB_RMA BLACK +#define MOS_RGB_RM0 BLACK +#define MOS_RGB_RM1 BLACK +#define MOS_RGB_RM2 BLACK +#define MOS_RGB_RM3 BLACK +#define MOS_RGB_RM4 BLACK +#define MOS_RGB_RM5 BLACK + +#define MOS_RGB_LB5 BLACK +#define MOS_RGB_LB4 BLACK +#define MOS_RGB_LB3 BLACK +#define MOS_RGB_LB2 BLACK +#define MOS_RGB_LB1 BLACK +#define MOS_RGB_LB0 BLACK + +#define MOS_RGB_RB0 BLACK +#define MOS_RGB_RB1 BLACK +#define MOS_RGB_RB2 BLACK +#define MOS_RGB_RB3 BLACK +#define MOS_RGB_RB4 BLACK +#define MOS_RGB_RB5 BLACK + +#define MOS_RGB_LH2 BLACK +#define MOS_RGB_LH1 BLACK +#define MOS_RGB_LH0 BLACK + +#define MOS_RGB_RH0 BLACK +#define MOS_RGB_RH1 BLACK +#define MOS_RGB_RH2 BLACK diff --git a/users/raphaelmor/layers/NAV-defs.h b/users/raphaelmor/layers/NAV-defs.h index 9c88057a..835cffdf 100644 --- a/users/raphaelmor/layers/NAV-defs.h +++ b/users/raphaelmor/layers/NAV-defs.h @@ -26,11 +26,11 @@ #define NAV_LTA KC_NO // TODO: should be a real key once a use is found #define NAV_RTA KC_NO // TODO: should be a real key once a use is found -#define NAV_RT0 SCMD(KC_Z) +#define NAV_RT0 LCMD(KC_Z) #define NAV_RT1 LCMD(KC_V) #define NAV_RT2 LCMD(KC_C) #define NAV_RT3 LCMD(KC_X) -#define NAV_RT4 LCMD(KC_Z) +#define NAV_RT4 SCMD(KC_Z) #define NAV_RT5 NAV_NO #define NAV_LM5 NAV_NO @@ -71,3 +71,59 @@ #define NAV_RH0 KC_ENT #define NAV_RH1 KC_BSPC #define NAV_RH2 KC_DEL + + + +#define NAV_RGB_LT5 BLACK +#define NAV_RGB_LT4 BLACK +#define NAV_RGB_LT3 BLACK +#define NAV_RGB_LT2 SPRING +#define NAV_RGB_LT1 ORANGE +#define NAV_RGB_LT0 BLACK +#define NAV_RGB_LTA BLACK + +#define NAV_RGB_RTA BLACK +#define NAV_RGB_RT0 CHARTREUSE +#define NAV_RGB_RT1 CHARTREUSE +#define NAV_RGB_RT2 CHARTREUSE +#define NAV_RGB_RT3 CHARTREUSE +#define NAV_RGB_RT4 CHARTREUSE +#define NAV_RGB_RT5 BLACK + +#define NAV_RGB_LM5 BLACK +#define NAV_RGB_LM4 WHITE +#define NAV_RGB_LM3 WHITE +#define NAV_RGB_LM2 WHITE +#define NAV_RGB_LM1 WHITE +#define NAV_RGB_LM0 BLACK +#define NAV_RGB_LMA BLACK + +#define NAV_RGB_RMA BLACK +#define NAV_RGB_RM0 WHITE +#define NAV_RGB_RM1 CHARTREUSE +#define NAV_RGB_RM2 CHARTREUSE +#define NAV_RGB_RM3 CHARTREUSE +#define NAV_RGB_RM4 CHARTREUSE +#define NAV_RGB_RM5 BLACK + +#define NAV_RGB_LB5 BLACK +#define NAV_RGB_LB4 BLACK +#define NAV_RGB_LB3 BLACK +#define NAV_RGB_LB2 WHITE +#define NAV_RGB_LB1 BLACK +#define NAV_RGB_LB0 BLACK + +#define NAV_RGB_RB0 CHARTREUSE +#define NAV_RGB_RB1 CHARTREUSE +#define NAV_RGB_RB2 CHARTREUSE +#define NAV_RGB_RB3 CHARTREUSE +#define NAV_RGB_RB4 CHARTREUSE +#define NAV_RGB_RB5 BLACK + +#define NAV_RGB_LH2 BLACK +#define NAV_RGB_LH1 BLACK +#define NAV_RGB_LH0 BLACK + +#define NAV_RGB_RH0 WHITE +#define NAV_RGB_RH1 WHITE +#define NAV_RGB_RH2 WHITE diff --git a/users/raphaelmor/layers/NUM-defs.h b/users/raphaelmor/layers/NUM-defs.h index eade1d4f..e6146258 100644 --- a/users/raphaelmor/layers/NUM-defs.h +++ b/users/raphaelmor/layers/NUM-defs.h @@ -55,6 +55,7 @@ #define NUM_LB2 KC_2 #define NUM_LB1 KC_3 #define NUM_LB0 KC_BSLS + #define NUM_RB0 NUM_NO #define NUM_RB1 NUM_NO #define NUM_RB2 NUM_NO @@ -70,3 +71,57 @@ #define NUM_RH0 NUM_NO #define NUM_RH1 NUM_NO #define NUM_RH2 NUM_NO + +#define NUM_RGB_LT5 BLACK +#define NUM_RGB_LT4 WHITE +#define NUM_RGB_LT3 CHARTREUSE +#define NUM_RGB_LT2 CHARTREUSE +#define NUM_RGB_LT1 CHARTREUSE +#define NUM_RGB_LT0 WHITE +#define NUM_RGB_LTA BLACK + +#define NUM_RGB_RTA BLACK +#define NUM_RGB_RT0 BLACK +#define NUM_RGB_RT1 BLACK +#define NUM_RGB_RT2 BLACK +#define NUM_RGB_RT3 BLACK +#define NUM_RGB_RT4 BLACK +#define NUM_RGB_RT5 BLACK + +#define NUM_RGB_LM5 BLACK +#define NUM_RGB_LM4 WHITE +#define NUM_RGB_LM3 CHARTREUSE +#define NUM_RGB_LM2 CHARTREUSE +#define NUM_RGB_LM1 CHARTREUSE +#define NUM_RGB_LM0 WHITE +#define NUM_RGB_LMA BLACK + +#define NUM_RGB_RMA BLACK +#define NUM_RGB_RM0 BLACK +#define NUM_RGB_RM1 WHITE +#define NUM_RGB_RM2 WHITE +#define NUM_RGB_RM3 WHITE +#define NUM_RGB_RM4 WHITE +#define NUM_RGB_RM5 BLACK + +#define NUM_RGB_LB5 BLACK +#define NUM_RGB_LB4 WHITE +#define NUM_RGB_LB3 CHARTREUSE +#define NUM_RGB_LB2 CHARTREUSE +#define NUM_RGB_LB1 CHARTREUSE +#define NUM_RGB_LB0 WHITE + +#define NUM_RGB_RB0 BLACK +#define NUM_RGB_RB1 BLACK +#define NUM_RGB_RB2 BLACK +#define NUM_RGB_RB3 WHITE +#define NUM_RGB_RB4 BLACK +#define NUM_RGB_RB5 BLACK + +#define NUM_RGB_LH2 WHITE +#define NUM_RGB_LH1 CHARTREUSE +#define NUM_RGB_LH0 WHITE + +#define NUM_RGB_RH0 BLACK +#define NUM_RGB_RH1 BLACK +#define NUM_RGB_RH2 BLACK diff --git a/users/raphaelmor/layers/SYM-defs.h b/users/raphaelmor/layers/SYM-defs.h index 3c91634c..affa19ed 100644 --- a/users/raphaelmor/layers/SYM-defs.h +++ b/users/raphaelmor/layers/SYM-defs.h @@ -71,3 +71,59 @@ #define SYM_RH0 SYM_NO #define SYM_RH1 SYM_NO #define SYM_RH2 SYM_NO + + + +#define SYM_RGB_LT5 BLACK +#define SYM_RGB_LT4 CYAN +#define SYM_RGB_LT3 CYAN +#define SYM_RGB_LT2 CYAN +#define SYM_RGB_LT1 CYAN +#define SYM_RGB_LT0 CYAN +#define SYM_RGB_LTA BLACK + +#define SYM_RGB_RTA BLACK +#define SYM_RGB_RT0 BLACK +#define SYM_RGB_RT1 BLACK +#define SYM_RGB_RT2 BLACK +#define SYM_RGB_RT3 BLACK +#define SYM_RGB_RT4 BLACK +#define SYM_RGB_RT5 BLACK + +#define SYM_RGB_LM5 BLACK +#define SYM_RGB_LM4 CYAN +#define SYM_RGB_LM3 CYAN +#define SYM_RGB_LM2 CYAN +#define SYM_RGB_LM1 CYAN +#define SYM_RGB_LM0 CYAN +#define SYM_RGB_LMA BLACK + +#define SYM_RGB_RMA BLACK +#define SYM_RGB_RM0 BLACK +#define SYM_RGB_RM1 WHITE +#define SYM_RGB_RM2 WHITE +#define SYM_RGB_RM3 WHITE +#define SYM_RGB_RM4 WHITE +#define SYM_RGB_RM5 BLACK + +#define SYM_RGB_LB5 BLACK +#define SYM_RGB_LB4 CYAN +#define SYM_RGB_LB3 CYAN +#define SYM_RGB_LB2 CYAN +#define SYM_RGB_LB1 CYAN +#define SYM_RGB_LB0 CYAN + +#define SYM_RGB_RB0 BLACK +#define SYM_RGB_RB1 BLACK +#define SYM_RGB_RB2 BLACK +#define SYM_RGB_RB3 WHITE +#define SYM_RGB_RB4 BLACK +#define SYM_RGB_RB5 BLACK + +#define SYM_RGB_LH2 CYAN +#define SYM_RGB_LH1 CYAN +#define SYM_RGB_LH0 CYAN + +#define SYM_RGB_RH0 BLACK +#define SYM_RGB_RH1 BLACK +#define SYM_RGB_RH2 BLACK diff --git a/users/raphaelmor/ramo_adaptive.c b/users/raphaelmor/ramo_adaptive.c new file mode 100644 index 00000000..84804530 --- /dev/null +++ b/users/raphaelmor/ramo_adaptive.c @@ -0,0 +1,61 @@ + +bool process_adaptive_key(uint16_t keycode, const keyrecord_t *record) { + bool result = true; + + if (timer_elapsed(prior_keydown_timer) > RAMO_ADAPTIVE_TERM) { // outside adaptive threshhold + prior_keycode = prior_keydown_timer = 0; // turn off Adaptives. + return true; // no adaptive conditions, so return. + } + // We're within Adaptive time window + + switch (keycode) { + case KC_E: + switch (prior_keycode) { + case KC_A: // "AE" yields "AU" (8x more common) keeping it on home row + tap_code(KC_U); + result = false; // done. + break; + } + break; + } + + // true: did not trigger adaptive. Continue processing. + // false: did trigger adaptive. Do not continue. + return result; +} +/* +PBD -> PWD + +PF -> PS + +KG -> KL +WMG -> WML +MG -> LG +JG -> JPG +WG -> WD + +KH -> KN + +GJ -> GTH +VJ -> VL +WJ -> WL + +MK -> LK +HK -> NK + +GM -> GL +VM -> VL +MWM -> MWL +(.)WM -> (.)LM + +FP -> SP + +GV -> GT +MV -> LV + +GW -> GD +MW -> MP + +YB -> IB +AE -> AU +*/ diff --git a/users/raphaelmor/combos.c b/users/raphaelmor/ramo_combos.c similarity index 84% rename from users/raphaelmor/combos.c rename to users/raphaelmor/ramo_combos.c index a52d334c..252fa6c7 100644 --- a/users/raphaelmor/combos.c +++ b/users/raphaelmor/ramo_combos.c @@ -2,16 +2,26 @@ #ifdef USE_HD_H_DIGRAPH_COMBO const uint16_t PROGMEM HD_Th_combo[] = {HD_Th_keys, COMBO_END}; // TYPE "th" in hands down #endif -const uint16_t PROGMEM HD_Q_combo[] = {HD_Q_keys, COMBO_END}; // TYPE "q" (Qu & Linger deletes u) +const uint16_t PROGMEM HD_Qu_combo[] = {HD_Q_keys, COMBO_END}; // TYPE "qu" (Linger deletes u) const uint16_t PROGMEM HD_Z_combo[] = {HD_Z_keys, COMBO_END}; // TYPE "z" const uint16_t PROGMEM CMK_Th_combo[] = {CMK_Th_keys, COMBO_END}; // TYPE "th" in colemak +enum ramo_combos { + NO_COMBO = 0, // Sentinel value (0) to signify no combo is currently pressed +#ifdef USE_HD_H_DIGRAPH_COMBO + HD_COMBO_Th, +#endif + HD_COMBO_QU, + HD_COMBO_Z, + CMK_COMBO_Th, +}; + combo_t key_combos[] = { // Hands Down (Gold and Promethium) combos #ifdef USE_HD_H_DIGRAPH_COMBO [HD_COMBO_Th] = COMBO_ACTION(HD_Th_combo), #endif - [HD_COMBO_Q] = COMBO_ACTION(HD_Q_combo), + [HD_COMBO_QU] = COMBO_ACTION(HD_Qu_combo), [HD_COMBO_Z] = COMBO(HD_Z_combo, KC_Z), // Colemak combos [CMK_COMBO_Th] = COMBO_ACTION(CMK_Th_combo), @@ -55,7 +65,7 @@ uint8_t ramo_process_combo_pressed(uint16_t combo_index) { tap_code(KC_H); // send "h" honoring CAPSLK state } break; - case HD_COMBO_Q: + case HD_COMBO_QU: println("RAMO: Pressed N + H to type qu"); if (is_caps_word_on()) { tap_code16(S(KC_Q)); @@ -77,18 +87,18 @@ void ramo_process_combo_released(uint16_t combo_index) { #endif case CMK_COMBO_Th: break; - case HD_COMBO_Q: - println("RAMO: Released N + H to type qu"); + case HD_COMBO_QU: + println("RAMO: Released P + L to type qu"); } } -void matrix_scan_user(void) { +void combo_check_for_linger(void) { if ((timer_elapsed(linger_timer) > RAMO_COMBO_HOLD) && current_combo) { println("RAMO: TRIGGERING COMBO_HOLD"); uint16_t saved_mods = get_mods(); clear_mods(); switch (current_combo) { - case HD_COMBO_Q: + case HD_COMBO_QU: tap_code16(KC_BSPC); // held, so delete u break; } diff --git a/users/raphaelmor/layers.h b/users/raphaelmor/ramo_layers.h similarity index 93% rename from users/raphaelmor/layers.h rename to users/raphaelmor/ramo_layers.h index 27785373..97307d15 100644 --- a/users/raphaelmor/layers.h +++ b/users/raphaelmor/ramo_layers.h @@ -1,5 +1,5 @@ #include "layers/CMK-defs.h" -#ifdef USE_HD_PROMETHIUM +#ifdef RAMO_USE_HD_PROMETHIUM #include "layers/HDP-defs.h" #else #include "layers/HDG-defs.h" @@ -12,25 +12,25 @@ #include "layers/FUN-defs.h" -#ifdef USE_HD_PROMETHIUM +#ifdef RAMO_USE_HD_PROMETHIUM #define RAMO_FOR_EACH_LAYER \ RAMO_DO(COLEMAK, CMK) \ RAMO_DO(HANDSDOWN, HDP) \ +RAMO_DO(MEDIA, MED) \ RAMO_DO(NAV, NAV) \ RAMO_DO(MOUSE, MOS) \ -RAMO_DO(MEDIA, MED) \ -RAMO_DO(NUM, NUM) \ RAMO_DO(SYM, SYM) \ +RAMO_DO(NUM, NUM) \ RAMO_DO(FUN, FUN) #else // use HD_GOLD #define RAMO_FOR_EACH_LAYER \ RAMO_DO(COLEMAK, CMK) \ RAMO_DO(HANDSDOWN, HDG) \ +RAMO_DO(MEDIA, MED) \ RAMO_DO(NAV, NAV) \ RAMO_DO(MOUSE, MOS) \ -RAMO_DO(MEDIA, MED) \ -RAMO_DO(NUM, NUM) \ RAMO_DO(SYM, SYM) \ +RAMO_DO(NUM, NUM) \ RAMO_DO(FUN, FUN) #endif diff --git a/users/raphaelmor/ramo_ledmap.c b/users/raphaelmor/ramo_ledmap.c new file mode 100644 index 00000000..2f0bf1e7 --- /dev/null +++ b/users/raphaelmor/ramo_ledmap.c @@ -0,0 +1,14 @@ + +// Macro that defines a ledmap per layer (e.g. CMK_RGB_LT5, NAV_RGB_LB1) +// Then each layer simply has to define the derired color per key +// e.g. #define CMK_RGB_LT5 RED +const ledmap_color_t PROGMEM ledmap[][MATRIX_ROWS][MATRIX_COLS] = { +#define RAMO_DO(LAYER, STR) [L_##LAYER] = LAYOUT_split_3x6_3_ex2( \ + STR##_RGB_LT5 , STR##_RGB_LT4 , STR##_RGB_LT3 , STR##_RGB_LT2 , STR##_RGB_LT1 , STR##_RGB_LT0 , STR##_RGB_LTA , STR##_RGB_RTA , STR##_RGB_RT0 , STR##_RGB_RT1 , STR##_RGB_RT2 , STR##_RGB_RT3 , STR##_RGB_RT4 , STR##_RGB_RT5 , \ + STR##_RGB_LM5 , STR##_RGB_LM4 , STR##_RGB_LM3 , STR##_RGB_LM2 , STR##_RGB_LM1 , STR##_RGB_LM0 , STR##_RGB_LMA , STR##_RGB_RMA , STR##_RGB_RM0 , STR##_RGB_RM1 , STR##_RGB_RM2 , STR##_RGB_RM3 , STR##_RGB_RM4 , STR##_RGB_RM5 , \ + STR##_RGB_LB5 , STR##_RGB_LB4 , STR##_RGB_LB3 , STR##_RGB_LB2 , STR##_RGB_LB1 , STR##_RGB_LB0 , STR##_RGB_RB0 , STR##_RGB_RB1 , STR##_RGB_RB2 , STR##_RGB_RB3 , STR##_RGB_RB4 , STR##_RGB_RB5 , \ + STR##_RGB_LH2 , STR##_RGB_LH1 , STR##_RGB_LH0 , STR##_RGB_RH0 , STR##_RGB_RH1 , STR##_RGB_RH2 \ + ), +RAMO_FOR_EACH_LAYER +#undef RAMO_DO +}; diff --git a/users/raphaelmor/ramo_matrix.c b/users/raphaelmor/ramo_matrix.c new file mode 100644 index 00000000..65a18ca6 --- /dev/null +++ b/users/raphaelmor/ramo_matrix.c @@ -0,0 +1,4 @@ + +void matrix_scan_user(void) { + combo_check_for_linger(); +} diff --git a/users/raphaelmor/ramo_process_record.c b/users/raphaelmor/ramo_process_record.c new file mode 100644 index 00000000..0ad834ca --- /dev/null +++ b/users/raphaelmor/ramo_process_record.c @@ -0,0 +1,31 @@ +// This is called everytime a key is pressed or released +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + bool result = true; + // uint8_t saved_modifiers; + // saved_modifiers = get_mods(); // share modifiers + + // Do we need to filter multi-function keys? + switch (keycode) { + case QK_MOD_TAP ... QK_MOD_TAP_MAX: + case QK_LAYER_TAP ... QK_LAYER_TAP_MAX: + case QK_TAP_DANCE ... QK_TAP_DANCE_MAX: + if (!record->tap.count) // if not tapped yet… + return true; // let QMK do that first + keycode &= QK_BASIC_MAX; // mods & taps have been handled. + } + + if (record->event.pressed) { + if (!process_adaptive_key(keycode, record)) { // false means we handled the key press + prior_keycode = keycode &= QK_BASIC_MAX; // this keycode is stripped of mods+taps + prior_keydown_timer = timer_read(); // reset the adaptive timer + return false; // took care of that key + } + + // RAMO: is this needed ? + // prior_keycode = keycode &= QK_BASIC_MAX; // this keycode is stripped of mods+taps + // prior_keydown_timer = timer_read(); // reset the adaptive timer + } else { + + } + return result; +} diff --git a/users/raphaelmor/tap_dance.c b/users/raphaelmor/ramo_tap_dance.c similarity index 80% rename from users/raphaelmor/tap_dance.c rename to users/raphaelmor/ramo_tap_dance.c index 33f2ba06..a8512806 100644 --- a/users/raphaelmor/tap_dance.c +++ b/users/raphaelmor/ramo_tap_dance.c @@ -1,12 +1,16 @@ void ramo_TD_make_colemak_default(tap_dance_state_t *state, void *user_data) { if (state->count == 2) { set_single_default_layer(L_COLEMAK); + layer_off(L_HANDSDOWN); + layer_on(L_COLEMAK); } }; void ramo_TD_make_handsdown_default(tap_dance_state_t *state, void *user_data) { if (state->count == 2) { set_single_default_layer(L_HANDSDOWN); + layer_off(L_COLEMAK); + layer_on(L_HANDSDOWN); } }; diff --git a/users/raphaelmor/tap_dance.h b/users/raphaelmor/ramo_tap_dance.h similarity index 100% rename from users/raphaelmor/tap_dance.h rename to users/raphaelmor/ramo_tap_dance.h diff --git a/users/raphaelmor/raphaelmor.c b/users/raphaelmor/raphaelmor.c index 3ecd33e4..24706cda 100644 --- a/users/raphaelmor/raphaelmor.c +++ b/users/raphaelmor/raphaelmor.c @@ -1,27 +1,39 @@ #include QMK_KEYBOARD_H -#include "raphaelmor.h" -void keyboard_post_init_user(void) { - // Customise these values to desired behaviour - debug_enable=true; - // rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); - // rgb_matrix_sethsv_noeeprom(HSV_OFF); -}; +#include "raphaelmor.h" +#include "elpekenin/ledmap.h" + +// Include the ledmap definitions +#include "ramo_ledmap.c" // Info shared by subroutines (tap_dance, combos, etc..) uint8_t saved_modifiers; uint32_t linger_timer = 0; // time elapsed since combo was pressed +// Adaptive +uint16_t prior_keycode = KC_NO; +uint16_t prior_keydown_timer = 0; // timer of keydown for adaptive threshhold. + +void keyboard_post_init_user(void) { + // Customise these values to desired behaviour + debug_enable=true; + debug_keyboard=true; + layer_state_set(default_layer_state); +}; -// process -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - saved_modifiers = get_mods(); // share modifiers - return true; -} // Include tap_dance processing code -#include "tap_dance.c" +#include "ramo_tap_dance.c" // Include combo processing code -#include "combos.c" +#include "ramo_combos.c" + +// Include matrix processing code +#include "ramo_matrix.c" + +// Include adaptive processing code +#include "ramo_adaptive.c" + +// Include process_record code +#include "ramo_process_record.c" diff --git a/users/raphaelmor/raphaelmor.h b/users/raphaelmor/raphaelmor.h index ea7dc748..bb604a60 100644 --- a/users/raphaelmor/raphaelmor.h +++ b/users/raphaelmor/raphaelmor.h @@ -1,7 +1,5 @@ #pragma once -#include "tap_dance.h" -#include "combos.h" +#include "ramo_tap_dance.h" -#define USE_HD_PROMETHIUM // (Gold is the default) -#include "layers.h" +#include "ramo_layers.h" diff --git a/users/raphaelmor/rules.mk b/users/raphaelmor/rules.mk index 03280b6e..b0b077f0 100644 --- a/users/raphaelmor/rules.mk +++ b/users/raphaelmor/rules.mk @@ -1,13 +1,7 @@ -TAP_DANCE_ENABLE = yes -MOUSEKEY_ENABLE = yes -AUTO_SHIFT_ENABLE = no CAPS_WORD_ENABLE = yes -CONSOLE_ENABLE = yes COMBO_ENABLE = yes +TAP_DANCE_ENABLE = yes INTROSPECTION_KEYMAP_C += raphaelmor.c -RGBLIGHT_ENABLE = no -RGB_MATRIX_ENABLE = yes -RGB_MATRIX_CUSTOM_USER = yes