Skip to content

Commit a6169f3

Browse files
committed
feat(mouse): add smart_mouse layer
1 parent 8aa0cee commit a6169f3

File tree

9 files changed

+346
-8
lines changed

9 files changed

+346
-8
lines changed

config/corne.conf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,6 @@ CONFIG_ZMK_BLE_EXPERIMENTAL_FEATURES=y
2828
CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_PROXY=y
2929
CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y
3030

31+
# Enable mouse emulation
32+
CONFIG_ZMK_POINTING=y
33+

config/corneish_zen.conf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,6 @@ CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y
4141
# Use alternative refresh method
4242
# CONFIG_IL0323_ALTERNATIVE_REFRESH=y
4343

44+
# Enable mouse emulation
45+
CONFIG_ZMK_POINTING=y
46+

img/corneish_zen.svg

Lines changed: 219 additions & 5 deletions
Loading

img/corneish_zen.yaml

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ layers:
6666
- {t: '$$mdi:arrow-down-bold$$', h: '$$mdi:apple-keyboard-command$$'}
6767
- {t: '$$mdi:arrow-up-bold$$', h: '$$mdi:apple-keyboard-option$$'}
6868
- {t: '$$mdi:arrow-right-bold$$', h: '$$mdi:apple-keyboard-control$$'}
69-
- {t: '$$mdi:transfer$$', type: trans}
69+
- $$mdi:mouse-scroll-wheel$$
7070
- {t: '$$mdi:transfer$$', type: trans}
7171
- {t: '$$mdi:transfer$$', type: trans}
7272
- {t: '$$mdi:transfer$$', type: trans}
@@ -86,6 +86,49 @@ layers:
8686
- {t: '$$mdi:close-box$$', h: L2}
8787
- {t: '$$mdi:transfer$$', type: trans}
8888
- {t: '$$mdi:transfer$$', type: trans}
89+
Ms:
90+
- {t: '$$mdi:transfer$$', type: trans}
91+
- {t: '$$mdi:transfer$$', type: trans}
92+
- {t: '$$mdi:transfer$$', type: trans}
93+
- {t: '$$mdi:transfer$$', type: trans}
94+
- {t: '$$mdi:transfer$$', type: trans}
95+
- {t: '$$mdi:transfer$$', type: trans}
96+
- {t: '$$mdi:pan-left$$', s: '$$mdi:mouse-scroll-wheel$$'}
97+
- {t: '$$mdi:pan-down$$', s: '$$mdi:mouse-scroll-wheel$$'}
98+
- {t: '$$mdi:pan-up$$', s: '$$mdi:mouse-scroll-wheel$$'}
99+
- {t: '$$mdi:pan-right$$', s: '$$mdi:mouse-scroll-wheel$$'}
100+
- {t: '$$mdi:transfer$$', type: trans}
101+
- {t: '$$mdi:transfer$$', type: trans}
102+
- {t: '$$mdi:transfer$$', type: trans}
103+
- {t: '$$mdi:transfer$$', type: trans}
104+
- {t: '$$mdi:transfer$$', type: trans}
105+
- {t: '$$mdi:transfer$$', type: trans}
106+
- {t: '$$mdi:transfer$$', type: trans}
107+
- {t: '$$mdi:transfer$$', type: trans}
108+
- {t: '$$mdi:arrow-left-thin$$', s: '$$mdi:mouse-scroll-wheel$$'}
109+
- {t: '$$mdi:arrow-down-thin$$', s: '$$mdi:mouse-scroll-wheel$$'}
110+
- {t: '$$mdi:arrow-up-thin$$', s: '$$mdi:mouse-scroll-wheel$$'}
111+
- {t: '$$mdi:arrow-right-thin$$', s: '$$mdi:mouse-scroll-wheel$$'}
112+
- {t: '$$mdi:transfer$$', type: trans}
113+
- {t: '$$mdi:transfer$$', type: trans}
114+
- {t: '$$mdi:transfer$$', type: trans}
115+
- {t: '$$mdi:transfer$$', type: trans}
116+
- {t: '$$mdi:transfer$$', type: trans}
117+
- {t: '$$mdi:transfer$$', type: trans}
118+
- {t: '$$mdi:transfer$$', type: trans}
119+
- {t: '$$mdi:transfer$$', type: trans}
120+
- {t: '$$mdi:transfer$$', type: trans}
121+
- {t: '$$mdi:transfer$$', type: trans}
122+
- {t: '$$mdi:transfer$$', type: trans}
123+
- {t: '$$mdi:transfer$$', type: trans}
124+
- {t: '$$mdi:transfer$$', type: trans}
125+
- {t: '$$mdi:transfer$$', type: trans}
126+
- {t: '$$mdi:transfer$$', type: trans}
127+
- {t: '$$mdi:transfer$$', type: trans}
128+
- {t: '$$mdi:transfer$$', type: trans}
129+
- {t: '$$mdi:transfer$$', type: trans}
130+
- $$mdi:mouse-left-click-outline$$
131+
- $$mdi:mouse-right-click-outline$$
89132
Fn:
90133
- {t: '$$mdi:toggle-switch$$', h: '$$mdi:bluetooth$$', s: '$$mdi:usb$$'}
91134
- F1

keymap-drawer/config.yaml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,35 @@ parse_config:
3535
tap: $$mdi:minus-circle-outline$$
3636
type: none
3737

38+
# Mouse
39+
"&smart_mouse": $$mdi:mouse-scroll-wheel$$
40+
"&mmv MOVE_UP":
41+
tap: $$mdi:arrow-up-thin$$
42+
shifted: $$mdi:mouse-scroll-wheel$$
43+
"&mmv MOVE_DOWN":
44+
tap: $$mdi:arrow-down-thin$$
45+
shifted: $$mdi:mouse-scroll-wheel$$
46+
"&mmv MOVE_LEFT":
47+
tap: $$mdi:arrow-left-thin$$
48+
shifted: $$mdi:mouse-scroll-wheel$$
49+
"&mmv MOVE_RIGHT":
50+
tap: $$mdi:arrow-right-thin$$
51+
shifted: $$mdi:mouse-scroll-wheel$$
52+
"&msc SCRL_UP":
53+
tap: $$mdi:pan-up$$
54+
shifted: $$mdi:mouse-scroll-wheel$$
55+
"&msc SCRL_DOWN":
56+
tap: $$mdi:pan-down$$
57+
shifted: $$mdi:mouse-scroll-wheel$$
58+
"&msc SCRL_LEFT":
59+
tap: $$mdi:pan-left$$
60+
shifted: $$mdi:mouse-scroll-wheel$$
61+
"&msc SCRL_RIGHT":
62+
tap: $$mdi:pan-right$$
63+
shifted: $$mdi:mouse-scroll-wheel$$
64+
"&mkp LCLK": $$mdi:mouse-left-click-outline$$
65+
"&mkp RCLK": $$mdi:mouse-right-click-outline$$
66+
3867
# Whitespace
3968
"&bkspc_del":
4069
type: backspace

knucklehead/L2.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
&trans &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp C_PREV &kp C_VOL_DN &kp C_VOL_UP &kp C_NEXT &kp C_MUTE &trans
1515
// ├───────────────├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤ ├───────────────├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤
1616
// │12 │13 │14 │15 │16 │17 │ │18 │19 │20 │21 │22 │23 │
17-
&trans &kp N6 &hrml LCTRL N7 &hrml LALT N8 &hrml LCMD N9 &hrml MEH N0 &hrmr MEH LEFT &hrmr LCMD DOWN &hrmr LALT UP &hrmr LCTRL RIGHT&trans &trans
17+
&trans &kp N6 &hrml LCTRL N7 &hrml LALT N8 &hrml LCMD N9 &hrml MEH N0 &hrmr MEH LEFT &hrmr LCMD DOWN &hrmr LALT UP &hrmr LCTRL RIGHT&smart_mouse &trans
1818
// ├───────────────├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤ ├───────────────├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤
1919
// │24 │25 │26 │27 │28 │29 │ │30 │31 │32 │33 │34 │35 │
2020
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans

knucklehead/Ms.dtsi

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/**
2+
* Mouse Emulation Layer
3+
*/
4+
5+
/ {
6+
keymap {
7+
compatible = "zmk,keymap";
8+
9+
ms_layer {
10+
display-name = "Ms";
11+
bindings = <
12+
// ╭───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────╮ ╭───────────────┬───────────────┬───────────────┬───────────────┬───────────────┬───────────────╮
13+
// │0 │1 │2 │3 │4 │5 │ │6 │7 │8 │9 │10 │11 │
14+
&trans &trans &trans &trans &trans &trans &msc SCRL_LEFT &msc SCRL_DOWN &msc SCRL_UP &msc SCRL_RIGHT &trans &trans
15+
// ├───────────────├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤ ├───────────────├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤
16+
// │12 │13 │14 │15 │16 │17 │ │18 │19 │20 │21 │22 │23 │
17+
&trans &trans &trans &trans &trans &trans &mmv MOVE_LEFT &mmv MOVE_DOWN &mmv MOVE_UP &mmv MOVE_RIGHT &trans &trans
18+
// ├───────────────├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤ ├───────────────├───────────────┼───────────────┼───────────────┼───────────────┼───────────────┤
19+
// │24 │25 │26 │27 │28 │29 │ │30 │31 │32 │33 │34 │35 │
20+
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
21+
// ╰───────────────┴───────────────┴───────────────┼───────────────┼───────────────┼───────────────┤ ├───────────────├───────────────┼───────────────┼───────────────┴───────────────┴───────────────╯
22+
// │36 │37 │38 │ │39 │40 │41 │
23+
&trans &trans &trans &trans &mkp LCLK &mkp RCLK
24+
// ╰───────────────┴───────────────┴───────────────╯ ╰───────────────┴───────────────┴───────────────╯
25+
>;
26+
};
27+
};
28+
};

knucklehead/base.dtsi

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,14 @@
44
#include <dt-bindings/zmk/keys.h>
55
#include <dt-bindings/zmk/bt.h>
66
#include <dt-bindings/zmk/outputs.h>
7+
#include <dt-bindings/zmk/pointing.h>
8+
79

810
// Layers
911
#define L1 0
1012
#define L2 1
11-
#define Fn 2
13+
#define Ms 2
14+
#define Fn 3
1215

1316
// Meh key
1417
#define MEH LS(LC(LALT))
@@ -39,5 +42,6 @@
3942

4043
// Other layers
4144
#include "L2.dtsi"
45+
#include "Ms.dtsi"
4246
#include "Fn.dtsi"
4347

knucklehead/behaviors.dtsi

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,20 @@
104104
#binding-cells = <0>;
105105
};
106106

107+
/*
108+
- tap: &tog Ms
109+
- tap x 2: &none
110+
- tap x 3: &tog Ms
111+
*/
112+
/omit-if-no-ref/ smart_mouse: smart_mouse {
113+
compatible = "zmk,behavior-tri-state";
114+
bindings = <&tog Ms>, <&none>, <&tog Ms>;
115+
ignored-key-positions = <6 7 8 9 18 19 20 21 40 41>;
116+
ignored-layers = <L2 Ms>
117+
#binding-cells = <0>;
118+
};
119+
120+
107121
/*
108122
- tap: &kp <PARAM_2>
109123
- hold: &none

0 commit comments

Comments
 (0)