Hacker News new | ask | show | jobs
by qwerty456127 1030 days ago
Sounds very interesting. I have looked through premium and "custom" keyboards market recently and found out their customness mostly is about look&feel, key placement and omitting "unnecessary" keys while I want a positively custom set of keys: as many keys as possible - full keypad, multimedia keys separate from f1-12 keys, Windows context menu key, also programmable macro keys if possible, no spatial "optimizations" (when manufacturers try to fit all the keys into as little area as possible) etc. I concluded I will probably have to really build my own. My ideal keyboard would even have a ThinkPad-style trackpoint so I could operate the mouse pointer comfortably without removing my hands from the home row :-)
5 comments

Same here. All these modern keyboards are missing a lot of what old one had. The most I miss most is the Alt GR one, the bigger ENTER key and I want a lot of space. Call me fat fingers if you want.

So I started to actually create my own. And I want it to be programmable. And movable, as in you can move the key around, enlarge or shrink them. And when I say I want them programmable I meant to pull a little gizmo out of it, hook it up to a separate power source and load preset or connect to computer and use an app to make the keys look different.

So far my idea is to have each key include a magnet, an ESP32 chip and a small LED screen on top of it. The controller to all those 110+ ESP32 chips will be a RPi CM4 module, which will also be the USB connection for the PC. That's one iteration because this way I can actually have a click-clack mechanical one. The other iteration is to just have a big ass touch screen and the RPI underneath to just play that as an app that simulates the keyboard. Prettier, way more customizable as key positions/size go but no click-clack sound/feeling.

I'm $2000 in my research hole for this with nothing to show up for but is fun. Probably next year I'll finish it :)

I agree but I don't need the keys look anything. The best thing happened to my keyboard life so far was having to use a keyboard without the letters of a language I used daily drawn on it. I would rather buy "das keyboard" with purely black keys but it doesn't have enough keys for me to invest in.

However, I would love to have your software-defined visually configurable keyboard as a second one on my table and every app using it as a sorg of a "toolbar" / command palette. This was what Apple tried sort of (it would have been nice idea if they didn't sacrifice a real keys row for it). To me it sounds like an additional display with touch support can do the job.

The LED display on top of the key, driven by the ESP32 beneath, will allow you to have anything as the letter there, including Arabic, Japanese or just emoji keyboard layout.
I wouldn't recommend using ESP32 for that. It's overpowered for this application. You don't even need its wireless connectivity. I guess using something like RP2040 or ATTiny would be a better option.
why an esp32 instead something simpler like an stm8 (or an stm32f103c8t6 if you need arduino compatibility) if you really want an mcu per key ?
because I'm experienced in ESP32 and not in STM8. But now that you mention it, a little seed started to grow. Thank you kind stranger, lemme get back to you when this will probably 2 years from now on and another $2000 in research/playing around.
I said stm8 but there are a lot's of cheap microcontroller, I don't know what you use to program your esp32 but you should have a look at platform.io . I use that list https://registry.platformio.org/search?t=platform&p=1 to select MCU's for my projects.

The thing I like the most about it is that I don't have to manually install and managed various tool chains and it's a lot more flexible than the Arduino ide.

I use Free Pascal/Lazarus to target anything, ESP32 included. As for IDE where it runs, in a nice VM with plenty of processing power and memory on my PC so I can fast iterate code to production.
> omitting "unnecessary" keys .... without removing my hands from the home row

The "keep hands on home row" is the motivation behind omitting the "unnecessary" keys, at least for the keyboards which use a small spacebar and give the thumbs more keys to use.

With those small 36-key keyboards, your hands pretty much have nowhere to go except to remain on home row.

> as many keys as possible

I once saw someone made a keyboard with 450 keys. https://relivesight.com/projects/433/

I don't really care that much about the home row (although it's nice to have something right in it so I mentioned). I care about being able to do everything by pressing less keys. Meanwhile a language I often type in (and I type in quite a number of them regularly) has the digits row remapped for extra letters so I can't enter a digit with a single key press without a keypad (I prefer moving a hand to there over using modifier keys). I also make heavy use of F1-12 keys and I have long thin fingers so I woudn't even mind an additional row of keys. Using the mouse every time I want to adjust the sound volume or do something like this is annoying as well. Needless to say I actively use Home, End, PgUp, PgDn and Insert (many compact keyboards lack some of these). At last but not at least, for sake of the muscle memory, I would prefer all the keys to be located at the same places on all the keyboards rather than moved to whatever a place the vendor has been able to fit them in.
These small keyboards are usually ortholinear which also helps reducing hand movement.

I switched to a OLKB Preonic over a year ago and haven't looked back.

After you get used to the smaller factor and non staggered keys format you realize how ridiculously and unnecessarily huge and clunky traditional keyboards are, even laptop keyboards.

It's like traveling with a 65 liters bag for years before you learn you can just carry a 40L and travel with less crap and much lighter.

It took me a couple of months to come up with the layout that worked for me (and even today I still optimizing it), but once I figured it out the typing experience became just such much better.

The QMK configuration tool makes the process of configuring the layout painless and super quick, so you just need the patience to try and iterate.

less keys = more cognitive overhead. Having to remember what layer i put fucking pipe on is not better than just hitting the damn key.

In ~2000 I started suffering from tendonitis and my coding job became very painful, I tried kind of the 'easy onramp' ergo options at the time, namely the ms 'natural'. It did not help. Eventually someone pointed me at the kinesis advantage (then essential) and I bought one. After some struggle coming to terms with thumb keys and wells and ortholinerness I switched to it for all tasks except for gaming and my symptoms basically disapeared.

About 10 years back I was in a job that was potentially going to cause me to travel a lot, at that point I had already modded my kinesis advange keyboards with custom controllers and wanted to try and build something that travelled better, was smaller, while still not fucking up my wrists.

I built a lot of keyboards trying to shrink my luggage. I went ortho and built a split preonic, uncomfortable, then I went down the road that leads to corne/iris/etc (thumb keys, vertically aligned but not horizontally aligned). More comfortable but the thing i always ran into when removing keys. Overhead, you have to remember what layer and key you put xyz rarely used symbol on (and when you are a software engineer that's a lot of the symbols).. at the end of the road I built a very low profile board based on the dactyl with the same number of keys as the kinesis advantage minus the f-key chicklets. Reducing the number of layers i have to remember to 1 that only contains the grave and the fkeys.

Then covid hit and I didn't have to travel anywhere. I take my dactyl when I go see my parents, and unloaded most of my other boards for cheap. (i kept a 65 that I play games with)

> less keys = more cognitive overhead.

Right.

The benefits of reducing hand travel / stretching come at the cost of additional complexity. Not everyone will be comfortable with that complexity.

I find the complexity acceptable; and in many ways more coherent than traditional layouts. e.g. I'd keep slash and backslash (/\) adjacent (or otherwise paired); a question mark (?) is frequent enough even in prose; so, pipe (|) remains paired to backslash. -- But, yeah, it can be annoying for keys which are used very infrequently.

i have almost 0 hand travel on my kinesis advantage. It lacks f-keys (layered on the numrow) and it has another layer for a keypad (front printed on the keys .. square of u-p m-/)... but also zmk so I could reprogram it if I wanted. It's a 76 ( if I'm counting right) key layout.
Keyboards are getting smaller, but I love full size ones for programming.

I ended up getting the keychron v6, it's wired but fine. Their wireless keyboards are apparently a bit buggy, not sure if the new ones still are.

QMK is an absolute treasure. You can use your web UI to setup custom keymaps and stuff using the chrome USB feature. But I may have went off the rails, as it's pretty simple to completely customise your keyboard with layers etc if you know a bit of C.

Warning; this is a gateway into a land of a obsession. :-)

My impression for the popularity of the 75% form factor is due to laptops and people being accustomed to never have used the "missing" keys in the first place. A tell-tale is that default layout even for thinkpads is to set the Fn row to media keys by default... An increasingly smaller number of people use them, despite being a row of freely remappable keys right _there_.

What I've seen happen though is that especially on linux you need two-modifier combos (ctrl-shift/ctrl-alt) to perform what you could have done with a single Fn keystroke. Or burn a few extra keys and increase complexity with layers. I went this route a decade ago, and I'm not a fan personally. Removing the Fn row saves 2cm of vertical space from your desk. I see it as completely pointless, even if you never use the Fn keys.

And I don't buy the "reduced finger travel" argument either. Holding the modifiers in weird positions to access an extra layer is usually worse than a more spacious keyboard where your hands can be kept further apart and require less chording.

But yeah... I commented on another thread on keyboards, and the current keyboard craze is mostly about customization and looks, and very little about the actual typing experience IMHO (there are exceptions of course..).

I completely agree. I never understood this craze of removing keys.

The number pad is another example of this. Typing numbers is massively more comfortable (and quicker too) on the number pad than it is with the row of numbers just below the F-keys.

The amount of desk space people save is so negligible, particularly when people who buy these keyboards typically work in “paperless” offices, that I never understood the appeal.

I guess it boils down to people wanting their keyboards to look pretty rather than being actually useful.

> I never understood this craze of removing keys.

There are (roughly) two families of "smaller keyboards".

Those with a big spacebar, and those with multiple thumbkeys.

Big-spacebar-small-keyboards are like laptop keyboards.

Whereas, for other kinds of small keyboards (such as the moonlander or planck) which provide thumbkeys, I'd say the emphasis is more about "bringing the full functionality of the keyboard to within easy reach of the hands" rather than "remove keys for whatever reason".

On traditional keyboards, the thumbs only get to use 1 key. A big spacebar is such an odd and inefficient use of keyboard real estate.

Whereas, with 2-3 keys each, the thumbs can be put to good use. e.g. It's much more comfortable to press backspace with the thumb, than to move your hand (or reach with the pinky finger).

I think it's a concession that use of particular parts of the keyboard is person and context specific.

e.g. At home, I only very occasionally enter numbers. I very frequently use my mouse, and have large monitors. So I sacrifice slightly less convenient number entry for slightly more room for my mouse(pad) all the time.

At work, I have a full-size keyboard and I spend a higher proportion of my time typing and entering numbers.

Isn't it better to have identical keyboards everywhere for sake of muscle memory?
This is my #1 priority now that I'm in the market for a new keyboard. I lose so much typing efficiency when switching between laptops, so functionality or comfort is no longer a leading factor for me.
I got a keyboard without the numpad due to the looks, but after using it a few years the full sized ones feel too bulky. I have to either move the mouse much further to the right or have my arms bent to the left when typing. Neither of which feels comfortable. I'm sure I could switch back if I needed to, but that extra space is welcome.

I agree entering numbers is better on a keypad though.

I do think a full-size 108-key board wastes a lot of space, but a 96%, similar to what's seen on full-size workstation notebooks (Dell Precision 7000 series, HP Zbook Fury, Lenovo ThinkPad P series) is much more efficient, while still providing Home, End, PgUp/Dn, Delete, Insert, arrow keys, and a full num-pad.
I agree that looks and deskspace is not something to optimize for and number entering is great on the number pad, but the ergonomics expert at my job informed us that shorter hand travel to the mouse is better against straining or something, so not using numpads would help. Or move the mouse/trackpad to the left.
For many people who rarely need to type numbers, the number pad is wasted space. If you're an accountant you probably want one. Maybe even a separate, dedicated one.

I rarely type numbers and find that the "top row" number keys are adequate for when I need to.

> Typing numbers is massively more comfortable (and quicker too) on the number pad than it is with the row of numbers

Let alone than with the row of numbers holding a Shift pressed (some languages require this because they remap the row for extra letters).

Why would you move your hand to the numpad if you can use your orthostaggered "numpad" with a layer right where your hand already is on the alpha keys?
Because moving your hand is a one time effort vs moving it up and down the keyboard to enter those pesky 6 digit TOTP codes where the digits could be at opposite ends of the keyboard.

Plus I’ve been using keyboards longer than a lot of (probably most) developers on here have been alive and I haven’t ever found using the number pad to be even remotely an effort.

It's a one time effort you can easily avoid with a much smaller one time effort (tapping/holding a very convenient numpad layer modifier). And it's especially a wasted effort for very short numbers like TOTPs

And all the digits are right there, not at some opposite ends, e.g., UIO789 JKL456 M,.123 on a qwerty

I think we’re going to have to agree to disagree on this one.
As I already mentioned 4-5 times, one of the languages I use regularly reuses the number row for extra letters (and it isn't even enough for all of them). I have to hold Shift pressed to enter a number this way (using a keypad feels much better) or use CapsLock to enter a capital of such a letter.
My comment is about NOT using the number row, so your repetition is not a relevant response
Back in the days when first computer keyboards were invented 7-bit ASCII was enough for everybody, now as everyone everywhere uses Internet daily for all sorts of tasks we have Unicode.

People don't need a keypad because they have the digits row. But there are languages (in Europe) which reuse the digits row for extra letters (which don't even fit there) so you have to press shift to enter a digit (yes, you can't enter such a letter in capital without using CapsLock), unless you have a kaypad.

People don't need F-keys (so these can be reused for multimedia controls) because they are not techies. Insert for the same reason.

People don't use Delete/Home/End/PgUp/PgDn because they are completely uneducated about the basics of using a computer and use mouse/touchpad, arrows and backspace instead. Believe it or not, I've met people who don't even know Ctrl+C/V (let alone Ctrl+X or Ctrl+Z) and would always use the right-click menu (which even requires an additional keyboard key to be held pressed on a Mac) to copy/paste anything.

This said, compact keyboards target anglophone non-techie users (or hardcore VIM fans who have ways to do everything without leaving the home row).

> But there are languages (in Europe)

The languages appears to be Czech/Slovak. It would be more useful to mention this, than to repeat the basic point in four or five comments.

Problem with the Fn keys is discoverability: i never remember which functionality is available on which key, and you have to remember different mappings for different apps. Actually thought Apple's solution for this, the touchbar, was pretty nice, sad that it failed...
> despite being a row of freely remappable keys right _there_.

Lol right. And I add a shift layer to the fn row as well, to add more fn keys. Sadly a lot of apps won’t support fn20+ but u find more utility binding them to hand crafted actions anyway

> Holding the modifiers in weird positions to access an extra layer is usually worse

What's weird about home row or thumb mods?

Really you probably just want a normal keyboard with some good firmware.

I started out with a moonlander, which had a lot of keys (36 each hand) but to be honest, I'm trying to minimise as much as possible, and remove keys from it. That way I'm fully constrained to the home row.

Also, layers are amazing and sounds like something you might want to look into. Hold 'a' and use hjkl for media keys, etc. It's all very flexible

I never knew there are keyboards with configurable firmwares, also never heard about layers. Your comment sounds very helpful, thank you. By the way I already considered buying a Moonlander because of its 2-part design - I have an idea of possibly using a computer while lying on the floor sort of like in the Shavasana posture with my hands by my sides rather than in front of me.
> also never heard about layers

I was just discussing this yesterday with a friend. It's funny how rare and technical it is to understand layers when everyone uses layers every day - shift + 3 does not render 3, but #. But we don't talk about it that way.

I really want to reconfigure some "shift" values, like shift + space should give you an underscore.. but I have to use a layer button for that, not the shift key