My new keyboard, with Rhino logo

Last week I built myself a new keyboard. I got around to customize it with a Rhino logo as well (:

This is a split 40% keyboard. I’ve been customizing it with the key layout I’ve been using for the past 15 years.

DAS keyboard layout


I imagine that in the coming time I’ll be adding custom key layers with keys for Rhino commands and all that. Should be fun.

Right now I need to practice a bit to get used to the new keyboard. My personal typing record is 116 words per minute, I’m back at around 70-80 at the moment.


and what are the potentiometers left and right for? to increase the energy injection feedback? bzzZZZZ :smiley:

I’ve not yet customized those yet, so they are on default behavior: right knob is pgup/pgdn and left knob is volume up/down for their rotary action. These work also as buttons actually. Left knob is also the Win-key, right one is currently AltGr.

Since the keyboard supports mouse keys I could make them control mouse cursor for instance, or one do mouse wheel.

The code for the custom firmware for my keyboard can be found here: qmk_firmware/keymap.c at jesterking · jesterKing/qmk_firmware · GitHub

In case anyone wants to know, the keyboard is a Kyria split keyboard from Apart from the PCB kit I had in it two Elite-C controllers, OLED displays, two rotary encoders with industrial knobs and acrylic plates for case. Further complemented with switches and keycaps.

At minimum you need the PCB kit, two controllers, a TRRS cable, switches and keycaps.

The page I linked explains this, so be sure to read up.

I have enjoyed the project build so much that I kinda rolled into toying around with other controller boards, I’ve got now a couple of Teensy 4.1 boards and a bunch of WeAct blackpills. This is my first foray into this kinda stuff, but hugely interesting.

It would be cool to use these knobs for slider control in GH :wink:
Left knob would be to select which slider in GH document you want to control right now.
Right knob would be to increase or decrease value of selected slider. :slight_smile:

I could indeed program mouse control into the rotary encoders. Right now I have mouse movement and mouse buttons on the right half. Mouse vertical, mouse horizontal movement, mousewheel scroll, lmb, rmb and mmb, all is possible. In theory I would not need any seperate mouse device.

1 Like

I like also these screens that you have, because, for example displaying on one of these screens what you currently have stored under “copy-paste” would be useful! All the time I paste something different by accident, so looking at a preview what I have under the ctrl+v button would help :slight_smile:
Well, there is a lot of cool ideas that comes to mind when you have these additional screens and knobs :smiley:

This is really beautiful stuff @nathanletwory .

I will say however, that probably the most functional application of custom keyboard design RE: Rhino3D would be to think through and develop a keyboard optimized for customization and use for Rhino’s keyboard shortcuts and Aliases.

This is a project I’ve dreamed of for years, but instead… I must keep making furniture. Please let me know if you’re interested in creating a version for Rhino users, and I will be your compatriot.

Hey @Elucidesign , I am currently in the process of getting some controllers that have more memory. At the moment the Elite-C controllers are almost maxing out with only a few hundred bytes left to fill with Rhino-specific commands.

I have now a set of controllers that have the same footprint as the Elite-C, namely the Sparkfun Pro Micro RP2040 with almost 10 times the memory. This will allow me to continue setting up one or more layers with Rhino-specific functionality. I have currently only one command programmed in: TestMooCow, because I use it a lot for my test work. But once I have got the controllers working I’ll be getting at least one more PCB kit to try with the new controllers and then get the Rhino support sorted (:

I’ll keep the thread updated.

I have been working on a solution to give me adjustable tenting and tilting angles for the two keyboard halves. Here are some pictures of the progress.

Two halves mounted on the setup and on my work surface. In this image without the clamps, but those are necessary, because otherwise there is unwanted movement.

Left half from the top, with clamp

And finally a view from below, showing the 4-spring grabbing mechanism that keeps the halves in their place. The pull springs are mounted directly on the bigger U-profile in the middle. Small pieces of the aluminiun have been bent to make good attachment points. The small grabbing hands are also from aluminium, each with a small bent piece as spring attachment point. The tension from the springs is nice. This means no screws are necessary to secure the keyboard in place. This setup works well enough to have the keyboard upside down.

Next up is a stand/arms that allow me to control the height position of the halves. I want to be able to bring it down 10-30cm. It just needs to be very sturdy. Movement or flexing is unwanted.


are you standing at your desk? or is that just a test desk? or are you sitting like a yogi? (i actually prefer sitting in yogi, just finding a good chair for that is not an easy task) still i could not have drawers in front of my legs :smiley:

I stand while I’m programming.

The goal is to eliminate the desk altogether. I want to have the keyboard halves on arms. I plan to have the monitor(s) wall-mounted. I may do a custom case for the computer as well, so I can have that look good and flat, so I can all move to the wall when not working. The goal is to stand with my back to the wall. Getting to that point is going to take some time though. For now I’ll just focus on getting the keyboard setup done.

I have been using the new rig for some time now, it feels pretty nice, even though the halves are a bit high up. The angle of the halves feels very comfortable.

Anyway, I’ll keep posting about progress on this front.

It would be interesting to see you actually using this rig. Looks very cool…

Are you saying I should start a live stream of me coding? :wink:


I’d totally check that out!

@Jarek, I have recorded a short usage session of the keyboard on the current rig status

Clearly I have been slacking with the practice, my speed has dropped below 80wpm.

I might do some session in the future. At least I have my OBS set up now for that kind of streaming (:

Not sure what I would start with. Maybe I could do some session(s) where I’m working on the Cycles update.


Any plans for a four handed version for pair programming? :wink:

Long ago at a different company for fun we tried MoonEdit to write code with 5 people in the same file(s). It was quite fun.

I do plan to make a few more keyboards, though, so who knows, maybe I’ll have more than one attached to this computer (:

1 Like

Thanks Nathan, very interesting!
Now how you you deal with this keyboard with key combos like shift,ctrl etc.? (or using a mouse while typing like that?) You may be on a different level but I need my elbows on the desk and quick access to the mouse.

By pressing the proper keys of course :slight_smile:

The current layout is pretty much like this

You’ll find modifier keys in there. A bit hard to read maybe, so here a bit of explanation:

The keyboard works with layers. You may already be familiar with those through the Fn key on laptops, and the Option on Macs. Or even the shift and AltGr keys.

The regular layout on the main layer is where I have the letters. The home rows are, on the left: S L N T, and on the right, A I O E. I use the Lshift mainly to get the capitalized letters. I have a Raise layer - the symbols along the top of each key on the key map. That I activate by pressing and holding any of the keys that says Hi (for high). Correspondingly I can press and hold the Lo key access the Lower layer. So you can see I have the number keys under my right hand in a numpad configuration. I just hold Lo and get access to those numbers. Holding Hi I have access to the mouse keys, so I can move the mouse around, press mouse buttons, use mouse wheel (MW), and have arrows keys under my right hand.

There are still improvements to be made, for instance currently I don’t have PgUp, PgDn, Home or End, but since I use Vim bindings in VSCode and similar on VS I don’t really need those.

In the near future I’ll be generating a better keymap for my own usage, based frequencies of Finnish text and the Rhino code base, so I can optimize where the most used characters are and can minimize finger travel and lateral movement need (mainly for the pinky finger). Naturally that will lead to a new key map that I’ll have to learn. I have found though that it takes only a couple of days to get used to something new. Having to spend time learn that is a minor cost when mirrored against the benefits I can gain from this: ergonomic typing and posture for my hands. Something that I think people seriously should consider when they find they do most of their work at a computer. Preventing injury is in the long run cheaper than having to go to surgery or do other expensive recovery - or even having to stop using keyboards altogether.

I also used to think I need my elbows on the desk, but I actually found that holding elbows on the table causes static stress in the shoulders too easily. If you can hold the body so that you don’t start leaning on them then fine, but I see it time and time again that people are leaning on them, causing stress in the shoulder and neck, and that needs alleviation - if I can save myself trips to physiologist for recovery massage then after a few times not having to go a custom, ergonomic keyboard is much cheaper.

I have a track ball here next to my keyboard, I have also access to a mouse, which I now use mostly for gaming, there is a 3D mouse. And this week I moved my drawing display (HUION Kamvas) between the keyboard halves. Now I have a pen with which I can very naturally do things there, too.

Anyway, next step in the mounting rig is to have some kind of arm system whereby I can get the keyboard lowered to around the hip height. That should make it even nicer for my shoulders, since the arms would be almost hanging in their natural position. The design is naturally limited by my ability to create it, and my Dutch background - it should be cheap to make myself, too. And easy.

I’ll keep the thread posted on progress there (: