main
1// Leader key configuration for eyelash_corne
2// Port of Moonlander leader sequences to ZMK
3// Using zmk-leader-key module syntax
4
5/ {
6 behaviors {
7 leader: leader {
8 compatible = "zmk,behavior-leader-key";
9 #binding-cells = <0>;
10
11 // ====== LAYOUT SWITCHING ======
12 // Leader + l + <key> for layout changes
13
14 bepo { sequence = <L B>; bindings = <&to 0>; };
15 ergol { sequence = <L E>; bindings = <&to 1>; };
16 qwerty { sequence = <L Q>; bindings = <&to 2>; };
17
18 // ====== DEVELOPMENT PATTERNS - GENERAL ======
19 // Leader + c + <key> for code snippets
20
21 nil { sequence = <C N>; bindings = <&kp N &kp I &kp L>; };
22
23 // Note: Complex macros need to be defined as ZMK macros
24 // For now, keeping simpler sequences
25
26 // ====== PERSONAL MACROS ======
27 // Leader + m + <key> for personal macros
28
29 // These would need macro definitions for complex sequences
30 // Keeping placeholders for now
31
32 // ====== APPLICATION SHORTCUTS ======
33 // Leader + a + <key> for application launches (using niri keybindings)
34
35 fuzzel { sequence = <A D>; bindings = <&kp LG(D)>; };
36 emacs { sequence = <A E>; bindings = <&kp LG(LS(RET))>; };
37 terminal { sequence = <A T>; bindings = <&kp LG(RET)>; };
38 emoji { sequence = <A J>; bindings = <&kp LG(LC(D))>; };
39 clipboard { sequence = <A V>; bindings = <&kp LG(LC(V))>; };
40 raffi { sequence = <A R>; bindings = <&kp LG(LS(D))>; };
41 };
42 };
43
44 // Macros for complex leader sequences
45 macros {
46 // Development patterns - General
47 macro_go_err: macro_go_err {
48 compatible = "zmk,behavior-macro";
49 #binding-cells = <0>;
50 bindings = <&kp I &kp F &kp SPACE &kp E &kp R &kp R &kp SPACE &kp EXCL &kp EQUAL &kp SPACE &kp N &kp I &kp L &kp SPACE &kp LBRC &kp RET &kp TAB>;
51 };
52
53 macro_console_log: macro_console_log {
54 compatible = "zmk,behavior-macro";
55 #binding-cells = <0>;
56 bindings = <&kp C &kp O &kp N &kp S &kp O &kp L &kp E &kp DOT &kp L &kp O &kp G &kp LPAR &kp RPAR &kp LEFT>;
57 };
58
59 macro_fmt_println: macro_fmt_println {
60 compatible = "zmk,behavior-macro";
61 #binding-cells = <0>;
62 bindings = <&kp F &kp M &kp T &kp DOT &kp P &kp R &kp I &kp N &kp T &kp L &kp N &kp LPAR &kp RPAR &kp LEFT>;
63 };
64
65 macro_function: macro_function {
66 compatible = "zmk,behavior-macro";
67 #binding-cells = <0>;
68 bindings = <&kp F &kp U &kp N &kp C &kp T &kp I &kp O &kp N &kp LPAR &kp RPAR &kp SPACE &kp LBRC &kp RBRC &kp LEFT &kp LEFT>;
69 };
70
71 macro_arrow_fn: macro_arrow_fn {
72 compatible = "zmk,behavior-macro";
73 #binding-cells = <0>;
74 bindings = <&kp LPAR &kp RPAR &kp SPACE &kp EQUAL &kp GT &kp SPACE &kp LBRC &kp RBRC &kp LEFT &kp LEFT>;
75 };
76
77 // Python patterns
78 macro_py_main: macro_py_main {
79 compatible = "zmk,behavior-macro";
80 #binding-cells = <0>;
81 bindings = <&kp I &kp F &kp SPACE &kp UNDER &kp UNDER &kp N &kp A &kp M &kp E &kp UNDER &kp UNDER &kp SPACE &kp EQUAL &kp EQUAL &kp SPACE &kp DQT &kp UNDER &kp UNDER &kp M &kp A &kp I &kp N &kp UNDER &kp UNDER &kp DQT &kp COLON &kp RET &kp TAB>;
82 };
83
84 macro_py_def: macro_py_def {
85 compatible = "zmk,behavior-macro";
86 #binding-cells = <0>;
87 bindings = <&kp D &kp E &kp F &kp SPACE &kp LPAR &kp RPAR &kp COLON &kp RET &kp TAB>;
88 };
89
90 macro_py_class: macro_py_class {
91 compatible = "zmk,behavior-macro";
92 #binding-cells = <0>;
93 bindings = <&kp C &kp L &kp A &kp S &kp S &kp SPACE &kp COLON &kp RET &kp TAB>;
94 };
95
96 macro_py_print: macro_py_print {
97 compatible = "zmk,behavior-macro";
98 #binding-cells = <0>;
99 bindings = <&kp P &kp R &kp I &kp N &kp T &kp LPAR &kp F &kp DQT &kp DQT &kp RPAR &kp LEFT &kp LEFT>;
100 };
101
102 macro_py_try: macro_py_try {
103 compatible = "zmk,behavior-macro";
104 #binding-cells = <0>;
105 bindings = <&kp T &kp R &kp Y &kp COLON &kp RET &kp TAB &kp RET &kp E &kp X &kp C &kp E &kp P &kp T &kp SPACE &kp E &kp X &kp C &kp E &kp P &kp T &kp I &kp O &kp N &kp SPACE &kp A &kp S &kp SPACE &kp E &kp COLON &kp RET &kp TAB>;
106 };
107
108 macro_py_with: macro_py_with {
109 compatible = "zmk,behavior-macro";
110 #binding-cells = <0>;
111 bindings = <&kp W &kp I &kp T &kp H &kp SPACE &kp O &kp P &kp E &kp N &kp LPAR &kp DQT &kp DQT &kp COMMA &kp SPACE &kp DQT &kp R &kp DQT &kp RPAR &kp SPACE &kp A &kp S &kp SPACE &kp F &kp COLON &kp RET &kp TAB>;
112 };
113
114 // Emacs Lisp patterns
115 macro_el_defun: macro_el_defun {
116 compatible = "zmk,behavior-macro";
117 #binding-cells = <0>;
118 bindings = <&kp LPAR &kp D &kp E &kp F &kp U &kp N &kp SPACE &kp SPACE &kp LPAR &kp RPAR &kp RET>;
119 };
120
121 macro_el_interactive: macro_el_interactive {
122 compatible = "zmk,behavior-macro";
123 #binding-cells = <0>;
124 bindings = <&kp LPAR &kp I &kp N &kp T &kp E &kp R &kp A &kp C &kp T &kp I &kp V &kp E &kp RPAR>;
125 };
126
127 macro_el_let: macro_el_let {
128 compatible = "zmk,behavior-macro";
129 #binding-cells = <0>;
130 bindings = <&kp LPAR &kp L &kp E &kp T &kp SPACE &kp LPAR &kp LPAR>;
131 };
132
133 macro_el_setq: macro_el_setq {
134 compatible = "zmk,behavior-macro";
135 #binding-cells = <0>;
136 bindings = <&kp LPAR &kp S &kp E &kp T &kp Q &kp SPACE &kp SPACE &kp RPAR &kp LEFT &kp LEFT>;
137 };
138
139 macro_el_message: macro_el_message {
140 compatible = "zmk,behavior-macro";
141 #binding-cells = <0>;
142 bindings = <&kp LPAR &kp M &kp E &kp S &kp S &kp A &kp G &kp E &kp SPACE &kp DQT &kp DQT &kp RPAR &kp LEFT &kp LEFT>;
143 };
144
145 macro_el_require: macro_el_require {
146 compatible = "zmk,behavior-macro";
147 #binding-cells = <0>;
148 bindings = <&kp LPAR &kp R &kp E &kp Q &kp U &kp I &kp R &kp E &kp SPACE &kp SQT &kp RPAR &kp LEFT>;
149 };
150
151 // Nix patterns
152 macro_nix_fn: macro_nix_fn {
153 compatible = "zmk,behavior-macro";
154 #binding-cells = <0>;
155 bindings = <&kp LBRC &kp SPACE &kp P &kp K &kp G &kp S &kp COMMA &kp SPACE &kp DOT &kp DOT &kp DOT &kp SPACE &kp RBRC &kp COLON>;
156 };
157
158 macro_nix_let: macro_nix_let {
159 compatible = "zmk,behavior-macro";
160 #binding-cells = <0>;
161 bindings = <&kp L &kp E &kp T &kp RET &kp TAB &kp RET &kp I &kp N &kp RET>;
162 };
163
164 macro_nix_with: macro_nix_with {
165 compatible = "zmk,behavior-macro";
166 #binding-cells = <0>;
167 bindings = <&kp W &kp I &kp T &kp H &kp SPACE &kp P &kp K &kp G &kp S &kp SEMI &kp SPACE &kp LBKT &kp RET &kp TAB &kp RET &kp RBKT>;
168 };
169
170 macro_nix_inherit: macro_nix_inherit {
171 compatible = "zmk,behavior-macro";
172 #binding-cells = <0>;
173 bindings = <&kp I &kp N &kp H &kp E &kp R &kp I &kp T &kp SPACE &kp SEMI &kp LEFT &kp LEFT>;
174 };
175
176 macro_nix_build: macro_nix_build {
177 compatible = "zmk,behavior-macro";
178 #binding-cells = <0>;
179 bindings = <&kp B &kp U &kp I &kp L &kp D &kp I &kp N &kp P &kp U &kp T &kp S &kp SPACE &kp EQUAL &kp SPACE &kp LBKT &kp SPACE &kp RBKT &kp SEMI>;
180 };
181
182 macro_nix_script: macro_nix_script {
183 compatible = "zmk,behavior-macro";
184 #binding-cells = <0>;
185 bindings = <&kp P &kp K &kp G &kp S &kp DOT &kp W &kp R &kp I &kp T &kp E &kp S &kp H &kp E &kp L &kp L &kp S &kp C &kp R &kp I &kp P &kp T &kp B &kp I &kp N &kp SPACE &kp DQT &kp DQT &kp SPACE &kp SQT &kp SQT &kp RET &kp TAB &kp RET &kp SQT &kp SQT>;
186 };
187
188 // Import patterns
189 macro_import: macro_import {
190 compatible = "zmk,behavior-macro";
191 #binding-cells = <0>;
192 bindings = <&kp I &kp M &kp P &kp O &kp R &kp T &kp SPACE>;
193 };
194
195 macro_from_import: macro_from_import {
196 compatible = "zmk,behavior-macro";
197 #binding-cells = <0>;
198 bindings = <&kp F &kp R &kp O &kp M &kp SPACE &kp SPACE &kp I &kp M &kp P &kp O &kp R &kp T &kp SPACE>;
199 };
200
201 macro_nix_module: macro_nix_module {
202 compatible = "zmk,behavior-macro";
203 #binding-cells = <0>;
204 bindings = <&kp LBRC &kp SPACE &kp P &kp K &kp G &kp S &kp SPACE &kp RBRC &kp COLON &kp SPACE &kp LBRC &kp RET &kp TAB &kp RET &kp RBRC>;
205 };
206
207 macro_use_package: macro_use_package {
208 compatible = "zmk,behavior-macro";
209 #binding-cells = <0>;
210 bindings = <&kp LPAR &kp U &kp S &kp E &kp MINUS &kp P &kp A &kp C &kp K &kp A &kp G &kp E &kp SPACE &kp RET &kp TAB>;
211 };
212
213 // Personal macros
214 macro_email: macro_email {
215 compatible = "zmk,behavior-macro";
216 #binding-cells = <0>;
217 bindings = <&kp V &kp I &kp N &kp C &kp E &kp N &kp T &kp AT &kp S &kp B &kp R &kp DOT &kp P &kp M>;
218 };
219
220 macro_git_sig: macro_git_sig {
221 compatible = "zmk,behavior-macro";
222 #binding-cells = <0>;
223 bindings = <&kp V &kp I &kp N &kp C &kp E &kp N &kp T &kp SPACE &kp D &kp E &kp M &kp E &kp E &kp S &kp T &kp E &kp R &kp SPACE &kp LT &kp V &kp I &kp N &kp C &kp E &kp N &kp T &kp AT &kp S &kp B &kp R &kp DOT &kp P &kp M &kp GT>;
224 };
225
226 macro_email_sig: macro_email_sig {
227 compatible = "zmk,behavior-macro";
228 #binding-cells = <0>;
229 bindings = <&kp MINUS &kp MINUS &kp RET &kp V &kp I &kp N &kp C &kp E &kp N &kp T &kp SPACE &kp D &kp E &kp M &kp E &kp E &kp S &kp T &kp E &kp R &kp RET &kp V &kp I &kp N &kp C &kp E &kp N &kp T &kp AT &kp S &kp B &kp R &kp DOT &kp P &kp M>;
230 };
231 };
232};