Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ergo S-1 – An open-source ergonomic wireless keyboard (github.com/wizarddata)
26 points by arcanemachiner on Jan 3, 2025 | hide | past | favorite | 28 comments


Why do all these new keyboard designs lack Function keys?

Layering is not a good solution when many applications already have double or even triple buckies on the F keys. What IDE doesn't?


Fn keys are literally just layer keys:

They don’t send a keycode, they modify existing keys so they either send different keycodes or modify the keyboard’s state (e.g. toggle LEDs).

The main difference is, once you start rabbit-holing the custom layers, you don’t have to only put a layer on the F keys.

My favourite layer is holding down an extra thumb key to get arrow keys + home/end, pgup/pgdown near home row.

Since I have yet an extra thumb key, I made it so I get those navigation keys but holding down Ctrl, so I don’t need to stretch across both a Fn key and a modifier. And so on.

I have a combined Tab + Ctrl key: Ctrl on hold, Tab on click. All of these just work, no adaptation, no downside, just less movement.

I’ll never go back from this.


I believe that the origin message refers to the function row keys—as F1-F12 and the media keys.


How do you press Ctrl-Tab? At least for me that is a very common shortcut, among other things it cycles tabs in e.g. Firefox.


As someone who didn't go too crazy with the custom keymaps, it's a thumb press for the Ctrl key, and a pinky press for the tab key. (I have the Tab key in the expected spot.) Ctrl+Shift+Tab works as expected also.


The guy I replied to has a combined Tab + Ctrl key: Ctrl on hold, Tab on click.


There's a learning curve involved with these keyboards, as they move the modifier keys around. Because of this, the target audience is people who are willing to invest time and effort (not just money) into ergonomics. Those people typically already alter the default shortcuts of the software they use to fit their workflow.

Changing IDE shortcuts is really an easy win for ergonomics. Shortcuts aren't really designed: they grow organically as features are added, using whatever is free. Because of this, older features use simple shortcuts, young features require pressing more keys or even chords.


I've used over a dozen split- and ergonomic- keyboard over the years, so I am familiar with the time investment. And I do agree, for the most part, that the time is well invested up until a point. But I don't see how requiring additional simultaneous keypresses is "more ergonomic" than pressing a dedicated Ctrl or Alt key. Airplanes, which pilots invest much time learning to fly, have dedicated buttons for all functionality. How is "ergonomic" defined in this context?

I'm not arguing, really I'm asking to hear the answer and become wiser.


I based my keymap off of that of the Kinesis Advantage, which does have function keys.

I have Ctrl + Alt + Super on the thumb clusters, each as their own key. I did copy the default layout for the Ergo S-1 which uses a modifier key (also on the thumb cluster) to access the function keys, so F1 is Fn+1, F2 is Fn+2.

I thought I would miss having dedicated Fn keys but they are surprisingly not missed much in my workflow. Might depend on your workflow though. The current solution is workable, at any rate.


The original design for the concave ergonomic keyboard dates back to the 70s. Their original designs have many more keys. https://www.maltron.com/maltron-history.html


There's a whole lot of folks that believe minimizing have movement is ergonomically better, if not faster, and therefore use keyboard layouts that require cords to type not just function keys but also numbers.

A popular way to handle modifiers, for example, is putting them on the home row. A tap gives you a letter; a long press gives you a modifier instead. This allows me to (for example) type Ctrl+alt+shift+left arrow without moving my hands at all.

Home row mods are really finicky though. It took me months to get really consistent at them.


I see, thanks. Do you double up on your modifiers? For instance if A is Ctrl, then how do you type Ctrl-A?

How do you handle triple buckies, e.g. Ctrl-Shift-A?


What arlort says: ASDF and jkl; both have the home row modifier behavior, so you can hit any combination as long as you have both hands on the keyboard. So Ctrl+shift+a is pressing and holding k+l and tapping a. Holding d+f and tapping a would also work, but it would be uncomfortable. Miryoku[1] is a popular layout in this style and was my starting point, but I think it's often customized.

The "both hands on the keyboard" thing is a major caveat. The key I use to switch to my navigation layer (arrows, paging) is on my left hand and it also runs all of my non-home row keys into Ctrl modified versions of themselves. This allows me to type almost any Ctrl combination while mousing that you could type easily with only your left hand, with the exception of Ctrl+D because I have D mapped to control (I use super/alt/Ctrl/shift). I only use Ctrl+D in the terminal, so I had no need to resolve this limitation.

Is all this worth it? Honestly it's hard for me to say yes, but I also find using a qwerty keyboard uncomfortable now. Plus the keyboards are cool.

[1] https://github.com/manna-harbour/miryoku


You can change the behavior of your layer activation key(s) so that you aren't n+1ing your buckies, and can also customize the keymap of all layers (including the baselayer) so that you don't have Ctrl and A sharing the same physical key between layers to avoid that exact issue. Though, if you do choose to do that, there is still a way to send Ctrl-A (using one shot keys [2] for example). I've listed a few options you have for your layer activiation key behavior from the qmk wiki [0] as it's more succinct than the zmk wiki [1], but QMK and ZMK (which the Ergo S-1 uses) both share similar functionality in this way. Non exhaustive list of layer-activation behavior from the QMK wiki:

> MO(layer) - momentarily activates layer. As soon as you let go of the key, the layer is deactivated.

> TG(layer) - toggles layer, activating it if it's inactive and vice versa

> TT(layer) - Layer Tap-Toggle. If you hold the key down, layer is activated, and then is de-activated when you let go (like MO). If you repeatedly tap it, the layer will be toggled on or off

You can also use Macros if you'd prefer (but not required) to handle triple (or more) buckies, which both ZMK and QMK firmwares support.

I will note that this Ergo S-1 seems to be missing at least 8 keys that most other Ergodox keyboards have (the 3 keys of the inner column on each side and the bottom right and left corner keys) so total physical keycount appears to be closer to a 60% kb. So in that way, you're going to be more dependent on using layers (or Macros) in general than even other ergodox (such as the Ergodox-ez [3] style keyboards of this type.

EDIT: Apologies, I wasn't paying attention to usernames when responding to comments and basically gave you this answer twice across two different comments. Deleted the other as this one is more complete/to the point.

0: https://docs.qmk.fm/feature_layers

1: https://zmk.dev/docs/keymaps/behaviors/layers

2: https://docs.qmk.fm/one_shot_keys

3: https://ergodox-ez.com/


Terrific, thank you. I will look into this.

Great, just what I need, to get further into the keyboard hobby... ))


Only been lurking in the split ergo keyboards so far, but I believe what people do is they have the home row modifiers on both sides, so if A is Ctrl to have Ctrl-A you'd do ;-A


Even worse, the ones which (like this one) lack left and right modifiers such as Shift, Control, Alt and Super. For those who’ve never touch-typed, the right way to type a modified key (e.g. G) is to hold the modifier (e.g. Shift) in the opposite hand, then type the key (in this case, g).

I really like having return under my pinky, which means that I need another column in order to get quote somewhere decent.


Left and right control are z and / for me on this Ergodox, they do double duty as modifiers. One can do all kinds of interesting things with a custom keyboard, so arguing that "it's not a traditional keyboard" is kinda.. not what the people going for custom keyboards are about.


Obviously what keys to include, what they do, and maybe other choices to make when designing a keyboard is almost entirely subjective, but here's my opinion:

Layering, chording, combos, and other methods of producing different keycodes aside from just throwing more buttons and adding more surface area ARE a good solution and arguably superior due to the following benefits:

- Ergonomics are better due to less overall movement and effort needed to produce a certain keycodes by moving two fingers slightly instead of moving your wrist or arm.

- Keyboard is generally cheaper to produce due to fewer parts required, simpler circuitry, smaller footprint, and other benefits. The arguable downside is that you are "hiding" the complexity in software (firmware?).

- It's more fun! This one is more subjective, but thinking about clever and more efficient ways to setup your keyboard can be a good time indeed! It feels cool to use.


I use Zed or/and VSCodium regularly, the only function key I touch is F2, and frankly I should change that keybinding. Egads who can imagine such a thing!


Project description: The Ergo S-1 is a fully wireless, split ergonomic keyboard that is compatible with cherry/gateron switches and cherry/oem/dcs keycaps. It runs on the fantastic ZMK firmware.

---

I made one of these a few months ago, and I'm a big fan. It's like an open-source Kinesis Advantage 360.

---

Project homepage: https://wizardkeyboards.com/ergo-s-1/

Hackaday article: https://hackaday.com/2022/08/10/from-product-to-burnout-to-o...


The OG open-source Kinesis Advantage (minus curved form) is Ergodox, released in 2011. Ergo S-1 re-introduces the curved form and adds wireless support (which Kinesis never had), but unfortunately has less keys then both Kinesis Advantage and Ergodox, which can be a deal-breaker for those who uses those keys on their Ergodox. Personally, I use only 2 keys on each thumb cluster, removed some keys in the bottom row, but use every extra key in left and right column on each half.


There has always been a wireless version of the above-mentioned Kinesis Advantage 360, also running the ZMK firmware.

Before it, there were the open-source Dactyl variants that more or less copied the Kinesis. The original Dactyl [1] (2015) has a layout like the Kinesis but the more popular Dactyl Manuform variants have different thumb clusters. And people have been building them both with wired and wireless controllers.

The history is not complete without mentioning that Kinesis (Model 100 in 1992) in turn had copied the Maltron [2], designed by Lilian Malt in the 1970's.

1. https://github.com/adereth/dactyl-keyboard

2. https://www.maltron.com/maltron-history.html


Price?


I built my first one for ~$150 CAD, then I built a backup one for a little under $100 CAD (the first price may have included a cheap soldering iron, I don't remember).

I don't live in the US, so I made a [purchase list](https://github.com/arcanemachine/Ergo-S-1-Extras/blob/main/e...) with links to AliExpress. The original assembly guide assumed the user has access to McMaster-Carr, which I unfortunately do not (for a reasonable price, at least).


Great. Maybe I'll order one someday. I'm using dygma Defy right now. Banger keyboard; just really expensive


Super exciting to see an open-source ergonomic wireless keyboard company going public!


Another open source concave keyboard design is the dactyl and dactyl-manuform.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: