forked from DreymaR/BigBagKbdTrixPKL
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path_eD_Remap.ini
283 lines (261 loc) · 27.6 KB
/
_eD_Remap.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
;
;; ================================================================================================================================
;; Remap definitions
;; for Portable Keyboard Layout by Máté Farkas [https://github.com/Portable-Keyboard-Layout]
;; edition DreymaR (Øystein Bech-Aase, 2015-) [https://github.com/DreymaR/BigBagKbdTrixPKL]
;; ================================================================================================================================
;
;; This file provides remap cycles for compatibility and ergonomic mods.
;; It usually goes in the ./Files folder and is used by EPKL.exe.
;; NOTE: Help images are not updated automatically. You have to run the Help Image Generator (which requires Inkscape) for that.
;
;; Remap notes:
;; - There are remap loops/permutations/cycles, and a section of remaps referring to them.
;; - The keys to the right of the main block can be left out of a map if unused.
;
;; - Depending on context, key codes can be referred to by scan code (SC), virtual key code (VK) or other handy formats such as my KeyLayoutMap (KLM) codes.
;; - The KLM codes are 2 characters long for letters/numbers and 3 for others. For SC, use QW### or Co### as desired. For VK, vc### is a synonym for QW###.
;; - There's a VK table using VK## for long names and names for shorter ones. Abbreviations explained in comments.
;; - The default table uses ANSI VK_OEM codes. ISO VK_OEM codes vary a lot depending on locale, so they're less than reliable.
;; - SC/VK/KLM entries are case agnostic. EPKL converts them to upper case internally.
;
[KeyLayoutMap]
;; These key maps are used in cycles below. A key remap cycle will be converted from the chosen map type (specified at the start of the cycle) to SC.
;; 'Enhanced 101/102-key' (type 4 keyboard). VirtualKey, ScanCode and Colemak alias mappings.
;; XX======+======+======+======+======+======+======+======+======+======+======+======+======XX======+======XX======+======+======XX======+======+======+======XX
;; ||Esc |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10 |F11 |F12 ||Back |Menu ||PrtSc |ScrLk |Pause ||NumLk |KP / |KP * |KP - ||
VK0 ="ESCAPE| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 || BACK | APPS || vk2c |SCROLL|PAUSE || vk90 | vk6f | vk6a | vk6d |"
SC0 ="sc001 |sc03b |sc03c |sc03d |sc03e |sc03f |sc040 |sc041 |sc042 |sc043 |sc044 |sc057 |sc058 ||sc00e |sc15d ||sc137 |sc046 |sc045 ||sc145 |sc135 |sc137 |sc04a |"
Co0 =" ESC | _F1 | _F2 | _F3 | _F4 | _F5 | _F6 | _F7 | _F8 | _F9 | F10 | F11 | F12 || BSP | APP || PSC | SLK | PAU || NLK | PDV | PMU | PMN |"
;; XX======+======+======+======+======+======+======+======+======+======+======+======+======XX======+======XX======+======+======XX------+------+------+------XX
;; ||` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= ||LShft |RShft ||Ins |Home |PgUp ||KP 7 |KP 8 |KP 9 |KP + ||
VK1 ="OEM_3 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | vkbd | vkbb ||LSHIFT|RSHIFT||INSERT| HOME |PRIOR || vk67 | vk68 | vk69 | vk6b |"
SC1 ="sc029 |sc002 |sc003 |sc004 |sc005 |sc006 |sc007 |sc008 |sc009 |sc00a |sc00b |sc00c |sc00d ||sc02a |sc136 ||sc152 |sc147 |sc149 ||sc047 |sc048 |sc049 |sc04e |"
Co1 =" _GR | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _0 | _MN | _PL || LSH | RSH || INS | HOM | PGU || P_7 | P_8 | P_9 | PPL |"
;; XX------+------+------+------+------+------+------+------+------+------+------+------+------XX------+------XX------+------+------XX------+------+------+------XX
;Cmk||Tab |Q |W |F |P |G |J |L |U |Y |; |[ |] ||LCtrl |RCtrl ||Del |End |PgDn ||KP 4 |KP 5 |KP 6 |KPEnt ||
VK2 =" TAB | Q | W | E | R | T | Y | U | I | O | P |OEM_4 |OEM_6 || vka2 | vka3 ||DELETE| END | NEXT || vk64 | vk65 | vk66 | vk6c |"
SC2 ="sc00f |sc010 |sc011 |sc012 |sc013 |sc014 |sc015 |sc016 |sc017 |sc018 |sc019 |sc01a |sc01b ||sc01d |sc11d ||sc153 |sc14f |sc151 ||sc04b |sc04c |sc04d |sc11c |"
Co2 =" TAB | _Q | _W | _F | _P | _G | _J | _L | _U | _Y | _SC | _LB | _RB || LCT | RCT || DEL | END | PGD || P_4 | P_5 | P_6 | PEN |"
;; XX------+------+------+------+------+------+------+------+------+------+------+------+------XX------+------XX======+======+======XX------+------+------+------XX
;Cmk||Caps |A |R |S |T |D |H |N |E |I |O |' |\ ||LGUI |RGUI ||VolDn |Up |VolUp ||KP 1 |KP 2 |KP 3 |Mute ||
VK3 =" vk14 | A | S | D | F | G | H | J | K | L |OEM_1 |OEM_7 |OEM_5 || LWIN | RWIN || vkaf | UP | vkae || vk61 | vk62 | vk63 | vkad |"
SC3 ="sc03a |sc01e |sc01f |sc020 |sc021 |sc022 |sc023 |sc024 |sc025 |sc026 |sc027 |sc028 |sc02b ||sc15b |sc15c ||sc130 |sc148 |sc12e ||sc04e |sc04f |sc050 |sc120 |"
Co3 =" CLK | _A | _R | _S | _T | _D | _H | _N | _E | _I | _O | _QU | _BS || LWI | RWI || VLD | _UP | VLU || P_1 | P_2 | P_3 | MUT |"
;; XX------+------+------+------+------+------+------+------+------+------+------+------+------XX------+------XX------+------+------XX------+------+------+------XX
;Cmk||LS/GT |Z |X |C |V |B |K |M |, |. |/ |Enter |Space ||LAlt |RAlt ||Left |Down |Right ||KP 0 |KP . |Power |Sleep ||
VK4 =" vke2 | Z | X | C | V | B | N | M | vkbc | vkbe |OEM_2 |RETURN|SPACE ||LMENU |RMENU || LEFT | DOWN |RIGHT || vk60 | vk6e |POWER |SLEEP |"
SC4 ="sc056 |sc02c |sc02d |sc02e |sc02f |sc030 |sc031 |sc032 |sc033 |sc034 |sc035 |sc01c |sc039 ||sc038 |sc138 ||sc14b |sc150 |sc14d ||sc052 |sc053 |sc15e |sc15f |"
Co4 =" _LG | _Z | _X | _C | _V | _B | _K | _M | _CM | _PD | _SL | ENT | SPC || LAL | RAL || _LE | _DN | _RI || P_0 | PDC | PWR | SLP |"
;; XX======+======+======+======+======+======+======+======+======+======+======+======+======XX======+======XX======+======+======XX======+======+======+======XX
;; VK general abbreviations: 14-CAPITAL, 2c-SNAPSHOT, e2-OEM_102, [a2-a3]-#CONTROL, bb-OEM_PLUS, bc-OEM_COMMA, bd-OEM_MINUS, be-OEM_PERIOD, df-OEM_8 (not on ANSI)
;; VK NumPad abbreviations: [60-69]-NUMPAD#, 6a-MULTIPLY, 6b-ADD, 6c-SEPARATOR, 6d-SUBTRACT, 6e-DECIMAL, 6f-DIVIDE, 90-NUMLOCK
;; Other key codes: SC146 = CtrlBrk; SC054 = SysReq; SC163 = Wake. These and Power/Sleep may not work well on all systems.
;; These are other KeyLayoutMap variants with positional information and full-length maps. You can use them in remap cycles.
;; * QWERTY labeled Co-like KeyLayoutMap. In remap cycles, use each entry as is (specifying QW as the first entry). In key names, use QW### where ### is the entry.
;; XX======+======+======+======+======+======+======+======+======+======+======+======+======XX======+======XX======+======+======XX======+======+======+======XX
QW0 =" ESC | _F1 | _F2 | _F3 | _F4 | _F5 | _F6 | _F7 | _F8 | _F9 | F10 | F11 | F12 || BSP | APP || PSC | SLK | PAU || NLK | PDV | PMU | PMN |"
QW1 =" _GR | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _0 | _MN | _PL || LSH | RSH || INS | HOM | PGU || P_7 | P_8 | P_9 | PPL |"
QW2 =" TAB | _Q | _W | _E | _R | _T | _Y | _U | _I | _O | _P | _LB | _RB || LCT | RCT || DEL | END | PGD || P_4 | P_5 | P_6 | PEN |"
QW3 =" CLK | _A | _S | _D | _F | _G | _H | _J | _K | _L | _SC | _QU | _BS || LWI | RWI || VLD | _UP | VLU || P_1 | P_2 | P_3 | MUT |"
QW4 =" _LG | _Z | _X | _C | _V | _B | _N | _M | _CM | _PD | _SL | ENT | SPC || LAL | RAL || _LE | _DN | _RI || P_0 | PDC | PWR | SLP |"
;; XX======+======+======+======+======+======+======+======+======+======+======+======+======XX======+======XX======+======+======XX======+======+======+======XX
;;
;; * Colemak labeled TMK-like KeyLayoutMap.
;; XX======+======+======+======+======+======+======+======+======+======+======+======+======XX======+======XX======+======+======XX======+======+======+======XX
TC0 =" ESC_ | _F1_ | _F2_ | _F3_ | _F4_ | _F5_ | _F6_ | _F7_ | _F8_ | _F9_ | _F10 | _F11 | _F12 || BSPC | APP_ || PSCR | SCLK | PAUS || NLCK | PSLS | PAST | PMNS |"
TC1 =" N0GR | N1_1 | N2_2 | N3_3 | N4_4 | N5_5 | N6_6 | N7_7 | N8_8 | N9_9 | Na_0 | NbMN | NcPL || LSFT | RSFT || INS_ | HOME | PGUP || _P7_ | _P8_ | _P9_ | PPLS |"
TC2 =" TAB_ | U1_Q | U2_W | U3_F | U4_P | U5_G | U6_J | U7_L | U8_U | U9_Y | UaSC | UbLB | UcRB || LCTL | RCTL || DEL_ | END_ | PGDN || _P4_ | _P5_ | _P6_ | PENT |"
TC3 =" CAPS | H1_A | H2_R | H3_S | H4_T | H5_D | H6_H | H7_N | H8_E | H9_I | Ha_O | HbQU | HcBS || LGUI | RGUI || VOLD | _UP_ | VOLU || _P1_ | _P2_ | _P3_ | MUTE |"
TC4 =" L0LG | L1_Z | L2_X | L3_C | L4_V | L5_B | L6_K | L7_M | L8CM | L9PD | LaSL | ENT_ | SPC_ || LALT | RALT || LEFT | DOWN | RGHT || _P0_ | PDEC | PWR_ | SLEP |"
;; XX======+======+======+======+======+======+======+======+======+======+======+======+======XX======+======XX======+======+======XX======+======+======+======XX
;;
;; * QWERTY labeled TMK-like KeyLayoutMap.
;; XX======+======+======+======+======+======+======+======+======+======+======+======+======XX======+======XX======+======+======XX======+======+======+======XX
TQ0 =" ESC_ | _F1_ | _F2_ | _F3_ | _F4_ | _F5_ | _F6_ | _F7_ | _F8_ | _F9_ | _F10 | _F11 | _F12 || BSPC | APP_ || PSCR | SCLK | PAUS || NLCK | PSLS | PAST | PMNS |"
TQ1 =" N0GR | N1_1 | N2_2 | N3_3 | N4_4 | N5_5 | N6_6 | N7_7 | N8_8 | N9_9 | Na_0 | NbMN | NcPL || LSFT | RSFT || INS_ | HOME | PGUP || _P7_ | _P8_ | _P9_ | PPLS |"
TQ2 =" TAB_ | U1_Q | U2_W | U3_E | U4_R | U5_T | U6_Y | U7_U | U8_I | U9_O | Ua_P | UbLB | UcRB || LCTL | RCTL || DEL_ | END_ | PGDN || _P4_ | _P5_ | _P6_ | PENT |"
TQ3 =" CAPS | H1_A | H2_S | H3_D | H4_F | H5_G | H6_H | H7_J | H8_K | H9_L | HaSC | HbQU | HcBS || LGUI | RGUI || VOLD | _UP_ | VOLU || _P1_ | _P2_ | _P3_ | MUTE |"
TQ4 =" L0LG | L1_Z | L2_X | L3_C | L4_V | L5_B | L6_N | L7_M | L8CM | L9PD | LaSL | ENT_ | SPC_ || LALT | RALT || LEFT | DOWN | RGHT || _P0_ | PDEC | PWR_ | SLEP |"
;; XX======+======+======+======+======+======+======+======+======+======+======+======+======XX======+======XX======+======+======XX======+======+======+======XX
;;
;; * QWERTY labeled KMonad-like KeyLayoutMap (https://github.com/kmonad/kmonad). KMonad is a nifty program for cross-platform layout implementation.
;; XX======+======+======+======+======+======+======+======+======+======+======+======+======XX======+======XX======+======+======XX======+======+======+======XX
KM0 =" ESC_ | _F1 | _F2 | _F3 | _F4 | _F5 | _F6 | _F7 | _F8 | _F9 | F10 | F11 | F12 || BSPC | APP_ || PSCR | SCLK | SSRQ || NLCK | KP/_ | KP*_ | KP-_ |"
KM1 =" GRV_ | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _0 | _MN | _PL || LSFT | RSFT || INS_ | HOME | PGUP || KP7_ | KP8_ | KP9_ | PPLS |"
KM2 =" TAB_ | _Q | _W | _E | _R | _T | _Y | _U | _I | _O | _P | _LB | _RB || LCTL | RCTL || DEL_ | END_ | PGDN || KP4_ | KP5_ | KP6_ | KPRT |"
KM3 =" CAPS | _A | _S | _D | _F | _G | _H | _J | _K | _L | _SC | _QU | _BS || LMET | RMET || VOLD | _UP_ | VOLU || KP1_ | KP2_ | KP3_ | MUTE |"
KM4 =" 102D | _Z | _X | _C | _V | _B | _N | _M | _CM | _PD | _SL | RET | SPC || LALT | RALT || LEFT | DOWN | RGHT || KP0_ | KP._ | PWR_ | SLEP |"
;; XX======+======+======+======+======+======+======+======+======+======+======+======+======XX======+======XX======+======+======XX======+======+======+======XX
;;
;; * XKB key alias table. The main block is purely positional and therefore layout agnostic.
;; XX======+======+======+======+======+======+======+======+======+======+======+======+======XX======+======XX======+======+======XX======+======+======+======XX
XK0 =" ESC | FK01 | FK02 | FK03 | FK04 | FK05 | FK06 | FK07 | FK08 | FK09 | FK10 | FK11 | FK12 || BKSP | MENU || PRSC | SCLK | PAUS || NMLK | KPDV | KPMU | KPSU |"
XK1 =" TLDE | AE01 | AE02 | AE03 | AE04 | AE05 | AE06 | AE07 | AE08 | AE09 | AE10 | AE11 | AE12 || LFSH | RTSH || INS | HOME | PGUP || KP7 | KP8 | KP9 | KPAD |"
XK2 =" TAB | AD01 | AD02 | AD03 | AD04 | AD05 | AD06 | AD07 | AD08 | AD09 | AD10 | AD11 | AD12 || LCTL | RCTL || DELE | END | PGDN || KP4 | KP5 | KP6 | KPEN |"
XK3 =" CAPS | AC01 | AC02 | AC03 | AC04 | AC05 | AC06 | AC07 | AC08 | AC09 | AC10 | AC11 | BKSL || LWIN | RWIN || VOL- | UP | VOL+ || KP1 | KP2 | KP3 | MUTE |"
XK4 =" LSGT | AB01 | AB02 | AB03 | AB04 | AB05 | AB06 | AB07 | AB08 | AB09 | AB10 | RTRN | SPCE || LALT | RALT || LEFT | DOWN | RGHT || KP0 | KPDL | POWR | I150 |"
;; XX======+======+======+======+======+======+======+======+======+======+======+======+======XX======+======XX======+======+======XX======+======+======+======XX
[Remaps]
;; Remap syntax: Each remap is a comma separated (CSV) list of permutation cycles marked with ^.
;; - <remap> without ^ includes another map. <remap> + ^<cycle> etc merges cycles/remaps.
;; - Note that merged cycles/remaps must all be of the same KeyLayMap type (e.g., "Co").
;; - Layout files may use the same syntax as these remaps.
ANS2ISO-Sc = ^VK_ANSI2ISOSc ; This remap may not be necessary anymore? ; eD WIP
Angle_ISO = ^Angle_ISO105
Angle_ANS = ^Angle_ANSI-Z
Wide_ISO = ^Wide7_Number , ^Wide__Upper_ , ^Wide__RBHome + ^WidSl_Lower_ ;Wide_Slash for ISO
Wide_ANS = ^Wide7_Number , ^Wide__Upper_ , ^Wide__RBHome , ^WidQu_Lower_ ;Wide_Quote for ANS
AWing_ANS = ^AWing_Number , ^AWing_Upper_ , ^AWing_RBHome , ^WidQu_Lower_ ;Angle-Wing for ANS
AWide_ISO = Angle_ISO , Wide_ISO
AWide_ANS = Angle_ANS , Wide_ANS
A-S_ISO = Sym_ISO , Angle_ISO
A-S_ANS = Sym_ANS , Angle_ANS
AWS_ISO = SymWi_ISO , AWide_ISO ; Note: This remap is for optimized layouts with the apostrophe above home row.
AWS_ANS = SymWi_ANS , AWide_ANS
Cmk-CA--_ISO = Cmk-Curl-DH , Angle_ISO ; The CAWS shorthand is used here for the Cmk-Curl(DH) mods. For the geometric mods A/W alone, not.
Cmk-CA--_ANS = Cmk-Curl-DH , Angle_ANS
Cmk-CA-S_ISO = Cmk-Curl-DH , Angle_ISO , Sym_ISO
Cmk-CA-S_ANS = Cmk-Curl-DH , Angle_ANS , Sym_ANS
Cmk-CAW-_ISO = Cmk-Curl-DH , AWide_ISO
Cmk-CAW-_ANS = Cmk-Curl-DH , AWide_ANS
Cmk-CkAW_ISO = Cmk-Curl-DHk , AWide_ISO ; The old DH 2107–2020 standard, superseded by DH(m)
Cmk-CkAW_ANS = Cmk-Curl-DHk , AWide_ANS
Cmk-CAWS_ISO = Cmk-Curl-DH , SymWi_ISO , AWide_ISO ; NOTE: Sequence matters here. Can't remap to Sym after Wide in my implementation.
Cmk-CAWS_ANS = Cmk-Curl-DH , SymWi_ANS , AWide_ANS
Ext-CA--_ISO = V-B , Angle_ISO ; Extend-Paste (Ctrl+V) usually follows the V key in Colemak-Curl(DH) - a V-B swap from the Angle mod
Ext-CA--_ANS = V-B , Angle_ANS
Ext-CA-S_ISO = Ext-CA--_ISO
Ext-CA-S_ANS = Ext-CA--_ANS
Ext-CAW-_ISO = V-B , AWide_ISO ; Extend-Paste (Ctrl+V) usually follows the V key in Colemak-Curl(DH) - a V-B swap from the Angle mod
Ext-CAW-_ANS = V-B , AWide_ANS
Ext-CAWS_ISO = V-B , SL-BS , AWide_ISO ; The Slash-Backspace swap from ISO-CAWS brings the WheelLeft/Right keys next to each other
Ext-CAWS_ANS = Ext-CAW-_ANS
Cmk-Curl-DH = ^CurlDH_L_Std , ^CurlDH_R_DHm ; The M-on-homerow original DH(m) mod was (re)installed as DH standard in Oct 2020
Cmk-Curl-DHk = ^CurlDH_L_Std , ^CurlDH_R_DHk ; The K-on-homerow DHk variant was the DH standard from 2017 to 2020
Cmk-Curl-DpgH = ^CurlDH_L_Dpg , ^CurlDH_R_DHm ; The D>P>G loop is a "poor man's DH" variant leaving the bottom left half row alone
Cmk-Curl-DpH = ^CurlDH_L_Dp , ^CurlDH_R_DHm ; The D>P swap is Shai's DH variant: https://forum.colemak.com/topic/2644-shais-colemak-mod/
Sym_ISO = ^SymQu , ^SymMn_LB ; DreymaR's Symbol Rotation mod (non-Wide variant, with left bracket lift) for optimized layouts
Sym_ANS = Sym_ISO
Sym-Br = ^SymQu , ^SymMn_Br ; The old Symbol Rotation non-Wide mod, lifting both brackets. Better for ortho/matrix boards?
SymWi_ISO = ^SymQu , ^SymMn_W_ISO ; DreymaR's Symbol Rotation mod (both QU-SC and MN loop, better for Wide layouts)
SymWi_ANS = ^SymQuMnW_ANS ; DreymaR's Symbol Rotation mod (ANSI 1-loop variant for Wide, w/ SC on BS)
V-B = ^Swap_V_B ; Swap V-B so CurlDH Ext+V follows V by swapping V and D, as Curl-DH puts D on the B key
V-K = ^Swap_V_K ; Swap V-K to remove the KN/NK and KL/LK same-finger bigrams... But beware of CK and VE getting worse! ++?
SL-BS = ^Swap_SL_BS ; For Wide-ISO Extend, swap / - \ to get WhLe/WhRi together
J-Z = ^Swap_J_Z ; Swapping J and Z can sometimes be useful although they're both rare? See, e.g., the Cmk-eD-Cz variant.
Y-Z = ^Swap_Y_Z ; Swap Y-Z to convert positions between QWERTY and QWERTZ (Germany etc.)
O-U = ^Swap_O_U ; Swap O-U; suggested by some when worried about the `EU` SFB in, e.g., the Cmk-eD-Es variant.
;QW-AZ = ^Swap_QWE_AZE ; Swap A-Q, W-Z and M-SC(?) to convert roughly between QWERTY and AZERTY (France).
;; eD WIP: Do the AZERTY M-SC-CM-PD-etc stuff by layout VKey maps?
QWERTY = ^Tarmak_Rev_E + Tarmak-1 ; QWERTY, somewhat amusingly, is implemented here as the last of the reverse Tarmak steps!
Tarmak-1 = ^Tarmak_Rev_T + Tarmak-2
Tarmak-2 = ^Tarmak_Rev_R + Tarmak-3
Tarmak-3 = ^Tarmak_Rev_O , Tarmak-4
Tarmak-4 = ^Tarmak_Rev_I
Tmk-1C_ISO = Tarmak-1 , ^CurlDH_R_DHm ; Using the DH(m) mod, one may actually choose freely when to implement the right-hand side.
Tmk-2C_ISO = Tarmak-2 , Cmk-Curl-DH ; At Tm2, it's good to get the Angle mod in place. Use, e.g., 'Tmk-2C_@K,Angle_@K' in layout.ini.
Tmk-3C_ISO = Tarmak-3 , Cmk-Curl-DH ; A Tm1, Tm1C, (Tm1CA,) Tm2C(A) starting progression is the most careful; maybe too much for most.
Tmk-4C_ISO = Tarmak-4 , Cmk-Curl-DH
Tmk-1C_ANS = Tarmak-1 , ^CurlDH_R_DHm
Tmk-2C_ANS = Tarmak-2 , Cmk-Curl-DH
Tmk-3C_ANS = Tarmak-3 , Cmk-Curl-DH
Tmk-4C_ANS = Tarmak-4 , Cmk-Curl-DH
Dvorak = ^Dvorak_Loop1 , ^Dvorak_Loop2 + ^Dvk_NormSym3 ; Standard Dvorak
Dvk-AWi_ISO = ^Dvorak_Loop1 , ^Dvorak_Loop2 + ^Dvk_WideISO3 , AWide_ISO ; Dvorak AngleWide
Dvk-AWi_ANS = ^Dvorak_Loop1 , ^Dvorak_Loop2 + ^Dvk_WideANS3 , AWide_ANS
Dvk-CA_ISO = ^Dvk_Curl-ID , Dvorak , Angle_ISO ; Dvorak-CA (Curl-ID-Angle)
Dvk-CA_ANS = ^Dvk_Curl-ID , Dvorak , Angle_ANS
Dvk-CAW_ISO = ^Dvk_Curl-ID , Dvk-AWi_ISO ; Dvorak-CAW
Dvk-CAW_ANS = ^Dvk_Curl-ID , Dvk-AWi_ANS
Dvk-CAWS_ISO = ^Dvk_Curl-ID , Dvk-sym , ^Dvk_WSym_ISO , AWide_ISO ; #@ kept together, BS on num row
Dvk-CAWS_ANS = ^Dvk_Curl-ID , Dvk-sym , ^Dvk_WSym_ANS , AWide_ANS ; #@ kept together, MN on home row
Dvk-Sym = ^SymQu , Dvorak , ^DvkPrgSymNum , ^AWing_Number ; The Programmer Dvorak Symbols mod
[RemapCycles]
;; Cycles are pipe delimited like a KeyLayoutMap.
;; The first entry determines map type (Co etc) and >(L-R)/<(R-L) order.
;; eD TODO: Order isn't implemented yet! Is it necessary? I've just reversed some cycles manually for now.
Angle_ISO105 = Co> | _B | _V | _C | _X | _Z | _LG |
Angle_ANSI-Z = Co> | _B | _V | _C | _X | _Z |
CurlDH_L_Std = Co> | _D | _V | _B | _G | ; SteveP99's DH-Left standard mod
CurlDH_L_Dbg = Co> | _D | _B | _G | ; DreymaR's 2014 DvH_L mod: Keep ZXCV, use down-in instead of down-out positions.
CurlDH_L_Dpg = Co> | _D | _P | _G | ; Stevep99's DH-Left D>P>G alternative, leaving V alone but with a poorer D position.
CurlDH_L_Dp = Co> | _D | _P | ; Shai's D>P DH-Left variant for leaving V alone
CurlDH_R_DHm = Co> | _H | _M | ; SteveP99's DH-Right 2014 mod, good on matrix boards, now standard
CurlDH_R_DHk = Co> | _H | _M | _K | ; The 2017 standard DHk-Right mod, good on row-staggered boards
CurlDH_R_vHk = Co> | _H | _K | ; DreymaR's 2014 DvH_R mod. For the full Colemak-DvH variant, use this with L_Dbg.
SymMn_LB = Co> | _MN | _LB | _PL | ; Symbol mod non-Wide partial, lifting LB only ( PL LB / MN RB ). New non-Wide Sym-Mn.
SymQu = Co> | _QU | _SC | ; DreymaR's ' → ; symbol key rotation for a better quote pos. Currently Sym-Qu.
SymMn_W_ISO = Co> | _SL | _BS | _PL | _MN | ; DreymaR's - → / → \ → = symbol key rotation for the hyphen. Currently Sym-Mn for Wide-ISO.
SymQuMnW_ANS = Co> | _QU | _SC | _BS | _PL | _MN | ; DreymaR's symbol key rotations ( ISO/ANS: ' → ; → \ → = → - ). New Sym-QuMn for Wide-ANSI.
SymMn_Br = Co> | _MN | _LB / _PL | _RB | ; Symbol mod non-Wide partial, lifting LB+RB ( LB RB / MN PL ). Old non-Wide Sym-Mn.
SymMn_W_ANS = Co> | _SL | _PL | _MN | ; DreymaR's - → / → = symbol key rotation for the hyphen. Old Sym-Mn for Wide-ANSI.
SymQuMn1_ANS = Co> | _QU | _SC | _SL | _PL | _MN | ; DreymaR's symbol key rotations ( ANS var: ' → ; → / → = → - ). Old Sym-QuMn for ANSI.
Swap_Y_Z = Co> | _Y | _Z | ; Swap Y-Z to convert positions between QWERTY and QWERTZ (Germany etc.)
Swap_QWE_AZE = Co> | _A | _Q / _W | _Z / _M | _SC | ; Swap A-Q, W-Z and M-SC to convert roughly between QWERTY and AZERTY (France)
Swap_V_B = Co> | _V | _B | ; Swap V and B (for Curl-DH Extend)
Swap_V_K = Co> | _V | _K | ; Swap V and K. Ostensibly the best single swap from Cmk-DH? Fixes KN/NK & KL/LK SFBs.
Swap_SL_BS = Co> | _SL | _BS | ; Swap / and \ (for Wide-ISO Extend)
Swap_J_Z = Co> | _J | _Z | ; Swap J and Z (for misc. purposes; suggested for Czech Cmk-Cz_ANSI)
Swap_O_U = Co> | _O | _U | ; Swap U and U (for misc. purposes; suggested for Spanish Cmk-Es)
;Wide6_Number = TC> | N6_6 | N7_7 | N8_8 | N9_9 | Na_0 | NbMN | NcPL |
;Wide7_Number = TC> | N7_7 | N8_8 | N9_9 | Na_0 | NbMN | NcPL |
Wide6_Number = Co> | _6 | _7 | _8 | _9 | _0 | _MN | _PL |
Wide7_Number = Co> | _7 | _8 | _9 | _0 | _MN | _PL |
Wide__Upper_ = TC> | U6_J | U7_L | U8_U | U9_Y | UaSC | UbLB |
Wide__RBHome = TC> | UcRB | H6_H | H7_N | H8_E | H9_I | Ha_O | HbQU |
WidSl_Lower_ = TC> | HcBS | L6_K | L7_M | L8CM | L9PD | LaSL |
WidQu_Lower_ = TC> | L6_K | L7_M | L8CM | L9PD | LaSL |
AWing_Number = Co> | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _0 | _MN | _PL |
AWing_Upper_ = TC> | U1_Q | U2_W | U3_F | U4_P | U5_G | U6_J | U7_L | U8_U | U9_Y | UaSC | UbLB |
AWing_RBHome = TC> | H1_A | H2_R | H3_S | H4_T | H5_D | H6_H | H7_N | H8_E | H9_I | Ha_O | HbQU | UcRB |
;; Since my layouts are Colemak-centric, the Tarmak_Rev progression is backwards from Cmk[eD] to QWERTY like in my XKB files.
;; The five Tarmak loop elements are: L>U>I J>Y>O>;>P > R>S>D > G>T>F > E>K>N
Tarmak_Rev_E = Co> | _N | _K | _E | ; QW> | _E | _K | _N | _J |
Tarmak_Rev_T = Co> | _F | _T | _G | ; QW> | _G | _T | _F |
Tarmak_Rev_R = Co> | _D | _S | _R | ; QW> | _R | _S | _D |
Tarmak_Rev_O = Co> | _P | _SC | _O | _Y | _J | ; QW> | _Y | _O | _SC | _P |
Tarmak_Rev_I = Co> | _I | _U | _L | ; QW> | _L | _U | _I |
;; The Dvorak layout will also be implemented here as a remap from Colemak, a little for fun. Normal users shouldn't notice.
;; Heatmap (from Thomas alias Ioboru): G 13.1 / F 12.1 / D 11.4 / RSh 11.0 / P 10.7 / B 9.9 / LSh 9.1 / , 8.3 / . 6.6
;Dvorak_Swaps = QW> | _RB | _PL / _W | _CM | ; Ioboru's loops from QWERTY (2/2/14/15 keys)
;Dvorak_Loop1 = QW> | _E | _D | _H | _J | _C | _I | _G | _U | _F | _Y | _T | _K | _V | _PD |
;Dvorak_Loop2 = QW> | _Q | _X | _B | _N | _L | _P | _R | _O | _S | _SC | _Z | _SL | _LB | _MN | _QU |
Dvorak_Loop1 = Co> | _I | _D | _H | _N / _W | _CM | ; Going from Colemak, there's a 4-loop and 2 swaps, then the big loop
Dvorak_Loop2 = Co> | _Q | _X | _B | _K | _V | _PD | _F | _J | _C | _U | _T | _E | _S | _O | _R | _Y | _G | _L | _SC | _Z |
Dvk_NormSym3 = Co> | _SL | _LB | _MN | _QU / _RB | _PL | ; The rest of the big loop and a sym swap, for normal Dvorak
Dvk_WideISO3 = Co> | _BS | _PL | _MN | _QU | ; For Wide(ISO) Dvorak symbols, using the Wide_Slash remap
Dvk_WideANS3 = Co> | _SL | _PL | _MN | _QU | ; For Wide(ANSI) Dvorak symbols, using the Wide_Quote remap
Dvk_Curl-ID = Co> | _I | _U | _K | _X / _D | _M | _B | _F | ; DreymaR's Dvorak Curl mod, bettering IU and DF positions
Dvk_WSym_ISO = QW> | _PL | _LB | _SL | _BS | ; Prog-Dvk Symbols for WideSym-ISO ; eD WIP: PL #`, LB /?, SL zZ; RB @^, QU -_
Dvk_WSym_ANS = QW> | _RB | _LB | _QU | ; Prog-Dvk Symbols for WideSym-ANSI ; (after Dvk-Sym)
DvkPrgSymNum = QW> | _1 | _4 | _8 | _0 | _6 | _9 | _5 | _2 | _7 | ; Programmer Dvorak num row: &75319 02468#. Swap QU <> SC too.
;; VirtualKey remaps follow the same general syntax as others, but are applied to VK entries. Complex, since different ISO locales use different codes!
;; - KLM vc_## VKs: | SC | GR | BS | SL | MN | PL | LB | RB | LG | QU | bd=MN, bb=PL, bc=CM, be=PD |
;; - ANSI OEM_# VKs: | ;: 1 | `~ 3 | \| 5 | /? 2 | -_ - | =+ + | [{ 4 | ]} 6 | vke2 | '" 7 | vkbd MINUS | vkbb PLUS | vkdf OEM_8 |
;; - ISO-Sc OEM_# VKs: | ;: 3 | `~ 5 | \| 2 | /? - | -_ + | =+ 4 | [{ 6 | ]} 1 | _ 102 | '" 7 | vkbc COMMA | vkbe PERIOD | (UK non-ANS) |
VK_ANSI2ISOSc = VK> | OEM_1 | OEM_3 | OEM_5 | OEM_2 | vkbd | vkbb | OEM_4 | OEM_6 | ; This remap cycle may not be necessary anymore?
;VK_ISOSc2ANSI = VK> | OEM_6 | OEM_4 | vkbb | vkbd | OEM_2 | OEM_5 | OEM_3 | OEM_1 | ; This remap cycle isn't in use
;; ****************************************************************
;; **** VK_OEM key code table (Key and SC for ANSI) ****
;; ****************************************************************
;; KLM : SC PL CM MN PD SL GR LB BS RB QU ?? LG
;; Key : :; += <, _- >. ?/ ~` {[ |\ }] "' §| ><
;; VK OEM_ : _1 PL CM MN PD _2 _3 _4 _5 _6 _7 _8 _102
;; VK hex : BA BB BC BD BE BF C0 DB DC DD DE DF E2
;; SC ANS : 27 0D 33 0C 34 35 29 1A 2B 1B 28 -- 56
;; ****************************************************************
;; **** OEM key codes vs some locales; ISO variations ****
;; ****************************************************************
;; KLM OEM : GR MN PL LB RB BS SC QU LG CM PD SL
;; SC code : 29 0C 0D 1A 1B 2B 27 28 56 33 34 35
;; VK code : C0 BD BB DB DD DC BA DE E2 BC BE BF
;; KLM ANS : _3/MN/PL _4/_6/_5 _1/_7/LG CM/PD/_2 ; KLM ANS default, used by some locales (US,Al,Vi,Br,...?)
;; KLM ISO : _5/PL/_4 _6/_1/_2 _3/_7/LG CM/PD/MN ; KLM ISO-Sc, for Scandinavian locales (Dk,No,Fi,Se)
;; UK : _8/MN/PL _4/_6/_7 _1/_3/_5 CM/PD/_2 ; UK, UK "Extended"
;; De/Es++ : _5/_4/_6 _1/PL/_2 _3/_7/LG CM/PD/MN ; A/Z swap for De QWERTZ. Otherwise as Es. Pt swaps _1/PL.
;; Fr/Be : _7/_4/PL _6/_1/_5 CM/_3/LG PD/_2/_8 ; A/Q W/Z M/CM/... swaps. Be has PL->MN _8->PL.
;; Ca : _7/MN/PL _4/_6/_5 _1/_3/LG CM/PD/_2 ; Canadian "French" and "Multilingual"
;; Cz/Pl++ : _3/PL/_2 _4/_6/_5 _1/_7/LG CM/PD/MN ; Cz, Pl "(214)", Slovenian (swaps _2/PL). Cz "QWERTY" has ANS.
;; Tk : _3/_8/MN _4/_6/CM _1/_7/LG _2/_5/PD ; Turkish "Q"
;; ****************************************************************