16 ms·
Principles for Keyboard Layouts (2022)
- stavros 2y agoI 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 2y agoOr 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
- kugla 2y agoI believe that https://github.com/manna-harbour/miryoku https://github.com/manna-harbour/miryoku should be mentioned here.
- ivanjermakov 2y agoAdjacent: https://github.com/davidphilipbarr/Sweep 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.
- dm319 2y agoReminded 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 https://youtu.be/EOaPb9wrgDY?si=x1hY8SP5noPWamWP
- Symmetry 2y agoInteresting, 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 https://en.wikipedia.org/wiki/Chorded_keyboard
- ivanjermakov 2y agoChording is efficient if you soley write text. It doesn't fit for text editing and writing text with lots of punctuation (code).
- Symmetry 2y agoI 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 2y agoI 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.md https://github.com/qmk/qmk_firmware/blob/master/docs/mod_tap...
- thetacitman 2y agoIts 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 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.
- bloopernova 2y agoI 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-qmk-custom-mechanical-keyboard https://www.keychron.com/products/keychron-q10-alice-layout-...
- gumby 2y ago> 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").
- 000ooo000 2y ago>gives you stats You might enjoy toying around with this: https://patorjk.com/keyboard-layout-analyzer https://patorjk.com/keyboard-layout-analyzer Config in the top right lets you load other layouts.
- 2y ago
- bradley13 2y agoI 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.
- dustincoates 2y ago> 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.)
- bradley13 2y agoFor 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 2y agoThe 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)
- NikolaNovak 2y ago
- konfusinomicon 2y agomoonlander is best lander. if you type for a living, buy one and never look back.
- bbojan 2y agoI 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.
- gbrindisi 2y agodisagree, 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.
- lawn 2y agoHard 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.
- tiltowait 2y agoHave 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.
- zubairshaik 2y agoFor 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/ https://www.moergo.com/ [1] https://www.zsa.io/voyager/ https://www.zsa.io/voyager/ [2] https://www.moergo.com/pages/glove80-ergonomic-keyboard-design-journey-1 https://www.moergo.com/pages/glove80-ergonomic-keyboard-desi... [3] https://zealot.hu/absolem/ https://zealot.hu/absolem/ [4] https://blog.zsa.io/layers-explained/ https://blog.zsa.io/layers-explained/ [5] https://precondition.github.io/home-row-mods https://precondition.github.io/home-row-mods [6] https://github.com/callum-oakley/qmk_firmware/tree/master/users/callum https://github.com/callum-oakley/qmk_firmware/tree/master/us...
- 000ooo000 2y agoI 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.
- bbojan 2y agoI found Workman horrible for same-letter bigrams. After testing a lot of different layouts I've settled on a slightly modified Colemak-DH.
- zargon 2y agoDo you mean same-finger bigrams? I can't think of how same-letter bigrams could have an effect on layout preference.
- james2doyle 2y agoI 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 2y agoYep 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).
- inawarminister 2y agoI 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_qwertz-3-numpad.path.svg 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...?
- bloopernova 2y agooh wow, I could absolutely see those home row keys being super useful if they are easy to get to.
- tapia 2y agoI 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/ https://neo-layout.org/Layouts/noted/
- smartmic 2y agoI 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-koy.html https://maximilian-schillinger.de/keyboard-layouts-neo-adnw-...
- inawarminister 2y agoThanks! 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.
- Adverblessly 2y agoHere 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 ;)
- bloopernova 2y agoYour points sound like my daily driver keyboard might work: https://www.keychron.com/products/keychron-q10-alice-layout-qmk-custom-mechanical-keyboard https://www.keychron.com/products/keychron-q10-alice-layout-...
- goosedragons 2y agoHow 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 2y ago> 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" :)
- weinzierl 2y agoThe 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 2y agoI 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 2y agoI totally agree. Ortholinear keyboards have crap ergonomics. Column stagger is what you want, and maybe even a concave keyboard.
- yoyohello13 2y agoYeah, 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 2y ago> 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.
- lawn 2y agoI'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_keyboard_layout/ https://www.jonashietala.se/blog/2022/09/06/the_current_t-34...
- __mharrison__ 2y agoI 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 2y agoSeems 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.
- benji-york 2y agoSomething 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 https://imgur.com/Eac4PVL
- ykonstant 2y agoAn 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.
- AlexErrant 2y agoI have a Charybdis https://bastardkb.com/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.
- chrishill89 2y agoI’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.
- nprateem 2y agoJeez, the stretch to the furthest thumb keys is an RSI injury waiting to happen.
- knallfrosch 2y agoI 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 2y agoI 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.
- zubairshaik 2y agoGreat 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 https://www.reddit.com/r/KeyboardLayouts [1] https://github.com/rdavison/graphite-layout https://github.com/rdavison/graphite-layout [2] https://github.com/GalileoBlues/Gallium https://github.com/GalileoBlues/Gallium
- ElCapitanMarkla 2y agoI 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.
- MetaWhirledPeas 2y agoI 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.