-
Notifications
You must be signed in to change notification settings - Fork 0
/
kanatadell.kbd
642 lines (604 loc) · 31.3 KB
/
kanatadell.kbd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
#| FOR DELL NOTE BOOK
hanging ctrl key
try to add lctl lctl to desktop swap makro
idea: also add rctl
idea: deactivate autohotkey (to see if the problem persists)
TODO caps words with cords on homerow shift or sft + fork space
;; FEATURES kanata QMK QMK minimal portable requirements
;; - Home row mods (Y) but timing problems Fallback abc layer (Fallback = no kanata available)
;; - Autosymbol: Tap_Hold y TAP_HOLD / MOD_TAP
;; -(Autosymbol: NO Dbl_Tap_Hold on Shift) n also timing issues
;; -(Autosymbol: Dbl_Tap_Hold ONLY for SLOW KEYS q,.) Y for all non modifiers
;; - Autosymbol: Dbl_Tap_Hold on non Shift modifiers N Fallback abc layer may (not) have this anyway
;; -(Autosymbol: Dbl_Tap slowes Tap_Hold) Y no problem for non modifiers
;; - Autosymbol: Long_Hold N *Default Querty kanata layer
;; - Symbol layer (rarly used space + caps) y Fallback Symbol layer
;; - V-key Symbol layer (not used anymore) (y) is possible but maybe not needed Fallback Symbol layer
;; - Nav/Number layer y + sticky + dedicated layerkey Fallback number/nav layer
;; - Shift fork layer (y) tricky
;; - one-shot layer (rarly used) y On Fallback layers
;; - one-shot shift, y On Fallback layer
;; - alt tap otimization inprogress
;; - F23 to Ahk Mouse layer y even better also with ahk highlight *Mouse Layer
;; - F24 to Ahk hotkeys y
;; - leaderkey, wincompose and ahk integration (y) no leaderkey but integrations still work
;; - AHK hotstring Problems (y) less AHK hotstring
;; - extra thumbkeys can be supported (F13+) extra thumbkeys can be handeled directly (mouse)
;; - F-Keys as normal F-Key layer *F-Key layer
;; - bspc on ö (not used anymore) - on ö or - on , _on =
;; - rdesktop alt-pgup controls not mappable? pgup can be remapped
;;
;; layers(6): normal,
;; fallback normal,
;; fallback symbol
;; fallback number/nav
;; mouse,
;; F-key
;; Long Hold might be anoying anyway
;; RETRY via newest version and skip fallback: ctl win alt mouse F13 space F14 LFKey left down right
;; space/numbers
;; TODO wich thumb activates nav? cursor keys seems to be used with right tumb
;; BUG SC06F remap altgr to f24 in sharpkeys is not recognized by kanata
;; if numtab is good make a key to flip remote desktop controls -> dont work bc of timings non remappable keys -> TODO retry wintercept
;; double leader keying (multi f24 sldr) inconsistencies with sldr
;; INFO sldr key not used
;; INFO tap hold AltGr to f24 / AltGr and remove wincompose - AltGr is a bad positionend key anyway
;; TODO where to put delete (´)? nav+B rshift nav+h
;; INFO rpt just rpeats one key and no mods ... useless TODO rpt-any test
;; TODO revisit win and esc otimization / rsft - vs rsft esc / @rtw vs esc_win
;; TODO ctrl + Z single key ?
;; INFO combine @tab with esc feels bad
*** How to store status in local key (or F24) and query it with forkts
(deflocalkeys-linux
colemak_enabled 555
)
(deffakekeys
colemak_enabled_helper colemak_enabled
)
(defalias
tgl (fork
(multi
(layer-switch colemak)
(on-press-fakekey colemak_enabled_helper press)
)
(multi
(layer-switch qwerty)
(release-key colemak_enabled)
(on-press-fakekey colemak_enabled_helper release)
)
(colemak_enabled)
)
)
***
INFO tap-dance-eager https://github.com/jtroo/kanata/issues/241 - does not make a big difference
TIP dynamic macro support https://github.com/jtroo/kanata/issues/221
TIP allow multiple sequence leaders, which can have different sequences with the same characters but different outputs
```
(defalias
ald (multi sldr (macro 1 a))
bld (multi sldr (macro 1 b))
)
(defseq
fake_key_a (a c)
fake_key_b (b c)
)
```
This configuration would allow @ald followed by c and @bld followed by c to have different behaviour.
TIP implement kombo while hiding sldr behind a normal key
(deflayer default grv 1 2 @s3 4 5 )
(defalias three 3 )
(deffakekeys
fake_key_3 (macro o k a y S-1)
fake_key_5 (macro o k a y S-1)
)
[***
(defalias
3ld (multi sldr (macro 1 @three))
s3 (tap-hold 150 150 @three @3ld)
)
(defseq
fake_key_3 (3 4)
fake_key_5 (3 5)
)
This multi sldr does work, few issues though i) 3 loses key repeat, and ii) since it is leader style action, I cannot repeat it, for e.g. 3 & 4 without releasing 3 going for 5, will not trigger 3 & 5
***]
TIP If you want instant activation on a tap-hold you could try do something like: (multi (macro a) (tap-hold 100 100 xx b))
BUG one shot queueing seems to break after some time - like reloading ahk
BUG AltGr + I = ahk menu seems to hang CTRL - SOLVED by excluding AltGr (and Ctrls) from defsrc
;; Swap numbers and their symbols with respect to shift
(defoverrides
(1) (lsft 1)
(2) (lsft 2)
;; repeat for all remaining numbers
(lsft 1) (1)
(lsft 2) (2)
;; repeat for all remaining numbers
)
TEST 'mouse' click with inception
TEST Added: ensure all keys are released at the end of a dynamic macro
|#
(defcfg
sequence-timeout 3000
;; windows-interception-mouse-hwid "0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0"
;; windows-altgr cancel-lctl-press ;; remove the lctl press that comes as a combo with ralt with F24 mapping
;; windows-altgr add-lctl-release ;; add an lctl release when ralt is released with standard Altgr
;; windows don't map altgr to avoid both options from above
;; NOTE: even with these workarounds, putting lctl+ralt in your defsrc may
;; not work too well with other applications that use WH_KEYBOARD_LL.
;; Known applications with issues: GWSL/VcXsrv
;; Using a binary compiled with the cmd feature enabled, uncomment below to
;; enable command execution:
danger-enable-cmd yes
;; are there usecases? for cmd
;; process-unmapped-keys no ;; yes does not help with japanese keys ; flipped to no may help with RDP
process-unmapped-keys no
;; Intl1 KEY_RO ro
;; CHANGES Removed onshot-mods and ctrl-keys to make Remotedesktop not stick ctl
)
(deflocalkeys-wintercept
- 191
ü 219
+ 221
# 220
ö 186
ß 189
^ 192
´ 187
ä 222
< 226
)
;;(deflocalkeys-win
;; ;; - ??d
;; ü 186
;; + 187
;; # 191
;; ö 192
;; ß 219
;; ^ 220
;; ´ 221
;; ä 222
;; < 226
;;)
;;(defalias ;; non wintercept
;; # \
;; ß -
;;)
(defalias
;; shifted german keys - every standard definition as (macro) to disable autorepeate if the key is use on tap-hold
! (macro S-1 )
˝ (macro S-2 ) ;; ˝ look-a-like is used because @" is no valid alias, to be displayed correctly in console requires a font that can - e.g. cascadia
§ (macro S-3 )
$ (macro S-4 )
% (macro S-5 )
& (macro S-6 )
/ (macro S-7 )
【 (macro S-8 ) ;; 【 look-a-like is used because @( is no valid alias, to be displayed correctly in console requires a font that can - e.g. cascadia
】 (macro S-9 ) ;; 】 look-a-like is used because @) is no valid alias, to be displayed correctly in console requires a font that can - e.g. cascadia
= (macro S-0 )
? (macro S-ß )
* (macro S-] )
' (macro S-\ )
; (macro S-, )
: (macro S-. )
_ (macro S-/ )
> (macro S-102d )
< (macro 102d ) ;; not really needed but having @< and @> looks consistent
+ (macro ] )
;; change dead keys in normal keys
´ (macro = spc) ;; ´
` (unicode `) ;; ` unicode also disables autorepeat
^ (unicode ^) ;; ^ = \ - shifting @^ will produce an incorrect space now
° S-grv
;; AltGr german keys
~ (macro RA-] )
\~ RA-] ;; Backslash at the start of the alias indicates the non macro verion (most likly do be used inside another macro )
\\ RA-ß ;; single Backslash to be used inside of certain macros
\ (unicode \) ;;(macro RA-ß )
ẞ (macro RA-S-ß )
| (macro RA-102d )
} (macro RA-0 )
{ (macro RA-7 )
] (macro RA-9 )
[ (macro RA-8 )
€ (macro RA-e )
@ (unicode @ )
² (macro RA-2 )
³ (macro RA-3 )
µ (macro RA-m )
;; Disable autorepeat
, (macro ,)
f20 (macro f20)
f19 (macro f19)
ä (macro ')
ü (macro [)
ö (macro ;)
)
;; defsrc for ansi german mine layout
;; If you are looking for other keys, the file src/keys/mod.rs should hopefully provide some insight.
;; z and y are FLIPPED, positioning has no meaning but must be consistent with other layers
(defsrc
esc f1 f13 f14 f24
^ 1 2 3 4 5 6 7 8 9 0 ß ´ bspc ;; ß or - ? z/y ? DELL
tab q w e r t y u i o p ü + # ;; # moved
caps a s d f g h j k l ö ä ret
lsft z x c v b n m , . - rsft ;; 102d not configured may put it at f24 position
lmet lalt spc
)
(deflayer base
;;**************** BASE ********************************************************
;; TODO is @rtw / sft+space=@sym / @ech / @y` / ever used? / is @^ec used for esc?
;; TODO did lmet, lalt not being one-shot / not incluing lctl solve any problems?
;; TODO dbl_tap-j = hold-q = SYM+Y = s+i+q = @
;; TODO ONLY c s i o t r h f p x ü ä ö g u a u z w d q have dbl_tap autorepeat
;; F13 = right-B = macro & symbol layer (never used for symbols)
;; F14 = left-Space & symbol layer / lsft+F14 = number layer
;; feat: rpt-any to be tested
;; @ech
esc f1 @ff13 @ff14 f24
@^ec @1@ @2 @3` @4 @5 @6 @7 @8 @9 @0 - del bspc
@tab @j! @g˝ @u【 @a】 @z$ @w& @b% @d? @l# @k\ @q@ f24 @rtw
@atx @cwn @s @i[ @e] @o' @m/ @n @t, @r- @hwn @ß- @rtc ;; DELL rtc
@oss @y` @chx| @ü{ @ä} @ö+ @p= @f* @,;< @.:> @v_~ @rsf
lmet lalt @nav
#| @oml @oal @nav
CTRL + SPACE + ESC => Exit KANATA immediatly
lspace + rspace = Enter / AltGr = Backspace |#
)
(deflayer numbers
;;**************** NUMBERS ****************************************************
;; TODO caps to sym / C-bspc / at1 - atm / A-prtsc / @fky never used!
;; TODO F14 space to bspc ever used? h = del or h = esc
;; TEST atx with RDP
esc f1 @ff13 bspc f24
@^ @at1 @at2 @at3 @at4 @at5 @at6 @at7 @at8 @at9 @atm lrld-next A-prtsc _
_ @-_: 1 2 3 C-bspc esc home up end pgup pgdn _ _
@sy1 @.wn @al4 @ct5 @sf6 0 bspc left down rght del @fky _
_ @,: 7 8 9 del tab @srt @cde @alc @mrc _
_ _ _
)
;; setting fakekeys for numberstab
(deffakekeys
ctl lctl
sft lsft
met lmet
alt lalt
tabb tab
)
(defalias
aup (on-press-fakekey alt release) ;; to exit the alt-tab dialog but stay in the layer
atxx (multi
(layer-toggle numberstab)
(on-press-fakekey alt press)
;;(on-press-fakekey-delay 50)
(on-press-fakekey tabb tap)
(on-press-fakekey tabb tap)
;;(on-release-fakekey-delay 50)
(on-release-fakekey alt release)
)
)
(deflayer numberstab
;;**************** LEFT NAV ********************************************************
esc f1 @ff13 @ff14 f24
^ 1 2 3 4 5 6 7 8 9 0 - ´ bspc
_ @aup up esc esc C-bspc esc home up end pgup pgdn _ _
@sy1 left down rght rght 0 bspc left down rght bspc @fky _
_ @,: down down down del tab @srt @cde @alc @mrc _
_ _ _
)
;; Exit numfix with CAPS or HOLD SPACE or 7+9
(deflayer numfix
;;**************** NUMBERS(fix) ********************************************************
esc f1 @ff13 (tap-hold 200 200 spc @quen) f24
@^ @at1 @at2 @at3 @at4 @at5 @at6 @at7 @at8 @at9 @atm lrld-next A-prtsc _
_ @-_: 1 2 3 C-bspc esc home up end pgup pgdn _ _
@quen @.wn @al4 @ct5 @sf6 0 bspc left down rght bspc @fky _
_ @,: @ch7 8 @ch9 del tab @srt @cde @alc @mrc _
_ _ (tap-hold 200 200 spc @quen)
)
(deflayer symbols
;;**************** SYSMBOLS ********************************************************
;; @numfix by tap 7+9 / |+} and release space
_ f1 @ff13 @ff14 f24
_ @at1 @at2 @at3 @at4 @at5 @at6 @at7 @at8 @at9 @atm lrld-next A-prtsc _
_ @! @˝ @【 @】 @$ @& @% @? # @\ @@ _ _
@atr @` @-_: @[ @] @' @/ S-. , . @_ - _
_ @@ @ch| @{ @ch} @+ @= @* @< @> @~ _
_ _ ret
)
(deflayer vsymbols ;; macro and symbols triggered from the LEFT side - not used on v20 and not complete (unicode Õ)... are for ahk integration
_ f1 @ff13 @ff14 f24
_ _ _ _ _ _ _ _ _ _ _ _ _ _
_ (unicode Ù) @˝ @【 @】 @$ @& @% @? # @\ _ _ _
_ (unicode Õ) @@ @[ @] @' @/ S-. , . @-_~ - _
_ @` @| @{ @} @+ @= @* @< @> @~ _
_ _ _
)
(deflayer ksymbols ;; macro and symbols triggered from the RIGHT side
;;**************** MACRO ********************************************************
_ f1 @ff13 @ff14 f24
_ @fashing @geb @iban @plz _ _ _ _ _ _ _ _ _
_ @cmdde @˝ @【 @】 @tsc @& @% @? # @\ _ _ _
_ @cmdiso @@ @[ @] @' @/ S-. , . @-_~ _ _
_ @` @| @{ @} @+ @= @* @< @> @~ _
_ _ _
)
(deflayer fkeys ;;triggered with ß from numbers
;;**************** F KEYS ********************************************************
esc f1 @ff13 @ff14 f24
@^ec @1@ @2 @3` @4 @5 @6 @7 @8 @9 @0 @sz sldr bspc
_ @-_: f1 f2 f3 f10 esc home up end pgup pgdn _ _
@sy1 @.wn f4 f5 f6 f11 lmet lsft lctl lalt lmet _ _
_ @, f7 f8 f9 f12 tab @srt @cde @alc @mrc _
_ _ _
)
;; TODO should mouse layer contain numpad? using QMK Mouse curreently
(deflayer mouse
;;**************** MOUSE ********************************************************
esc f1 @ff13 @ff14 f24
^ 1 2 3 4 5 6 7 8 9 0 - ´ bspc
tab XX @slw @slw @slw XX @quep @cll @ma↑ @clr z q + #
caps XX @clm @clr @cll XX h @ma← @ma↓ @ma→ h ß ret
lsft @msz lalt lctl lsft XX @ms← @ms↑ @ms↓ @ms→ k rsft
lmet lalt @quep
)
(deflayer mouseslow
;;**************** MOUSE ********************************************************
esc f1 @ff13 @ff14 f24
^ 1 2 3 4 5 6 7 8 9 0 - ´ bspc
tab XX @slw @slw @slw XX @quep @cll @ms↑ @clr z q + #
caps XX @clm @clr @cll XX h @ms← @ms↓ @ms→ h ß ret
lsft @msz lalt lctl lsft XX @ms← @ms↑ @ms↓ @ms→ k rsft
lmet lalt @quep
)
(defalias
que (layer-switch base)
quen (multi (layer-switch base) nlck)
numfix (multi (layer-switch numfix) nlck)
chf (chord fkomma f) ;; F24
ch, (chord fkomma ,)
ch. (chord fkomma .) ;; Q alternative
chx| (chord xä x) ;; sticky numbers
chä (chord xä ä)
ch7 (chord exit79 7) ;; exit numbers
ch9 (tap-hold 1 200 (chord exit79 9) @quen)
ch| (chord |} <) ;; mods will be added later in defchord
ch} (tap-hold 1 200 (chord |} 0) (release-layer symbols))
)
(defchords exit79 20
(7 ) 7
( 9 ) 9
(7 9 ) @quen
)
(defchords xä 20
(x ) (tap-hold 1 120 x (multi (macro RA-102d ) (tap-hold 200 800 XX (macro RA-102d ))) )
( ä ) ä
(x ä ) @numfix
)
(defchords |} 140
(0 ) @}
( < ) @|
(0 < ) @numfix
)
;; TODO make xä |}
;;(defchords example 300
;; (d ) d
;; ( l ) l
;; (d l ) f18 ;;(multi f18 sldr) trigger ahk string replace
;;)
(defchords fkomma 20
(f ) f
( , ) ,
(f , ) f24
( . ) .
( , . ) q
)
;; mouse layer keys
(defalias
mal M-C-A-f
mar M-C-A-d
mam M-C-A-s
quep (multi @que A-C-M-p)
mus (layer-switch mouse)
slw (layer-toggle mouseslow)
ms↑ (movemouse-up 3 1)
ms← (movemouse-left 3 1)
ms↓ (movemouse-down 3 1)
ms→ (movemouse-right 3 1)
ma↑ (movemouse-accel-up 1 1000 1 5)
ma← (movemouse-accel-left 1 1000 1 5)
ma↓ (movemouse-accel-down 1 1000 1 5)
ma→ (movemouse-accel-right 1 1000 1 5)
cll (multi @que @mal A-C-M-p)
clr (multi @que @mar A-C-M-p)
clm (multi @que @mam A-C-M-p)
;; F23 (tap-hold 200 200 y (multi f24 sldr)) ;; works technically f24 triggers y itselft it must be hold for f24 ... feels bad
yms (tap-hold-release 200 200 z (multi @mus A-C-M-p) )
msz (multi @que (macro z))
msu (multi @que (macro u))
mso (multi @que (macro o))
;; msf (multi @que (macro mltp A-C-p))
;; msf (macro mlft 10 f17 100 lrld)
msf (multi mlft f17 lrld)
msd (multi @que (macro d))
mss (multi @que (macro s))
;;Double Click is missing
;; mouse layer keys end
)
(defalias
;; layer-toggle & switch-layer(stickyness)
num (layer-toggle numbers)
numtab (layer-toggle numberstab)
sym (layer-toggle symbols)
syv (one-shot 2000 (layer-toggle vsymbols))
syvv (layer-toggle vsymbols)
sy1 (one-shot 2000 (layer-toggle symbols))
syk (layer-toggle ksymbols)
fky (layer-toggle fkeys)
ff14 (tap-hold 200 200 spc (fork (multi (layer-toggle numbers) (layer-toggle symbols)) (layer-toggle numbers) (rsft lsft))) ;; LEFT sft + LEFT spc == numbers
;;ff13 (one-shot 500 (layer-toggle ksymbols))
ff13 (layer-toggle ksymbols) ;; removing one-shot solves problems with accidentially hitting the key
;; DBL-tap-Hold is not realy good for the frequently used symbol layer
;; nav (tap-dance 120 ((tap-hold 140 140 spc @num) (tap-hold 140 140 spc @sym) spc spc spc))
;; nav (tap-hold 200 200 (multi spc sldr) @num) works but would require awkward sequneces
;; nav (tap-hold 200 200 spc @num) ;; not used no fork
nav (tap-hold 200 200 spc (fork @num @sym (rsft))) ;; RIGHT sft + RIGHT spc == symbols
;; one shot modifiers
oss (one-shot 2000 lsft)
ocl (one-shot 2000 lctl)
oal (one-shot 2000 lalt)
oml (one-shot 2000 lmet)
;; modifiers for numpad
srt (tap-hold-release 200 5000 ret lsft)
;; cde (multi @mus (macro f23)) lctl) ;; to trigger ahk mouse or ctl
;; cde (tap-hold-release 200 5000 (multi @mus A-C-M-p) lctl) ;; to trigger kanata mouse layer & spotlight or ctl
cde lctl ;; kanata mouse not working with interception drivers
alc (tap-hold-release 200 5000 @mal lalt) ;; mouse lclick or alt
mrc (tap-hold-release 200 5000 @mar lmet) ;; mouse rclick or win
;; outer/special keys
ech (tap-hold 140 400 esc (multi (macro home ) (tap-hold 400 900 XX (macro end ) )) )
^ec (tap-hold 200 300 esc (macro grv spc))
tab (tap-hold-press 200 400 tab lctl ) ;; TODO is ctl ever used?
;;rtc (tap-hold-release 200 340 (multi ret sldr) lmet) this makes ret not appear
rtc (tap-hold-release 200 5000 ret lctl)
rtw (tap-hold-release 200 5000 ret lmet)
rsd (tap-hold-release 200 240 @syv (multi rsft lsft)) ;; TODO not used ?! BUG rsft get ignored on RDesktop -> use lsft or (multi rsft lsft) ?
ral S-C-M-A-9 ;; release ALL key (BUG) kanata cannot release stuck keys from ahk (both tools with elevated rights) PRESS F24 FOR RELEASE ALL MODS
;;rcl (tap-hold-release 200 200 sldr rctl) ;; !! sldr is hard coded leader key fake key !! dropped in favor of ocl
;; dynamic-macro TODO test them
dr0 (dynamic-macro-record 0)
dr1 (dynamic-macro-record 1)
dr2 (dynamic-macro-record 2)
dp0 (dynamic-macro-play 0)
dp1 (dynamic-macro-play 1)
dp2 (dynamic-macro-play 2)
dms dynamic-macro-record-stop
;; alt tab - never used this - TODO try it on RDP
at1 (multi lalt pgup)
at2 (multi lalt pgup pgup)
at3 (multi lalt pgup pgup pgup)
at4 (multi lalt pgup pgup pgup pgup)
at5 (multi lalt pgup pgup pgup pgup pgup)
at6 (multi lalt pgup pgup pgup pgup pgup pgup)
at7 (multi lalt pgup pgup pgup pgup pgup pgup pgup)
at8 (multi lalt pgup pgup pgup pgup pgup pgup pgup pgup)
at9 (multi lalt pgup pgup pgup pgup pgup pgup pgup pgup pgup)
;;at0 (tap-dance 500 (A-tab (macro f24 r) (macro f24 t) (macro f24 z)) ) old verion of atm
aty (multi @numtab lalt (macro tab) ) ;; alt tab by dbl_tap-hold k
atr (multi @numtab lalt (macro tab) ) ;; atx for RDP
atx (tap-hold 200 150 (multi lalt tab) @atxx ) ;; alt tab by hold caps
;;atm (tap-dance 700 (@at1 @at2 @at3 @at4) ) Sequence now works but is inferior to the number row mapping
atm (tap-dance 500 ( A-tab (macro A-(tab 90 tab )) (macro A-(tab 90 tab 90 tab )) (macro A-(tab 90 tab 90 tab 90 tab )) ))
;; not working on remote desktop atp (tap-dance 500 ( (macro A-pgup) (macro A-(pgup 90 pgup )) (macro A-(pgup 90 pgup 90 pgup )) (macro A-(pgup 90 pgup 90 pgup 90 pgup )) ))
;; *** HOME ROW MODS ***
e] (tap-hold 1 140 e (one-shot 500 lsft)) ;;(multi lsft (layer-while-held smodded) )) ;; INFO timing of 1 avoids keyrepeat
;;n (tap-hold-release 1 140 (fork n (unicode n) (rsft) )(one-shot 400 rsft) )
n (tap-hold 1 140 n (one-shot 500 rsft)) ;;(multi rsft lsft)) ;; this clean form avoids US -> Ujs bug when typing fast ;; BUG rsft has bugs on RDesktop multi fixes fjf->F but jfj->j stays
;;i[ (tap-dance 180 ((tap-hold-release 350 600 (macro i) lctl ) (tap-hold 200 300 (macro i i) (multi (macro RA-8 ) (tap-hold 200 700 XX (macro RA-9 ))))))
;;i[ (tap-hold-release 450 5000 i lctl)
;; i[ (tap-hold 1000 1000 i (fork (unicode i) lctl (lsft)))
i[ (tap-hold 500 500 i lctl )
;;t- (tap-dance 340 ((tap-hold-release 200 400 t lctl ) (tap-hold 200 300 (macro t t) (macro -) )))
t, (tap-hold 500 500 t rctl )
;;tC (tap-hold-release 180 900 t (multi lctl (layer-while-held cmodded)) )
;;tC @chk
;; TODO test if Long_Tap_O or Dbl_Tap_Hold_L is used in practiser
;;s# (tap-dance 140 ((tap-hold-release 200 400 @chl alt) (tap-hold 200 400 (macro s s) (macro @# ) )))
;;s (tap-hold-release 1200 1200 s alt)
s (tap-hold 1000 1000 s alt)
;;s# @chl
hwn (tap-hold-release 350 5000 h lmet)
ß- (tap-hold 1 180 ß (macro - ) ) ;; ß = [
cwn (tap-hold 1000 1000 c lmet)
r- (tap-hold-release 450 5000 r lalt)
rsf (tap-hold-release 350 500 - rsft)
;; number layer home row mods
sf6 (tap-hold-release 200 300 6 lsft)
ct5 (tap-hold-release 200 300 5 lctl)
al4 (tap-hold-release 200 340 4 lalt)
.wn (tap-hold-release 200 240 . lmet)
wn0 (tap-hold-release 200 340 0 lmet) ;; unused because of Win+G gets triggered
9sy (tap-hold-release 200 340 9 @syv) ;; unused because v is already mapped to do this
;;ght (tap-hold-release 200 240 rght rmet) ;;works but not used
;; number aliases (n0-n9 for use inside other macros)
n1 1
n2 2
n3 3
n4 4
n5 5
n6 6
n7 7
n8 8
n9 9
n0 0
1@ (tap-hold 140 140 1 (multi (macro S-1 ) (tap-hold 200 400 XX (macro bspc @@ ))) )
2 (tap-hold 140 300 2 (multi @˝ (tap-hold 200 700 XX @˝ )) )
;; multi 3 3 because macro 3 3 is not working
3` (tap-dance 140 ((tap-hold 10 100 3 (multi @` (tap-hold 200 400 XX (macro S-= S-=)) )) (tap-hold 10 100 (multi 3 3) (macro S-= S-= S-= spc))))
4 (tap-hold 200 500 4 (macro S-4 ))
5 (tap-hold 200 500 5 (macro S-5 ))
6 (tap-hold 200 500 6 (macro S-6 )) ;;(tap-hold 200 300 6 (multi (macro S-6 ) (tap-hold 200 400 XX (macro S-6 ))))
7 (tap-hold 200 500 7 (macro S-7 )) ;;(tap-hold 200 300 7 (multi (macro S-7 ) (tap-hold 200 400 XX (macro S-7 ))))
8 (tap-hold 200 500 8 (macro S-8 )) ;;(tap-hold 200 300 8 (multi (macro S-8 ) (tap-hold 200 400 XX (macro bspc RA-8 ))) )
9 (tap-hold 200 500 9 (macro S-9 )) ;;(tap-hold 200 300 9 (multi (macro S-9 ) (tap-hold 200 400 XX (macro bspc RA-9 ))) )
0 0 ;;(tap-hold 10 100 0 (multi (macro S-0 ) (tap-hold 200 400 XX (multi (macro S-0 ) (tap-hold 200 400 XX (macro S-0 )) )) ) )
;; normal keys
sz (tap-hold 200 300 ß (multi (macro S-ß ) (tap-hold 200 500 XX (macro bspc RA-ß ))))
;; q (multi q sldr) eats the next key after q
;;q! (tap-hold 140 140 q (multi (macro S-1 ) (tap-hold 200 400 XX (macro bspc RA-q ))) ) ;; q ! @
;;q! (tap-hold 1 140 q (macro-release-cancel S-1 600 bspc (unicode @) 800 bspc S-1 800 bspc)) ;; q ! @
;;q! (tap-dance 120 ((tap-hold 1 90 q (multi (macro S-1 ) (tap-hold 200 600 XX (macro bspc (unicode @) ))) ) (unicode @) (unicode ä) ) )
;;j! (tap-hold 1 100 (tap-dance-eager 100 (j (fork (macro bspc @@) RA-q (lctl rctl)) )) (multi @! (tap-hold 200 600 XX (macro bspc @@ ))) ) ;; q ! @ Great! tapdance can be nested inside tap-hold. Still timing problems on keybr.com!
j! (tap-dance-eager 150 ((tap-hold 1 120 j (multi @! (tap-hold 200 600 XX (macro bspc @@ )))) (fork (macro bspc @@) RA-q (lctl rctl)) ))
g˝ (tap-hold 1 140 g (multi (macro S-2 ) (tap-hold 200 400 XX (macro S-2 ))) ) ;; " ""
u【 (tap-hold 1 150 u (multi (macro S-8 ) (tap-hold 200 400 XX (macro S-9 )))) ;; ( ()
a】 (tap-hold 1 140 a (fork (macro-release-cancel S-9 600 bspc RA-9 ) C-a (lctl rctl)) ) ;; ) [ todo find a better use
z$ (tap-hold 1 140 y (macro S-4)) ;; $
w& (tap-hold 1 140 w (multi (macro S-6 ) (tap-hold 200 800 XX (macro S-6 )))) ;; & &&
d? (tap-hold 1 140 d (multi @? (tap-hold 200 500 XX @? ))) ;; ? = S-[ i ? ??
k\ (tap-hold 1 140 k (multi @\ (tap-hold 200 800 XX @\ )) )
aä (tap-hold 1 120 a (macro-release-cancel ä 400 bspc S-= spc 600 bspc ä 600 bspc a 600 bspc)) ;; ä = ' `=S-]
b% (tap-hold 1 140 b (macro S-5 ))
l# (tap-hold 1 140 l (macro # ))
sß (tap-hold 1 120 s (macro ß ) ) ;; ß = [
q@ (tap-hold 1 120 q @@ )
o' (tap-hold 1 140 o (multi @' (tap-hold 200 800 XX @' )) ) ;; ' ''
m/ (tap-hold 1 140 m (multi (macro S-7 ) (tap-hold 200 800 XX (macro S-7 ))) ) ;; / // TODO do we wont dbl_tap-hold keyrepeat //
x| (tap-hold 1 120 @chx| (multi (macro RA-102d ) (tap-hold 200 800 XX (macro RA-102d ))) ) ;; | || not used
y` (tap-hold 1 120 z (multi @` (tap-hold 200 800 XX @´ )) )
ü{ (tap-hold 1 140 ü (multi (macro RA-7 ) (tap-hold 200 500 XX (macro RA-0 )))) ;; { {}
;;ä} (tap-hold-release-timeout 200 400 ä @syvv @} ) ;; not needed on v20 bc of second space bar
ä} (tap-hold 1 140 @chä @} )
ö+ (tap-hold 1 140 ö (multi @+ (tap-hold 200 500 XX @+ ))) ;; + = = b + ++
p= (tap-hold 1 140 p (multi (macro S-0 ) (tap-hold 200 400 XX (multi (macro S-0 ) (tap-hold 200 1000 XX (macro S-0 )) ))) ) ;; n = == ===
f* (tap-hold 1 140 @chf (multi @* (tap-hold 1 800 XX S-+ ))) ;; * with long autorepeat - there must be a macro (@*) after the multi for the timeout do work
;;,F24 (tap-dance 140 ((tap-hold 10 100 , (multi (macro S-, ) (tap-hold 200 400 XX (macro bspc @lth ))) ) (tap-hold 10 100 f20 (macro @lth)))) ;; ,, = F24 , ; <
;; .:> (tap-dance 140 ((tap-hold 10 100 . (multi (macro S-. ) (tap-hold 200 400 XX (macro bspc @gth ))) ) (tap-hold 10 100 (macro . .) (macro @gth)) (tap-hold 10 100 (macro . . .) .) )) ;; . : >
;; -_~ (tap-dance 140 ((tap-hold 10 100 - (multi (macro S-- ) (tap-hold 200 400 XX (macro bspc @til ))) ) (tap-hold 10 100 (macro - -) (macro @til)) (tap-hold 10 100 (macro - - -) -) )) ;; - _ ~
;; nesting of tap-dance inside tap-hold is now possible
,F20 (tap-hold 1 100 (tap-dance 140 (, (tap-hold 10 100 f20 @<))) (multi @; (tap-hold 200 400 XX (macro bspc 102d ))) ) ;; ,, = F24 , ; <
,F18 (tap-hold 1 100 (tap-dance 140 ( f18 (tap-hold 100 100 (macro , ,) @<) (macro , , ,) )) (multi @; (tap-hold 200 400 XX (macro bspc 102d ))) ) ;; ,, = F24 , ; <
,;< (tap-hold 1 100 (tap-dance 140 (@ch, (tap-hold 10 100 (macro , ,) @< ) (tap-hold 10 100 (macro , , ,) .) )) (multi @; (tap-hold 200 800 XX (macro bspc 102d ))) )
.:> (tap-hold 1 100 (tap-dance 140 (@ch. (tap-hold 10 100 (macro . .) @> ) (tap-hold 10 100 (macro . . .) .) )) (multi @: (tap-hold 200 800 XX (macro bspc S-102d ))) ) ;; . : >
-_~ (tap-hold 1 100 (tap-dance 140 (/ (tap-hold 10 100 (macro / /) @~) (tap-hold 10 100 (macro / / /) /) )) (multi (macro S-/ ) (tap-hold 200 800 XX (macro bspc RA-] ))) ) ;; - _ ~
-_: (tap-hold 1 100 (tap-dance 140 (/ (tap-hold 10 100 (macro / /) @:) (tap-hold 10 100 (macro / / /) /) )) (multi (macro S-/ ) (tap-hold 200 800 XX (macro bspc S-. ))) ) ;; - _ :
v_~ (tap-hold 1 100 (tap-dance-eager 100 (v (tap-hold 1 100 (macro v) (macro bspc @\~)) (tap-hold 1 100 (macro v v) v) )) (multi (macro S-/ ) (tap-hold 1 800 XX (macro bspc RA-] ))) ) ;; - _ ~
,: (tap-hold 1 600 , @: )
;;f1 (macro f1 f24) ;; only usefull in applications that do not react on F1 ==> not usefull
)
(defalias
;; macros
fashing (macro @n1 @n1 . @n1 @n1 . @n2 @n0 @n2 @n3 )
geb (macro @n2 @n1 . @n1 @n2 . @n2 @n0 @n0 @n1 )
iban (macro S-d S-e @n3 @n0 @n7 @n0 @n0 @n2 @n0 @n2 @n7 @n0 @n0 @n0 @n4 @n5 @n5 @n0 @n6 @n8 @n6 @n0 )
plz (macro @n6 @n4 @n7 @n1 @n1 )
tsc (macro @\\ @\\ t s c l i e n t @\\ c @\\ d a t a )
esp (macro S-. d a t e)
;; Last lines of script no leading spaces
psiso (cmd-output-keys powershell.exe -NoProfile -NoLogo -NonInteractiv -Command "echo '(' ((Get-Date -Format 'yyyy-MM-dd').toCharArray() -join ' ') ')'")
;;cmdiso (cmd-output-keys cmd.exe /C timek.cmd)
cmdiso (cmd "C:\Program Files\AutoHotkey\AutoHotkeyU64_UIA.exe" "isodate.ahk")
cmdde (cmd-output-keys cmd.exe /C timedek.cmd)
;; bash might be on windows an is much faster than wsl or powershell
;;bashiso (cmd-output-keys bash -c "date +'%F %R' | sed 's/./& /g' | sed 's/:/S-;/g' | sed 's/\(.\{20\}\)\(.*\)/\(\1 spc \2\)/'")
dayiso (macro @n2 @n0 @n2 @n3 - @n0 @n3 - @n0 @n6 )
dayde (macro @n0 @n6 . @n0 @n3 . @n2 @n0 @n2 @n3 ))