Remix.run Logo
taeric 5 hours ago

Aren't layers a form of stateful control?

scottlamb 4 hours ago | parent | next [-]

I think the distinction __s is making is between layer toggles (layer is active between layer key presses, described as stateful) vs layer modifiers (layer is active while layer key is held).

And there are definitely reasons to minimize keyboard state. I've been playing around with programmable keyboards (running RMK in my case) with several thumb keys. My thumb was getting fatigued, so I tried using a layer toggle to avoid having to hold it while using the nav layer. I would hit it by accident and then get confused about why my keyboard isn't doing what I expect ("mode confusion"). That gets awkward, unproductive, and embarrassing real fast. You can display the mode via per-key LEDs and/or an OLED display, but those only help if you actually look down at the keyboard, which is not my habit. (I have thought about using a companion app to display an overlay on my computer's screen when in a non-default layer.)

fwiw, I think most of my thumb fatigue was from using my thumb on modifier keys beneath z/x/c and equivalent on the right, which required folding my thumb underneath my palm. Bad idea.

These keyboard designs have some really interesting ideas, but the ideas aren't all unambiguously good. Some of what are described as thumb keys really shouldn't be used with the thumb. I'm still on the fence about column stagger. I think a lot of the reason people avoid the number row on these keyboards is because the purely vertical reach on a column-staggered keyboard is more awkward than the diagonal movement you make on a row-staggered keyboard. And the idea that column stagger is better because it forces you to use e.g. the ring finger for "c" is based on an idea that it's bad to use the index finger for "c" even with a row-staggered keyboard, and I disagree with that. I also think they're undervaluing muscle memory (or maybe were made for people who never learned to type well on a row-staggered keyboard and are really committed to always using the column-staggered keyboard).

__s an hour ago | parent | next [-]

for more info on thumb fatigue: https://getreuer.info/posts/keyboards/thumb-ergo/index.html

My issue was tendon overuse in my fingers, so low force switches & column splay worked for me

(splay is where the columns are not aligned, mapping to the fan out of the human hand, see TOTEM https://github.com/GEIGEIGEIST/TOTEM)

yehoshuapw 3 hours ago | parent | prev [-]

can you please expand on your thoughs on the thumb cluster?

(I have a dactly I kind of finished wiring, but didn't get around to programming it yet)

scottlamb 3 hours ago | parent [-]

I'm typing on a SoflePLUS2 right now. It's based on the Sofle v2 design, which is described as having a 5-key thumb arc per side. But I try to limit thumb use to the innermost 2 or 3 keys per side after experiencing fatigue. I use the outermost 2 or 3 as opposite-hand modifiers (ctrl, opt, cmd) and try to pull my whole arm in to use them with the same-column finger, instead of treating them as a thumb key that requires folding my thumb underneath my palm as I keep my hand in the home position.

It seems like many in the ergo keyboard crowd are trying to never move their hands from the home position, and I think that might be a mistake. Use a variety of muscles, avoid unnatural positions. More broadly, my understanding is that the research behind using a tented/splayed split keyboard is solid (better shoulder through wrist positioning) but there's nothing really but anecdotal experience supporting the idea that vastly reduced key counts (and associated need for complex layer setups) or column-staggered layouts reduce pain and plenty of confounders (going from unibody to split simultaneously, maybe switching from QWERTY at the same time too, reducing speed, often learning decent form for the first time, often regression to the mean because people switch when they are having problems).

My previous keyboard was a split with traditional row stagger (Goldtouch) that Google's ergo team advised me to try forever ago. I switched recently because I wasn't liking the mushy feel of the keys, that the two "space bars" weren't distinguishable, that it doesn't have an integrated pointing device, and that after such long use I'd worn down the homing indicator on the f/j keys and was struggling to orient my hands correctly. But row-staggered layout was fine IMHO. Made it easier to learn, to switch between it and other keyboards when I had to, and to hit keys further from the home position.

Here's something from Kinesis, who have been designing split ergonomic keyboards for a long time: https://kinesis-ergo.com/wp-content/uploads/Advantage360-ZMK... search for "If your thumbs are sensitive" and "Guidelines for using your thumbs". And note that while they have keys under z/x/c they do not describe them as thumb keys.

tremon 4 hours ago | parent | prev | next [-]

Possibly, depending on how they're activated. If the layer is only activated while another key is pressed, that's not stateful (i.e. no different from yet another Fn key). I'd say that layer toggles and one-shot key modifiers are stateful control, yes.

Personally, I've found that I prefer layer shift keys over layer toggles. It takes more mental effort to track in which layer I'm working than to hold a key while pressing another. The only persistent layer toggles I use is to switch the entire keyset to a different layout (qwerty vs workman vs single-handed, or switch the right half to numpad).

rgoulter 4 hours ago | parent | prev | next [-]

Sort of.

The downside from the 'state' from Caps Lock is you have to keep track of whether it's active or not.

Whereas with layers, typically a layer will only be active if you're holding down some kind of "activate layer" key.

drivers99 4 hours ago | parent [-]

Jef Raskin called those "quasimodes" in The Humane Interface (2000) and was in favor of them.

https://en.wikipedia.org/wiki/Mode_(user_interface)#Quasimod...

delecti 4 hours ago | parent | prev | next [-]

Caps Lock is stateful control. The function of the keys changes depending on the internal state of the system. The "Fn" key on the keyboard in the article is also stateful (ish), and defaults to treating the F row as the special macros, rather than just F1-12.

Keyboard layers work more like the Shift key.

volemo 3 hours ago | parent | prev [-]

Layers are usually quasi modes, i.e. the non default state requires an active holding of a modifier key.