diff options
4 files changed, 103 insertions, 40 deletions
| diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/config.h index c366c20a8c..b5c19a31b8 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/config.h +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/config.h @@ -81,5 +81,13 @@  #ifdef MOUSEKEY_ENABLE  #    define MOUSEKEY_INTERVAL 16 // 60 FPS + +// Speed up the slowest preset +#    define MK_C_OFFSET_0 4 +#    define MK_C_INTERVAL_0 16 + +// Speed up the medium preset +#    define MK_C_OFFSET_1 16 +  #    define MK_3_SPEED  #endif
\ No newline at end of file diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c index 720c7a1d3f..53f605c54d 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c @@ -10,15 +10,30 @@ enum custom_keycodes {          MCR_REC,             // Macro record          MCR_SWT,             // Swap active macro      #endif +    #ifdef MOUSEKEY_ENABLE +        MS_ACL_U, +        MS_ACL_D, +    #endif  };  enum layout_names {      _MAIN = 0,       // Keys Layout: The main keyboard layout that has all the characters      _SUB,            // Extension to Main      _CTR,            // Macros, RGB, Audio controls, layer access. More or less the control center of my keyboard +    #ifdef MOUSEKEY_ENABLE +    _MSE, +    #endif // MOUSEKEY_ENABLE      _END,  }; +#ifdef MOUSEKEY_ENABLE +#include "action.h" +#define TOG_MSE TG(_MSE) +static int current_accel = 0; +#else +#define TOG_MSE XXXXXXX +#endif // MOUSEKEY_ENABLE +  #ifdef DYNAMIC_MACRO_ENABLE      // Macro 1 is = 1, Macro 2 = -1, No macro = 0      static bool MACRO1 = true; @@ -57,8 +72,16 @@ const uint16_t PROGMEM keymaps[_END][MATRIX_ROWS][MATRIX_COLS] = {          XXXXXXX, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, XXXXXXX, XXXXXXX, KC_VOLU, XXXXXXX, XXXXXXX, MCR_REC,          XXXXXXX, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, MCR_PLY,          XXXXXXX, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, XXXXXXX, XXXXXXX, MCR_SWT, -        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,      XXXXXXX,     _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,      TOG_MSE,     _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX +    ) +    #ifdef MOUSEKEY_ENABLE +    ,[_MSE] = LAYOUT_planck_mit( +        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, +        XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, XXXXXXX, XXXXXXX, KC_BTN1, KC_WH_D, KC_WH_U, KC_BTN2, XXXXXXX, +        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, +        XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MS_ACL_D,      TOG_MSE,    MS_ACL_U,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX      ) +    #endif // MOUSEKEY_ENABLE  };  #define LAYER (get_highest_layer(layer_state)) @@ -126,6 +149,18 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {          }      #endif +    #ifdef MOUSEKEY_ENABLE +    if (keycode == MS_ACL_U || keycode == MS_ACL_D) { +        if (record->event.pressed) { +            if ( (keycode == MS_ACL_U) && (current_accel < 2) ) { current_accel += 1; } +            if ( (keycode == MS_ACL_D) && (current_accel > 0) ) { current_accel -= 1; } +        } +        keycode = KC_ACL0 + current_accel; +        action_t mousekey_action = action_for_keycode(keycode); +        process_action(record, mousekey_action); +    } +    #endif +      switch (keycode) {          #ifdef DYNAMIC_MACRO_ENABLE              case MCR_SWT: diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/readme.md b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/readme.md index 66c518e347..2798567b5e 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/readme.md +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/readme.md @@ -5,48 +5,68 @@ A layout that aims to be familiar to people that have used larger boards  ## The layout  The primary layer ( `_MAIN` ) is as close to standard qwerty as I could get. -``` -esc  |  q   |  w   |   e   |  r   |  t   | y   | u    | i    | o    | p  | bksp -tab  |  a   |  s   |   d   |  f   |  g   | h   | j    | k    | l    | ;  | ' -shft |  z   |  x   |   c   |  v   |  b   | n   | m    | ,    | .    | /  | rtrn -ctrl | win  |      |  alt  | SUB  |     spc    | CTR  | lft  | dwn  | up | rght -``` +| row | 1    | 2    | 3 | 4   | 5   | 6   | 7   | 8   | 9   | 10  | 11 | 12   | +|-----|------|------|---|-----|-----|-----|-----|-----|-----|-----|----|------| +| 1   | esc  |  q   | w |  e  |  r  |  t  | y   | u   | i   | o   | p  | bksp | +| 2   | tab  |  a   | s |  d  |  f  |  g  | h   | j   | k   | l   | ;  | '    | +| 3   | shft |  z   | x |  c  |  v  |  b  | n   | m   | ,   | .   | /  | rtrn | +| 4   | ctrl | win  |   | alt | SUB | spc | <- | CTR | lft | dwn | up | rght |  The secondary layer ( `_SUB` ) is for syntax, F keys, and number keys -``` -grv |   1   |  2   |  3    | 4    | 5    | 6   | 7    | 8    | 9    | 0  | del -    |   F1  |  F2  |  F3   | F4   | F5   | F6  | -    | =    | [    | ]  | pgup - _  |   F7  |  F8  |  F9   | F10  | F11  | F12 |      | home | end  | \  | pgdn - _  |   _   |      |  _    | _    |      _     | _    |      |      |    | -``` +| row | 1   | 2  | 3  | 4  | 5   | 6   | 7   | 8  | 9    | 10  | 11 | 12   | +|-----|-----|----|----|----|-----|-----|-----|----|------|-----|----|------| +| 1   | grv | 1  | 2  | 3  | 4   | 5   | 6   | 7  | 8    | 9   | 0  | del  | +| 2   |     | F1 | F2 | F3 | F4  | F5  | F6  | -  | =    | [   | ]  | pgup | +| 3   | _   | F7 | F8 | F9 | F10 | F11 | F12 |    | home | end | \  | pgdn | +| 4   | _   | _  |    | _  | _   | _   | <-  | _  |      |     |    |      |  The control layer ( `_CTR` ) is for lighting, media, and macros -``` -    | SPD-  | BRI+ | SPD+  | HUE+ | SAT+ |     |      | VOL+ |      |    | MCR_REC -    | EFCT- | BRI- | EFCT+ | HUE- | SAT- |     | PREV | PLAY | NEXT |    | MCR_PLY -    |       | TOG  |       |      |      |     |      | VOL- |      |    | MCR_SWT -    |       |      |       |      |      _     |      |      |      |    | -``` - -| Key name | Explanation                            | -| -------- | -------------------------------------- | -| \_       | Passthrough the key on the layer below | -| SUB      | Goes to _SUB layer while held down     | -| CTR      | Goes to _CTR layer while held down     | -| SPD +/-  | Changes speed for the RGB effect       | -| BRI +/-  | Changes the brightness of the lighting | -| EFCT +/- | Moves to the next/previous effect      | -| TOG      | Toggles the lighting on or off         | -| HUE +/-  | Changes the hue for RGB effects        | -| SAT +/-  | Changes the saturation for RGB effects | -| MSE      | Toggles the Mouse layer                | -| VOL +/-  | Raises or lowers media volume          | -| PREV     | Goes to previous media                 | -| PLAY     | Play/Pause media                       | -| NEXT     | Goes to next media                     | -| MCR_REC  | Record macro ( Press again to stop )   | -| MCR_PLY  | Play recorded macro                    | -| MCR_SWT  | Switch active macro                    | +| row | 1 | 2     | 3    | 4     | 5    | 6       | 7   | 8    | 9    | 10   | 11 | 12      | +|-----|---|-------|------|-------|------|---------|-----|------|------|------|----|---------| +| 1   |   | SPD-  | BRI+ | SPD+  | HUE+ | SAT+    |     |      | VOL+ |      |    | MCR_REC | +| 2   |   | EFCT- | BRI- | EFCT+ | HUE- | SAT-    |     | PREV | PLAY | NEXT |    | MCR_PLY | +| 3   |   |       | TOG  |       |      |         |     |      | VOL- |      |    | MCR_SWT | +| 4   |   |       |      |       |      | MSE_TOG | <-  |      |      |      |    |         | + +The mouse layer ( `_MSE` ) is for making the keyboard function as a mouse as well +| row | 1 | 2    | 3    | 4    | 5     | 6       | 7   | 8     | 9     | 10    | 11    | 12 | +|-----|---|------|------|------|-------|---------|-----|-------|-------|-------|-------|----| +| 1   |   |      |      |      |       |         |     |       |       |       |       |    | +| 2   |   | MS_L | MS_D | MS_U | MS_R  |         |     | L_CLC | SCR_D | SCR_U | R_CLC |    | +| 3   |   |      |      |      |       |         |     |       |       |       |       |    | +| 4   |   |      |      |      | ACL_D | MSE_TOG | <-  | ACL_U |       |       |       |    | + +| Key name | Explanation                                  | +|----------|----------------------------------------------| +| \_       | Passthrough the key on the layer below       | +| <-       | Same key as imediate left. Used for spacebar | +| SUB      | Goes to _SUB layer while held down           | +| CTR      | Goes to _CTR layer while held down           | +| MSE_TOG  | Toggles the mouse layer on or off            | +| SPD +/-  | Changes speed for the RGB effect             | +| BRI +/-  | Changes the brightness of the lighting       | +| EFCT +/- | Moves to the next/previous effect            | +| TOG      | Toggles the lighting on or off               | +| HUE +/-  | Changes the hue for RGB effects              | +| SAT +/-  | Changes the saturation for RGB effects       | +| MSE      | Toggles the Mouse layer                      | +| VOL +/-  | Raises or lowers media volume                | +| PREV     | Goes to previous media                       | +| PLAY     | Play/Pause media                             | +| NEXT     | Goes to next media                           | +| MCR_REC  | Record macro ( Press again to stop )         | +| MCR_PLY  | Play recorded macro                          | +| MCR_SWT  | Switch active macro                          | +| MS_L     | Move mouse cursor left                       | +| MS_U     | Move mouse cursor up                         | +| MS_D     | Move mouse cursor down                       | +| MD_R     | Move mouse cursor right                      | +| L_CLC    | Mouse left click                             | +| R_CLC    | Mouse right click                            | +| SCR_U    | Mouse scroll up                              | +| SCR_D    | Mouse scroll down                            | +| ACL_U    | Raise mouse/scroll speed                     | +| ACL_D    | Lower mouse/scroll speed                     |  ## Compiling diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/rules.mk b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/rules.mk index 5d3039b8e2..1f143e6026 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/rules.mk +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/coffee/rules.mk @@ -1,4 +1,4 @@ -MOUSEKEY_ENABLE = no +MOUSEKEY_ENABLE = yes  NKRO_ENABLE = yes  DYNAMIC_MACRO_ENABLE = yes  LTO_ENABLE = yes
\ No newline at end of file | 
