Adding keyBlock capability to support Programmmer's Dvorak
- Useful for partial redefinitions of keys Such as redefining Shift, which, as per the USB spec is handled by the OS This means we have to careful select which USB Codes to send to the OS to simulate Shift not being pressed (while it is)
- KLL capabilities only work with numerical arguments (KLL 0.3d)
- Each key must be explicitly block for each combination (e.g. LShift and RShift are handled separately)
- Adding example configuration for the Infinity 60%
- Requires kll.git 1a078b2b940709bc3c429c952d2f0d842927394f or higher
Alistair, I haven't tested this code at all. It does compile, and functionally is quite simple. You'll need the following commits from kll.git https://github.com/kiibohd/kll/commit/0e898827ca7fb6dd0f6227085cf896817a2d0620 https://github.com/kiibohd/kll/commit/1a078b2b940709bc3c429c952d2f0d842927394f
Things compile for me here. But I'm having trouble flashing this.
I can run the load command or use the dfu-util to load the .bin file manually, I get the 100% loaded marker, but the device never leaves flash mode.
Output:
./load
dfu-util 0.9
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
Match vendor ID from file: 1c11
Match product ID from file: b007
Deducing device DFU version from functional descriptor length
Opening DFU capable USB device...
ID 1c11:b007
Run-time device DFU version 0110
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 0110
Device returned transfer size 1024
Copying data from PC to DFU device
Download [=========================] 100% 28040 bytes
Download done.
state(7) = dfuMANIFEST, status(0) = No error condition is present
dfu-util: unable to read DFU status after completion
I noticed that there is no IC60-L and IC60-R directories, as there is ICED-L & ICED-R directories with the ergodox build.
In fact the ergodox build seems to be the only build containing the L + R directories, and also the only one that will successfully flash my Infinity Ergodox.
Ah, that'd probably be the problem. Will need to tweak this to use the ergodox.bash base script instead.
I'll make an attempt tomorrow.
I added another build script for the ergodox. Please not that I didn't add the usual function layer keys as these will need to be reconfigured a bit to work with programmers dvorak. (i.e. the old Function1 will have to be Function2 for example in mdErgo1Overlay.kll).
Thanks again for this @haata. I can now flash each Ergodox side individually.
I really like how that shift-layer-switch behavior works, that allows for a lot of flexibility. Is it still called a "latch" or a "lock" when this happens, or is this something entirely different?
Details of how things are looking here...
The letter keys, space, enter, delete, etc, all work perfectly, though the number/special-char row keys are not as I would have expected. (perhaps i am using the wrong layout on my os)
W/O Shift
LEFT: 37[[]9none RIGHT: none=80=]1
Shift (L or R)
LEFT: `57531none RIGHT: none902468
I believe I am using US ANSI, here is a screenshot in case that helps: