adereth / dactyl-keyboard

Parameterized ergonomic keyboard
GNU Affero General Public License v3.0
2.91k stars 842 forks source link

F-keys #12

Open jahkeup opened 8 years ago

jahkeup commented 8 years ago

Any chance a row could be added to the top for F1-12?

mathias commented 8 years ago

There's a range here that controls how many rows the keyboard has: https://github.com/adereth/dactyl-keyboard/blob/master/src/dactyl_keyboard/dactyl.clj#L90

The trick would be that you'd need to add another row to the controller, the firmware, and the PCBs. The electronics seem very inspired by the Ergo Dox (but I haven't dug in yet) - so I'm not sure if the controller and the MCP23018 has enough "inputs" to add another row. Maybe someone who has tinkered more with the electronics can chime in here.

laialbert commented 8 years ago

I tried doing just that and it does create another row for F keys, if you change the range to (range -1 5). However, I couldn't figure out how to change the back, right, and left walls to accommodate the additional row.

In looking into using the Teensy controller, it seems that you can probably accommodate a row of F keys (just barely). There's the Phantom Tenkeyless (https://deskthority.net/wiki/Phantom) keyboard that was built on the Teensy 2.0. If there aren't enough pins, then you'd need to use the Teensy++ 2.0, which has enough pins. (My understanding is that the minimum number of pins you need is number of rows and columns in your keyboard, plus 1).

Regardless, you'd have to adjust the keyboard matrix and update the firmware to match. I haven't looked into this enough to figure out how to actually do it.

linnemannr commented 8 years ago

I did look into this with the ergodox electronics, and the dactyl is a variant of the ergodox with the same keycount. With the teensy 2.0 and the 16 bit IO expander, you do have enough pins to add an additional row and column to each hand and more. I too am looking in to adding the function keys. If I can grok clojure enough to parameterize the walls on the number of rows (and hopefully columns) I'll make a pull request. I can barely elisp right now so it might be a tall order :/ My 3d printer and gateron red keyswitches are beckoning...

plo009 commented 7 years ago

It would be great if anyone has made any progress on adding the function keys could make an update here, using a ergodox now and really think the function keys would be very handy.

PierreKircher commented 7 years ago

why not just use a layer ? keybinding + numberkey = f-key usually the less keys the better since you control the firmeware .. its a easy fix ..

or use gestics for it .. double tap to example (tmk can do that )

plo009 commented 7 years ago

Well for cases where you need to press more than just the function key, e.g. alt + f4 etc

PierreKircher commented 7 years ago

even thats possible with mappings .. if you bind the switch of the num row to a different key .. say the "meta|win|apple" key on the thumb cluster .. to archive that ..

the keywell is shaped pretty much after the kinesis advantage .. beeing a longtime user of it .. > and never used the squishy f-row -

i have that mapped this way myself

might be not the 100% optimal solution but rearchitecting the keywell , the pcb and the firmware + keymatrix just for such a trivial problem which can be easy solved in firmware .. i doubt its worth the effort

pupeno commented 7 years ago

I'd also like to have F keys, or even better, extra rows/columns of programmable keys.

nickhristov commented 7 years ago

+1 please add another row.

mathias commented 7 years ago

See https://github.com/adereth/dactyl-keyboard/issues/12#issuecomment-168314746 -- this is parameterized for the 3D model. You'll have to learn a bit about the Ergo Dox electronics and firmware to get that extra row in there and program it to be f-keys.

I'd guess that pull requests for this are happily accepted and the community can help support it, so if you want it enough, I encourage you to give it a shot.

adereth commented 7 years ago

Yes, pull requests are happily accepted.

Note that adding a row is going to require changing a bunch of other things and the naive approach of just adding the row will not work. If you look at the current number row, you'll see that back of the caps are missing each other by about a millimeter. With the current curvature, an additional row will result in the caps overlapping, so that needs to be changed.

I'm planning on doing a build that actually has the number row removed and I'll use the function layer on the home row for numbers and the top row for F1-F12. The work I'm planning to do to make it easy to remove a row will also involve me making the back wall's shape automatically adjust to the back row, so that should make this a little easier.

I'm not going to tell anybody how to live their life, but I highly recommend getting more comfortable with the function layer. I'll point out that the thumb cluster on the Dactyl is much more accessible than on the Ergodox and with R1 caps on the top two keys, it's very comfortable to hold them down while pressing any of the keys on the main keywell.