system-manager-wakasu
1#define EACUT RA(E) // é/É
2#define EURO RA(N5) // €
3#define AE RA(Z) // æ/Æ
4#define OE RA(K) // œ/Œ
5#define CDIL RA(COMMA) // ç/Ç
6#define NTIL RA(N) // ñ/Ñ
7
8#define ACC_AC RC(SEMI) // ´
9#define ACC_AI RA(SLASH) // ´
10#define ACC_CI LBKT // ^
11#define ACC_GR RA(LBKT) // `
12#define ACC_TI RC(RBKT) // ~
13#define ACC_TR LS(LBKT) // ¨
14
15// ` to input
16ZMK_MACRO_ONE_PARAM(AGRA, bindings =
17 <&kp GRAVE>,
18 <¯o_param_1to1>,
19 <¯o_tap &kp MACRO_PLACEHOLDER>;
20)
21
22// ´ to input
23ZMK_MACRO_ONE_PARAM(AIGU, bindings =
24 <&kp SQT>,
25 <¯o_param_1to1>,
26 <¯o_tap &kp MACRO_PLACEHOLDER>;
27)
28
29// ¨ to input
30ZMK_MACRO_ONE_PARAM(TREM, bindings =
31 <&kp DQT>,
32 <¯o_param_1to1>,
33 <¯o_tap &kp MACRO_PLACEHOLDER>;
34)
35
36// ^ to input
37ZMK_MACRO_ONE_PARAM(CIRC, bindings =
38 <&kp CARET>,
39 <¯o_param_1to1>,
40 <¯o_tap &kp MACRO_PLACEHOLDER>;
41)
42
43// tap: minus | shift + tap: question mark
44ZMK_MOD_MORPH(min_qma,
45 bindings = <&kp MINUS>, <&kp QMARK>;
46 mods = <(MOD_LSFT|MOD_RSFT)>;
47)
48
49// tap: comma | shift + tab: semicolon
50ZMK_MOD_MORPH(com_smc,
51 bindings = <&kp COMMA>, <&kp SEMICOLON>;
52 mods = <(MOD_LSFT|MOD_RSFT)>;
53)
54
55// tap: period | shift + tap: colon
56ZMK_MOD_MORPH(dot_col,
57 bindings = <&kp DOT>, <&kp COLON>;
58 mods = <(MOD_LSFT|MOD_RSFT)>;
59)
60
61// Bépo morphs
62
63// tap: quote (') | shift + tab: question mark
64ZMK_MOD_MORPH(sqt_qma,
65 bindings = <&AIGU SPACE>, <&kp QMARK>;
66 mods = <(MOD_LSFT|MOD_RSFT)>;
67)
68
69// tap: Caret (^) | shift + tap: EXCLAMATION (!)
70ZMK_MOD_MORPH(car_excl,
71 bindings = <&kp CARET>, <&kp EXCLAMATION>;
72 mods = <(MOD_LSFT|MOD_RSFT)>;
73)
74
75// tap: B | right_alt + tap : pipe (|)
76ZMK_MOD_MORPH(b_pipe,
77 bindings = <&kp B>, <&kp PIPE>;
78 mods = <(MOD_RALT)>;
79)
80
81// tap: P | right_alt + tap : ampersand (&)
82ZMK_MOD_MORPH(p_amp,
83 bindings = <&kp P>, <&kp AMPERSAND>;
84 mods = <(MOD_RALT)>;
85)
86
87// hold: numbers layer | tap: SPACE | right_alt + tap : undercore (_)
88ZMK_MOD_MORPH(num_spc_und,
89 bindings = << NUM SPACE>, <&kp UNDERSCORE>;
90 mods = <(MOD_RALT)>;
91)
92
93// hold: left control | tap: E | right_alt + tap: EURO (€)
94ZMK_MOD_MORPH(cl_e_euro,
95 bindings = <&hml CL E>, <&kp EURO>;
96 mods = <(MOD_RALT)>;
97)
98
99// hold: right_hype | tap: comma | shift + tab: semicolon
100ZMK_MOD_MORPH(hyp_com_smc,
101 bindings = <&hml HL COMMA>, <&kp SEMICOLON>;
102 mods = <(MOD_LSFT|MOD_RSFT)>;
103)
104
105// Additional bépo right_alt (AltGr) behaviors based on https://www.raktres.net/projects/svg_kbd_layout/
106
107// tap: O | right_alt + tap: œ (OE ligature)
108ZMK_MOD_MORPH(o_oe,
109 bindings = <&kp O>, <&kp OE>;
110 mods = <(MOD_RALT)>;
111)
112
113// tap: V | right_alt + tap: ? (question mark)
114ZMK_MOD_MORPH(v_qmark,
115 bindings = <&kp V>, <&kp QMARK>;
116 mods = <(MOD_RALT)>;
117)
118
119// tap: L | right_alt + tap: / (forward slash)
120ZMK_MOD_MORPH(l_fslh,
121 bindings = <&kp L>, <&kp FSLH>;
122 mods = <(MOD_RALT)>;
123)
124
125// tap: Z | right_alt + tap: (skip - schwa not easily available)
126
127// tap: W | right_alt + tap: (skip - breve dead key)
128
129// tap: Y | right_alt + tap: { (left brace)
130ZMK_MOD_MORPH(y_lbrc,
131 bindings = <&kp Y>, <&kp LBRC>;
132 mods = <(MOD_RALT)>;
133)
134
135// tap: X | right_alt + tap: } (right brace)
136ZMK_MOD_MORPH(x_rbrc,
137 bindings = <&kp X>, <&kp RBRC>;
138 mods = <(MOD_RALT)>;
139)
140
141// tap: K | right_alt + tap: ~ (tilde)
142ZMK_MOD_MORPH(k_tilde,
143 bindings = <&kp K>, <&kp TILDE>;
144 mods = <(MOD_RALT)>;
145)
146
147// tap: Q | right_alt + tap: ° (degree)
148ZMK_MOD_MORPH(q_deg,
149 bindings = <&kp Q>, <&kp RA(LS(N8))>;
150 mods = <(MOD_RALT)>;
151)
152
153// tap: G | right_alt + tap: µ (micro)
154ZMK_MOD_MORPH(g_mu,
155 bindings = <&kp G>, <&kp RA(M)>;
156 mods = <(MOD_RALT)>;
157)
158
159// tap: H | right_alt + tap: (skip - dagger not easily available)
160
161// tap: F | right_alt + tap: (skip - ogonek dead key)
162
163// tap: À | right_alt + tap: \ (backslash)
164ZMK_MOD_MORPH(agra_a_bslh,
165 bindings = <&AGRA A>, <&kp BSLH>;
166 mods = <(MOD_RALT)>;
167)
168
169// tap: C | right_alt + tap: © (copyright)
170ZMK_MOD_MORPH(c_copy,
171 bindings = <&hmr HL C>, <&kp RA(C)>;
172 mods = <(MOD_RALT)>;
173)
174
175// tap: T | right_alt + tap: (skip - thorn not easily available)
176
177// tap: S | right_alt + tap: ß (eszett/sharp s)
178ZMK_MOD_MORPH(s_ss,
179 bindings = <&hmr SR S>, <&kp RA(S)>;
180 mods = <(MOD_RALT)>;
181)
182
183// tap: R | right_alt + tap: ® (registered)
184ZMK_MOD_MORPH(r_reg,
185 bindings = <&hmr AR R>, <&kp RA(R)>;
186 mods = <(MOD_RALT)>;
187)
188
189// tap: N | right_alt + tap: ~ (tilde)
190ZMK_MOD_MORPH(n_tilde,
191 bindings = <&hmr GL N>, <&kp TILDE>;
192 mods = <(MOD_RALT)>;
193)
194
195// tap: M | right_alt + tap: (skip - macron dead key)
196
197// Shift+AltGr (right_alt+shift) behaviors based on bépo standard
198
199// tap: B | right_alt + tap: | | shift+right_alt + tap: ¦ (broken pipe)
200ZMK_MOD_MORPH(b_pipe_brkp,
201 bindings = <&b_pipe>, <&kp RA(LS(BSLH))>;
202 mods = <(MOD_LSFT|MOD_RSFT)>;
203)
204
205// tap: P | right_alt + tap: & | shift+right_alt + tap: § (section)
206ZMK_MOD_MORPH(p_amp_sect,
207 bindings = <&p_amp>, <&kp RA(S)>;
208 mods = <(MOD_LSFT|MOD_RSFT)>;
209)
210
211// tap: O/œ | shift+right_alt + tap: Œ (capital OE)
212ZMK_MOD_MORPH(o_oe_cap,
213 bindings = <&o_oe>, <&kp RA(LS(K))>;
214 mods = <(MOD_LSFT|MOD_RSFT)>;
215)
216
217// tap: L | right_alt + tap: / | shift+right_alt + tap: £ (pound)
218ZMK_MOD_MORPH(l_fslh_pound,
219 bindings = <&l_fslh>, <&kp RA(LS(N4))>;
220 mods = <(MOD_LSFT|MOD_RSFT)>;
221)
222
223// tap: Y | right_alt + tap: { | shift+right_alt + tap: ' (right single quote)
224ZMK_MOD_MORPH(y_lbrc_rsqt,
225 bindings = <&y_lbrc>, <&kp RA(RBKT)>;
226 mods = <(MOD_LSFT|MOD_RSFT)>;
227)
228
229// tap: X | right_alt + tap: } | shift+right_alt + tap: ' (left single quote)
230ZMK_MOD_MORPH(x_rbrc_lsqt,
231 bindings = <&x_rbrc>, <&kp RA(LBKT)>;
232 mods = <(MOD_LSFT|MOD_RSFT)>;
233)
234
235// tap: À | right_alt + tap: \ | shift+right_alt + tap: Æ (capital AE)
236ZMK_MOD_MORPH(agra_a_bslh_ae,
237 bindings = <&agra_a_bslh>, <&kp RA(LS(Z))>;
238 mods = <(MOD_LSFT|MOD_RSFT)>;
239)
240
241// tap: C/© | shift+right_alt + tap: © (keep same - copyright)
242// Already handled by c_copy
243
244// tap: T | shift+right_alt + tap: ™ (trademark)
245ZMK_MOD_MORPH(t_tm,
246 bindings = <&hmr CR T>, <&kp RA(LS(N2))>;
247 mods = <(MOD_LSFT|MOD_RALT)>;
248)
249
250// tap: G | right_alt + tap: µ | shift+right_alt + tap: † (dagger)
251ZMK_MOD_MORPH(g_mu_dag,
252 bindings = <&g_mu>, <&kp RA(T)>;
253 mods = <(MOD_LSFT|MOD_RSFT)>;
254)
255
256// tap: H | shift+right_alt + tap: ‡ (double dagger)
257ZMK_MOD_MORPH(h_ddag,
258 bindings = <&kp H>, <&kp RA(LS(N7))>;
259 mods = <(MOD_LSFT|MOD_RALT)>;
260)
261
262/*
263Local Variables:
264mode: c
265End:
266*/