Small Keebs

Recently I built 2 small keyboards: a CFTKB Romeo, and a Rainkeebs Manta with a nice!nano v2 controller and a LiPo battery

(they came as FR4 sandwich kits. I built both with the last of my cerulean switches filmed with C3 films & lubed with Krytox 205g0, avoiding the stem legs)

The Romeo and Manta are 40% and 30% keyboards respectively. There are plenty of size comparisons on the web but this video does it pretty well. TL;DR the main reasons you’d want to do this are:

  1. Aesthetics
  2. Portability
  3. Minimise finger travel.

There’s also this video which “demystifies” the 40% layout but the main argument is that you don’t need to lose functionality vs. a big keyboard because you put things on layers. You could flip this around and say the smaller you go the more you have to use layers to get all the functions you need. I had to make 2 big decisions:

  1. Can I just cut out some keys because I’m not going to use them?
  2. Once I’ve decided which keys to keep, what’s the best layout?


The Romeo is the smallest of CFTKB’s offerings (the others being the Discipline and the Mysterium). I love the aesthetic of all three but I was surprised how much more solid the Romeo feels and sounds (I guess because its so much smaller, so less flex / resonant). All 3 are plateless.

I thought building it with a split spacebar would be a good idea because (a) it’s better to have more keys, (b) function keys activated by thumbs are efficient and (c) the position of the keys are shifted 0.5u to the left, meaning I’d hit the right space more reliably with my right thumb. It looks like this:

(DCS Nightfall and CannonCaps 407)

I didn’t like it and I think it was actually worse than the normal 2.25/1.25/2.75 owing to where my left thumb lands and the tiny-ness of the middle key. So I desoldered it and went for the standard spacebar and I think it looks better (pictured here next to the Manta):

I also managed to get away with just one layer, with fn key mapped to caps lock. I kept the arrows on the base layer in the bottom left corner which meant I didn’t need to cram them onto a layer. Apart from the numbers, most of the punctuation falls under my right hand.

I left out the number pad keys (I never use them) and the function keys (because I’ll mostly be using this on a Mac).

Overall it’s just the right balance between minimalism and functionality… and I really like the one less row, it’s surprisingly easy to reach the number keys under row 2.


(battery placement)

The manta is compromised compared even to the Romeo having only 3 rows, meaning you have to put your thumbs in weird positions if you want to use the middle keys as thumb keys. Compare where my thumb falls on the Manta compared with a more typical posit:

The Manta works much better as a one-handed keyboard (in fact I used it like this for one-handed typing when I had really bad RSI):

I’ve been using it to play some FPS games and it works nicely 🙂

Here are my layers. I decided on a sticky layer key (aka One Shot) on the base layer and then accessing the second and third layers via mo keys on layer 1 (I know Ben Vallack likes layer toggles but I prefer the keyboard to return to the same state when my hands are off). Hope the color coding makes sense:

Hit the Sticky Layer key to get to layer 1. From there you can hit mod keys for layers 2 and 3.

You may have noticed that there’s no arrow keys, backspace or delete, and there is a dedicated CTRL key on the base layer. This is because MacOS (and by extension iOS) has built in Control-based shortcuts for navigating text:

Control-A: Move to the beginning of the line or paragraph.
Control-E: Move to the end of a line or paragraph.
Control-F: Move one character forwards.
Control-B: Move one character backwards.
Control-L: Centre the cursor or selection in the visible area.
Control-P: Move up one line.
Control-N: Move down one line.
Control-H: Delete the character to the left of the insertion point (i.e. Backspace 1 char)
Control-D: Delete the character to the right of the insertion point (i.e. Delete 1 char)
Control-K: Delete the text between the insertion point and the end of the line or paragraph.
Control-O: Insert a new line after the insertion point.
Control-T: Swap the character behind the insertion point with the character in front of the insertion point.

From this list. It takes some getting used to but I’ve tried it out and I like it. I can do an awful lot just with the base layer thanks to auto-capitalization, double-tapping space for a full stop, etc.

The complete repo is here, and I’m using the 4layer branch.

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    Markdown is turned off in code blocks:
     [This is not a link](

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see

This site uses Akismet to reduce spam. Learn how your comment data is processed.