-
Notifications
You must be signed in to change notification settings - Fork 0
/
kanatanirdp.kbd
723 lines (681 loc) · 33.8 KB
/
kanatanirdp.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
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
#|
bug hanging ctrl key with AHK and RDP - (workaround) add lctl lctl to desktop swap makro
idea (implemented): AHK funtionality to swap desktops without pressing ctl currently (multi lmet lalt ß)
idea: deactivate autohotkey (to see if the problem persists) but than desktop cycling won't work
***** ALT-Tab **************************
caps alt-tab x1
caps-hold WASD alt-tab selection
J/Q do depress alt to have WASD cursor keys
shift caps = S-alt-tab = Cycle though all windows backward (all desktops)
Lspace caps = RDP replace tab with pgup
ctl caps = keep selection screen open => useless caps words insteadrr
*****************************************
INFO caps words = shift + Lspace (no chords)
TODO ] = F24 = f+, not used
TODO + = DEL not used
TODO Numberrow - not used
TODO space+w = tap ^ = ESC not used
;; 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 Fallback abc (but not VIA) => Fallback Symbol layer
;; -(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
;; -(Autosymbol: Dbl_Tap slowes Tap_Hold) Y no problem for non modifiers
;; - Autosymbol: Long_Hold N
;; - Symbol layer (rarly used space + caps) y Fallback Symbol layer (with dedicated key)
;; - V-key Symbol layer (not used anymore) (y) is possible but maybe not needed
;; - Nav/Number layer y + sticky + dedicated layerkey Fallback number/nav layer (with SPACE)
;; - Shift fork layer (y) tricky
;; - one-shot layer (rarly used) y
;; - one-shot shift, y
;; - alt tap otimization ? map caps to ALT-Tab or SYSMBOLS
;; - 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 requires interception? pgup can be remapped
;;
;; TODO 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
;; INFO 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
;; INFO use atx numtab for remote desktop -> atr (problem with non remappable keys -> solved by wintercept)
;; INFO double leader keying (multi f24 sldr) inconsistencies with sldr
;; INFO sldr key not used
;; INFO AltGr is a bad positionend key anyway - bspc but not used
;; TODO where to put delete? nav+B nav+h <- learn 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 ? but no need
;; 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
;; works, but no usecases :(
(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
TEST like ,< use DBL-tap-Hold on more Long_Hold keys
|#
(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
;;usecases for cmd: current date
;; process-unmapped-keys no ;; yes does not help with japanese keys ; flipped to no did not help with RDP
process-unmapped-keys no
)
;;(deflocalkeys-wintercept
;; - 191
;; ü 219
;; + 221
;; # 220
;; ö 186
;; ß 189
;; ^ 192
;; ´ 187
;; ä 222
;; < 226
;; ;;- 555 custom numbers does not work with interception
;;)
(deflocalkeys-win
- 189
ü 186
+ 187
# 191
ö 192
ß 219
^ 220
´ 221
ä 222
< 226
;;- 555 custom numbers does not work with interception
)
(deffakekeys
nosft_fk f22 ;; unused
to-base (layer-switch base)
)
;;(deflocalkeys-win
;; - 189
;; ü 186
;; + 187
;; # 191
;; ö 192
;; ß 219
;; ^ 220
;; ´ 221
;; ä 222
;; < 226
;;)
(defalias
;; alias to cancel tap-hold keys if typing rapidly but restore after a shord idle period
tp XX ;; not using Shift optimisation on RDP (multi
;; (layer-switch typing)
;; (on-idle-fakekey to-base tap 35)
;;)
;; shifted german keys - every standard definition as (macro) to disable autorepeate if the key is use on tap-hold
;; wintercept alias differences
y y
z z
' (macro S-# )
+ (macro + )
* (macro S-+ )
_ S--
;; AltGr german keys
~ (macro C-A-+ )
~~ C-A-+ ;; tilde most likly do be used inside another macros
| (macro C-A-102d )
} (macro C-A-0 ) ;; C-A- works with rdp but C-A- 7 8 9 0 shortcuts must be deleted in windows terminal
{ (macro C-A-7 )
] (macro C-A-9 )
[ (macro C-A-8 )
\\ C-A-ß ;; single Backslash to be used inside of certain macros
\ (unicode \) ;;(macro RA-ß )
ẞ (macro RA-S-ß )
€ (unicode € ) ;;(macro RA-e )
@ (unicode @ )
² (macro RA-2 )
³ (macro RA-3 )
µ (macro RA-m )
! (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-102d )
< (macro 102d ) ;; not really needed but having @< and @> looks consistent
;; change dead keys in normal keys
´ (macro = spc) ;; ´
` (unicode `) ;; ` unicode also disables autorepeat
^ (unicode ^) ;; ^ = \ - shifting (macro grv spc) will produce an incorrect space now: "° "
° S-grv
;; 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
tab j z u a y p f l m w q + #
caps c s i e o d t n r h ß ret
lsft v x ü ä ö b g , . k rsft
lmet lalt spc
)
;; DON'T mess with the @u【 @a】 spacing
(deflayer base
;;**************** BASE ********************************************************
;; TODO is @rtw / rsft+rspace=@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 hold-q = SYM+V = s+i+q
;; TODO ONLY c s i n r h have dbl_tap autorepeat
;; rsft+lspc = CAPS WORDS / lspc+D = DeskSwitch
;; 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 ret hold does ctl via QMK
esc f1 @ff13 @ff14 f24
@^ec @1@ @2 @3` @4 @5 @6 @7 @8 @9 @0 - del bspc
@tab @j! @z˝ @u【 @a】 @y$ @p& @f% @l? @m# @w\ @q@ esc @rtw
@atx @cwn @s @i[ @e] @o' @d/ @t @n @r @hwn @ß- ret
@oss @v` @chx| @ü{ @ä} @ö+ @b= @g* @,;< @.:> @k_~ @rsf
@oml @oal @nav
#|
lmet lalt @nav
CTRL + SPACE + ESC => Exit KANATA immediatly
lspace + rspace = Enter / AltGr = DEL |#
)
;; Typing layer prevents Upper Case within words when typing fast
(deflayer typing
;;**************** typing ********************************************************
esc f1 @ff13 @ff14 f24
@^ec @1@ @2 @3` @4 @5 @6 @7 @8 @9 @0 - del bspc
@tab j @z u a @y p f l m w q esc @rtw
@atx c s i e o d t n r h @ß- ret
@oss v x @ü{ @ä} @ö+ b g @,;< @.:> @k_~ @rsf
lmet lalt @nav-typing
)
(deflayer numbers
;;**************** NUMBERS ****************************************************
;; TODO caps to sym / C-bspc / at1 - at9 RDESK / atm / A-prtsc / @fky never used!
;; TODO F14 space to DEL ever used? h = del or h = esc
;; TEST atx with RDP
esc f1 @ff13 esc 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
;;**************** LEFT HAND COURSOR KEYS by Using aup *********************************************
aup (on-press-fakekey alt release) ;; to exit the alt-tab dialog but stay in the layer
;; fbs and are examples to deactivate a fakekey but not needed anymore
fbs (multi
(on-press-fakekey nosft_fk release)
bspc
)
ret22 (multi
(on-press-fakekey nosft_fk release)
ret
)
dsk (multi lmet lalt ß) ;; AHK desktop switch must use MODS to be active within RDP SYMBOL+M
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 HAND COURSOR KEYS by Using aup ********************************************************
;; TODO How usefull are the esc Keys?
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 @` @^ @[ @] @' @dsk S-7 - @_ @.: @€ _
_ ´ @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 F-keys and (symbols) triggered from the RIGHT side (ff13)
;;**************** MACRO ********************************************************
_ f1 @ff13 @ff14 f24
_ @fashing @geb @iban @plz _ _ _ _ _ _ _ _ _
_ @cmdde f1 f2 f3 f10 @& @% @tsc # @\ _ _ _
_ @cmdiso f4 f5 f6 f11 lmet lsft ^ ^ @-_~ _ _
_ ´ f7 f8 f9 f12 lsft lctl lalt _ ^ _
_ _ _
)
(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 g) ;; 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 < is | 0 is }
ch} (tap-hold 1 200 (chord |} 0) (release-layer symbols)) ;; tap-hold to exit layer
)
;; from NUMFIX to BASE
(defchords exit79 20
(7 ) 7
( 9 ) 9
(7 9 ) @quen
)
;; from BASE to NUMFIX
(defchords xä 20
(x ) (tap-hold 1 120 x (multi @| (tap-hold 200 800 XX @| )) )
( ä ) ä
(x ä ) @numfix
)
;; from SYMBOLS to NUMFIX CA(0) = } CA(<) = | chord must be defined on the not modified keys
(defchords |} 140
(0 ) @}
( < ) @|
(0 < ) @numfix
)
;; TODO F24 and Q are not really used
(defchords fkomma 20
(g ) g
( , ) ,
(g , ) esc
( . ) .
( , . ) f24
)
;; 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)
cwd (caps-word-custom 2000
(a b c d e f g h i j k l m n o p q r s t u v w x y z ä ü ö)
(1 2 3 bspc del up down left rght rsft -) ;; rsft must be exluded as they are used for triggering caps words
)
cwl (caps-word-custom 2000
(a b c d e f g h i j k l m n o p q r s t u v w x y z ä ü ö)
(1 2 3 bspc del up down left rght lsft -) ;; lsft must be exluded as they are used for triggering caps words
)
ff14 (tap-hold 200 200
(multi
(fork
(fork
spc
@cwd
(rsft)
)
@cwl
(lsft)
) )
(fork
(multi (layer-toggle numbers) (layer-toggle symbols))
(layer-toggle numbers)
(lsft)
)
) ;; LEFT sft + LEFT spc == numbers
ff13 (multi f21 (layer-toggle ksymbols)) ;; MACRO+SYSMBOLS TIP removing one-shot solves problems with hitting the key by accident
nav (tap-hold 200 200 spc (fork @num @sym (rsft))) ;; RIGHT sft + RIGHT spc == symbols
nav-typing (tap-hold 200 200 (multi @que spc) (fork @num @sym (rsft)))
;; 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 (tap-hold 200 200 esc 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 @^)
tab (tap-hold-press 200 400 tab lctl ) ;; TODO is ctl ever used?
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
;; 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 pgup) ) ;; 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] (multi
;; (on-idle-fakekey nosft_fk release 222 )
;; (tap-hold 1 160 (fork e f (lctl rctl)) lsft)
;; )
e] (tap-hold 1 160 (fork e f (lctl rctl)) lsft)
t (tap-hold 1 160 t lsft) ;; rsft ,rctl have RDP problems without interception
;;n (tap-hold-release 1 140 (fork n (unicode n) (rsft) )(one-shot 400 rsft) )
;; n (tap-hold 1 160
;; (fork
;; n
;; (multi
;; (unicode n)
;; (on-press-fakekey nosft_fk release)
;; )
;; (f22)
;; )
;; rsft) ;; (fork n (unicode b) (rsft) ) rsft) ;;(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[ (multi (on-press-fakekey nosft_fk press) (tap-hold 500 500 (fork i (macro (unicode e)(unicode i)) (lsft) ) lctl ) )
i[ (multi (tap-hold 500 500 (fork i (macro (unicode e)(unicode i)) (lsft) ) lctl ) @tp )
n (tap-hold 500 500 n lctl ) ;; Bug in no interception rctl+y to start ditto, then ditto will not act on keyboard input
;; also RDP ignores rctl DIFFERENCE to rsft is: rctl is missing in defsrc
;; but adding it will not solve the issue Enter will start the search
s (tap-hold 1000 1000 s alt)
hwn (tap-hold 350 1000 h lmet)
ß- (tap-hold 1 180 ß (macro - ) ) ;; ß = [
cwn (tap-hold 1000 1000 c lmet)
r (tap-hold-release 450 1000 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 800 XX (macro bspc @@ )))) (fork (macro bspc @@) RA-q (lctl rctl)) ))
z˝ (tap-hold 1 140 @z (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
y$ (tap-hold 1 140 @y (macro S-4))
p& (tap-hold 1 160 p (multi (macro S-6 ) (tap-hold 200 800 XX (macro S-6 )))) ;; & &&
l? (tap-hold 1 140 l (multi @? (tap-hold 200 500 XX @? ))) ;; ? = S-[ i ? ??
;;k\ (tap-hold 1 140 k (multi @\ (tap-hold 200 800 XX @\ )) ) ;; fast reponsive
w\ (tap-hold 1 100 (tap-dance-eager 100 (w (tap-hold 1 100 (macro w) (macro bspc @\\ @\\)) (tap-hold 1 100 (macro w w) w) )) (multi (macro @\\ ) (tap-hold 1 800 XX (macro @\\ ))) )
aä (tap-hold 1 120 a (macro-release-cancel ä 400 bspc S-= spc 600 bspc ä 600 bspc a 600 bspc)) ;; ä = ' `=S-]
f% (tap-hold 1 140 f (macro S-5 ))
m# (tap-hold 1 140 m (macro # ))
sß (tap-hold 1 120 s (macro ß ) ) ;; ß = [
q@ (tap-hold 1 120 q @@ )
o' (tap-hold 1 160 o (multi @' (tap-hold 200 800 XX @' )) ) ;; ' ''
d/ (tap-hold 1 200 d (multi (macro S-7 ) (tap-hold 180 800 XX (macro S-7 ))) ) ;; / // TODO do we want dbl_tap-hold keyrepeat //
x| (tap-hold 1 120 @chx| (multi @| (tap-hold 200 800 XX @| )) ) ;; | || not used
v` (tap-hold 1 160 v (multi @` (tap-hold 200 800 XX @´ )) )
ü{ (tap-hold 1 140 ü (multi @{ (tap-hold 200 500 XX @} ))) ;; { {}
;;ä} (tap-hold-release-timeout 200 400 ä @syvv @} ) ;; not needed on v20 bc of second space bar
ä} (tap-hold 1 140 @chä @} )
ö+ (tap-hold 1 180 ö (multi @+ (tap-hold 220 500 XX @+ ))) ;; + = = b + ++
;;p= (tap-hold 1 240 p (multi (macro S-0 ) (tap-hold 200 400 XX (multi (macro S-0 ) (tap-hold 200 1000 XX (macro S-0 )) ))) ) ;; p = == ===
b= (tap-hold 1 180 (tap-dance-eager 180 (b (tap-hold 1 180 (macro b) (multi (macro bspc S-0 S-0) (tap-hold 260 600 XX (macro S-0 )))) (tap-hold 1 180 (macro b b) b) )) (multi (macro S-0 ) (tap-hold 260 400 XX (multi (macro S-0 ) (tap-hold 260 800 XX (macro S-0 )) ))) )
g* (tap-hold 1 160 @chf (multi (macro S-+ ) (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 140 (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 @_ ) (tap-hold 200 800 XX (macro bspc @~~ ))) ) ;; - _ ~
-_: (tap-hold 1 100 (tap-dance 140 (/ (tap-hold 10 100 (macro / /) @:) (tap-hold 10 100 (macro / / /) /) )) (multi (macro @_ ) (tap-hold 200 800 XX (macro bspc S-. ))) ) ;; - _ :
k_~ (tap-hold 1 140 (tap-dance-eager 140 (k (tap-hold 1 100 (macro k) (macro bspc @~~)) (tap-hold 1 100 (macro k k) k) )) (multi (macro @_ ) (tap-hold 1 800 XX (macro bspc @~~ ))) ) ;; - _ ~
,: (tap-hold 1 600 , @: )
.: (tap-hold 1 600 . @: )
)
(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 @\\ )
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") ;; goes not work on new PC
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 ))