forked from DreymaR/BigBagKbdTrixPKL
-
Notifications
You must be signed in to change notification settings - Fork 0
/
_eD_Compose.ini
3823 lines (3780 loc) · 423 KB
/
_eD_Compose.ini
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
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
;
;; ================================================================================================================================
;; Compose table definitions
;; for EPiKaL Portable Keyboard Layout (EPKL) by Øystein "DreymaR" Bech-Aase (2015-), based on PKL by Máté Farkas (2008-2010).
;; ================================================================================================================================
;
;; - Compose/Completion is a wonderful method for producing complex output from sequences, well known from Linux.
;; - Press `y=` then Compose for ¥. Or `'mail` then Compose for your email address; see [compose_strings] below.
;; - EPKL Compose is post-hoc: You press the Compose key after typing the sequence instead of before as in Linux.
;; - This means that EPKL sends a number of Backspace characters to delete the entered sequence first.
;; - Additive Completion adds to whatever was written instead. Adding tables are marked with a + in the tables list.
;; - Entry keys may be defined using hex Unicode point sequences, or with simple character strings.
;; - Simple character string keys cannot contain advanced glyphs that aren't allowed in .ini file keys.
;; - Simple key entries cannot distinguish case(?), but the Title Case key is automatically generated as well.
;; - For full control over glyph and case, use the U####_U####... format with Unicode hex values.
;; - EPKL can import a table from a Linux X compose file such as the en_US.UTF-8 one in [compose_x11] below.
;; - In EPKL, the X11 table has been slightly edited and added to. Also, only its Compose key entries are here.
;; - NOTE: You can set the desired compose lengths to look for in an ordered list below, in the 'lengths' setting.
;; - If lengths are set to 3,2 for instance, 3-key sequences will take precedence over 2-key sequences.
;; - If there are sequences of the same length in several tables, the first one listed will take precedence.
;; - Use [\r \n \t \b] escapes for [`r `n `t `b] (Return, Newline, Tab, Backspace). Both \ and \\ produce a backslash.
;; - The @co0 dead key, if defined, is activated when the Compose key is pressed and no sequence is recognized.
;; - I call a key mapping using the @co0 DK with Compose, a CoDeKey (Dual-Function Compose/DeadKey)
;; - Compose sequences will override a Co0 dead key, so there may be unexpected results depending on usage.
;; - This is more likely to happen for sequences that appear in text like 'ng', 'ff' or 'oe'.
;; - For this reason, many X11 mappings have been commented out to avoid conflict. These were mostly redundant.
;; - Independently of this, you may set for instance the Shifted state of a Compose key to the simple DK @co1.
;; - See the EPKL_Layouts (and DeadKeys) .ini file for the DK definitions.
;; - EPKL prefix-entry syntax is useable in layout state mappings, Extend, Compose, PowerString and dead key entries.
;
[pkl]
;; Allowed Compose sequence lengths. If you want, say, 2-char sequences to have priority over 3-char ones, you can edit the list.
lengths = 10,9,8,7,6,5,4,3,2,1 ; How many previous characters to use as Compose key sequences, prioritized
[compose-tables]
;; Named Compose/Completion keys have their own prioritized set of compose tables defined here. Sequence length still wins.
;; The default compose deletes the original sequence. A "+" prefix on a table name means additive completion.
Def = strings, +adding, x11 ; The default ©Def Compose key. By default mapped to the ISO key; see EPKL_Layouts_Default.ini
CDK = strings, +adding, x11 ; The default ©Def Compose key, as an advanced CoDeKey with a dead key table for non-sequences
dCo = +dynCmk, +3grams, +adding, strings ; Colemak bigram and trigram Completion key, with some additional string composes
x11 = strings, x11 ; X11 Compose key, with some (overriding) user definitions
;; ================================================================================================================================
;; Compose tables, including (an) imported X11 Compose table(s)
;; ================================================================================================================================
;
[compose_local]
;; This is a place for locale characters. Obviously, it's going to be individual what you want here.
;; It can be sweet to complete for instance `i` to `ij` in Dutch, but for other languages that's too much.
;; So for the most part, add locale composes to your layout files. But there's a place here too if you wish.
;; Note: You can also use the @co0 CoDeKey non-recognition dead key on the Compose key, for such mappings and more.
U007b = Å ; { = Å (Danish/Norwegian; `AA aa` is in X11)
U005b = å ; [ = å
U007d = Æ ; } = Æ (Danish/Norwegian; `AE ae` is in X11)
U005d = æ ; ] = æ
U003f = Ø ; ? = Ø (Danish/Norwegian; `O/ o/` is in X11)
U002f = ø ; / = ø
Ae = Æ ; Ae = Æ (AE is in the X11 table)
;ae = æ ; ae = æ (ae is in the X11 table)
Ao = Å ; The standard compose is `AA` but that's a repeat
ao = å ; The standard compose is `aa` but that's a repeat
[compose_adding]
;; Completion sequences that are added to, not replaced like normal Compose. To use, enable a Compose key using the `adding` table.
;; Note: The keys ZGBVJX and /.;, aren't given Colemak dynamic mappings below as their n-grams are so rare: They're up for grabs.
;; I don't suggest mapping punctuation here as it's often used by X11 Compose sequences.
;; Note: Instead of completing single characters I now use the @co0 dead key, as the "CoDeKey" is more powerful for that purpose.
;z = ; z ⇒ ??? [Up for grabs, not mapped in the dynamic completions by default]
;g = ; g ⇒ --"-- [This key is quite accessible near the middle]
;b = ; b ⇒ --"--
;x = ; x = --"--
;v = α^{BS} ; v = Ctrl+Backspace. Roll V-© on Cmk-ISO-Angle layouts. Works better on the @co0 DK.
;j = α^{Z}{Esc} ; j = (Undo+)Escape. Works better as Ext+Q, or on the @co0 CoDeKey.
;U003a = -) ; ; = Smiley (winking)
;U003b = -) ; : = Smiley
[compose_strings]
;; Additions to the standard X Compose key tables.
;; Some of it is stuff I just found useful for me, some is intended as demonstration of what EPKL Compose is capable of:
'sign = ¶Sig ; Prefix-Entry syntax is allowed! This is a PowerString "Yours Truly" example.
'name = <<YourNameHere>> ; I use an apostrophe prefix to avoid undesired composing, e.g., after typing the word 'name'
'mail = <<YourE-MailHere>> ; These personal entries could be defined in one of your LayStack's Override files.
'addr = <YourAddressHere>\n<YourRoad>\n<YourCity> ; Escaped \n; \t for Tab and \b for Back work too
;z = ; z = ???
;v = α^{BS} ; v = Ctrl+Backspace. May be a completion instead, since we're sending Ctrl+Back anyway.
;j = α^{Z}{Esc} ; j = Escape. Works better as Ext+Q.
;x = ! ; x = Exclamation mark. It's a bit of a reach on the number row. Works better as an Ext-tap!
;'x = @0b4 ; A dead key activated by Compose. This is the acute DK, as defined in _eD_DeadKeys.ini
'g = @060 ; DK Grave - Awkward reach with AltGr using the Sym mod.
'c = @05e ; DK Circumflex - Awkward on the number row. Can also compose it with '>'.
'h = @0b5 ; DK µ - Greek (Hellenic) letters
'k = @ex1 ; Kaomoji! -  ̄(=⌒ᆺ⌒=) ̄
;; Some default X11 Compose sequences contain plain text, thus conflicting with things like the "CoDeKey" @co0 dead key.
;; Here are alternatives for some of them, using the apostrophe as a sequence marker to avoid ambiguity.
'nbsp = ; No-break space [The default ' ' sequence causes problems for the CoDeKey]
'spc = ␣ ; U2423 # Open Box (Whitespace caret)
'SS = ẞ ; S S ⇒ SS # LATIN CAPITAL LETTER SHARP S (U+1E9E)
'ss = ß ; s s ⇒ ss # LATIN SMALL LETTER SHARP S
'fs = ſ ; f s U017f # LATIN SMALL LETTER LONG S
'longs = ſ ; U017f # LATIN SMALL LETTER LONG S
'esh = ʃ ; # LATIN SMALL LETTER ESH
'OE = Œ ; O E ⇒ OE # LATIN CAPITAL LIGATURE OE
'oe = œ ; o e ⇒ oe # LATIN SMALL LIGATURE OE
'AE = Æ ; A E ⇒ AE # LATIN CAPITAL LETTER AE
'ae = æ ; a e ⇒ ae # LATIN SMALL LETTER AE
'O/ = Ø ; O / ⇒ OE # LATIN CAPITAL LETTER O WITH STROKE
'O? = Ø ; O ? ⇒ OE # LATIN CAPITAL LETTER O WITH STROKE
'o/ = ø ; o / ⇒ oe # LATIN SMALL LETTER O WITH STROKE
;'AA = Å ; A A ⇒ AA # LATIN CAPITAL LETTER A WITH RING ABOVE
'AO = Å ; A O ⇒ AA # LATIN CAPITAL LETTER A WITH RING ABOVE
;'aa = å ; a a ⇒ aa # LATIN SMALL LETTER A WITH RING ABOVE
'ao = å ; a o ⇒ aa # LATIN SMALL LETTER A WITH RING ABOVE
'ff = ff ; f f ⇒ Ufb00 # LATIN SMALL LIGATURE FF
'fi = fi ; f i ⇒ Ufb01 # LATIN SMALL LIGATURE FI
'fl = fl ; f l ⇒ Ufb02 # LATIN SMALL LIGATURE FL
'Fi = ffi ; F i ⇒ Ufb03 # LATIN SMALL LIGATURE FFI
'Fl = ffl ; F l ⇒ Ufb04 # LATIN SMALL LIGATURE FFL
'IJ = IJ ; I J ⇒ U0132 # LATIN CAPITAL LIGATURE IJ
'Ij = IJ ; I j ⇒ U0132 # LATIN CAPITAL LIGATURE IJ
'ij = ij ; i j ⇒ U0133 # LATIN SMALL LIGATURE IJ
'KK = ĸ ; k k ⇒ U0138 # Latin Small Letter Kra
'gg = ɡ ; g g ⇒ U0261 # Latin Small Letter Script G
'‘ = ʻ ; ‘ ⇒ U02bb # Modifier Letter Turned Comma (Hawaiian okina; Uzbek component of oʻ and gʻ)
'’ = ʼ ; ’ ⇒ U02bc # Modifier Letter Apostrophe (IPA ejective; glottal stop in some languages)
'oo = ° ; o o ⇒ ° # DEGREE SIGN
'** = ⁂ ; * * ⇒ U2042 # Asterism
;; These ligature-composing and other sequences weren't in the X11 table but deserve inclusion
'LJ = LJ ; U01c7 # Latin Capital Letter Lj
'Lj = Lj
'lj = lj
'NJ = NJ ; U01ca # Latin Capital Letter Nj
'Nj = Nj
'nj = nj
'DZ< = DŽ ; U01c4 # Latin Capital Letter Dz with Caron
'Dz< = Dž
'dz< = dž
'DŽ = Dž
'Dž = Dž
'dž = dž
'DZ = DZ ; U01f1 # Latin Capital Letter Dz
'Dz = Dz
'dz = dz
'# = Ʒ ; U01b7 # Latin Capital Letter Ezh
'3 = ʒ ; U0292 # Latin Small Letter Ezh
'Ʒ = Ƹ ; U01b8 # Latin Capital Letter Ezh Reversed [Latin-Arabic Ƹayin]
'ʒ = ƹ ; U01b9 # Latin Small Letter Ezh Reversed
'#< = Ǯ ; U01ee # Latin Capital Letter Ezh With Caron
'3< = ǯ ; U01ef # Latin Small Letter Ezh With Caron
'Ʒ< = Ǯ ; U01ee # Latin Capital Letter Ezh With Caron
'ʒ< = ǯ ; U01ef # Latin Small Letter Ezh With Caron
'Hw = Ƕ ; U01f6 # Latin Capital Letter Hwair [Gothic /ʍ/++]
'hw = ƕ ; U0195 # Latin Small Letter Hv
'Wh = Ƕ ; U01f6 # Latin Capital Letter Hwair [Gothic /ʍ/++]
'wh = ƕ ; U0195 # Latin Small Letter Hv
'Uu = Ƿ ; U01f7 # Latin Capital Letter Wynn
'uu = ƿ ; U01bf # Latin Small Letter Wynn
'Gh = Ȝ ; U021c # Latin Capital Letter Yogh [Middle English /j/++]
'gh = ȝ ; U021d # Latin Small Letter Yogh
'Ou = Ȣ ; U0222 # Latin Capital Letter Ou
'ou = ȣ ; U0223 # Latin Small Letter Ou
'Ng = Ŋ ; U014a # Latin Capital Letter Eng
'ng = ŋ ; U014b # Latin Small Letter Eng [The default 'ng' sequence causes problems for the CoDeKey]
'Th = Þ ; U00de # Latin Capital Letter Thorn
'th = þ ; U00fe # Latin Small Letter Thorn [The default 'th' sequence causes problems for the CoDeKey]
'Dh = Ð ; U00d0 # Latin Capital Letter Eth
'dh = ð ; U00f0 # Latin Small Letter Eth [The default 'dh' sequence causes problems for the CoDeKey]
;'nn = ñ ; Historically, nn turned into ñ in Spanish
;'cz = ç ; Historically, cs/cz turned into ç. Conflicts with X11's `cz → ž` compose though.
;'io = ! ; Historically, Latin 'Io' (an exclamation) turned into '!'.
;'qo = ? ; Historically, Latin 'Quaesto' ('i ask') turned into 'Qo' then '?'.
'et = & ; Historically, Latin 'Et' ('and') turned into '&'.
'Co = © ; I didn't enjoy the standard compose of 'oc' into ©. Using `co` ruins `co → ǒ`.
'co = ©
'Ro = ® ; RO is in the X11 table, and or/oR/Or/OR (oc/oC/Oc/OC and CO for ©)
'ro = ®
'TM = ™ ; Trade Mark
'tm = ™ ; Trade Mark
'SM = ℠ ; Service Mark
'sm = ℠ ; Service Mark
'CE = ₠ ; U20a0 # EURO-CURRENCY SIGN
'ce = ₠
'Xo = ¤
'xo = ¤
'Ss = § ; # Section (Silcrow) [The alternative spellings 'ss and 'SS are taken by ßẞ]
'sil = §
'Sp = ¶ ; # Paragraph (Pilcrow)
'pil = ¶
'tl = ƛ ; Lambda With Stroke. Americanist phonetic notation for `tl` [t͡ɬʼ] in for instance 'Nahuatl'.
;; One thing took another when it came to turned letters; actually, IPA symbols for the most part.
;; Note: These probably deserve something more dedicated and clear-cut than letter doubling?
'aa = ɐ ; U0250 # Latin Small Letter Turned A
'AA = Ɐ ; U26CF # Latin Capital Letter Turned A [Cf. the U+2200 logic symbol ∀ – "for all"]
'α = ɑ ; U0251 # Latin Small Letter Alpha
'αα = ɒ ; U0252 # Latin Small Letter Turned Alpha
'cc = ɔ ; U0254 # Latin Small Letter Open O
'CC = Ɔ ; U0186 # Latin Capital Letter Open O
'ee = ə ; U0259 # Latin Small Letter Schwa [Not the same as U+01DD reversed e, but nearly]
'Ee = Ə ; U018f # Latin Capital Letter Schwa
'EE = Ǝ ; U018e # Latin Capital Letter Reversed E [its proper lowercase counterpart is U+01DD ǝ]
'ff = ɟ ; U025f # Latin Small Letter Dotless J with Stroke [looks like a turned f]
'hh = ɥ ; U0265 # Latin Small Letter Turned H
'mm = ɯ ; U026f # Latin Small Letter Turned M
'rr = ɹ ; U0279 # Latin Small Letter Turned R
'tt = ʇ ; U0287 # Latin Small Letter Turned T
'vv = ʌ ; U028c # Latin Small Letter Turned V
'ww = ʍ ; U028d # Latin Small Letter Turned W
'yy = ʎ ; U028e # Latin Small Letter Turned Y
'kk = ʞ ; U029e # Latin Small Letter Turned K
;; Various keyboard related symbols, just because.
key'board = ⌨ ; U2328 # Keyboard
key'cmd = ⌘ ; U2318 # Command (Apple)
key'ctrl = ⌃ ; U2303 # Ctrl
key'opt = ⌥ ; U2325 # Option/Alt (Apple)
key'shift = ⇧ ; U21E7 # Shift
key'back = ⌫ ; U232B # Delete Left
key'del = ⌦ ; U2326 # Delete Right
key'spc = ␣ ; U2423 # Open Box (html ␣)
;; Basic HTML tags. I often find these difficult to remember as dead key mappings.
;; Indentations are by spaces here.
h'header = &HTML ; HTML boilerplate for a new document (not auto-indent robust)
h'doc = →<!DOCTYPE html> ; HTML DOCTYPE
h'html = &h_html ; HTML tags <html> (indented)
h'head = &h_head ; HTML tags <head> --"--
h'body = &h_body ; HTML tags <body> --"--
h'div = &h_div ; HTML tags <div> --"--
h'title = α<title></title>{Left 8} ; HTML tags <title>
h'link = α<link rel="" href="">{Left 10} ; HTML tags <link>
h'meta = α<meta name="" content="">{Left 13} ; HTML tags <meta>
h'h1 = α<h1></h1>{Left 5} ; HTML tags <h1>
h'h2 = α<h2></h2>{Left 5} ; HTML tags <h2>
h'h3 = α<h3></h3>{Left 5} ; HTML tags <h3>
h'h4 = α<h4></h4>{Left 5} ; HTML tags <h4>
h'h5 = α<h5></h5>{Left 5} ; HTML tags <h5>
h'h6 = α<h6></h6>{Left 5} ; HTML tags <h6>
h'ol = &h_ol ; HTML tags <ol> --"--
h'ul = &h_ul ; HTML tags <ul> --"--
h'li = α<li></li>{Left 5} ; HTML tags <li>
h'span = α<span></span>{Left 7} ; HTML tags <span>
h'spanc = α<span class=""></span>{Left 9} ; HTML tags <span class="">
h'p = α<p>{Enter 2}</p>{Enter}{Up 2} {} ; HTML indented paragraph (robust for auto-indenting editors)
h'b = α<b></b>{Left 4} ; HTML tags <b>
h'i = α<i></i>{Left 4} ; HTML tags <i>
h'u = α<u></u>{Left 4} ; HTML tags <u>
h'em = α<em></em>{Left 5} ; HTML tags <em>
h'strong = α<strong></strong>{Left 9} ; HTML tags <strong>
h'a = &h_href ; HTML tags <a href="">
h'url = &h_href
h'href = &h_href
h'img = α<img src="" alt="">{Left 9} ; HTML tags <img>
h'button = α<button id="" class="">{Left 11} ; HTML tags <button>
h'kbd = α<kbd></kbd>{Left 6} ; HTML tags <kbd>
h'sub = α<sub></sub>{Left 6} ; HTML tags <sub>
h'sup = α<sup></sup>{Left 6} ; HTML tags <sup>
;; WIP: Suggested Pan-African and IPA phonetic mappings, by Kharlamov/Kharlee at the Colemak Discord and DreymaR.
;; https://www.compart.com/en/unicode/block/U+0250
p'a = ɑ ; U+0251 # Latin Small Letter Alpha
p'A = Ɑ ; U+2C6D # Latin Capital Letter Alpha
p'b = ʘ̬ ; Voiced Bilabial Velar Click
p'B = ʙ ; U+0299 # Latin Letter Small Capital B
p'c = ɔ ; U+0254 # Latin Small Letter Open O
p'C = Ɔ ; U+0186 # Latin Capital Letter Open O
p'd = ɖ
p'D = Ɖ
p'e = ǝ ; U+01DD # Latin Small Letter Reversed E ["schwa"; not actual U+018F schwa]
p'E = Ǝ ; U+018E # Latin Capital Letter Reversed E
p'ε = ɛ ; U+025B # Latin Small Letter Open E - Open Mid-Front Unrounded Vowel
p'Ε = Ɛ ; U+0190 # Latin Capital Letter Open E
p'f = ɟ ; U+025F # Latin Small Letter Dotless J with Stroke - Voiced Palatal Plosive (stop)
;p'F
p'g = ƹ
p'G = Ƹ
p'Ŋ = Ꞑ ; U+A790 # Latin Capital Letter N with Descender [Used in romanization of the Tatar language]
p'ŋ = ꞑ ; U+A791 # Latin Small Letter N with Descender
p'h = ɂ
p'H = Ɂ
p'i = ɪ ; U+026A # Latin Letter Small Capital I - Near-Close Near-Front Unrounded Vowel
p'I = Ɪ ; U+A7AE # Latin Capital Letter Small Capital I
p'j = ɩ
p'J = Ɩ
p'k = ǂ
p'kk = ʞ ; U+029E # Latin Small Letter Turned K
p'K = ĸ ; U+0138 # Latin Small Letter Kra [mostly deprecated]
p'l = ɬ ; U+026C # Latin Small Letter L with Belt
;p'L
p'm = ƞ
p'M = Ƞ
p'n = ɴ
;p'N
p'o = ɵ ; U+0275 # Latin Small Letter Barred O - closed mid-central rounded vowel
p'O = Ɵ ; U+019F # Latin Capital Letter O with Middle Tilde
p'p = ʘ
;p'P
p'q = ǃ
;p'Q
p'r = ɾ
;p'R
p's = ʃ
p'S = Ʃ
p't = ʈ
p'T = Ʈ
p'u = ʊ
p'U = Ʊ
p'v = ʌ
p'V = Ʌ
p'w = ʍ ; U+028D # Latin Small Letter Turned W
p'ww = ʍ ; U+028D # Latin Small Letter Turned W
;p'W
p'x = ǁ
;p'X
p'y = ɣ
p'yy = ʎ ; U+028E # Latin Small Letter Turned Y
p'Y = Ɣ
p'z = ǀ
;p'Z
p'' = ˈ
p'; = ː
p', = ˌ
p'gh = ƣ ; U+01A3 # Yañalif Letter Gha [equals Arabic ghayn]
p'Gh = Ƣ ; U+01A2 # [the unicode 'letter oi' name is an admitted misnomer]
p'ħ = ⱨ ; U+2C68 # Uyghur /h/ (since `h` is /x/)
p'Ħ = Ⱨ ; U+2C67
p'ç = ⱪ ; U+2C6A # Uyghur Qaf (like Arabic)
p'Ç = Ⱪ ; U+2C69
p'ʒ = ⱬ ; U+2C6C # Uyghur /ʒ/
p'Ʒ = Ⱬ ; U+2C6B
;; Š and Ž are used in Finnish and Skolt Sámi etc. Some may prefer this way to using the Caron DK.
'vs = š
'vS = Š
'vz = ž
'vZ = Ž
;; Barred/stroked letters; c-/s- were used historically in some USSR alphabets.
'O- = Ɵ ; U019F # Latin Capital Letter O with Middle Tilde [shouldn't conflict with `o-` ⇒ `ō`]
'o- = ɵ ; U0275 # Latin Small Letter Barred O [closed mid-central rounded vowel]
'C- = Ꞓ ; UA792 # Latin Capital Letter C with Bar
'c- = ꞓ ; UA793 # Latin Small Letter C with Bar [also in geology, symbol for the Cambrian age]
'F- = Ꞙ ; UA798 # Latin Capital Letter F with Stroke
'f- = ꞙ ; UA799 # Latin Small Letter F with Stroke
'G- = Ꞡ ; UA7A0 # Latin Capital Letter G with Oblique Stroke
'g- = ꞡ ; UA7A1 # Latin Small Letter G with Oblique Stroke
'K- = Ꞣ ; UA7A2 # Latin Capital Letter K with Oblique Stroke
'k- = ꞣ ; UA7A3 # Latin Small Letter K with Oblique Stroke
'N- = Ꞥ ; UA7A4 # Latin Capital Letter N with Oblique Stroke
'n- = ꞥ ; UA7A5 # Latin Small Letter N with Oblique Stroke
'R- = Ꞧ ; UA7A6 # Latin Capital Letter R with Oblique Stroke
'r- = ꞧ ; UA7A7 # Latin Small Letter R with Oblique Stroke
'S- = Ꞩ ; UA7A8 # Latin Capital Letter S with Oblique Stroke
's- = ꞩ ; UA7A9 # Latin Small Letter S with Oblique Stroke
'Q- = Ꝗ ; UA756 # Latin Capital Letter Q with Stroke Through Descender
'q- = ꝗ ; UA757 # Latin Small Letter Q with Stroke Through Descender
'Q_ = Ꝗ ; UA756 # Latin Capital Letter Q with Stroke Through Descender
'q_ = ꝗ ; UA757 # Latin Small Letter Q with Stroke Through Descender
'Þ- = Ꝥ ; UA764 # Latin Capital Letter Thorn with Stroke
'þ- = ꝥ ; UA765 # Latin Small Letter Thorn with Stroke
'Þ_ = Ꝧ ; UA766 # Latin Capital Letter Thorn with Stroke Through Descender
'þ_ = ꝧ ; UA767 # Latin Small Letter Thorn with Stroke Through Descender
;; Double grave and inverted breve accents for serbo-croatian linguistic notation etc, on request by Kharlamov/Kharlee
\\a = ȁ
\\A = Ȁ
\\e = ȅ
\\E = Ȅ
\\i = ȉ
\\I = Ȉ
\\o = ȍ
\\O = Ȍ
\\r = ȑ
\\R = Ȑ
\\u = ȕ
\\U = Ȕ
``a = ȁ
``A = Ȁ
``e = ȅ
``E = Ȅ
``i = ȉ
``I = Ȉ
``o = ȍ
``O = Ȍ
``r = ȑ
``R = Ȑ
``u = ȕ
``U = Ȕ
)a = ȃ
)A = Ȃ
)e = ȇ
)E = Ȇ
)i = ȋ
)I = Ȋ
)o = ȏ
)O = Ȏ
)r = ȓ
)R = Ȓ
)u = ȗ
)U = Ȗ
;; WIP: Math/Science/Logic. Can't use `=` directly as a leader like the Sci DK uses, so I use `s'`.
;; https://en.wikipedia.org/wiki/List_of_logic_symbols
s'- = − ; U2212 # MINUS SIGN
s'di = ⌀ ; U2300 # DIAMETER SIGN
s'--- = ≡ ; U2261 # = - IDENTICAL TO [The `=_` compose works directly in X11]
s'---/ = ≢ ; U2262 # ≡ / NOT IDENTICAL TO
s'≡/ = ≢ ; U2262 # ≡ / NOT IDENTICAL TO
s't = ⊤ ; Logic: Tautology (Down Tack)
s'T = ⊤ ; Logic: Tautology (Down Tack)
s'f = ⊥ ; Logic: Contradiction/Absurdity; also NOR
s'F = ⊥ ; Logic: Contradiction
s'p = ⊢ ; Logic: Proves (Turnstile / Right Tack)
s'p/ = ⊬ ; Logic: Does Not Prove
s'm = ⊨ ; Logic: Models (Double Turnstile); also "Is True of"
s'p- = ⊨ ; Logic: Models (Double Turnstile)
s'm/ = ⊭ ; Logic: Does Not Model; Not True
s'p-/ = ⊭ ; Logic: Does Not Model; Not True
s'D = 𝔻 ; Logic: Domain of discourse
s'v = ∨ ; Logic: OR
s'or = ∨ ; Logic: OR
s'v- = ⊽ ; Logic: NOR
s'nor = ⊽ ; Logic: NOR
s'v_ = ⊻ ; Logic: XOR (OR w/ line below)
s'n = ∧ ; Logic: AND
s'and = ∧ ; Logic: AND
s'n- = ⊼ ; Logic: NAND
s'nand = ⊼ ; Logic: NAND
s'! = ¬ ; Logic: NOT
s'~ = ¬ ; Logic: NOT
s'not = ¬ ; Logic: NOT
s'> = ⊃ ; Logic: Implication
s'< = ⊆ ; Logic: Follows
s'x = ⊕ ; Logic: XOR – Exclusive disjunction (circled x)
s'xor = ⊕ ; Logic: XOR – Exclusive disjunction (circled x)
s'a = ∀ ; Logic: All quantor U+2200 (In Polish/German notation, use ∧)
s'A = ∀ ; Logic: All quantor
s'e = ∃ ; Logic: Existential quantor (In Polish/German notation, use ∨)
s'E = ∃ ; Logic: Existential quantor
s'e/ = ∄ ; Logic: Non-existence
s'E/ = ∄ ; Logic: Non-existence
s'.: = ∴ ; Logic: Therefore [The `:.` compose works directly in X11]
s'': = ∵ ; Logic: Because [In X11, the less intuitive `.:` is used]
s'* = ⋆ ; Logic: Star Operator (ad hoc operator)
;; TODO: Add more of Unicode Block “Combining Diacritical Marks” (U+0300 to U+036f)
;; https://www.compart.com/en/unicode/block/U+0300
c'\ = ̀ ; U0300 # Combining Grave Accent
c'` = ̀ ; U0300 # Combining Grave Accent
c'\\ = ̏ ; U030f # Combining Double Grave Accent
c'`` = ̏ ; U030f # Combining Double Grave Accent
c'' = ́ ; U0301 # Combining Acute Accent
c'" = ̋ ; U030b # Combining Double Acute Accent
c''' = ̋ ; U030b # Combining Double Acute Accent
c'^ = ̂ ; U0302 # Combining Circumflex Accent
c'~ = ̃ ; U0303 # Combining Tilde
c'- = ̄ ; U0304 # Combining Macron
c'_ = ̅ ; U0305 # Combining Overline
c'( = ̆ ; U0306 # Combining Breve
c'U = ̆ ; U0306 # Combining Breve
c') = ̑ ; U0311 # Combining Inverted Breve
c'UU = ̑ ; U0311 # Combining Inverted Breve
c'. = ̇ ; U0307 # Combining Dot Above
c'; = ̈ ; U0308 # Combining Diaeresis
c'a = ͣ ; U0363 # Combining Latin Small Letter A
c'e = ͤ ; U0364 # Combining Latin Small Letter E
c'i = ͥ ; U0365 # Combining Latin Small Letter I
c'o = ͦ ; U0366 # Combining Latin Small Letter O
c'u = ͧ ; U0367 # Combining Latin Small Letter U
c'c = ͨ ; U0368 # Combining Latin Small Letter C
c'd = ͩ ; U0369 # Combining Latin Small Letter D
c'h = ͪ ; U036a # Combining Latin Small Letter H
c'm = ͫ ; U036b # Combining Latin Small Letter M
c'r = ͬ ; U036c # Combining Latin Small Letter R
c't = ͭ ; U036d # Combining Latin Small Letter T
c'v = ͮ ; U036e # Combining Latin Small Letter V
c'x = ͯ ; U036f # Combining Latin Small Letter X
;; Emoji
'pointle = ☜ ; U216c # WHITE LEFT POINTING INDEX
'pointup = ☝ ; U216d # WHITE UP POINTING INDEX
'pointri = ☞ ; U216e # WHITE RIGHT POINTING INDEX
'pointdn = ☟ ; U216f # WHITE DOWN POINTING INDEX
'keyboard = ⌨ ; U2328 # Keyboard
'fist = ✊ ; U270a # Raised Fist
'rainbow = 🌈 ; U1f308 # Rainbow
'beers = 🍻 ; U1f37b # Clinking Beer Mugs
'party = 🎉 ; U1f389 # Party Popper
'note = 🎵 ; U1f3b5 # Musical Note
'cow = 🐮 ; U1f42e # Cow Face
'wave = 👋 ; U1f44b # Waving Hand Sign
'okay = 👌 ; U1f44c # OK Hand Sign
'thumbup = 👍 ; U1f44d # Thumbs Up Sign
'thumbdn = 👎 ; U1f44e # Thumbs Down Sign
'magnifier = 🔎 ; U1f50e # Right-Pointing Magnifying Glass
'hammer = 🔨 ; U1f528 # Hammer
'spock = 🖖 ; U1f596 # Raised Hand with Part... [Vulcan Salute – Live Long and Prosper!]
'vulcan = 🖖 ; U1f596 # Raised Hand with Part Between Middle and Ring Fingers
'smiling = 😊 ; U1f60a # Smiling Face with Smiling Eyes
'catgrin = 😸 ; U1f638 # Grinning Cat Face with Smiling Eyes
'catjoy = 😹 ; U1f639 # Cat Face with Tears of Joy
'catsmile = 😺 ; U1f63a # Smiling Cat Face with Open Mouth
'catheart = 😻 ; U1f63b # Smiling Cat Face with Heart-Shaped Eyes
'catsmirk = 😼 ; U1f63c # Cat Face with Wry Smile (Ironic)
'catkiss = 😽 ; U1f63d # Kissing Cat Face with Closed Eyes
'catpout = 😾 ; U1f63e # Pouting Cat Face
'catcry = 😿 ; U1f63f # Crying Cat Face
'catworry = 🙀 ; U1f640 # Weary Cat Face (Worried)
'catscream = 🙀 ; U1f640 # Weary Cat Face (Worried)
'noevil = 🙈 🙉 🙊 ; U1f648/9/a # See/Hear/Speak-No-Evil Monkeys
'raise = 🙌 ; U1f64c # Person Raising Both Hands In Celebration
'pray = 🙏 ; U1f64f # Person with Folded Hands (Namaste)
'namaste = _/|\_ ; U1f64f # ASCII version of 🙏
'tools = 🛠 ; U1f6e0 # Hammer and Wrench
'hmmm = 🤔 ❓❗ ; U1f914 + U2753 + U2757 # Thinking Face + Black Question/Exclamation Mark Ornament [White: U2754 + U2755 ❔❕]
'hugs = 🤗 ; U1f917 # Hugging Face
'metal = 🤘 ; U1f918 # Sign of the Horns (Metal salute)
'horns = 🤘 ; U1f918 # Sign of the Horns (Metal salute)
'call = 🤙 ; U1f919 # Call Me Hand
'fistle = 🤛 ; U1f91b # Left-Facing Fist
'fistri = 🤜 ; U1f91c # Right-Facing Fist
'fistbump = 🤜🤛 ; U1f91c + U1f91b # Right/Left-Facing Fist
'love = 🤟 ; U1f91f # I Love You Hand Sign
'monocle = 🧐 ; U1f9d0 # Face with Monocle
'brain = 🧠 ; U1f9e0 # Brain
'kungfu = 🥋 ; U1f94b # Martial Arts Uniform
'martial = 🥋 ; U1f94b # Martial Arts Uniform
'viper = 🐍💨 ; U1f40d + U1f4a8 # Snake + Dash Symbol
'eyes = 👀 ; U1f440 # Eyes
'flex = 💪 ; U1f4aa # Flexed Biceps
'work = 🕘 🏢 🕔 ; U1f558 + U1f3e2 + U1f554 # Clock Face Nine Oclock + Office Building + Clock Face Five Oclock
'cccp = ☭ ; U262D # Hammer and Sickle [also composed by CCCP]
'swastika = 卍 ; U534D # CJK Unified Ideograph-534D [good swastika]
'voyna = 卐 ⚔ ☭ ; U5350 + U2694 + U262D # CJK U.I.-5350 [swastika] + Crossed Swords + Hammer and Sickle [The Great War – WW2]
;; Kaomoji are both on the Ext3 layer and the Shift+tap-Extend DK. Here's yet another option:
k'bear = → ฅʕ •ᴥ•ʔฅ ; b - Beary cheer
k'cat = → ( =^・ω・^=)丿 ; k - Kitty Hello
k'Cat = → ( =ʘᆽʘ=)ʃ ; K - --"--
k'cry = → ( ಥ╭╮ಥ) ; c - Cry
k'Cry = → ೭( ಥ﹏ಥ)೨ ; C - --"--
k'dance = → ♪♫ (*ノ・◡・)ノ ♫♩ ┏(・o・*)┛ ♫♪ ; d - Dance party
k'Dance = → ♪~└[∵┌]└[・▥・]┘[┐∵]┘~♪ ; D - --"--, robot
k'owl = → ( のvの) c[_] ; w - Wise owl w/ coffee mug
k'girl = → (✿◠‿◠) ; q - Kawaii qute "Flower girl"† (eyes may show as boxes)
thoth = → ( Θώθ) ; o - OwO - What's Thoth? (Answer: Egyptian god of wisdom!)
k'owo = → ( Θώθ) ; o - OwO - What's Thoth? (Answer: Egyptian god of wisdom!)
k'Owo = → ( ʘωʘ)♥ ; O - --"--, normal
k'joy = → ∩(●'‿'●)∩ ; j - Joyful
k'Joy = → ∩(◕‿◕。)∩~♪ ; J - Joyful† (eyes may show as boxes)
k'thup = → d( ^◇^)b ; t - Thumbs up
k'Thup = → (b ̄◇ ̄)b ; T - --"--
k'why = → ლ(ಠ益ಠ ლ) ; y - Why?! Confusion, worry
k'Why = → ⊂(;⊙д⊙)つ ; Y - --"-- - alt. (๑ΘдΘ)
k'shock = → (ʘ_ʘ;) ; ; - Shock
k'Shock = → (ʘ言ʘ╬) ; : - --"--
;; Double arrow symbols: 21d0 ⇐ leftwards; 21d1 ⇑ upwards; 21d2 ⇒ rightwards; 21d3 ⇓ downwards; 21d4 ⇔ left right; 21d5 ⇕ up down.
U003c_U002d_U002d = ← ; less + minus + minus ⇒ U2190 # LEFTWARDS ARROW <--
;U002d_U002d_U003c = ← ; minus + minus + less ⇒ U2190 # LEFTWARDS ARROW --<
;U002d_U002d_U0027 = ↑ ; minus + minus + apostrophe ⇒ U2191 # UPWARDS ARROW --'
;U002d_U002d_U003e = → ; minus + minus + greater ⇒ U2192 # RIGHTWARDS ARROW -->
;U002d_U002d_U0076 = ↓ ; minus + minus + v ⇒ U2193 # DOWNWARDS ARROW --v
;U003c_U002d_U003e = ↔ ; less + minus + greater ⇒ U2194 # LEFT RIGHT ARROW <->
;U0027_U002d_U0076 = ↕ ; apostrophe + minus + v ⇒ U2195 # UP DOWN ARROW '-v
;U0076_U003d_U0076 = ⇕ ; v + equal + v ⇒ U2195 # UP DOWN ARROW v-v
;U0027_U002d_U0027 = ↕ ; apostrophe + minus + apostrophe ⇒ U2195 # UP DOWN ARROW '-'
U003c_U003d_U003d = ⇐ ; less + equal + equal ⇒ U21d0 # LEFTWARDS DOUBLE ARROW <==
;U003d_U003d_U003c = ⇐ ; equal + equal + less ⇒ U21d0 # LEFTWARDS DOUBLE ARROW ==<
;U003d_U003d_U0027 = ⇑ ; equal + equal + apostrophe ⇒ U21d1 # UPWARDS DOUBLE ARROW =='
;U003d_U003d_U003e = ⇒ ; equal + equal + greater ⇒ U21d2 # RIGHTWARDS DOUBLE ARROW ==>
;U003d_U003d_U0076 = ⇓ ; equal + equal + v ⇒ U21d3 # DOWNWARDS DOUBLE ARROW ==v
;U003c_U003d_U003e = ⇔ ; less + equal + greater ⇒ U21d4 # LEFT RIGHT DOUBLE ARROW <=>
;U0027_U003d_U0076 = ⇕ ; apostrophe + equal + v ⇒ U21d5 # UP DOWN DOUBLE ARROW '=v
;U0076_U003d_U0076 = ⇕ ; v + equal + v ⇒ U21d5 # UP DOWN DOUBLE ARROW v=v
;U0027_U003d_U0027 = ⇕ ; apostrophe + equal + apostrophe ⇒ U21d5 # UP DOWN DOUBLE ARROW '='
;; TODO: I'm looking for a more intuitive system for these arrows?
;; (I can't use an entry ending with equals without using the Linux-style syntax, as it isn't read correctly.)
--< = ← ; U2190 # LEFTWARDS ARROW
--' = ↑ ; U2191 # UPWARDS ARROW
--> = → ; U2192 # RIGHTWARDS ARROW
--v = ↓ ; U2193 # DOWNWARDS ARROW
<-> = ↔ ; U2194 # LEFT RIGHT ARROW
'-v = ↕ ; U2195 # UP DOWN ARROW
v-v = ↕ ; U2195 # UP DOWN ARROW
==< = ⇐ ; U21d0 # LEFTWARDS DOUBLE ARROW
==' = ⇑ ; U21d1 # UPWARDS DOUBLE ARROW
==> = ⇒ ; U21d2 # RIGHTWARDS DOUBLE ARROW
==v = ⇓ ; U21d3 # DOWNWARDS DOUBLE ARROW
<=> = ⇔ ; U21d4 # LEFT RIGHT DOUBLE ARROW
'=v = ⇕ ; U21d5 # UP DOWN DOUBLE ARROW
v=v = ⇕ ; U21d5 # UP DOWN DOUBLE ARROW [easier to type than `'='` and `'=v`]
;; Some Linux-style composes that I found missing in the X11 table below and therefore wrote manually:
;; It's odd that both comma and semicolon compose to ogonek, while the less accessible quotedbl is needed for the common umlaut/diaeresis
U003b_U003b = ¨ ; semicolon + semicolon ⇒ diaeresis # DIAERESIS
U003b_U0041 = Ä ; semicolon + A ⇒ Adiaeresis # LATIN CAPITAL LETTER A WITH DIAERESIS
U0041_U003b = Ä ; A + semicolon ⇒ Adiaeresis # LATIN CAPITAL LETTER A WITH DIAERESIS
U003b_U0045 = Ë ; semicolon + E ⇒ Ediaeresis # LATIN CAPITAL LETTER E WITH DIAERESIS
U0045_U003b = Ë ; E + semicolon ⇒ Ediaeresis # LATIN CAPITAL LETTER E WITH DIAERESIS
U003b_U0049 = Ï ; semicolon + I ⇒ Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
U0049_U003b = Ï ; I + semicolon ⇒ Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
U003b_U004f = Ö ; semicolon + O ⇒ Odiaeresis # LATIN CAPITAL LETTER O WITH DIAERESIS
U004f_U003b = Ö ; O + semicolon ⇒ Odiaeresis # LATIN CAPITAL LETTER O WITH DIAERESIS
U003b_U0055 = Ü ; semicolon + U ⇒ Udiaeresis # LATIN CAPITAL LETTER U WITH DIAERESIS
U0055_U003b = Ü ; U + semicolon ⇒ Udiaeresis # LATIN CAPITAL LETTER U WITH DIAERESIS
U003b_U0059 = Ÿ ; semicolon + Y ⇒ U0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
U0059_U003b = Ÿ ; Y + semicolon ⇒ U0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
U003b_U0061 = ä ; semicolon + a ⇒ adiaeresis # LATIN SMALL LETTER A WITH DIAERESIS
U0061_U003b = ä ; a + semicolon ⇒ adiaeresis # LATIN SMALL LETTER A WITH DIAERESIS
U003b_U0065 = ë ; semicolon + e ⇒ ediaeresis # LATIN SMALL LETTER E WITH DIAERESIS
U0065_U003b = ë ; e + semicolon ⇒ ediaeresis # LATIN SMALL LETTER E WITH DIAERESIS
U003b_U0069 = ï ; semicolon + i ⇒ idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
U0069_U003b = ï ; i + semicolon ⇒ idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
U003b_U006f = ö ; semicolon + o ⇒ odiaeresis # LATIN SMALL LETTER O WITH DIAERESIS
U006f_U003b = ö ; o + semicolon ⇒ odiaeresis # LATIN SMALL LETTER O WITH DIAERESIS
U003b_U0075 = ü ; semicolon + u ⇒ udiaeresis # LATIN SMALL LETTER U WITH DIAERESIS
U0075_U003b = ü ; u + semicolon ⇒ udiaeresis # LATIN SMALL LETTER U WITH DIAERESIS
U003b_U0079 = ÿ ; semicolon + y ⇒ ydiaeresis # LATIN SMALL LETTER Y WITH DIAERESIS
U0079_U003b = ÿ ; y + semicolon ⇒ ydiaeresis # LATIN SMALL LETTER Y WITH DIAERESIS
U003b_U0048 = Ḧ ; semicolon + H ⇒ U1E26 # LATIN CAPITAL LETTER H WITH DIAERESIS
U0048_U003b = Ḧ ; H + semicolon ⇒ U1E26 # LATIN CAPITAL LETTER H WITH DIAERESIS
U003b_U0068 = ḧ ; semicolon + h ⇒ U1E27 # LATIN SMALL LETTER H WITH DIAERESIS
U0068_U003b = ḧ ; h + semicolon ⇒ U1E27 # LATIN SMALL LETTER H WITH DIAERESIS
;; Greek dialytika/diaeresis is in the same situation as Umlaut. Again, semicolon is much more accessible than double quote
U00b4_U003b_U03b9 = ΐ ; acute + semicolon + Gre_iota ⇒ U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
U0027_U003b_U03b9 = ΐ ; apostrophe + semicolon + Gre_iota ⇒ U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
U003b_U0027_U03b9 = ΐ ; semicolon + apostrophe + Gre_iota ⇒ U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
U003b_U03af = ΐ ; semicolon + Gre_iota_tonos ⇒ U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
U003b_U0399 = Ϊ ; semicolon + Gre_IOTA ⇒ U03AA # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
U0399_U003b = Ϊ ; Gre_IOTA + semicolon ⇒ U03AA # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
U003b_U03a5 = Ϋ ; semicolon + Gre_UPSILON ⇒ U03AB # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
U03a5_U003b = Ϋ ; Gre_UPSILON + semicolon ⇒ U03AB # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
U00b4_U003b_U03c5 = ΰ ; acute + semicolon + Gre_upsilon ⇒ U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
U0027_U003b_U03c5 = ΰ ; apostrophe + semicolon + Gre_upsilon ⇒ U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
U003b_U0027_U03c5 = ΰ ; semicolon + apostrophe + Gre_upsilon ⇒ U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
U003b_U03cd = ΰ ; semicolon + Gre_upsilon_tonos ⇒ U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS ; eD WIP: Isn't this working?
U003b_U03b9 = ϊ ; semicolon + Gre_iota ⇒ U03CA # GREEK SMALL LETTER IOTA WITH DIALYTIKA
U03b9_U003b = ϊ ; Gre_iota + semicolon ⇒ U03CA # GREEK SMALL LETTER IOTA WITH DIALYTIKA
U003b_U03c5 = ϋ ; semicolon + Gre_upsilon ⇒ U03CB # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
U03c5_U003b = ϋ ; Gre_upsilon + semicolon ⇒ U03CB # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
;; The current X11 table for the Caron accent is missing some composes with `<`; only c + letter is found for the vowels AIOU ; eD WIP: Also GhKJƷ...?!
U003c_U0041 = Ǎ ; less + A ⇒ U01CD # LATIN CAPITAL LETTER A WITH CARON
U0041_U003c = Ǎ ; A + less ⇒ U01CD # LATIN CAPITAL LETTER A WITH CARON
U003c_U0061 = ǎ ; less + a ⇒ U01CE # LATIN SMALL LETTER A WITH CARON
U0061_U003c = ǎ ; a + less ⇒ U01CE # LATIN SMALL LETTER A WITH CARON
U003c_U0049 = Ǐ ; less + I ⇒ U01CF # LATIN CAPITAL LETTER I WITH CARON
U0049_U003c = Ǐ ; I + less ⇒ U01CF # LATIN CAPITAL LETTER I WITH CARON
U003c_U0069 = ǐ ; less + i ⇒ U01D0 # LATIN SMALL LETTER I WITH CARON
U0069_U003c = ǐ ; i + less ⇒ U01D0 # LATIN SMALL LETTER I WITH CARON
U003c_U004f = Ǒ ; less + O ⇒ U01D1 # LATIN CAPITAL LETTER O WITH CARON
U004f_U003c = Ǒ ; O + less ⇒ U01D1 # LATIN CAPITAL LETTER O WITH CARON
U003c_U006f = ǒ ; less + o ⇒ U01D2 # LATIN SMALL LETTER O WITH CARON
U006f_U003c = ǒ ; o + less ⇒ U01D2 # LATIN SMALL LETTER O WITH CARON
U003c_U0055 = Ǔ ; less + U ⇒ U01D3 # LATIN CAPITAL LETTER U WITH CARON
U0055_U003c = Ǔ ; U + less ⇒ U01CD # LATIN CAPITAL LETTER U WITH CARON
U003c_U0075 = ǔ ; less + u ⇒ U01D4 # LATIN SMALL LETTER U WITH CARON
U0075_U003c = ǔ ; u + less ⇒ U01CE # LATIN SMALL LETTER U WITH CARON
U002a_U0077 = ẘ ; asterisk + w ⇒ U1E98 # LATIN SMALL LETTER W WITH RING ABOVE
U002a_U0079 = ẙ ; asterisk + y ⇒ U1E99 # LATIN SMALL LETTER Y WITH RING ABOVE
;; DreymaR's speech bubbles! These are also in the tap-Extend Kaomoji layer but they're hard to recall. Sequencing can be quite mnemonic!
urlcom = ¶urlcom ; URL for www.colemak.com (main site)
urlorg = ¶urlorg ; URL for www.colemak.org (community site)
urlbig = ¶urlbig ; URL for dreymar.colemak.com (Big Bag)
urlpkl = ¶urlpkl ; URL for EPKL at GitHub
say... = ¶say... ; Speech bubble – empty
saycom = ¶saycom ; Speech bubble – colemak.com (main site)
sayorg = ¶sayorg ; Speech bubble – colemak.org (community site)
sayklc = ¶sayklc ; Speech bubble – Henri's MSKLC guide
sayseq = ¶sayseq ; Speech bubble – XahLee on sequences
sayerg = ¶sayerg ; Speech bubble – Viper's ergonomics guide
sayana = ¶sayana ; Speech bubble – Viper's layout analysis
saydes = ¶saydes ; Speech bubble – Shai's Colemak Design FAQ
sayDes = ¶sayDes ; Speech bubble – Shai's Colemak Design account
saypkl = ¶saypkl ; Speech bubble – EPKL repo
sayPkl = ¶sayPkl ; Speech bubble – EPKL repo!!!
saybig = ¶saybig ; Speech bubble – DreymaR's Big Bag
sayBig = ¶sayBig ; Speech bubble – DreymaR's Big Bag!!!
saytmk = ¶saytmk ; Speech bubble – Tarmak
sayext = ¶sayext ; Speech bubble – Extend
;; Elder/Younger/Anglo-Saxon Futhark and medieval runes. They vary over time, so beware.
;; See, e.g., Wikipedia on 'Old_Norse_orthography' and 'Runic_(Unicode_block)'
;; *** Ætt of Fé
r'f = ᚠ ; fé - EF_11/YF/MR
r'F = ᚠ
r'v = ᚡ ; v - MR
r'u = ᚢ ; úr - EF_12/YF/MR (YF u/v/w,y,o,ø)
r'U = ᚮ ; o/u - MR /o/ /ɔ/ (ᚢ is /u:/)
r'þ = ᚦ ; þurs - EF_13/YF/MR (EF ð)
r'Þ = ᚦ
r'ð = ᚧ ; eth - MR /ð/
r'å = ᚨ ; ąs - EF_14/MR
r'Å = ᚬ ; óss - YF (ą,æ,å)
r'oss = ᚭ ; óss - YF short-twig
r'os = ᚩ ; ǫs - AS
r'ac = ᚪ ; ac - AS
r'æsc = ᚫ ; æsc - AS
r'ø = ᚯ ; ø - MR
r'Ø = ᚰ ; on - MR /ǫ/
r'r = ᚱ ; reið - EF_15/YF/MR
r'R = ᚱ
r'k = ᚲ ; kaun - EF_16
r'K = ᚴ ; kaun - YF/MR
r'cen = ᚳ ; cen - AS
r'g = ᚷ ; giöf - EF_17
r'G = ᚵ ; g - MR (YF uses ᚴ)
r'gar = ᚸ ; gar - AS
r'w = ᚹ ; wynn - EF_18 (YF ᚢ[ᚢ])
r'W = ᚥ ; w - MR
;; *** Ætt of Hagal
r'h = ᚺ ; hagal - EF_21
r'H = ᚼ ; hagal - YF/MR (also ᚽ in YF; see e)
r'ħ = ᚻ ; hagal - AS
r'n = ᚾ ; nauðr - EF_22/YF (YF has both forms)
r'N = ᚿ ; nauðr - YF/MR
r'ndot = ᛀ ; n - MR
r'i = ᛁ ; ísa - EF_23/YF/MR (YF i,e)
r'I = ᛁ
r'j = ᛃ ; jara - EF_24
r'J = ᛄ ; ger - AS
r'p = ᛈ ; perþ - EF_25 (YF uses ᛒ)
r'P = ᛔ ; p - MR
r'π = ᛕ ; p - MR ("plastur")
r'a = ᛇ ; ár - EF_26 (/æ/)
r'A = ᛆ ; ár - YF/MR
r'æ = ᛇ ; æ - EF
r'Æ = ᛅ ; æ - YF/MR (YF a,æ,e) also YF ᚬ/ᚭ æ
r'z = ᛉ ; elgR - EF_27 /z/ (almost)
r'Z = ᛦ ; elgR - YF /ɽ/
r'ʒ = ᛧ ; y - MR
r'y = ᚣ ; yr - AS
r'Y = ᚤ ; y - MR
r'yr = ᛨ ; y - MR (Icelandic)
r's = ᛊ ; sól - EF_28
r'S = ᛋ ; sól - YF/MR
r'ß = ᛌ ; s - MR
r'c = ᛍ ; c - MR /s/ /c/
r'C = ᛎ ; z - MR
;; *** Ætt of Týr
r't = ᛏ ; týr - EF_31/YF/MR (YF t,d)
r'T = ᛐ ; týr - YF/MR
r'b = ᛒ ; björk - EF_32/YF/MR (YF b,p)
r'B = ᛓ ; björk - YF-short
r'e = ᛖ ; ehol - EF_33 (YF uses ᛁ)
r'E = ᛂ ; e - MR /e:/ (ᛅ for /e/ and /i/ unstressed)
r'm = ᛗ ; maðr - EF_34
r'M = ᛘ ; m - YF/MR
r'× = ᛙ ; m - YF-short
r'l = ᛚ ; lögr - EF_35/YF/MR
r'L = ᛛ ; l - MR
r'ŋ = ᛜ ; ing - EF_36 /ŋ/
r'Ŋ = ᛝ ; ing - AS
r'ng = ᚶ ; eng - MR /ŋ/
r'd = ᛞ ; dagr - EF_37
r'D = ᛑ ; d - MR
r'o = ᛟ ; oðal - EF_38
r'O = ᚮ ; o/u - MR /o/ /ɔ/ (ᚢ is /u:/)
;; *** Other runes
r'ear = ᛠ ; ear - AS
r'ior = ᛡ ; ior - AS
r'cweo = ᛢ ; cweorþ - AS
r'calc = ᛣ ; calc - AS
r'ceal = ᛤ ; cealc - AS
r'stan = ᛥ ; stan - AS
r'q = ᛩ ; q - MR
r'x = ᛪ ; x - MR
r'. = ᛫ ; . punctuation
r'; = ᛬ ; : punctuation
r'+ = ᛭ ; + punctuation
r'arla = ᛮ ; arlaug
r'tvim = ᛯ ; tvimadur
r'belg = ᛰ ; belgthor
;; Medieval (and younger Futhark) runes only for easier entry
;; https://en.wikipedia.org/wiki/Medieval_runes
r-a = ᛆ ; á - YF/MR
r-b = ᛒ ; b - EF_32/YF/MR (YF b,p)
r-c = ᛍ ; c - MR
r-C = ᛋ
r-d = ᛑ ; d - MR
r-ð = ᚧ ; ð - MR /ð/
r-e = ᛂ ; e - MR /e:/ (ᛅ for /e/ and /i/ unstressed)
r-E = ᛅ ; e - YF/MR (YF a,æ,e) also YF ᚬ/ᚭ æ
r-f = ᚠ ; f - EF_11/YF/MR
r-g = ᚵ ; g - MR (YF uses ᚴ)
r-h = ᚼ ; h - YF/MR (also ᚽ in YF; see e)
r-i = ᛁ ; í - EF_23/YF/MR (YF i,e)
r-j = ᛁ
r-J = ᛃ ; jara - EF_24 [kept this for alphabetic completeness]
r-k = ᚴ ; k - YF/MR
r-l = ᛚ ; l - EF_35/YF/MR
r-l. = ᛛ ; l - MR
r-m = ᛘ ; m - YF/MR
r-n = ᚿ ; n - YF/MR
r-n. = ᛀ ; n - MR
r-ŋ = ᚶ ; ŋ - MR /ŋ/
r-o = ᚮ ; o/u - MR /o/ /ɔ/ (ᚢ is /u:/)
r-O = ᚬ ; o/å - YF (ą,æ,å /o/)
r-p = ᛔ ; p - MR
r-P = ᛕ ; p - MR ("plastur")
r-q = ᛩ ; q - MR
r-r = ᚱ ; r - EF_15/YF/MR
r-s = ᛌ ; s - MR
r-S = ᛋ ; s - YF/MR
r-t = ᛐ ; t - YF/MR
r-T = ᛏ ; t - YF/MR
r-þ = ᚦ ; þ - EF_13/YF/MR (EF ð)
r-u = ᚢ ; ú - EF_12/YF/MR (YF u/v/w,y,o,ø)
r-v = ᚡ ; v - MR (also ᚢ)
r-w = ᚥ ; w - MR (also ᚡ)
r-x = ᛪ ; x - MR
r-y = ᚤ ; y - MR (also ᛯ?)
r-Y = ᛧ ; y - MR
r-yr = ᛨ ; y - MR (Icelandic)
r-z = ᛎ ; z - MR
r-Z = ᛦ ; y/z - MR
r-æ = ᛅ ; æ - YF/MR (YF a,æ,e) also YF ᚬ/ᚭ æ
r-ø = ᚯ ; ø - MR
r-å = ᚰ ; ǫ/å - MR /ǫ/
r-. = ᛫ ; . punctuation
r-; = ᛬ ; : punctuation
r-+ = ᛭ ; + punctuation
;; Greek. Not sure these are useful, as there are other ways to Greek letters like the µ dead key (which you can also compose with 'dmu' above).
; g'a = α
; g'A = Α
; g'b = β
; g'B = Β
; g'ps = ψ
; g'Ps = Ψ
; g'd = δ
; g'D = Δ
; g'e = ε
; g'E = Ε
; g'ph = φ
; g'Ph = Φ
; g'g = γ
; g'G = Γ
; g'ee = η
; g'Ee = Η
; g'i = ι
; g'I = Ι
; g'ks = ξ
; g'Ks = Ξ
; g'k = κ
; g'K = Κ
; g'l = λ
; g'L = Λ
; g'm = μ
; g'M = Μ
; g'n = ν
; g'N = Ν
; g'o = ο
; g'O = Ο
; g'p = π
; g'P = Π
; g'r = ρ
; g'R = Ρ
; g's = σ
; g'S = Σ
; g's. = ς
; g'S. = Σ
; g't = τ
; g'T = Τ
; g'th = θ
; g'Th = Θ
; g'oo = ω
; g'Oo = Ω
; g'w = ω
; g'W = Ω
; g'x = χ
; g'X = Χ
; g'u = υ
; g'U = Υ
; g'y = υ
; g'Y = Υ
; g'z = ζ
; g'Z = Ζ
[compose_dynCmk]
;; The dynamic 1-key completions for Colemak, by Semi at the Colemak Discord:
;; e, 0.183% sc 0.138% ue 0.129% y. 0.087% nk 0.079% pt 0.078% kn 0.055% wr 0.032%
;; dg 0.026% lk 0.026% cs 0.024% hn 0.023% az 0.019% za 0.018% rw 0.015% gt 0.012%
;; bt 0.010% tp 0.008% fs 0.007% mn 0.006% i. 0.005% /o 0.003% .i 0.003% o; 0.002%
;; vd 0.001% qa 0.001% jm 0.000% xw 0.000% ;o 0.000% ,e 0.000%
;; Dynamic Usage (above): 0.99%. True SFBs (not covered by dynamic usage; below): 0.37%.
;; nl 0.068% yi 0.037% lm 0.025% dv 0.022% eu 0.020% nm 0.020% hl 0.017% sf 0.016%
;
;; - Semi suggests a usefulness cutoff around I(i.).
;; - I suggest B(bt) or earlier, to leave room for the 'the' and 'and' trigrams.  ̄(=⌒ᆺ⌒=) ̄
;; - The "true SFBs" covered above are all within the top 12 dynamic keys.
;; - I don't think most people would actually bother with learning completions below 0.05% or so – the top 7?
;
;e = , ; e, .18% ; Note that there are many X11 composes ending w/ "e" too. You can't have both!
s = c ; sc/Sc .14%
u = e ; ue/Ue .13%
y = . ; [etc...]
n = l ; nl – chosen over nk, as the nk (0.08%) SFB is easily alt-fingerable but nl (0.07%) is not
p = t ;
k = n ;
w = r ;
d = g ; dlchazrg (btfmi/.o vqjx;, )
l = k ;
c = s ;
;h = n ; Use a trigram or something else instead since the bigram is so rare
;a = z ; --"--
;z = a ; --"--
;; Note: Some keys deserve trigram completions instead, as their problem bigrams are rare and the trigrams useful. See below.
;; Note: The keys ZGBVJX and /.;, aren't given dynamic mappings here as their n-grams are so rare: They're up for grabs.
[compose_3grams]
;; Top English trigrams (warning - the lists vary):
;; the and ing ion tio ent ati for her ter hat tha ere ate his con res vel all ons https://norvig.com/mayzner.html
;; the and tha ent ing ion tio for nde has nce edt tis oft sth men https://en.wikipedia.org/wiki/Trigram
;; the and ing her hat his tha ere for ent ion ter was you ith ver all wit thi tio https://www3.nd.edu/~busiforc/handouts/cryptography/Letter%20Frequencies.html
;; the and ing her tha ent ere ion eth nth hat int for all sth ter est tio his oft https://www.dcode.fr/trigrams
;
;; English trigram completions by letter (t a i h e f n o s m / w c v y; none listed with g x):
;; the/tha/thi/tio/ter and/ati/ate ing/ion/int/ith her/his/hat ent/ere/eth for nde/nce oft/ons sth men was/wit con vel you
;; Note: The STH trigram isn't so intuitive and also quite rare; it's better to leave the S key for the common Colemak SC bigram.
t = he ; the/The
a = nd ; and/And
i = on ; ion/Ion – chosen over ing/Ing as it's a mixed roll on Colemak
h = er ; her/Her
f = or ; for/For
o = ft ; oft/Oft
q = ue ; que/Que (not that common, but quite intuitive)
r = es ; res/Res (rare; tossup with the rw bigram?)
m = en ; men/Men (rare)
[compose_x11]
;; Compose keys are made from Unicode values as found in keysymdef, yielding .ini format compliant keys.
;; However, many keysym hex values aren't compliant with Unicode! So instead, use keysyms.txt (see below).
;
;; A few sample entries from XLib /usr/share/X11/locale/en_US.UTF-8/Compose:
;; <Multi_key> <apostrophe> <e> : "é" eacute # LATIN SMALL LETTER E WITH ACUTE
;; <Multi_key> <e> <apostrophe> : "é" eacute # LATIN SMALL LETTER E WITH ACUTE
;; <Multi_key> <o> <e> : "œ" oe # LATIN SMALL LIGATURE OE
;; <Multi_key> <O> <E> : "Œ" OE # LATIN CAPITAL LIGATURE OE
;
;; From XLib keysymdef.h:
;; #define XK_e 0x0065 /* U+0065 LATIN SMALL LETTER E */
;; #define XK_apostrophe 0x0027 /* U+0027 APOSTROPHE */
;; #define XK_Greek_alpha 0x07e1 /* U+03B1 GREEK SMALL LETTER ALPHA */
;
;; From the keysyms.txt file by Markus Kuhn:
;; 0x0065 U0065 . # e
;; 0x0027 U0027 . # apostrophe
;; 0x07e1 U03b1 . # Greek_alpha
;; Resulting Compose.ini entries:
;; U0027_U0065 = é ; apostrophe + e = eacute # LATIN SMALL LETTER E WITH ACUTE
;; U0065_U0027 = é ; e + apostr = eacute # LATIN SMALL LETTER E WITH ACUTE
;; U006f_U0065 = œ ; o + e = oe # LATIN SMALL LIGATURE OE
;; U004f_U0045 = Œ ; O + E = OE # LATIN CAPITAL LIGATURE OE
;
;; Imported and processed by the EPKL IMP
U0027_U0027 = ´ ; apostrophe + apostrophe ⇒ acute # ACUTE ACCENT
U002d_U005e = ¯ ; minus + ASCcircum ⇒ macron # MACRON
U005e_U002d = ¯ ; ASCcircum + minus ⇒ macron # MACRON
U005f_U005f = ¯ ; underscore + underscore ⇒ macron # MACRON
U005f_U005e = ¯ ; underscore + ASCcircum ⇒ macron # MACRON
;U0020_U0028 = ˘ ; space + parenleft ⇒ breve # BREVE
;U0028_U0020 = ˘ ; parenleft + space ⇒ breve # BREVE
U0022_U0022 = ¨ ; quotedbl + quotedbl ⇒ diaeresis # DIAERESIS
;U0020_U003c = ˇ ; space + less ⇒ caron # CARON
;U003c_U0020 = ˇ ; less + space ⇒ caron # CARON
U002d_U002d_U0020 = ; minus + minus + space ⇒ U00ad # SOFT HYPHEN
U002b_U002b = # ; plus + plus ⇒ numbersign # NUMBER SIGN
;U0027_U0020 = ' ; apostrophe + space ⇒ apostrophe # APOSTROPHE
;U0020_U0027 = ' ; space + apostrophe ⇒ apostrophe # APOSTROPHE
U0041_U0054 = @ ; A + T ⇒ at # COMMERCIAL AT
U0028_U0028 = [ ; parenleft + parenleft ⇒ bracketleft # LEFT SQUARE BRACKET
U002f_U002f = \\ ; slash + slash ⇒ backslash # REVERSE SOLIDUS
U002f_U003c = \\ ; slash + less ⇒ backslash # REVERSE SOLIDUS
U003c_U002f = \\ ; less + slash ⇒ backslash # REVERSE SOLIDUS
U0029_U0029 = ] ; parenright + parenright ⇒ bracketright # RIGHT SQUARE BRACKET
;U005e_U0020 = ^ ; ASCcircum + space ⇒ asciicircum # CIRCUMFLEX ACCENT
U0020_U005e = ^ ; space + ASCcircum ⇒ asciicircum # CIRCUMFLEX ACCENT
;U003e_U0020 = ^ ; greater + space ⇒ asciicircum # CIRCUMFLEX ACCENT
U0020_U003e = ^ ; space + greater ⇒ asciicircum # CIRCUMFLEX ACCENT
;U0060_U0020 = ` ; grave + space ⇒ grave # GRAVE ACCENT