Principles for Keyboard Layouts (2022)

https://anniecherkaev.com/principles-for-keyboard-layouts

96 points by skilled on 2024-04-28 | 104 comments

Automated Summary

The article shares the author's experience in creating a custom keyboard layout using a Moonlander keyboard. The main motivation for the change was the inconvenient placement of special characters on standard keyboards. The new layout is based on the Colemak layout, has an alphabet base layer, a special character layer, and a tiny third audio control layer. The author emphasizes the importance of placing frequently used keys in easy-to-reach locations, simplicity, and grouping conceptually similar keys together. The article also includes details about the process of assigning keys, the benefits of the new layout, and a comparison with standard QWERTY and COLEMAK layouts.

Archive links

Comments

bloopernova on 2024-04-29

I would like to see something that records your keystrokes and gives you stats on what you type the most. Then spits out a keyboard arrangement to start from.

Not sure how you'd get around it being a huge security risk? Maybe only write totals for keypresses every 30 minutes?

Edited to add: Does anyone daily-drive a Keyboardio Model 100? I really liked the concept and participated in the kickstarter, but unfortunately found I didn't enjoy using it that much.

I've settled on a Keychron Q10 with the Alice layout[1]. It's a nice compromise between the full on split and standard keyboards. It's nice and heavy, with QMK/VIA customization, and some useful macro keys I assign to some Emacs shortcuts like M-x and C-g. I do wish it had a thumb wheel and/or some Moonlander-style thumb keys below the space bars.

[1] https://www.keychron.com/products/keychron-q10-alice-layout-...

erksa on 2024-04-29

ZSA, the company behind the moonlander now has a heatmap extension [1]. After running it you get an idea of where your heavy keys are.

When creating my own (slightly) modified qwerty layout I found it helpful to identify which areas of the keyboard was overloaded.

https://blog.zsa.io/2012-introducing-heatmaps/

ashton314 on 2024-04-29

I used this tool to refine my Moonlander layout. It works really well. ZSA is just a wonderful little company. Great products, great tech support.

bluGill on 2024-04-29

The problem with that - the same problem layouts like Dvorak have but worse - is that I sometimes have to use other computers. Any custom layout will be great for me - once I put forth the effort to learn it of course, but since it will only be for me nobody else can use my computer (This computer I'm using now I don't care as only I touch it). However I have computers that others in my family also use, computers at work where sometimes I share a keyboard. All of that becomes impossible and that negative is greater than any potential benefit.

erksa on 2024-04-29

It's my own experience, and it anecdotally seemed to be shared with other people who have modified their main keyboard:

The regular qwerty/qwertz keyboards are so ingrained in our muscle memory and society (think touchscreen keyboards) that they still work as backups and you do not "forget" how to efficiently use regular keyboards. I guess it does depend on how often you're swapping around.

bluGill on 2024-04-29

I started with Dvorak young - about the same time I was learning "proper" typing (as opposed to hunt and peck). I wasn't good enough at QWERTY to go back and so I eventually had to give up. Besides, all the studies of typing I've seen are not compelling - most don't try to control for that fact the alternative layout users are likely to study typing and thus be better than average.

Andrew_nenakhov on 2024-04-29

I type in Dvorak and 'using other computers' is not a real concern: you retain qwerty typing skills even if you use Dvorak.

It's like foreign languages: you don't forget English when you learn French.

a-priori on 2024-04-29

I've used Dvorak essentially full-time for the last 20 years and I can still type in QWERTY. In fact, I just switched to QWERTY just now to type this and it feels a bit awkward and I make some typos, but it's perfectly usable.

The hardest part of switching is punctuation and shortcut keys, not the letters themselves. But I can use other people's computers and usually most people don't know that anything's odd.

brokenmachine on 2024-04-29

Also on your phone/tablet.

I use dvorak so the first thing I have to do when I get a new phone is to install an alternative keyboard.

francis-io on 2024-04-29

Wouldn't a small script that lets you toggle between a QWERTY layout and a custom layout solve this problem?

MSFT_Edging on 2024-04-29

Only if it's someone using your machine, rather than you using another's machine and re-adjusting to querty.

2024throwaway on 2024-04-29

My top menu bar has a toggle to switch layouts, so anyone can use my machine. I can also still type QWERTY, so I can use any other machine. These are non-problems.

gumby on 2024-04-29

> I would like to see something that records your keystrokes and gives you stats on what you type the most. ... Not sure how you'd get around it being a huge security risk?

A small program that locally collects data and lets you analyze it locally is pretty much a definition of a computer! IMHO this is not the place to worry about a security risk.

Note that the author had video of herself typing and it probably didn't trigger the "security risk" reflex because it's so obviously safe -- safe enough to post in this case. I mean I'm typing right now and when I push the "reply" button the result of my typing will be posted right to the Internet with no access restriction!.

Anyway, with that out of the way: I like your idea. With the raw data stream you can look not just for simple frequency but n-grams as well. The same data stream could be used to design single-handed chord keyboards as well, and even malleable layouts for programs with shitty key assignments (I refuse to call them "shortcuts").

abecedarius on 2024-04-29

> records your keystrokes and gives you stats

I wrote a little Emacs Lisp for this, never published it. I kinda doubt that a similar script would be as easy to write for an OS less friendly than Emacs.

jryb on 2024-04-29

You don't need a keylogger. Just take some things you've written and count the characters. It won't be exact since it excludes rewrites but the distribution should be very close.

eviks on 2024-04-30

This bad approach is why backspace and cursors keys are ignored in many layouts because they don't appear in the text corpus, which is a bigger issue than rewrites

You do need a keylogger, and a context-aware one at that for proper analysis, otherwise it's better to just use an existing layout, won't get much extra from personal corpus anyway, so not worth the effort to do a poor personalized analysis

serial_dev on 2024-04-29

The SwiftKey keyboard (mobile) used to (maybe even today) ask for your Gmail account, goes through your stuff, recognizes your style and includes your vocabulary.

Ignoring the obvious privacy issues, it provides great suggestions and learns some words that are not in the other keyboards' dictionaries.

Maybe you could apply the same for aiding an algorithm to create a personalized keyboard layout.

yjftsjthsd-h on 2024-04-29

I'd like to also include keyboard shortcuts and commands that don't end up in recorded text.

jryb on 2024-04-30

At least for any defined set of layouts, you could infer what those other keypresses would be and compare their efficiencies. Still a compromise but it satisfies all the security issues.

taeric on 2024-04-29

If you do go down this rabbit hole, you probably want to optimize hand alternation. That is, it is not enough to keep the high value letters home row, you probably want to split them between hands, while keeping them home row. Similarly, the slowest combinations of characters will be the ones that force a finger to go from top to bottom row. On qwerty, as an example, 'cemetery' would be pretty bad for the opening two letters.

thomastjeffery on 2024-04-30

That's been made many times, but it may not be as useful as it sounds. You might learn something about what special characters you use more than the average person, but outside that, generic datasets are good enough. If you have a reasonable variety of thumb keys (instead of a single giant spacebar), you are probably better off putting your symbols on another layer anyway. Keyboard layout improvement is relatively logarithmic: you can only optimize so well for the set of permutations of keys you will type. Eventually, the variety of permutations becomes a ceiling for optimization. Any recent intentionally optimized layout will be drastically better than qwerty, marginally better than Dvorak, and roughly comparable to Colemak.

--

I've been using a Model 01 (the original release of the 100) for a few years now. It's to the point where several switches are wearing out from regular use. I happen to enjoy nearly every design decision, but am most particularly fond of the thumb clusters. I plan to eventually build a dactyl-like from scratch, with very similar thumb clusters. My favorite feature by far is the thumb-knuckle/palm key.

When I switched to the Model 01, I also learned the Workman layout. Changing both together helped isolate the change of muscle memory to its own additive context. Right now, while I'm away from home, I'm typing on a traditional board (a generic laptop) configured with qwerty. I would rather be at home typing on my Model 01, but I can live without it: the traditional qwerty experience is no worse than it was before.

rpmisms on 2024-04-29

If you want a privacy-compatible logger, simply record every two-key sequence with a counter on each. That way, order is obscured, but you have a relational graph.

yjftsjthsd-h on 2024-04-29

> I would like to see something that records your keystrokes and gives you stats on what you type the most. Then spits out a keyboard arrangement to start from.

> Not sure how you'd get around it being a huge security risk? Maybe only write totals for keypresses every 30 minutes?

I did this once with a terrible script that just recorded keys with... I forget, probably either xev or `xinput test`. Anyways, yes, huge potential security/privacy risk but IMO it's fine if you keep it local and don't persist to disk without encryption (read: put the file on an encrypted filesystem or tmpfs). I specifically didn't want just the per-key total presses because I was interested in use of shortcuts and common substrings (IIRC I was looking at what to make macros of to save typing); if you just care about what actual keys get pressed the most and are only looking at rearranging the same keys then aggregation might make it safer.

bbojan on 2024-04-29

I've built exactly that, but need to polish it a bit before releasing. Hopefully will have time to do it soon.

zubairshaik on 2024-04-29

Once you have a corpus of your own personal text, I'd recommend to use the current best analyzer, oxeylyzer[0]. You can find more details on the Alternate Keyboard Layout discord.

[0] https://github.com/O-X-E-Y/oxeylyzer

000ooo000 on 2024-04-29

>gives you stats

You might enjoy toying around with this: https://patorjk.com/keyboard-layout-analyzer

Config in the top right lets you load other layouts.

tiltowait on 2024-04-29

It also has a “personalized layout”, though when I tried it a few years ago (using a chapter from a novel I wrote as input), I was unimpressed and stuck with Colemak.

iwixon on 2024-04-29

I have not used this, but I understand benign-key-logger[1] was made for this use case.

[1] https://github.com/Ga68/benign-key-logger

aendruk on 2024-04-29

I’ve been tinkering with some ideas around this based on the Halmak project [1] which used a genetic algorithm to choose the layout. Some day I’ll do a writeup about it.

[1] https://web.archive.org/web/20200220112444/http://nikolay.ro...

CountHackulus on 2024-04-29

I daily drive the Keyboardio Model 100. I like it a lot, but I really would like to remap a few of the special characters. It works fantastically well for just arbitrary documents, but writing C++ is frustrating. The custom shape of all the keycaps makes it basically impossible to remap without just using clear keycaps.

astrodust on 2024-04-29

Just look at the wear on your keys. Based on a keyboard's wear pattern you can often tell what someone does for their job, even down to the programming language used or specific apps.

luqtas on 2024-04-29

if you run QMK & have a Teensy board; https://precondition.github.io/qmk-heatmap

if you don't, https://github.com/suurjaak/InputScope ... you can even track key presses per app!

Adverblessly on 2024-04-29

Here are my personal principals:

1. Don't use too many thumb buttons, especially at odd angles, they just make my thumbs hurt after too much typing.

2. Don't use layers for any frequently used buttons, having to keep a button held for a while frequently just leads to more pain.

3. Function keys are mandatory. They aren't used frequently enough that having them in a "far" location is a problem, but when I do use them it is great that they exist (and don't require some strange layer combination press).

4. Home/End/PgUp/PgDown/Delete are all mandatory and should be somewhere near the (also mandatory) cursor keys and a shift key. Not sure how people survive programming without these buttons ;)

CarVac on 2024-04-29

1. More thumb buttons = more better, only if they are placed well (extremely close to the bottom row of the alpha keys.

2. Layers are fine for frequently used keys if activated by the thumb. I have backspace, delete, numbers (home row), symbols, punctuation, and the f keys on layers.

3. Yes.

4. Vim is the answer.

mcswell on 2024-04-30

Re your #4 (Vim), and the original commenter's #4 that cursor keys etc. were absolutely necessary: Since around 1990, I have re-mapped the Control keys on my keyboard to be cursor keys, using more or less the Vim arrangement (but not of course moded, except that the ^Q key toggles selection). There was also an article I saw in the past six months about how to convert they keyboard completely to Vim-style, i.e. it was moded. I forget whether it was for Linux or for Windows.

cranium on 2024-04-29

I found that layer on thumb + cursor keys on home row is really pleasing to use. It's like having a better HJKL working in all programs.

See https://github.com/FrameworkComputer/qmk_firmware/tree/maste...

riversflow on 2024-04-29

Yes! I have a layer accessible by a press and hold on my keyboard (mostly qwerty layout) that gives me arrow keys under FDSE, PgUp/Down and Home/End on 4,R,5,T. It also has custom chords of ctrl + shift, ctrl, alt+shift, alt on the Tab, Capslock, Q, A keys.

Really useful.

mcswell on 2024-04-30

Sounds similar to s.t. I did. Did you do this on Windows or Linux?

bloopernova on 2024-04-29

Your points sound like my daily driver keyboard might work: https://www.keychron.com/products/keychron-q10-alice-layout-...

samatman on 2024-04-29

I love thumb clusters. But I have large hands. The great thing about the Cambrian explosion of mechanical keyboards is that people can find a layout which works for them, mentally and physiologically.

Adverblessly on 2024-04-29

I have large hands as well (and proportionally long thumbs as well I think). I think it is just that my thumbs don't really "like" the rotations required to reach all the keys in the cluster. It also doesn't help that pressing with the thumb ends up being a "sideways" press, which is not a natural direction for the thumb to go.

goosedragons on 2024-04-29

How are you doing layers? I have zero pain problems holding the delete key (on my Kinesis Advantage) to shift into my second layer for things like (,),{,}. It's way less pain then the using a typical keyboard layout. Hell it's easier than actual Shift.

I think your other principles are pretty personal. I obviously never use delete. Rarely use function keys or home/end/etc. I use cursor keys a bunch but the Kinesis has those in a spot I like.

Adverblessly on 2024-04-29

> How are you doing layers?

With my thumb, since I'd need the other fingers to reach the actual buttons on the layer (usually). Sadly, this breaks my other principals so it doesn't work well for me. Not sure where you delete key is, but I guess it might work well with a pinky key instead (like I can use ctrl+something), but I don't really have a key like that I'd be willing to give up :)

> I think your other principles are pretty personal.

Very much so! Which is why the first sentence of my comment was "Here are my personal principals", emphasis on "personal" :)

goosedragons on 2024-04-29

Delete is on the left thumb cluster on the Kinesis Advantage. Would it be better if it was something like a toggle like Caps Lock?

mcswell on 2024-04-30

Original article: "Do you ever type function keys? I do not." Your comment: "Function keys are mandatory."

I'm in the "I never use function keys" camp, in fact I'd prefer a keyboard without them, since every once in awhile I accidently hit one and strange things happen (like the menu bar goes away).

I posted that (I think on the comments to s.t. at Ars Technica) and was severely downvoted. So I guess your camp is bigger than mine... But I still don't know why anyone uses function keys.

inawarminister on 2024-04-29

I like to write Clojure, and getting away from home row to write the parentheses was... annoying. I did try (and my fingers still remember!) Colemak a few years back, though.

I found Neo2, which is a German keyboard layout with 5-6 layers of keys (which is ironic since I don't actually... speak German). Tried Neo2 vanilla and Bone/other layout, but nowadays I'm just using QWERTZ + Neo2 layers, which is available for Linux and Windows/Mac with utilities.

Just look at the following layout!! https://dl.neo-layout.org/grafik/bilder-einzeln/flat/neo_qwe...

Now I'm thinking, maybe modifying Colemak with Neo2-style layer 3-6 might be perfect for me, and a few others...?

smartmic on 2024-04-29

I am also a Neo2 user for years and do not even think of changing back to QWERTZ. The community is quite active and spits out new, optimized layouts from time to time. They have their own tools for analyzing and optimization. Some background here (in German, use your translator): https://maximilian-schillinger.de/keyboard-layouts-neo-adnw-...

inawarminister on 2024-04-29

Thanks! The comparison table is really enlightening. I think I'll try hacking up Colemak first with layer 3-6, but if I can't make it I'll try habituating with KOY layout.

tapia on 2024-04-29

I started using noted (also a variant of neo2) [1] and I love it. I did change some things in the Layer 4 (mostly placed the numbers on the left hand and arrows arranged in-line, similar to vim). I really like how it works. I'm using a split keyboard, specifically the Lily58.

[1] https://neo-layout.org/Layouts/noted/

bloopernova on 2024-04-29

oh wow, I could absolutely see those home row keys being super useful if they are easy to get to.

weinzierl on 2024-04-29

The layout in the article is on a split ortho keyboard and I think this is the best arrangement for a modern keyboard.

What I think is not so obvious is, that the staggering makes traditional non-split keyboards bearable, because it allows to touch type with both hands at a slight angle.

At least this is true when using the European fingering. In the US version the number row is awkward to type with angled hands.

smeej on 2024-04-29

I tried switching to an ortholinear keyboard and found it ergonomically unbearable, even after tweaking the layout. My fingers DO NOT move in straight lines when I extend them! They are significantly farther apart when extended than they are contracted.

I was appalled when I found out most people who think ortholinear keyboards are an improvement have been typing Z with their little fingers instead of their ring fingers, X with their ring fingers instead of their middle fingers, etc. Sure, ortholinear is an improvement on that disaster of a hand position! But that's a terrible way to type, so not a good thing to compare to!

I'm baffled that people have enjoyed the experience. To me it felt like a torture device.

lawn on 2024-04-29

I totally agree. Ortholinear keyboards have crap ergonomics.

Column stagger is what you want, and maybe even a concave keyboard.

yoyohello13 on 2024-04-29

Yeah, I'm not sold that ortholinear is better. I switch between ortho and traditional often and honestly don't notice much of a difference in ergonomics. Really the biggest comfort thing for me is the split. Being able to open up my chest feels really good.

MetaWhirledPeas on 2024-04-29

> because it allows to touch type with both hands at a slight angle

I see this sort of thing repeated and I always feel compelled to disagree. I'm sitting here typing on a mono-ortho board and I can choose to angle my wrists or not angle my wrists. That part has nothing to do with the choice of ortho or stagger.

weinzierl on 2024-04-29

If you strech out your fingers from your angled wrist they will follow the angle because the joints in our fingers have only a single degree of freedom. Do you reach for the key vertically above and below or do you angle your wrist 45° and reach for the diagonals?

With a staggered layout the angle is somewhere between and similar to what most people angle their split halves.

MetaWhirledPeas on 2024-04-30

With a staggered layout the right hand digits align with the columns and the left hand does the opposite; it's at nearly a 90 degree angle! So if you believe wrist angle follows the keys then staggered would be far worse.

I don't think wrist angle follows the keys. You simply move your hands and fingers to hit the proper key regardless of wrist angle. No alignment necessary. So then the benefit of ortho becomes the ability to judge the placement of the keys better by feel, particularly the top row. (And it has the side benefit of allowing you to map a numpad over the keys more naturally, which is particularly attractive to me.)

weinzierl on 2024-04-30

This is only if you stick religiously to the finger placement that is classically taught and which was invented in the age of mechanical typewriters.

For these staggering was a necessity to prevent the typebars from clashing. The keys had a long travel and had to be hit with a lot of force from above like a diving eagle. Resting the palm was impossible and for a floating hand a short travel from key to key was more important than the angle.

A 2016 study[1] showed that consistency (always same finger for the same key) is a better predictor for typing performance than using a traditional 10-finger system or even ten fingers at all. Also the finger placement taught varies from where it is taught.

My point is that staggering doesn't make sense for a split keyboard and that most people unconsciously use the staggering of their regular keyboard as a poor replacement for a true split.

[1] https://dl.acm.org/doi/10.1145/2858036.2858233

EDIT:

"I don't think wrist angle follows the keys. You simply move your hands"

"minimal global hand motion" was the third best predictor for typing performance in the paper mentioned above. Unless you are typing on a Remington, anchor your palms and only move your fingers. Good for performance and good for your health.

MetaWhirledPeas on 2024-04-29

I use a homemade non-split "ortholinear" variant. You can make all sorts of changes in the name of optimization, but the truth is most optimizations have very little chance of catching on because they are opaque and confusing to normal people.

I have some of my own principles for making a keyboard that embraces change while still being usable to someone passing by. Yes they might hate it, but at least they could use it in a pinch.

1. Label your keys. Yes it's nice to have your layout memorized, but they have labels for a reason. That reason being that not everyone who approaches a keyboard has the layout memorized. And this is especially important for mission-critical keypresses. (And guess what's difficult to label? A chord.)

2. Don't replace mission-critical keys with a chord. Function keys (like F5) can do bad things when pressed accidentally. Requiring a chord for such a key is asking for accidental presses.

3. Try to keep your keys generally where they are with a standard keyboard. I bend my slanted columns into vertical ones, but for the most part the keys can be found near where you'd normally find them.

I also question whether some of the optimizations claimed by people are truly optimizations. Were you really getting carpal tunnel by occasionally holding the Ctrl key with your pinky? Probably not. Most of the strain I observe comes from simple overuse. The only times I've ever felt fatigue were when doing typing tests repeatedly.

I'm not trying to "yuck" anyone's "yum"; I just think we should be honest and admit that most of the keyboard changes we make are more about having fun, and less about practicality. I use some chords and I have fun in doing so. But I also know that all of that nonsense will be completely rejected by most people sitting down to actually use my keyboard, unless they happen to be slightly adventurous like myself.

I like to imagine keyboards that could perhaps (however fantastical) eventually catch on with the general public, given enough time and attrition. Those are the kinds of keyboards I build and use.

Symmetry on 2024-04-29

Interesting, but I think if I were to re-learn touch typing I'd go all the way and move to a chording keyboard.

https://en.wikipedia.org/wiki/Chorded_keyboard

thetacitman on 2024-04-29

Its not bad, and I would recommend it once someone starts going crazy with the layers. Instead of having layers, you have dictionaries that have sets of chords that all follow a similar pattern. For example, this is my symbol "layer": https://steno.sammdot.ca/emily-symbols.png Typing on a real keyboard is too much work, and I try to avoid it if at all possible. Few people seem to know this, but you can also chord single letters, it is just slower than chording a full word or phrase. I have dictionaries for cursor movement, almost any shortcut combination, html tags, cli programs, diacritics, etc. I don't know why it is not more popular.

ivanjermakov on 2024-04-29

Chording is efficient if you soley write text. It doesn't fit for text editing and writing text with lots of punctuation (code).

Symmetry on 2024-04-29

I dunno, not having to move your fingers from their positions seems like a big advantage even if you can't get the full X00 wpm an expert can get in regular text.

ivanjermakov on 2024-04-29

I agree that reduced finger movement is a crucial step in achieving typing efficiency. This is nicely solved by mod tap modifiers in QMK/ZMK[1] where key acts as a char when tapped and as a layer while pressed.

[1]: https://github.com/qmk/qmk_firmware/blob/master/docs/mod_tap...

benji-york on 2024-04-29

Something I don't see in keyboard layouts often is mouse buttons. I use a trackball between my keyboard halves and prefer using mouse buttons on my left hand while moving the trackball with the right.

https://imgur.com/Eac4PVL

AlexErrant on 2024-04-29

I have a Charybdis https://bastardkb.com/charybdis/

Highly recommend. I daily drive vim and still scroll around in there with the trackball haha.

My trackball's also on the right, and also use mouse buttons on the left, but of course everything's customizable.

ykonstant on 2024-04-29

An embedded trackball/buttons at the sides of a split keyboard like the Advantage 360 would be great. But my bigger issue with that is that I would like the thumb cluster itself to be on the sides, towards which the thumb curves naturally.

zubairshaik on 2024-04-29

Great write-up. Any one who wants to dive way way deeper into keyboard layout optimization should look into the subreddit[0] as well as the Alternate Keyboard Layout Discord. It is a shame that most of the collective knowledge is stuck on a proprietary platform like Discord but there is a wealth of information there. The current more highly recommended layouts for most people (because of statistics, ease of use, comfort, etc.) is a family of layout known as nrts haei named after the homerow for these layouts.

If you want to take a peek at them I recommend these two layouts and their accompanying motivations: Graphite[1] and Gallium [2]. I especially recommend Graphite if you want to optimize your punctuation for programming as well as your alpha keys, since most layouts don't consider moving around punctuation beyond the semicolon and the comma keys. Feel free to ask me any questions you might have.

[0] https://www.reddit.com/r/KeyboardLayouts

[1] https://github.com/rdavison/graphite-layout

[2] https://github.com/GalileoBlues/Gallium

stavros on 2024-04-29

I made my own keyboard, and came to the same realization regarding special keys. Now the parentheses are on my shift keys (press the left shift for opening parenthesis, right shift for closing parenthesis), and the brackets (square and curly) are tab+hjkl. That's much more convenient than hunting around with my pinky, and I don't have to press a button multiple times to switch in and out of a layer.

eviks on 2024-04-29

Or you could use some right-thumb-hold (or no hold, but one-tap) button with the more rows and skip the pinkies, and even add closing brackets for the same combo to offset the modifier cost

chrishill89 on 2024-04-29

I’ve made my own software keyboard using Xkb (Linux). Based on a standard (ISO/European) keyboard. It’s qwerty but I’ve made changes in order to (first motivation) more easily be able to write all kinds of symbols. So the number row is repurposed to providing keys like Shift, level 3 (after shift), level 4, and level 5. On both sides. For example shift is `4` and `8`.

- Shift: normal

- Level 3: mostly symbols

- Level 4: numpad on the home row (since I’ve repurposed the number row)

- Level 5: less used symbols

Also on the number row:

- Ctrl+V

- Ctrl+Insert (Linux: paste primary selection)

- Menu

- Compose key (both sides)

- Lock shift (Caps Lock leaves keys like `.` alone but this one locks to Shift for all keys)

In addition to the compose key I’ve mapped several unused keysyms (like Kanji) to map to various symbols and expansions. There I mostly use `key + <1> + <2>` where I can press `<1>` and `<2>` in any order (meaning two compose sequences for each). So I can press the initial key and then just mash the two others and get what I want. Those Kanji symbols are mapped to some fringe (to the sides) keys that I don’t need anymore because they’re on level 3.

It’s derived from my regional keyboard (Norwegian) but it could be modified to work with the standard US layout.

I’ve had some troubles with it after Ubuntu 22.04/Gnome 3. Now it only works in most applications. But not certain others like gnome-terminal. It seems to be because of the X/Wayland split. So there are some painpoints that I haven’t ironed out yet. And I’m not eager to start since debugging Xkb can be painful and non-obvious.

lawn on 2024-04-29

I'll advice against keycap labels and printing a cheat sheet.

Relying on them will feel better, but it's a crutch and you'll learn faster if you force yourself to do it the hard way of remembering.

And before you mention it, the layout I use is quite complicated, and I still think it's much better to learn without any aid:

https://www.jonashietala.se/blog/2022/09/06/the_current_t-34...

__mharrison__ on 2024-04-29

I would definitely advise creating a cheat sheet. But probably not want for the reasons you are thinking.

Custom/mechanical keyboards are a rabbit hole and you might end up with a few of them, each configured slightly differently. You might want to know how to come back to them (especially if they have blank keycaps or extensive layers).

samatman on 2024-04-29

Seems sort of irrelevant if one is already a touch typist.

Personally, I find labeled keycaps pleasant for a few reasons: One is that I have a glowy keyboard, which is aesthetically enjoyable to me (or I wouldn't have one), and it wouldn't be as much fun if the LEDs were just shining up through identical dots.

Also, I find it useful to re-register my fingers. I added Braille dots to all the alphabetic keys, so I can also do this by touch, but a quick glance down also does the trick. For whatever reason, checking that my pinky will hit p is the most common case here.

Last, I find it helpful with chords, especially when I add a new one to the firmware. Layers as well. I do intend to converge on what my other two layers do, but there's been some churn, and it's easier to remember what a key does on a particular layer when it has a distinct symbol. Modified key commands which I frequently use are part of the muscle memory, but when I'm adding a new command to the repertoire, precisely where the key finger needs to go once the modifying finger has hit command/control/meta isn't kinesthetically obvious at first.

Note that this is from a baseline of touch typing, so I naturally stop double-checking things once I've done them enough. If you don't touch type, do yourself a huge favor and learn. Some people find blank keycaps helpful here, especially if they have many years of whatever ad-hoc system they use to type with.

Some people aesthetically prefer no keycaps as well. Also functionally: it's just easier for them to think about a key geometrically rather than symbolically. I don't think there's a one-for-all answer on this.

lawn on 2024-04-29

> Seems sort of irrelevant if one is already a touch typist.

My comment was made with the context of learning a new layout (or a new keyboard or learning to touch type).

bradley13 on 2024-04-29

I spent a lot of time on this, back in my bored 20's. A super-optimized keyboard layout, which I used for a year. I measured my typing speed on qwerty before the change, and on the optimized keyboard after using it for a year.

Yep, you do type faster. In my case, it was 10%. Honestly, it wasn't worth it. There are way too many disadvantages, not least of which is the fact that that only your computer has your weird keyboard. Also, typing 10% faster is pretty irrelevant: how much of your time are you typing flat-out?

If you need an ergonomic keyboard, that's a different thing. There are lots of those. Get one that uses qwerty.

bbojan on 2024-04-29

I'm probably much older than you, and I found the reduced travel or the alternative layouts much more important than speed. Your hands will thank you one day.

__mharrison__ on 2024-04-29

I went down that path 10 plus years ago. When I was writing my first book, my fingers got really sore.

I built (two) ErgoDox(en) and ended up using the Norman layout with various attempts at layers over the years. I'm now using a Lily58 with low-profile choc switches that I'm generally happy with.

I'm fine switching back to Qwerty keyboards, but if I were to go down the path again, I would advise myself to stick with Qwerty. I still have a pretty crazy keyboard layout and appreciate the ergonomic features.

Also, I've realized that everyone is different, and what works for one might not work for someone else.

Advice that I think works for everyone is to listen to your body. If your body is telling you that something isn't right, take steps to address them.

dustincoates on 2024-04-29

> not least of which is the fact that that only your computer has your weird keyboard.

Fair, but how often are most people typing on someone else's computer? (Outside of developers who do pairing.)

NikolaNovak on 2024-04-29

at home I have a number of laptops. Any of them may become a shared laptop at any point in time with zero notice :) ( I already get enough grief for having the black original Das keyboard on my main desktop.)

At work there's less sharing but back when we were in the office, it happened. I also have two work provided laptops (one from my employer and one from client) which are heavily locked down.

Finally there's all the other keyboard manifestations in my life - on my work iphone and my personal android phone and the tablets and all the tv apps that pop up a keyboard to sign in etc.

Qwerty may be suboptimal but it's freaking everywhere.

bradley13 on 2024-04-29

For me, it somehow happens all the time. Helping out co-workers, friends or family. Using a different workstation than usual (we no longer have assigned desks). Sure, you can mentally "switch" layouts, but it's a pain.

Then there's the reverse: My PC at home - wife wants to check something quickly without turning on her PC.

Finally: I regularly use both a PC and a laptop. Depending on how weird you want the layout to get, there may not be a way to use it on the laptop. Schlepping an external keyboard around - nope, not practical.

eviks on 2024-04-30

The reverse is solved with a single button activating the default qwerty layout?

The direct with family is similar - you can have an extra layout installed

So the leaves even fewer cases where you really have to switch (but unfortunately not 0, no easy mechanisms to just easily switch to a some downloadable layout named after you on the fly at any computer)

dannyz on 2024-04-29

Similarly I switched to Colemak, and I agree, it's not worth it for most people.

I switched because I never typed with proper technique in QWERTY. I would only use ~2 fingers on my right hand. I tried multiple times to retrain myself but there was just too much muscle memory. The only way for me to switch to proper technique was to switch layouts.

lawn on 2024-04-29

> There are way too many disadvantages, not least of which is the fact that that only your computer has your weird keyboard.

Meh. I can type fine on both my weird layout and on a regular one (either Swedish or English layout).

Your point about speed I agree with, but I'll say that the point of an alternative layout shouldn't be speed, it's about comfort.

zZorgz on 2024-04-29

I've been typing in both qwerty and colemak around the same speed (>=100 WPM) for almost a decade. I ultimately ended up deciding to use qwerty at work and colemak at home. At least for me the comfort difference between layouts is marginal.

samatman on 2024-04-29

This problem can be largely avoided, for those of us who use a laptop frequently (most of us, I imagine): just leave the laptop layout standard, or lightly modified. I've remapped all of three keys, as a result I can use a stock keyboard with a smallish amount of mental adjustment.

The split key ortho plugged into my monitor, therefore, can be as weird as I want. It's heavily customized and I can do more with it, faster, easier. I do type about 15% faster flat-out with it, but more importantly, I can send λ with little more effort than `l`. But since the laptop has the default layout, I remain "bilingual", two independent muscle memories can be maintained pretty easily if one regularly uses both.

The ortho does have a QWERTY layout for the alphabetic keys, since I don't see the point in changing that, but I don't expect it would make a difference if it didn't.

kugla on 2024-04-29

I believe that https://github.com/manna-harbour/miryoku should be mentioned here.

ivanjermakov on 2024-04-29

Adjacent: https://github.com/davidphilipbarr/Sweep

Sweep is a 34-key split PCB design that you can print and assemble yourself.

Happy user for over 3 years.

knallfrosch on 2024-04-29

I bought a Glove80 which has everything: split, ortholinear, concave, mechanical, wireless, backlight, open firmware..

But find myself switching back to a default keyboard nevertheless.

Instead of trying to reach everything with my fingers and reaching for those faraway keys, I just move my arm – that's far superior. Also I can switch which hands hit the middle keys like G and H.

Plus I can type some stuff one-handedly, which is simply not possible on a split keyboard.

zubairshaik on 2024-04-29

I think if you are switching over for speed gains or just for fun, sure it may be inconvenient and not worth the effort. However, many people switch to ergonomic split keyboards because they have to due to RSI or tenosynovitis (as was my case) or at great risk of such.

For those people, I highly recommend you to go ahead and buy a Glove80, you will actually be able to type again without pain. It's a learning curve, but gaining back control of your own hands is so, so worth it. You also need to be patient, it took me about a month and a half before the pain was entirely gone. I also continue to do my daily hand, wrist and arm exercises which help greatly as well.

ElCapitanMarkla on 2024-04-29

I built a Corne a year ago and while I love it for most things I still find I stumble around looking for brackets and special characters at times. And I find I use the numbers often enough that I'd like to try with a board with a dedicated row.

I have a new case to print which adds a number row and four keys down the bottom right so I can add dedicated arrow keys. I quite often want to hit some of those keys with a single hand but I may need the modifier from one half and a key on the other.

000ooo000 on 2024-04-29

I settled on Workman 8 years ago, as the methodology behind it seemed pretty sensible. It's definitely nicer to type on than qwerty, IMO. I do however notice occasionally that some words are skewed to a particular hand. It definitely doesn't plague me, nor is it enough of a bother that I have even looked at other layouts. I wonder if it's even possible to adjust the layout to improve this, or does the same problem just pop up somewhere else, so to speak.

james2doyle on 2024-04-29

I use Workman as well. I tried Colemak (a bunch of variants) and it never sat well with me. There are some words on Workman that hammer the same hand. "People" is one that trips me up sometimes that is very common. Overall, I like Workman too

000ooo000 on 2024-05-01

Yep I know exactly what you mean. I just assume that other layouts have equivalent words that are strange/awkward to type; seems unrealistic that there's a layout out there that is perfect for every common word. In any case I don't stress too much about whether or not the layout I use is the #1 top dog. The main thing was getting off QWERTY and onto something else that uses the home row more, because QWERTY hitting that top row a lot isn't the nicest for my average-sized hands (i.e. the scissoring motion contributed to a bit of discomfort long term).

bbojan on 2024-04-29

I found Workman horrible for same-letter bigrams.

After testing a lot of different layouts I've settled on a slightly modified Colemak-DH.

zargon on 2024-04-29

Do you mean same-finger bigrams? I can't think of how same-letter bigrams could have an effect on layout preference.

dm319 on 2024-04-29

Reminded me of an interesting way to optimise a layout[1] here. I feel like something similar expanded to also optimise balancing between hands etc could work well.

[1] https://youtu.be/EOaPb9wrgDY?si=x1hY8SP5noPWamWP

nprateem on 2024-04-29

Jeez, the stretch to the furthest thumb keys is an RSI injury waiting to happen.

konfusinomicon on 2024-04-29

moonlander is best lander. if you type for a living, buy one and never look back.

gbrindisi on 2024-04-29

disagree, it is a good keyboard but the thumb cluster is not ergonomic. There is better, especially if you are up to build one yourself with a kit. Otherwise the voyager is already an improvement over the moonlander.

zubairshaik on 2024-04-29

For a full size keyboard, I'd highly recommend the Glove80 [0] instead. For something more compact and portable, look at ZSA's own Voyager [1].

The reason I'd recommend the Glove80 is because a keywell is just so much nicer to type on, especially if you want to actually be able to use the number row without straining your fingers. Their thumb cluster is also the most sane one that I've come across, and the absolute though put into the design is astounding and commendable [2]. The article is definitely worth a read.

I recommend the Voyager especially if you are a believer in 1DFH (1-distance-from-home)[3]. It has very few keys so you'll have to learn about layers [4] and/or home-row mods[5] or my favorite callum-style mods [6].

[0] https://www.moergo.com/

[1] https://www.zsa.io/voyager/

[2] https://www.moergo.com/pages/glove80-ergonomic-keyboard-desi...

[3] https://zealot.hu/absolem/

[4] https://blog.zsa.io/layers-explained/

[5] https://precondition.github.io/home-row-mods

[6] https://github.com/callum-oakley/qmk_firmware/tree/master/us...

tiltowait on 2024-04-29

Have to say I also disagree[0]. For my money, the Keyboardio Model 100 has been the best keyboard in terms of functionality and acceptable compromises, but it’s not perfect either. I miss the Kinesis Advantage’s key wells (note: if you’re looking to buy one, buy the 360, not the Advantage2), but the Keyboardio’s thumb cluster and palm keys offset that loss.

Looking at custom keyboards, the Dactyl is probably quite good.

[0] Even if it’s a huge step above normal keyboards.

lawn on 2024-04-29

Hard disagree.

The thumb layout is designed for very large hands and way too many keys in difficult to reach positions.

Fact is, there's no one keyboard that's ideal for everyone.

bbojan on 2024-04-29

I would say it's an excellent entry level split ortho keyboard, but it's quite large. Later you can go to a 50 key one or lower.