Skip to content

Commit d2bed27

Browse files
CoffeeIsLife87Fae
and
Fae
authored
Add mouse layer to Kprepublic BM40HSRGB Coffee layout (#19878)
Co-authored-by: Fae <[email protected]>
1 parent 3110a70 commit d2bed27

File tree

4 files changed

+103
-40
lines changed

4 files changed

+103
-40
lines changed

keyboards/kprepublic/bm40hsrgb/keymaps/coffee/config.h

+8
Original file line numberDiff line numberDiff line change
@@ -81,5 +81,13 @@
8181

8282
#ifdef MOUSEKEY_ENABLE
8383
# define MOUSEKEY_INTERVAL 16 // 60 FPS
84+
85+
// Speed up the slowest preset
86+
# define MK_C_OFFSET_0 4
87+
# define MK_C_INTERVAL_0 16
88+
89+
// Speed up the medium preset
90+
# define MK_C_OFFSET_1 16
91+
8492
# define MK_3_SPEED
8593
#endif

keyboards/kprepublic/bm40hsrgb/keymaps/coffee/keymap.c

+36-1
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,30 @@ enum custom_keycodes {
1010
MCR_REC, // Macro record
1111
MCR_SWT, // Swap active macro
1212
#endif
13+
#ifdef MOUSEKEY_ENABLE
14+
MS_ACL_U,
15+
MS_ACL_D,
16+
#endif
1317
};
1418

1519
enum layout_names {
1620
_MAIN = 0, // Keys Layout: The main keyboard layout that has all the characters
1721
_SUB, // Extension to Main
1822
_CTR, // Macros, RGB, Audio controls, layer access. More or less the control center of my keyboard
23+
#ifdef MOUSEKEY_ENABLE
24+
_MSE,
25+
#endif // MOUSEKEY_ENABLE
1926
_END,
2027
};
2128

29+
#ifdef MOUSEKEY_ENABLE
30+
#include "action.h"
31+
#define TOG_MSE TG(_MSE)
32+
static int current_accel = 0;
33+
#else
34+
#define TOG_MSE XXXXXXX
35+
#endif // MOUSEKEY_ENABLE
36+
2237
#ifdef DYNAMIC_MACRO_ENABLE
2338
// Macro 1 is = 1, Macro 2 = -1, No macro = 0
2439
static bool MACRO1 = true;
@@ -57,8 +72,16 @@ const uint16_t PROGMEM keymaps[_END][MATRIX_ROWS][MATRIX_COLS] = {
5772
XXXXXXX, RGB_SPD, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, XXXXXXX, XXXXXXX, KC_VOLU, XXXXXXX, XXXXXXX, MCR_REC,
5873
XXXXXXX, RGB_RMOD,RGB_VAD, RGB_MOD, RGB_HUD, RGB_SAD, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, MCR_PLY,
5974
XXXXXXX, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, XXXXXXX, XXXXXXX, MCR_SWT,
60-
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
75+
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TOG_MSE, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
76+
)
77+
#ifdef MOUSEKEY_ENABLE
78+
,[_MSE] = LAYOUT_planck_mit(
79+
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
80+
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,
81+
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
82+
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, MS_ACL_D, TOG_MSE, MS_ACL_U,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
6183
)
84+
#endif // MOUSEKEY_ENABLE
6285
};
6386

6487
#define LAYER (get_highest_layer(layer_state))
@@ -126,6 +149,18 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
126149
}
127150
#endif
128151

152+
#ifdef MOUSEKEY_ENABLE
153+
if (keycode == MS_ACL_U || keycode == MS_ACL_D) {
154+
if (record->event.pressed) {
155+
if ( (keycode == MS_ACL_U) && (current_accel < 2) ) { current_accel += 1; }
156+
if ( (keycode == MS_ACL_D) && (current_accel > 0) ) { current_accel -= 1; }
157+
}
158+
keycode = KC_ACL0 + current_accel;
159+
action_t mousekey_action = action_for_keycode(keycode);
160+
process_action(record, mousekey_action);
161+
}
162+
#endif
163+
129164
switch (keycode) {
130165
#ifdef DYNAMIC_MACRO_ENABLE
131166
case MCR_SWT:

keyboards/kprepublic/bm40hsrgb/keymaps/coffee/readme.md

+58-38
Original file line numberDiff line numberDiff line change
@@ -5,48 +5,68 @@ A layout that aims to be familiar to people that have used larger boards
55
## The layout
66

77
The primary layer ( `_MAIN` ) is as close to standard qwerty as I could get.
8-
```
9-
esc | q | w | e | r | t | y | u | i | o | p | bksp
10-
tab | a | s | d | f | g | h | j | k | l | ; | '
11-
shft | z | x | c | v | b | n | m | , | . | / | rtrn
12-
ctrl | win | | alt | SUB | spc | CTR | lft | dwn | up | rght
13-
```
8+
| row | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
9+
|-----|------|------|---|-----|-----|-----|-----|-----|-----|-----|----|------|
10+
| 1 | esc | q | w | e | r | t | y | u | i | o | p | bksp |
11+
| 2 | tab | a | s | d | f | g | h | j | k | l | ; | ' |
12+
| 3 | shft | z | x | c | v | b | n | m | , | . | / | rtrn |
13+
| 4 | ctrl | win | | alt | SUB | spc | <- | CTR | lft | dwn | up | rght |
1414

1515
The secondary layer ( `_SUB` ) is for syntax, F keys, and number keys
16-
```
17-
grv | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | del
18-
| F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | pgup
19-
_ | F7 | F8 | F9 | F10 | F11 | F12 | | home | end | \ | pgdn
20-
_ | _ | | _ | _ | _ | _ | | | |
21-
```
16+
| row | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
17+
|-----|-----|----|----|----|-----|-----|-----|----|------|-----|----|------|
18+
| 1 | grv | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | del |
19+
| 2 | | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | pgup |
20+
| 3 | _ | F7 | F8 | F9 | F10 | F11 | F12 | | home | end | \ | pgdn |
21+
| 4 | _ | _ | | _ | _ | _ | <- | _ | | | | |
2222

2323
The control layer ( `_CTR` ) is for lighting, media, and macros
24-
```
25-
| SPD- | BRI+ | SPD+ | HUE+ | SAT+ | | | VOL+ | | | MCR_REC
26-
| EFCT- | BRI- | EFCT+ | HUE- | SAT- | | PREV | PLAY | NEXT | | MCR_PLY
27-
| | TOG | | | | | | VOL- | | | MCR_SWT
28-
| | | | | _ | | | | |
29-
```
30-
31-
| Key name | Explanation |
32-
| -------- | -------------------------------------- |
33-
| \_ | Passthrough the key on the layer below |
34-
| SUB | Goes to _SUB layer while held down |
35-
| CTR | Goes to _CTR layer while held down |
36-
| SPD +/- | Changes speed for the RGB effect |
37-
| BRI +/- | Changes the brightness of the lighting |
38-
| EFCT +/- | Moves to the next/previous effect |
39-
| TOG | Toggles the lighting on or off |
40-
| HUE +/- | Changes the hue for RGB effects |
41-
| SAT +/- | Changes the saturation for RGB effects |
42-
| MSE | Toggles the Mouse layer |
43-
| VOL +/- | Raises or lowers media volume |
44-
| PREV | Goes to previous media |
45-
| PLAY | Play/Pause media |
46-
| NEXT | Goes to next media |
47-
| MCR_REC | Record macro ( Press again to stop ) |
48-
| MCR_PLY | Play recorded macro |
49-
| MCR_SWT | Switch active macro |
24+
| row | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
25+
|-----|---|-------|------|-------|------|---------|-----|------|------|------|----|---------|
26+
| 1 | | SPD- | BRI+ | SPD+ | HUE+ | SAT+ | | | VOL+ | | | MCR_REC |
27+
| 2 | | EFCT- | BRI- | EFCT+ | HUE- | SAT- | | PREV | PLAY | NEXT | | MCR_PLY |
28+
| 3 | | | TOG | | | | | | VOL- | | | MCR_SWT |
29+
| 4 | | | | | | MSE_TOG | <- | | | | | |
30+
31+
The mouse layer ( `_MSE` ) is for making the keyboard function as a mouse as well
32+
| row | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
33+
|-----|---|------|------|------|-------|---------|-----|-------|-------|-------|-------|----|
34+
| 1 | | | | | | | | | | | | |
35+
| 2 | | MS_L | MS_D | MS_U | MS_R | | | L_CLC | SCR_D | SCR_U | R_CLC | |
36+
| 3 | | | | | | | | | | | | |
37+
| 4 | | | | | ACL_D | MSE_TOG | <- | ACL_U | | | | |
38+
39+
| Key name | Explanation |
40+
|----------|----------------------------------------------|
41+
| \_ | Passthrough the key on the layer below |
42+
| <- | Same key as imediate left. Used for spacebar |
43+
| SUB | Goes to _SUB layer while held down |
44+
| CTR | Goes to _CTR layer while held down |
45+
| MSE_TOG | Toggles the mouse layer on or off |
46+
| SPD +/- | Changes speed for the RGB effect |
47+
| BRI +/- | Changes the brightness of the lighting |
48+
| EFCT +/- | Moves to the next/previous effect |
49+
| TOG | Toggles the lighting on or off |
50+
| HUE +/- | Changes the hue for RGB effects |
51+
| SAT +/- | Changes the saturation for RGB effects |
52+
| MSE | Toggles the Mouse layer |
53+
| VOL +/- | Raises or lowers media volume |
54+
| PREV | Goes to previous media |
55+
| PLAY | Play/Pause media |
56+
| NEXT | Goes to next media |
57+
| MCR_REC | Record macro ( Press again to stop ) |
58+
| MCR_PLY | Play recorded macro |
59+
| MCR_SWT | Switch active macro |
60+
| MS_L | Move mouse cursor left |
61+
| MS_U | Move mouse cursor up |
62+
| MS_D | Move mouse cursor down |
63+
| MD_R | Move mouse cursor right |
64+
| L_CLC | Mouse left click |
65+
| R_CLC | Mouse right click |
66+
| SCR_U | Mouse scroll up |
67+
| SCR_D | Mouse scroll down |
68+
| ACL_U | Raise mouse/scroll speed |
69+
| ACL_D | Lower mouse/scroll speed |
5070

5171
## Compiling
5272

Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
MOUSEKEY_ENABLE = no
1+
MOUSEKEY_ENABLE = yes
22
NKRO_ENABLE = yes
33
DYNAMIC_MACRO_ENABLE = yes
44
LTO_ENABLE = yes

0 commit comments

Comments
 (0)