My new keyboard, with Rhino logo

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 (:


This is very very cool, thanks for sharing the details… So are you saying you just drive the mouse movements and click from this keyboard while coding, whenever needed?

Plus, good tips on the ergonomics! I like the whole setup with lower-center screen. Next time I redo my workspace I’l try to implement some of your ideas.

While coding I use mostly Vim keyboard navigation. Experimenting now with the drawing surface as the middle lower monitor so I can use the pen, but otherwise still trackballing quite a bit. Using the mouse keys on the keyboard I can, but should practice more (stash mouse, trackball and pen somewhere would get me there in a day, but have been lazy).

Today I hope the finish the mounting hardware for getting my arms close to their natural hanging position. I will post pictures when that is done. Also a new video. That all still is doing things the easy way, I want to design a set of cool arms, but that requires learning stuff (:


So I finished the first iteration of the mounting rig where I can type with my arms down. It feels very nice. Here a very short demo of what it looks like - just the hands though. Was too lazy to make the working spot presentable enough for a full-body video.

The stand has surprisingly much movement in it. I can dampen it a bit by standing against the horizontal bar, but even without doing that the movement isn’t actually much noticable from key-hitting point of view.

Some easy improvements to make: use square tube for horizontal bar so there is no roll due to slippage. Better floor plate to stand on - currently small piece on which the (Ikea) height-adjustable table leg is mounted, and one next to it so I can stand on it comfortable. A bigger piece would be nice. And better structure for the spring mechanism. Springs do work nice to hold the halves in place, but they give in this position quite a bit. Some pieces to slide the hooking hands in a cross configuration would probably help a lot.


a couple of stills of the whole keyboard setup:

And me trying to get the slot cut by hand with tiny metal saw in the living room, sitting on the floor.

Addendum 2:

At least the new setup isn’t impacting my typing negatively:


It’s nice to see another mechanical keyboard user on here. I print Cherry MX compatible keycaps for fun (SLA and FDM) so let me know if you need anything custom made.

Starts to look like something from Blade Runner. Nice job! :smiley:

Here’s an interesting video by Void Star Lab about DIY keyboards:

(Be aware that his humour might not be everybody’s pair of shoes.)

1 Like

IO expander is a great idea. I quite like staggered columns, though. Feels better than linear on the row. But then again, there are many hands, and thus many preferences.

I improved stability of the mounting rig with a couple of bolts. Standing like this with the arms down if very nice.

I cut a bigger wood plate for the thing to stand on, rounded out the corners so I don’t cut my feet, and actually inserted it under the carpet. Since I like to be on bare feet having the carpet on the wooden base makes it feel nicer.

I have now everything set up for some recording sessions, maybe even live coding in the near future. I haven’t planned anything major yet, I’ll probably get just started with some not-very-much-in-advance announced short-ish session where I work on my RhinoCycles code, some Rhino scripting, probably the import_3dm Blender add-on.

1 Like

I prefer a staggered layout, too. However, I find his technical explications and break-apart PCB layout quite interesting.

I’ll check that out for sure, either live or recorded. I’d tried your import_3dm Blender add-on yesterday for the first time. It’s great but it tends to crash for big files (>450MB). I’m using the macOS Intel version from your GitHub in Blender 2.93.1.

Short video of this morning, simple monkeytype session

I must admit I haven’t tested with files of that size. Possibly a good item for investigating live (:


Your typing skill are off the charts! I can’t manage to get more than 45 to 50 wpm with decent accuracy. :smiley:

If you want to see me slow you should wait for a video trying to do steno typing :smiley: I get to 5-10 wpm.

Keyboard will be in coding action tonight: Live coding stream

1 Like