Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding keyBlock capability to support Programmmer's Dvorak #143

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

haata
Copy link
Member

@haata haata commented Aug 7, 2016

  • 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 1a078b2 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
kiibohd/kll@0e89882
kiibohd/kll@1a078b2

@F1LT3R
Copy link

F1LT3R commented Aug 8, 2016

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.

@haata
Copy link
Member Author

haata commented Aug 8, 2016

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.

- 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%
- Adding example configuration for the Infinity Ergodox
- Requires kll.git 1a078b2 or higher
@haata
Copy link
Member Author

haata commented Aug 9, 2016

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).

@F1LT3R
Copy link

F1LT3R commented Aug 10, 2016

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:

thisone

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants