kiibohd / KiiConf

Input Club web configurator, designed by matt3o.
http://configurator.input.club
GNU General Public License v3.0
92 stars 30 forks source link

Programmers Dvorak Layout Missing #61

Open F1LT3R opened 8 years ago

F1LT3R commented 8 years ago

I cant find the layout files for programmers dvorak or any layout that demonstrates how to add keys where numbers are accessed via shift. How can this be accomplished?

haata commented 8 years ago

Ah, yes.

So, shift keys are (according the USB spec) entirely handled by the OS (and not the keyboard). So in theory this is not possible.

However, with a bit of work (KLL 0.5 will make this easier). The idea would be to remap all the Shift keys to a function layer. This way, the OS doesn't "help you out".

Caveat, I haven't tried doing this myself, but it should work in theory. If you run into odd cases, let me know. I might have some solutions for you. Worst case some C functions/capabilities can be written to handle the more complicated cases.

F1LT3R commented 8 years ago

With the remapping in 0.5, will it be possible to plug the keyboard into any OS and have Programmer Dvorak work? (Without OS software changes?)

haata commented 8 years ago

Hmm, I can't say with 100% certainty without testing. But it'll make it easier.

F1LT3R commented 8 years ago

So I have an Ergodox infinity with a Teensy inside, so surely I should be able to program keystroke combination into this already? So far my whole experience of doing anything like this with the keyboard is using the online configurator and flashing the Ergodox with the update. I'd happily get into the C code (not that I program C, I don't), ... if I can be pointed in the right direction.

There seems to be several different libraries around that will Flash the Ergodox. But they all look "early". This is a bit frustrating, because I bought and put the Ergodox together thinking from looking at the configurator that I would be able to program it with any key combination.

If I really want to get into programming my Ergodox/Teensy firmware with any combination of keys, where should I actually start?

RyanRayNeff commented 7 years ago

@F1LT3R I think the feature that your looking for is "Dual Role Keys". If you wanted to switch to a 10 key layer, or a symbol layer, you can hold down another key to temporarily access those. (For example, I've set my symbol layer to be accessible by holding down the 'a' key) The shift key is a bit of a strange duck, because it already "shifts" layers natively, as @haata mentioned above.
As far as getting the dual role key functionality, there's 2 popular flavors of Ergodox right now, and each of them uses different firmware. (Ergodox Infinity, and Ergodox EZ) The Ergodox EZ currently supports dual role keys. You can see the EZ configurator here: http://configure.ergodox-ez.com/keyboard_layouts/new Concerning dual role key support for the Ergodox Infinity, @haata has been working on implementing this feature, but it's not ready yet. You can follow the issue in the controller repo here: https://github.com/kiibohd/controller/issues/2 As far as getting into programming the Ergodox with any combination of keys, I'd say go with EZ for GUI functionality, and go with Infinity for more robust options that will require you to do some coding. Personally, I have both an EZ and an Infinity, and I haven't used the infinity because I rely so heavily on the dual function keys, and I'm relying on haata to do all the heavy lifting for me. I realize that buying a second keyboard is probably not the solution you were looking for, but the alternative is helping to build out the Infinity features here on github. Does that make sense?

insederec commented 7 years ago

I'm in the exact same situation. I thought I could use layers the same way the shift key works. Am I right in assuming that there's no way for me to get my layout onto my Infinity? I absolutely cannot afford another keyboard, but I'm no stranger to coding. I'm no expert either but I can get by. Is there any way to use the windows keyboard layout for programmer's dvorak that I already made for the Ergodox?

F1LT3R commented 7 years ago

You can do this (shift like behavior) @insederec, @haata has some code somewhere that did this, but I couldn't get it to work for all the keys I wanted to (some of the number row if I remember). I also got sold on the "it does everything" thing on the Massdrop. It's a good keyboard, but it didn't live up to it's programmability claims. At this point, it's been so long, I expect something to outdo it soon.