this post was submitted on 20 Jun 2023
26 points (96.4% liked)

ErgoMechKeyboards

5873 readers
4 users here now

Ergonomic, split and other weird keyboards

Rules

Keep it ergo

Posts must be of/about keyboards that have a clear delineation between the left and right halves of the keyboard, column stagger, or both. This includes one-handed (one half doesn't exist, what clearer delineation is that!?)

i.e. no regular non-split¹ row-stagger and no non-split¹ ortholinear²

¹ split meaning a separation of the halves, whether fixed in place or entirely separate, both are fine.
² ortholinear meaning keys layed out in a grid

No Spam

No excessive posting/"shilling" for commercial purposes. Vendors are permitted to promote their products/services but keep it to a minimum and use the [vendor] flair. Posts that appear to be marketing without being transparent about it will be removed.

No Buy/Sell/Trade

This subreddit is not a marketplace, please post on r/mechmarket or other relevant marketplace.

Some useful links

founded 1 year ago
MODERATORS
 

Since putting together my ErgoMax a month back, I found myself feeling increasingly less keen to get back to productive stuff, which in my case is programming.

Yesterday I had a moment of clarity on the irritation that I couldn’t previously quite put my finger on — it was the steady hassle of having to fiddle with layer shifting and other mod keys such as shift or command, to type in even just a few lines of code.

How do all the programmers deal with having to constantly key in “, [] and {}, sometimes with cmd, ctrl etc keys held down, on boards without dedicated keys for them?

all 24 comments
sorted by: hot top controversial new old
[–] wispydust517 9 points 1 year ago (2 children)

My preferred way is to have one symbol layer with all the symbols. It prevents having to constantly doing shift/unshift or switching layers (I personally call this "shift dancing") 😀

It looks like this:

https://keebogram.pages.dev/hypership/

[–] R4_Unit 3 points 1 year ago (1 children)

This is a nice clean layout! I appreciate that it isn’t trying to be tricky, but just lay everything out simply. The only part I’m not really getting is the equals sign relative to things like plus and times? Seems like typing equations, and things like += or *= kinda awkward? Beautiful all the same.

[–] wispydust517 2 points 1 year ago

Good observation! I tried to maximise rolls on common symbol bigrams (=> :) ({...})) and minimise single-finger bigrams. You're right that -= is kinda meh because it's an SFB but += and *= are kinda alright 😊

[–] [email protected] 8 points 1 year ago (1 children)

I use a 30% split keyboard as my daily driver for work as a software developer. I use a keymapping where holding the F key down turns the right side into a numpad plus some of the other punctuation, and holding D down gives me the shifted versions of all that. So I have to chord to get the esoteric symbols but I don't have to actually move my left hand from home row to chord. I don't think this is a very common way of doing things though. I'm not sure it's any better than using a bigger keyboard, but I'm used to it now.

[–] [email protected] 3 points 1 year ago

Yeah, I do the same with my thumb keys, they shift the layer so the symbols/numbers are all one handed typing operation. I use homerow mods so there's even less finger shifting but that also means I don't use the homerow for layers. It's definitely a learning curve, especially since my keycaps don't have a legend but you get used to it pretty quickly. I need to return to a right side being numpad, I got clever with F keys but I only use 4 F keys, I should just optimize for those, it doesn't need to be a "sensible" layout for anyone else.

[–] luckybipedal 8 points 1 year ago (1 children)

On my 34-40 key layouts I put all the symbols typically used together in programming on the same layer, including symbols that usually require Shift, along with all the numbers. This makes it comfortable to type whole formulas without leaving the symbol layer and without needing Shift. Important bigrams that I can type without switching layers in the middle include <= >= != += -= *= /= %= &= |= -> /* */ => := :) ;) . I also optimize the layer so that none of these are same-finger bigrams. Because = appears in so many bigrams, I found it convenient to map it on a thumb key.

I make sure all the mods are comfortable to use and in the same place on all my layers, either as bottom row mod-taps or on opposite side thumb keys or worst case as a oneshot mod. I don't need Shift on my symbol layer, so one less mod to worry about.

Probably my favourite feature for a programming key map is _ on a base layer thumb key. That makes typing snake_case_names a breeze.

[–] [email protected] 3 points 1 year ago

I do something similar with bigrams but on my left half. I have "other syntax" on my right side Most if it is inward or outward finger rolls to. So for example, != is like typing "at" on Colemak but on my symbol layer. (); is rolling "nei" and so on. I based it off of Mental_Gymnastic's write- up I found from reddit.

Link: https://getreuer.info/posts/keyboards/symbol-layer/index.html

It's worth a read because this dude has a ton of good ideas.

[–] Gumshoe 6 points 1 year ago* (last edited 1 year ago)

As a programmer with a 36 key keyboard, I actually find symbol typing easier for the most part than it was before. Mainly because I find the number row symbols easier to touch type when there isn't any hand movement involved. Do you look at your hands when typing %? How about F6? I did it without even realize I was doing that, but now that I have a numpad layer for all my numbers and number row symbols (and no legends on my keycaps to prevent me from looking even if I wanted to) I touch type those symbols much better than I did before.

Your keyboard didn't have dedicated {} keys before either. Those were shift+[] before, and now, for my layout, they are symbol layer+{} which is the same number of keystrokes and same level of complexity, though I had to relearn a lot to do that.

I use home-row mods (well, bottom-row mods, actually) and apart from some combos having an extra key being held down, the idea that I'm now holding those keys with dedicated sensible fingers and without any hand movement means they aren't any harder than before. For example, what fingers are you even using when you type "ctrl+alt+shift+something"? Now, on my 36 key layout, I'm just holding bottom row index finger, bottom row middle finger, bottom row ring finger, maybe a thumb layer key which might be an extra button than before and typing the actual keystroke itself with the opposite hand. This has really helped me improve my opposite hand modifier skills as well as I often neglected to use right-ctrl on my traditional keyboard.

[–] [email protected] 5 points 1 year ago

I'm a developer and I use a (slightly modified) miryoku layout for my daily driver. I know not everyone loves the home-row mods, but I really like how I can use the layer keys on one hand to get all the symbols on the other. I have to move my hands waaay less than I did with a full size.

[–] [email protected] 3 points 1 year ago

I use combos for all my brackets, though I also have them on a layer. Quote is on my base layer - I have a layout based on Miryoku, which swaps the positions of ‘ and ; from their normal Colemak-DH locations. I think that swap would make sense for QWERTY as well if you’re using a 36 key layout. With 38 keys and up, I have room for ; as well on the outer pinky column.

I also have an override so that the unshifted key is : and I use shift to get ;. Since I mostly write Python and use vim this is a great shortcut - if you use a language with semicolons that behavior probably doesn’t make sense.

[–] [email protected] 3 points 1 year ago

I found this keymap's symbol layer to be the perfect middleground between similarity to a standard keyboard and plain better symbol placement. The right side makes more sense the more you look at it (and simulate typing on it)

[–] Kimcha87 3 points 1 year ago

I put brackets as combos of pointing and middle finger.

On the left half the homerow combo is for (. On the right half, it’s for ).

And the other symbols are on a layer. I optimized it it to make common programming symbols easy to type.

And I found that practicing typing quickly on speedcoder.com really helped me.

At first you have to think about what key to press to switch the layer and then what key to press to get true symbol you need.

But after a while, your brain learns the combination of movements.

So you just express the intention of a symbol and your fingers execute the symbol.

[–] nomaded 2 points 1 year ago

Over 20 years ago, I had a keyboard that defined a "punctuation pad" that contained a lot of common symbols and combination of symbols on a different layer. I found it useful enough that I have brought that along to any keyboard since then that I could program to have something similar. It doesn't cover all symbols, because I touch-type the number row, so other than parenthesis they are not part of the "PunctPad". It's defined as "1 layer deep" on the right hand, and I have it on all my keyboards. You can find an example here: https://github.com/nomaded/qmk_firmware/blob/ngedv-unify/keyboards/ergodox_infinity/keymaps/ngedv/keymap.c

[–] WFH 2 points 1 year ago

Not on an ergo but on a 60% with the shitty (for programming) french layout. I mapped all the useful and scattered symbols on caps-lock + a key next to it, so I can access them by an easy left hand chord instead of an awkward thumb-and-stretched-out-finger-to-the-other-side-of-the-keyboard chord.

CapsLock+A="[", CapsLock+Z="]", CapsLock+E="#"

Capslock+Q="{", CapsLock+S="}", CapsLock+D="|"

Capslock+W="(", CapsLock+X=")", CapsLock+C=""

[–] rafaelromao 2 points 1 year ago* (last edited 1 year ago)

I use two layers, that I activate holding the two home thumb keys, to place all symbols, numbers and F keys. They are all positioned according to how frequent they are and how they appear together. I also have a lot of combos and macros (in another layer) that helps with recurrent commands. My keymap is extremely complex and optimized for my workflows, but you might take some inspiration from there.

[–] heron 2 points 1 year ago

You should be able to cmd down > layer shift > symbol > layer release > cmd up. It sounds like a lot, but I don't need to do anything like that very often.

[–] [email protected] 2 points 1 year ago

I usually work on a 34-key layout and adapted a lot from Ben Vallacks ideas from YouTube. But I spend some time with home-row-mods in the past (layers on home-row with modifiers on bottom-row) but the constant holding of keys annoyed me also.

[–] pca006132 2 points 1 year ago

I would say that you need to try and modify your keymap. Mod-tap is useful for commonly used symbols.

Also, I would recommend you to try vim (or vim mode for some editors), as you can use modes instead of modifier keys.

[–] redchlorophyll 1 points 1 year ago (1 children)

Many people are forgetting the simplest answer here. Just use a full size keyboard. They are abundant and cheap. They come with ALL THE KEYS and don't make you layer shift in order to efficiently achieve what you need to do.

[–] [email protected] 4 points 1 year ago (1 children)

🤔 This is posted in ergomechkeyboards; full-size true ergo boards are pretty uncommon.

[–] redchlorophyll -3 points 1 year ago

It sounds like an ergo board isn't the tool for the job then

[–] [email protected] 1 points 1 year ago

Is your letter shift on the thumb? I thought it'd be easy like that (I don't have one myself).

[–] [email protected] 1 points 1 year ago

I ended up with pretty much my own entire layout. For the most part, I don't use layers, but instead use pairs of keys for symbols, numbers, etc. I also kept things largely where they are on a traditional keyboard, so that I'm not fighting against several decades of muscle memory.

The main issue with what I've done is that I'm kind of pushing past the limits of combining features with QMK. I use pairs of keys as modifiers (my left shift is 'E'+'D' for example), this key pressed is also '3'. If I roll on numbers, I end up with stuck modifiers. I've gotten fairly used to it, but it still hits me from time to time.

I do use a layer for things like cursor keys, though.