Skip to content

Commit

Permalink
LayStack
Browse files Browse the repository at this point in the history
* Layout info is now in a LayStack of .ini files
* Bugfixes (DK+Spc, Extend...)
* Additions (CurlM, more kaomoji...)
  • Loading branch information
DreymaR committed Jan 30, 2020
1 parent 5c7f607 commit 1a04031
Show file tree
Hide file tree
Showing 141 changed files with 1,611 additions and 1,987 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@
Layouts/*/*ImgGen_*
Layouts/*/*/*ImgGen_*
*PKL.exe
EPKL_*able.zip
6 changes: 3 additions & 3 deletions Compile_EPKL.bat
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ rem Licensed as MIT (full text: https://opensource.org/licenses/MIT)
rem Modified for EPKL compilation by DreymaR, 2019-03

SETLOCAL
echo *********************************************
echo ***** EPKL COMPILER (using AHK2EXE) *****
echo *********************************************
echo **********************************************
echo ***** EPKL COMPILER, using AHK2EXE *****
echo **********************************************
echo.

REM *** SET YOUR PATH TO THE AHK COMPILER HERE
Expand Down
204 changes: 204 additions & 0 deletions EPKL_Layouts_Default.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
;
;; =====================================================================================================================
;; EPKL settings .ini file for PortableKeyboardLayout by Farkas Máté, EPiKaL edition "DreymaR" by Øystein Bech Gadmar
;; For more info, see the help files and the Big Bag Of Keyboard Tricks (PKL/Win) topic on the Colemak Forums
;; (https://forum.colemak.com/topic/1467-dreymars-big-bag-of-keyboard-tricks-pklwindows-edition/)
;; NOTE: The old pkl.ini file held both layout choices, settings and Extend. These are now separate files.
;; For Layout choice, use the EPKL_Layouts .ini file(s). For program settings, use the EPKL_Settings.ini file.
;; For Extend layer mappings (navigation/editing/etc), use the _eD_Extend.ini file. Set the modifier key in layout.ini.
;; =====================================================================================================================
;

[pkl]
;; =====================================================================================================================
;; EPKL Layout settings:
;; - Choose a layout that fits your board (ISO/ANSI) and ergo mod preferences. Tip: CurlAngleWide is great! d( ^◇^)b
;; - The main layout file is "Layouts\<LayoutFolder>\layout.ini"; <LayoutFolder> can be any subpath of Layouts\.
;; - You can use multiple layouts and give them human-readable names like this:
;; layout = LayoutFolder1:DisplayedName1,LayoutFolder2:DisplayedName2
;; - Remove ';' before 'layout = ' on one line only in the [pkl] section and comment out the current - or make your own!
;; - Define layouts directly by folder name(s), or use the "universal" shorthand form below (if that layout exists)
;
;; "Universal" [eD] layout setup notation for EPKL, configurable for ANSI/ISO keyboards and ergonomic mods
;; * To use LayType, Locale, KbdType, Curl/ErgoMod etc shorthand, refer to them as @# on the layout line; see below.
;; * My main layout types are:
;; - [eD] with full Shift/AltGr mappings, and
;; - VK or 'VirtualKey' which only moves keys around (Shift/AltGr are kept as in the OS layout)
;; =====================================================================================================================
;
;; * LayType (@T) values: eD (edition DreymaR w/ AltGr & dead keys), VK (just moves keys around)
;; * LocalID (@L) values: -- (defaults to US-type), Locale code (usually 2-letter ISO ALPHA-2 country codes like in XKB)
;; - Premade locales (mostly CurlAWide): BaHrRsSi, BeCaFr, BrPt, Cz, De, DkNo, EsLat, FiSe, It, Nl, Pl, Ru/Bg...
;; * KbdType (@K) values: ANS/ISO (JIS is not implemented yet, sorry!)
;; * CurlMod (@C) values: Curl (Colemak-DH), or -- (none). Usable for Cmk/Tmk layouts with Angle(-Wide/Wing) mods.
;; * ErgoMod (@E) values: --, Angle, AWide, AWing (AWing is ANSI only) ergonomic mods.
;; * OthrMod (@O) values: --, Any other mods defined as a suffix, such as DreymaR's Syms (Symbol key mod) or Colemaq
;; * [@L]@V is shorthand for [@L]@K@C@E@O, which produces the code [-<LocalID>]_<KbdType>[_<CurlMod><ErgoMod><OthrMod>]
;;
;; Examples: CurlMod/ErgoMod = --/-- gives no ergo mods; Curl/AWide gives Colemak-CAW.
LayType = VK ; @T: eD (edition DreymaR), VK (just moves keys around)
LocalID = -- ; @L: --, Locale code (-- defaults to US-type layouts). Check which combos exist, or make your own.
KbdType = ANS ; @K: ANS (for ANSI), ISO
CurlMod = -- ; @C: --, Curl, CurlM (DH mod; usually with an A/Angle ergo mod. CurlM/DHm isn't generally premade.)
ErgoMod = -- ; @E: --, Angle, AWide, AWing
OthrMod = -- ; @O: --, Any other mods defined as a suffix, such as DreymaR's Sym

;; Tarmak learning steps: Gradually switch from VirtualKey QWERTY to Colemak
;; - The Tarmak steps are: Tarmak0(QWERTY), Tarmak1(E), Tarmak2(ET), Tarmak3(ETR), Tarmak4(ETRO) and Tarmak5(Colemak)
;; - Tarmak layouts only have two ergo mods for now: CurlAngle and CurlAWing (ANSI). For plain Tarmak, use mods = --.
;layout = Tarmak\Tm1-VK@V:Tarmak1@C,Tarmak\Tm2-VK@V:Tarmak2@C,Tarmak\Tm3-VK@V:Tarmak3@C,Tarmak\Tm4-VK@V:Tarmak4@C,Tarmak\Tm5-VK@V:Colemak(VK)@C
;layout = Tarmak\Tm1-VK@V:Tarmak1@C,Tarmak\Tm0-VK@K@E:QWERTY(VK)@E

;; Colemak[edition DreymaR] or VirtualKey; switch to QWERTY with the same ergo mods except Curl/Other
layout = Colemak-@T\Cmk-@T@L@V:Colemak(@T)@L@C@E,QWERTY\QWE-@T@K@E:QWERTY(@T)@E

;; Start with plain Virtualkey QWERTY; switch to Colemak with ergo mods
;layout = QWERTY\QWE-VK@K:QWERTY(VK),Colemak-@T\Cmk-@T@L@V:Colemak(@T)@L@C@E

;; DEMO/DEBUG: Cycle through the ergo mods (for ANS or ISO). Comment out the line with a ';' to use the definition below instead.
;layout = Colemak-@T\Cmk-@T@L@K_CurlAWide:Cmk[@T]@L-CurlAWide,Colemak-@T\Cmk-@T@L@K_AWide:Cmk[@T]@L-AWide,Colemak-@T\Cmk-@T@L@K_CurlAngle:Cmk[@T]@L-CurlAngle,Colemak-@T\Cmk-@T@L@K_Angle:Cmk[@T]@L-Angle,Colemak-@T\Cmk-@T@L@K:Cmk[@T]@L@K
;layout = _Import\CmkCAWeD_WIP


;; =====================================================================================================================
;; Other layout relevant settings:
;; - These may be overridden by corresponding settings in BaseLayout and/or layout.ini files.
;; - There are more settings in the layout files. Some are variant specific and thus don't belong in this general file.
;; =====================================================================================================================
;

;; Support files used by layouts. The Remap file contains ergo and other layout remaps.
;; The Extend/dkList/string files hold Extend, dead key and literal/PowerString definitions.
remapsFile = Files\_eD_Remap.ini
extendFile = Files\_eD_Extend.ini
dkListFile = Files\_eD_DeadKeys.ini
stringFile = Files\_eD_PwrStrings.ini

;; Scaling factor for help images, in %. (96->64)dpi = 66.66%; (96->48)dpi = 50%
;img_scale = 100

;; Background image (key caps etc) and a background color for the image panel
;img_bgImage = Files\ImgBackground\Bg_ISO_nice-tinted.png
;img_bgImage = Files\ImgBackground\Bg_ISO_simple-tops-only.png ; eD WIP: Can we make transparent color work now?
;img_bgColor = 999999


[layout]
;shiftStates = 0 : 1 : 2 : 6 : 7 ; 8 : 9
;; SC = VKEY CStat Base Shift Ctrl AltGr AGrSh ; SGCap SGCSh

;; *** Modifier keys. To allow Extend and Sticky mods to work, the key has to be mapped.
SC02a = LShift Modifier ; Maps LShift to itself (allows Extend and sticky mods)
SC136 = RShift Modifier ; Maps RShift to itself
;SC01d = LCtrl Modifier ; Maps LCtrl to itself - WARNING: Causes trouble w/ AltGr
SC11d = RCtrl Modifier ; Maps RCtrl to itself
;SC038 = LMENU VirtualKey ; LAlt isn't easily remapped. This only partially works.

;; *** Several options are shown for the Caps key. Of course, they could be used on other keys. The MoDK is awesome!
;SC03a = BACK VirtualKey ; CapsLock as Backspace (CAPITAL -> BACK)
;SC03a = Extend Modifier ; CapsLock as the Extend modifier
;SC03a = BACK/Ext VirtualKey ; CapsLock as a Tap-or-Mod key: Backspace on tap, Extend on hold
SC03a = BACK/Ext 0 @ex0 @ex1 *#. @ex6 @ex7 ; CapsLock as Mother-of-DKs (MoDK) on tap, Extend on hold; Ctrl+{Ext} = emoji picker

;; *** A simple way of deactivating the rest of an .ini file section, is inserting a dummy section:
;[off]

;; *** To make a key work with the Extend modifier, it needs to be mapped to a hotkey like this.
;; *** When VirtualKey-mapping the Backspace/Enter keys, use their enumerations BACK/RETURN.
;; *** Remapping the TAB key is problematic: Alt-Tab becomes 'sticky', needing Esc to get out.
SC001 = ESCAPE VirtualKey
;CoF_1 = F1 VirtualKey ; eD WIP - allow Co key names
SC03b = F1 VirtualKey
SC03c = F2 VirtualKey
SC03d = F3 VirtualKey
SC03e = F4 VirtualKey
SC03f = F5 VirtualKey
SC040 = F6 VirtualKey
SC041 = F7 VirtualKey
SC042 = F8 VirtualKey
SC043 = F9 VirtualKey
SC044 = F10 VirtualKey
SC057 = F11 VirtualKey
SC058 = F12 VirtualKey
;
SC137 = SNAPSHOT VirtualKey
;SC054 = SysRq
SC046 = SCROLL VirtualKey
;; *** On old boards there may not be a Win key. This makes ScrollLock into a Win key.
;SC046 = LWIN Modifier
;SC045 = PAUSE
;SC146 = CtrlBreak
;
SC152 = INSERT VirtualKey
SC153 = DELETE VirtualKey
SC147 = HOME VirtualKey
SC14f = END VirtualKey
SC149 = PRIOR VirtualKey
SC151 = NEXT VirtualKey
;; *** Unfortunately, VK-mapped arrow keys didn't work with the (physical) Shift key?!
;; *** Seems to work a while, but then it takes BOTH Shift keys to select text?
;; *** Tapping RSh while holding LSh works, but not tapping LSh while holding RSh?!
;; *** EPKL may be sending some strange Shift up stuff that confuses Windows?
;SC14b = LEFT VirtualKey
;SC148 = UP VirtualKey
;SC150 = DOWN VirtualKey
;SC14d = RIGHT VirtualKey
;
SC00e = BACK VirtualKey
;SC00f = TAB VirtualKey
SC01c = RETURN VirtualKey
;
;SC15d = APPS VirtualKey
;SC15e = Power
;SC15f = SLEEP VirtualKey
;SC163 = Wake

[deadKeyNames]
;; Names listed in this section will override those in the deadkey tables file.
;@323 = DotBelow ; . - Dot below
;@309 = Hook-Palatal ; ̉ - Hook, palatal hook, rhotic hook
;@31b = Horn-Tail ; ̛ - Horn, tail
;@0a4 = Currency ; ¤ - Currency symbols
;@0b5 = Greek ; µ - Greek letters
;@05e = Circumflex ; ^ - Circumflex
;@2c7 = Caron ; ˇ - Caron
;@2db = Ogonek-CmBel ; ˛ - Ogonek, comma below
;@2d8 = Breve ; ˘ - Breve, Gr. Vrachy
;@0b0 = RingAbov-Lig ; ° - Ring above, ligatures, ring symbols
;@0af = Macron ; ¯ - Macron, horz. line symbols
;@2dd = DblAcute-Sci ; ˝ - Double acute, science/math symbols
;@0a8 = Umlaut ; ¨ - Umlaut, diaeresis, Gr. Dialytika
;@07e = Tilde ; ~ - Tilde, Gr. Perispomeni
;@0b4 = Acute-Sup ; ´ - Acute, Gr. Tonos-Oxia, superscripts
;@060 = Grave-Sub ; ` - Grave, Gr. Varia, subscripts
;@0b8 = Cedilla ; ¸ - Cedilla
;@2d9 = DotAbove ; ˙ - Dot above, dot symbols
;@02f = Stroke-Bar ; / - Stroke, bar, fractions

[dk_DotBelow]
;; Any DK mapping in the LayStack overrides the main one; a -1 mapping cancels it.
;960 = -1 ; TEST: DK_DotBelow + π releases nothing

[ext_Coding]
;; Any Extend mapping in the LayStack overrides the main one.
;SC021 = →Changed ; TEST: {Shift+AltGr+Ext → Ext+T} is overwritten

[klm]
;; This is a table of the "Co" KeyLayoutMap (KLM) from the _Remap.ini file. You should be able to replace Scan Code (SC) and Virtual Key (VK) names with Co###.
;; The Co codes are more intuitive and make no difference between ANSI & ISO board types. Examples: Co_Q, CoDT, CoSPC. There's also a QWERTY set; Co_P = QW_R etc.
;; 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 - ||
;Co || ESC | F_1 | F_2 | F_3 | F_4 | F_5 | F_6 | F_7 | F_8 | F_9 | 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 + ||
;Co || GR | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _0 | MN | EQ || LSH | RSH || INS | HOM | PGU || P_7 | P_8 | P_9 | PPL ||
;; XX------+------+------+------+------+------+------+------+------+------+------+------+------XX------+------XX------+------+------XX------+------+------+------XX
; ||Tab |Q |W |F |P |G |J |L |U |Y |; |[ |] ||LCtrl |RCtrl ||Del |End |PgDn ||KP 4 |KP 5 |KP 6 |KPEnt ||
;Co || 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
; ||Caps |A |R |S |T |D |H |N |E |I |O |' |\ ||LWIN |RWIN ||VolDn |Up |VolUp ||KP 1 |KP 2 |KP 3 |Mute ||
;Co || 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
; ||LS/GT |Z |X |C |V |B |K |M |, |. |/ |Enter |Space ||LAlt |RAlt ||Left |Down |Right ||KP 0 |KP . |Power |Sleep ||
;Co || LG | _Z | _X | _C | _V | _B | _K | _M | CM | DT | SL | ENT | SPC || LAL | RAL || LE | DN | RI || P_0 | PDT | PWR | SLE ||
;; XX======+======+======+======+======+======+======+======+======+======+======+======+======XX======+======XX======+======+======XX======+======+======+======XX
31 changes: 31 additions & 0 deletions EPKL_Layouts_Override.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
;
;; =====================================================================================================================
;; EPKL settings .ini file for PortableKeyboardLayout by Farkas Máté, EPiKaL edition "DreymaR" by Øystein Bech Gadmar
;; For more info, see the help files and the Big Bag Of Keyboard Tricks (PKL/Win) topic on the Colemak Forums
;; (https://forum.colemak.com/topic/1467-dreymars-big-bag-of-keyboard-tricks-pklwindows-edition/)
;; NOTE: The old pkl.ini file held both layout choices, settings and Extend. These are now separate files.
;; For Layout choice, use the EPKL_Layouts .ini file(s). For program settings, use the EPKL_Settings.ini file.
;; For Extend layer mappings (navigation/editing/etc), use the _eD_Extend.ini file. Set the modifier key in layout.ini.
;; =====================================================================================================================
;

[pkl]
;; =====================================================================================================================
;; EPKL Layout override settings:
;; This file takes precedence over EPKL_Layouts.ini if it's present. Rename or delete it to use the normal file.
;; For more info about the settings below, see the normal settings file.
LayType = eD ; @T: eD (edition DreymaR), VK (just moves keys around)
LocalID = -- ; @L: --, Locale code. Check in the layout folders which combos exist, or make your own.
KbdType = ISO ; @K: ANS (for ANSI), ISO
CurlMod = Curl ; @C: --, Curl, CurlM (DH mod; usually with an A/Angle ergo mod. CurlM/DHm isn't premade.)
ErgoMod = Awide ; @E: --, Angle, AWide, AWing
OthrMod = -- ;Sym ; @O: --, Any other mods defined as a suffix, such as DreymaR's Sym

;layout = Tarmak\Tm1-VK@V:Tarmak1@C,Tarmak\Tm2-VK@V:Tarmak2@C,Tarmak\Tm3-VK@V:Tarmak3@C,Tarmak\Tm4-VK@V:Tarmak4@C,Tarmak\Tm5-VK@V:Colemak(VK)@C
;layout = Tarmak\Tm1-VK@V:Tarmak1@C,Tarmak\Tm0-VK@K@E:QWERTY(VK)@E

;; Colemak[edition DreymaR] or VirtualKey; switch to QWERTY with the same ergo mods except Curl/Other
layout = Colemak-@T\Cmk-@T@L@V:Colemak(@T)@L@C@E,QWERTY\QWE-@T@K@E:QWERTY(@T)@E

;; Start with plain Virtualkey QWERTY; switch to non-locale Colemak with ergo mods
;layout = QWERTY\QWE-VK@K:QWERTY(VK),Colemak-@T\Cmk-@T@L@V:Colemak(@T)@L@C@E
Loading

0 comments on commit 1a04031

Please sign in to comment.