I designed my own keyboard layout. Was it worth it?
jonashietala.se
jonashietala.se
Sometimes I ask myself, why? Surely by now, I should have symptoms...
I genuinely think it's because I spend most time thinking and reasoning, navigating through code, and very few time actually typing. I don't have long steady streams of typing nearly as much as if I type a message here for example.
I also don't type "properly". My fingers travel. Which is why I never could get on board with split keyboards. I type fast, even though I was never taught how to type properly. The H key for example will be accessed by both hands depending of the word I'm typing as to save time, and my left hand travels way further than the right (invades the right).
A big difference I've found though is to drop keyboards with keypads. That way, my QWEF fingers are about inline with my left shoulder (slightly off inwards) and my mouse in the right hand is in front of my right shoulder. My resting hand are angled with the thumb area being clearly above, even when mousing.
All I can say after years of working on CRTs is to make sure you neck/shoulders are where they're supposed to be. Use a small pillow for your lower back (above your bottom), and that your natural gaze on the screen is just below the chrome of whatever application is in front of you, at arms distance at least. Also make sure you have glasses that protect your eyes as much as possible from fatigue (sharpening/blue filter).
If you have RSI, as a software developer, consider copilot. It takes off 70% of my typing these days.
It is like a game, where you think it would be like go or chess that skills is strongly correlated with outcomes. But I’d think that is more like monopoly, where great skills with poor luck will not save your day.
From what I’ve seen and read and experienced, some people do all the wrong things and never have developed RSI, some does everything correctly and yet a mild usage of keyboards results in RSI.
You can be a heavy smoker, drinker, and never exercise yet live a healthy life until you're a 100 years old.
Or you can eat healthy food, exercise, and do all the right things, yet be plagued with poor health your whole life.
It took months before I was 'up to speed'. I thought I would type significantly faster, but that is'nt the case as I often think slower then that I can type. It's much more about comfort. I don't regret it, it really is more comfortable. I switch between QWERTY and DVORAK-IU often so I am bilingual. Typing in alphabetic shorthand (for example Yash) with yet another optimized layout is another possibility. Or Yash with morse code or braille mapped like chording or just chording. https://www.artofchording.com/layout/chorded-keyboard.html
Soon we will be talking to our LLM's a lot, so it's not a real big deal, but the nerd in me likes to optimize. Still I think, perhaps I could have designed the very best layout for my personal style and Dutch en English and the latest theories regarding what's more optimal (rolls, hand alteration, compression, chording). Perhaps an LLM can help? Not sure if I want to learn a new layout again. In the meantime alternating between QWERTY and DVORAK-IU suits me well.
Regardless of how good voice interfaces get, the inherent limitations and restrictions that come with it means that we'll all still be doing a whole lot of typing until/unless a new and better input method is invented.
Or maybe it would be a combination of internal voice and ephemeral voiceless conception, or maybe thinking with "intent". Whatever it would be, it would certainly take effort to some degree.
Maybe AI could filter that nonsense out based on contextual clues, but not the AI we have so far, hence I think the monologue would need that second voice. 'Remember Nikki, think all code things and only code things in scottish... Aye, I shall.... och, bollocks!'
What sort of limitations/restrictions do you see with it, beyond accuracy (which is continually improving)?
Such as... voice is really awful at communicating with great precision and exactness. It can certainly be used for that, but it rapidly becomes tedious and very time-consuming. Using a keyboard is faster, more accurate, and more convenient for that sort of thing.
People have been saying this for decades. I think of "dragon naturally speaking" and similar. It still doesn't seem mainstream. (maybe it is but not visible to me?)
that said, I still remember this video:
On the bright side, it will settle the debate on tabs vs. spaces once and for all.
I've been playing around with re-arranging some of the keys (particularly above the arrow keys) but I'm trying to keep the majority in the same place because I can't exactly expect this keyboard everywhere and it's already a big enough pain going between different standard layouts. Oh, and the caps lock is a layer key for whatever seems fun, I'd like to find a good way to enter raw unicode hex values via the number pad in that layer mode but I haven't really gotten that far.
The other big feature is it'll also stay completely unmarked. Partially because it looks nicer, partially because it means looking never really helps you just are made to remember very quickly, and partially because that means if anything doesn't work out it's just a reprogram of the firmware or using a single type of key so they can be moved around instead of ergonomically shaped for their position.
Hearing it was worth it for the author (for whatever reasons) is good to hear. I honestly don't think I'll find all this worth it... but at the same time it is one of those things where "even if it's not worth using once it's made it's worth not wondering if it would be anymore".
I used it for around a year, but I'm back to qwerty now, specifically on a low-profile keyboard with red switches from aliexpress.
Pros:
- Some people think it's cool
- It's interesting to do it
- It's fun getting fast at typing on a new layout
Cons:
- Most people think it's weird
- It can get expensive
- Although I was eventually able to switch quite seamlessly between my layout and qwerty, for a few months my qwerty skills were very bad.
- If you don't want to carry it to and from work, you need 2 keyboards, or suffer two layouts
- When typing I sometimes found myself thinking about the keyboard and layout rather than what I was writing
- There's no ergonomic benefit that I could see, but I don't have any problems with normal keyboards
I also went back, partly 'getting back up to speed' frustration and partially because I'm really not sure what I was going to get out of it. After almost 40 years with qwerty keyboards ... it doesn't seem like i'm going to get that much benefit if there is even a measurable benefit.
After some time we had some touch typing in classes at school and it was so painful trying to have my hands square on. So I just ignored that whole thing and continued my style.
Never had any issues.
In particular I learned to cook both professionally and for my own benefit and I discovered around professional kitchen that cooks are taught many stupid things that are mostly about covering somebody's ass for security or enforcing an inefficient way of working to keep people busy. You would be amazed how little relevance the pro cook learning has to the actual completion of the task efficiently; in fact they would often gain so much efficiency if they learned to let go of their learned behaviors.
Another pet peeve of mine is the requirement of "warming up" before sports like running or the like. In my youth, every single sports teacher of mine pissed me off by requiring this nonsense even though I really felt it was at best a waste of time and even counterproductive. And now we actually have studies that prove this as a fact, which would have been clear to someone who is not completely incompetent. Also, I have the performance numbers to back this up nowadays, so I am not taking any more of this nonsense.
In general, I feel it is sometimes hard to explain nicely to people that their limitations do not necessarily apply to everyone; it gets pretty hard to patiently listen to peoples that are clearly mediocre trying to teach you how to do stuff even though they are not very successful at the task they are teaching.
Usually a bunch of vague concepts pop up.
Pianists transfer a lot of data with timing, force, duration and pressing multiple keys simultaneously. They also get to use more than one keyboard.
I did some toy text compression fooling around, enough to think we have the means to figure out what the most frequently used symbols and combinations are for a specific task.
Autocomplete probably offers great clues too. a key could be " = function(" with a key "){" to the right.
Imagine a HTML keyboard that has keys for tags, you have it on the side attached to an arm, the less often you use it the further away.
The big button at the left top is called: <!DOCTYPE html> <html> <head> <title>
An additional coding keyboard can have a button for a "for(var i=0;i<" and one next to it ";i++){"
long press allows a custom var in stead of i
just spewing thoughts here, i haven't done the homework nor the required pondering to call it ideas.
Maybe it isn't ideal to press buttons as it involves a lot of muscles that could send signals on their own.
Typing while wearing data gloves could capture failed key presses, use them for autocorrect.
if the brainwaves are also detected it seems possible to gradually get more lazy with your typing without losing anything.
Maybe looking at keys on the many dedicated keyboards could be enough to trigger them at least eventually.
posture could also do things. Stand while typing for all caps.
I kept qwerty but moved each half outward so g and h are now where f and j used to be. From there I moved all of the outer keys to the two new columns in the center, plus a few other tweaks. Got enter on the corner so it's a palm-press.
If I use a normal keyboard my pinkys start to hurt again, goes away when I switch back to my custom one.
I actually just passed my one year anniversary using the "Workman" layout on an ErgoDox EZ. I also eventually added home row mods. My current layout is here: https://configure.zsa.io/ergodox-ez/layouts/aPAE5/latest/0
I am not faster than I am on QWERTY when using my built in Macbook keyboard. But man, is it way more comfy. I did manage to recovery from some serious wrist pain I was getting when using QWERTY and the standard layout. So I will stick with a split ortho keyboard and Workman for now.
Before anyone mentions it, I did try Colemak and Colemak-DH and I didn't like either. They just didn't sink in the same way that Workman did. I think the Workman home row is more comfortable to me.
None of them helped. Surprisingly the thing that helped was getting a really good chair (I recommend a second hand HM Mira; don't get anything that sells itself as "ergonomic"), and a really deep desk so you can properly rest your forearms on the desk.
With that my RSI went away completely, even with a totally plain qwerty keyboard.
Dvorak was definitely nicer than QWERTY but when you add up...
1. You know qwerty. You'll probably never be as fast with Dvorak.
2. Ever want to type on any other keyboard in the world again? Yeah good luck. You will underestimate how often you type on coworkers' keyboards.
3. Ever use keyboard shortcuts? Well now they're awful.
... it definitely isn't worth it.
But speed is just a matter of experience. I don't know if I'm faster on Dvorak, but a speed that is really hammering keys in Qwerty feels comparatively effortless in Dvorak.
I think I can be faster on Dvorak because I type less quickly and with more comfort to reach the same level.
In terms of speed: I learned Dvorak, then went back to QWERTY. I returned to Dvorak a few years ago, and can now be faster with Dvorak than I was with QWERTY.
Are the other HM chairs any better?
I'd say this points more to "it's necessary to retain QWERTY".
Slightly bigger problem is if others want to type on your keyboard; you need to be able to switch it to QWERTY easily.
> Ever use keyboard shortcuts?
Yeah, this one does count against Dvorak.
Similarly, with mouse & keyboard stuff like Blender or CAD, you'll need to actually recall the letters are; which is different than when you've got two hands on the keyboard.
The main other things I'd say which count against Dvorak is that it will take some time to learn; and probably your motor-memory will be awful while learning it (so typing on any keyboard will be slow and error prone).
Still, I'm glad with the increase in comfort I got from learning Dvorak. (And these days I'm faster with Dvorak than I was with my undisciplined QWERTY).
I can type still type on a regular keyboard with qwerty perfectly well.
> Ever use keyboard shortcuts? Well now they're awful.
Nah, you just have to keep that in consideration when designing the layout. Colemak keeps the most important ones in the same place, and the layout in OP has a dedicated shortcut layer for the ones not in a comfortable spot.
I eventually assembled a design with a few more keys, pretty similar to the Voyager.
I switch between this and the Microsoft Sculpt, and it definitely helped me with the constant discomfort.
There is a FAR greater custom keyboard market with ANSI layouts and that one is exactly that. ANSI layout for the traditionally ISO Nordic languages.
I could see myself getting into it if I only had to bother with a single layout, but since I deal with three different layouts on a daily basis, no way.
On Linux and Mac it's no issue to input both using Dvorak.
On Android, however, none of the Chinese input methods support Dvorak so I had to decompile and modify Google Pinyin's APK and rearrange the XML layout files to Dvorak.
https://github.com/dheera/android-googlepinyin-dvorak
I never learned QWERTY, so I'm extremely bad at typing with it even on a phone, regardless of language.
While I can still function on a full-size QWERTY keyboard on account of using them regularly, I almost never pick up someone else's phone, so my thumbs have forgotten it entirely.
It is annoying that Windows keeps Qwerty for it while Mac uses Dvorak. If it was just consistent (I constantly switch machines) it would be easy to handle and entirely subconscious by now...
But I start typing the wrong layout every time and lose a few seconds mentally reorienting myself.
https://medium.com/@jiayu./how-to-set-your-pinyin-ime-keyboa...
Of course if you want the most efficient (you first have to decide on the factors, and the most efficient combination) layout for each language of the most efficient for the average of each language you can have a nice hobby for a year. I was afraid I'd end up with an esoteric layout and then after a few years find out that there was a better layout and I would learn that one all over again. Instead I decided to stick with DVORAK with an improvement tweak so it would be also more or less be usable on Android en iOS.
I found it hard to switch layouts, I'm using only one with layers. On first layer there are english letters, second layer there are accents (a → á) and some symbols where accent is missing (m → +). On third layer there are arrows on home row and functional keys. Shift without other key is `(`, on second layer `{`. There are some additional keys at the bottom and middle, they cover the rest of symbols. Outliers are mapped to start editor, browser, ctrl+c, ctrl+z, volume, mute, …
I really like having a single layout. I don't like that I'm no longer able to type on QWERTY without looking at keys. On my desktop, I'm 10 % faster, on any other computer I'm 90 % slower. Would I do it again? Probably yes.
Because English and simple ASCII made such a nice team, just wondering, not trying to say anything diabolically odious or even ďábelské ódy
(I was making a macaronic joke, didn't look up the translation of that till after, but it was perfect! "devilish odes")
What you could do is to replace an accent with an ASCII character. Compare the name of town Český Těšín with its Polish equivalent Czeski Cieszyn (Č → Cz, ě → ie, š → sz). Actually, this is how we got here, 600 years ago Jan Hus (John the Goose) added diacritics to shorten a few diagrams in written language.
- Diacritics, for example in German, make writing and reading easier than English and you cannot have ghoti[1]
- Diacritics, is an easy way to avoid di-grams and tri-grams: English has "sh", Czech has "š" (it's not a decoration, it has a true meaning)
- ASCII seems to make a nice team with English because it's an American creation. Should English had some accents that ASCII would have included them, like dollar sign (this is an "S" with a stroke…)[2]
- Languages that could go with out vowels are those where words forms have no ambiguity. In English, "bt" for example is ambiguous because there's "bit", "bat", "but", "boat", etc.
So you are just having a ethnocentric point of view, that's human.
For me, moving to a programmable keyboard and using a non-QWERTY keyboard has 100% been worth it
https://configure.zsa.io/ergodox-ez/layouts/40EJq/latest/0/2...
This isn't a common feature, but I've seen that Dumang keyboards can do this.
https://www.velocifiretech.com/products/dumang-dk6-ergo-v2?v...
> customiseable keyboard i want is one made of glass - a screen like macbook’s touchbar
Other than using a tablet as a keyboard (I guess), I've seen keyboards like https://fluxkeyboard.com/ which sorta seem to go for this "customize the labels based on what I'm doing".
IMO, though... your hands are covering the keycaps. If you have to look down at the keyboard to see the labels, it's going to be more cumbersome than just presenting a toolbar on the screen.
I smashed the screen on my phone one time and this piece of tech that could summon a car was useless. I was stuck/had to figure out a bus system, was hungover so it was bad. I was thinking of vibration input.
I still rely on/envision the standard qwerty layout
Those rock wrist rests are fancy
I will say, having learned Colemak early on has made me give up on learning vim more than once for the same reason you highlighted -- I want to have my navigation on the homerow but the burden of remapping all of the keys without knowing what I'm doing was too high. I've heard that many people just use hjkl in the standard Colemak positions and don't remap keys at all, but that seems crazy to me, since they are spread all over and J is in the worst possible spot on the keyboard.
But other than that I just learned all the positions from scratch. For me it's not so much the positions I think about, but the mnemonics. For example "d" deletes, so I just have to think "press d", not "press this key in this spot. So learn the new layout and the Vim commands will follow.
middle click opens tabs, thumb button to close after scrolling down a bit, putting me at the top of the next thing i middle-clicked a few tabs ago
refusing to upgrade it until i can find another mouse that will let me bind Ctrl-W to a button without a daemon running (onboard memory only)
https://www.keychron.com/products/keychron-q1-pro-qmk-via-wi...
This layout seems cool though I'm pretty sure you could find one w/o the f-frow.
I've gone with a 65 for my only 'flat' board. https://www.keychron.com/products/keychron-k2-pro-qmk-via-wi...
You might be able to find one with the hhkb 'missing molars'..
HHKB/Realforce did make a hhkb lite with inverted-t arrows in 2001... you can see it on this page: https://hhkeyboard.us/about/history
The whole 'least keys possible i'm 31337 hax0r' optimization fuckery I just find hilarious.
I tried out a friends glove80... it's just kinesis but still worse, there are a few things that kinesis does. It's better than the ergo-dox because keywells.. it's better than the glove 80 because of the keycap profiling. I do think the profiling on the 360 is a little worse than the older advantage 1/2 but it's pretty good. .. but like the glove 80 all the keycaps are the same height from the switch and it's not great.
(to give props advantage basically stole from maltron but the build quality on those is so so shitty.. vacuform cases sometimes)
On most typical keyboards, your thumbs only get to press one huge spacebar. (Which means for keys like shift, enter, backspace, the hands need to move, or the pinkies need to stretch).
Whereas, most of these "31337 hax0r" keyboards allow each thumb to use two or three keys each. With that, the thumbs can then use backspace/enter/etc. without the fingers having to stretch, or hands having to move.
Putting very commonly used charters on a modifier and probably two modifiers (layer+shift is common to get to a third layer) for keyboards with ~40 or under keys is connotative overhead for quite a while no matter how you cut it.
Sure, but it's a different cost, rather than an additional cost.
Any key that's not within reach of your hands at rest on home row, your hands will either need to move, or your fingers will need to stretch to reach them.
The sub-40-key keyboards trade-off the cost of a more sophisticated keymap, for the benefit of bringing the full functionality of the keyboard within reach of the hands.
I mention steno because so many responses are about RSI and, as far as I can tell, there is no better solution today to RSI than steno.
Simply, steno is a chorded keyboard in which some combination of keys maps to some output. You press down the keys and the output is handled on release.
The mapping can be anything you like. A common one is phonetics. Assign each key to sounds like "Kuh", "Eee", "Buh", "Oh", "Er", and "Duh". You press down, release, and translate that to "keyboard". There are many improvements possible (that happen). This is just a basic example.
Speech-to-text often comes up. This is a valid solution, as it removes the problem (hands). However, it presents at least two major problems. One, you need to develop a theory pretty much identical to steno. As far as I know, no standard theory has been developed. Steno has been around for at least 100 years. It's well understood. If you use a steno system for voice, you can use a steno system for steno. Two, you have to talk which is not only tiring, open office spaces are trendy and not going away.
The most common response is, "But can you code with steno?" Yes! Absolutely! And it's great! I have programmed professionally exclusively using steno for at least two years, full time.
You need two features to make steno practical for programming. In the steno jargon, these are called "repeat" and "one up".
Repeat is straightforward enough. It allows you to repeat a keystroke. The problem arises because steno is chorded. The stroke is only sent on release. Doing something like pressing "<down>" becomes hell if you must do separate strokes. Repeat typically works by looking for a "double tap", a press-release-press-and-hold within some short time threshold.
"One-up" means being able to send a partial stroke. Again, this shows up with navigation. A common way to map up-down-left-right is with a "prefix" and a key pattern that looks like WASD. For example, the left hand may hold down STPH and the right hand maps up-down-left-right to PBRG (see https://i.ytimg.com/vi/ZAkkTtsPKOA/maxresdefault.jpg). This means STPH-P maps to up, STPH-B to down, and so on. Again, stroking each movement separately is hell. However, one-up allows you to hold the prefix, STPH, and then press and release the remainder of a stroke, such as -P. In this way, you can navigate and fingerspell easily. Combined with repeat, this feature makes programming with steno practical.
Steno is obviously a commitment. It's also less keystrokes. Keystrokes is a root problem. Steno took me about 3 months of 15 minutes practice in the morning each day. The world record is something like 360 words per minute. I find that 30 wpm is sufficient to do practical programming work. Think of it like the difference between Yngwie Malmsteen and Kurt Cobain. One is technically possible and cool, the other gets the job done.
You learned to program. You can learn steno. It's worth it. Best of luck with your RSI and do go see a physical therapist. Seriously!
A steno theory is a correspondence between key combinations and output. The theory is a (hopefully) cohesive system for remembering that mapping.
By academic research, I don't know of any. I don't know of any for 1:1 keyboard mappings either. I suppose you could say that "used by the entire profession of court reporters daily for a century" might constitue some kind of research. A steno theory can behave more like a language than a layout. It may evolve over time and has an associated culture. But it also operates at the individual level. No two steno users will have the same dictionary.
Mark Kingsbury, the world record holder, uses some touch sensitive board thing that isn't mechanical (if I recall correctly).
There are plenty of keyboard hobbiests who make chorded boards, some with more keys, some with less, some in line, others with curvature.
This gets a little in the direction of "what is steno"? Is it the STPHKWRAO*EUFPLTRBGS layout? Is it the common portions between theories? What differentiates "steno" from "chorded"?
I'm only familiar with Plover steno theory. It's hard to imagine that theories would exist without a phonetic fallback (in the event that you don't know the stroke for a word). All of them will have fingerspelling.
For English, there's at least Plover, Phoenix, and StenEd. Other languages have theories, too.
All theories have "briefs" which are strokes assigned to something other than phonetics. Instead of writing A/TKEUGS/AL ("a", "dishn", "al") for "additional", you can stroke ALG. The STPH-P for up is another example of a non-phonetic brief. In that case, the "theory" is the shape of the key layout. Some people go crazy and just memorize a bunch of, essentially, random key-to-output mappings. I've heard that's pretty close to what Magnum is like. It's mostly brute memorization based on statistical frequencies of words and phrases and "easy to stroke" keys. That's how you get to 360 wpm.
I still envy people who use it though, particularly for coding.
One thing I'm skeptical about is how efficient would it be with Vim? I spend a lot of time navigation around in Vim and I don't think steno would be helpful here, and maybe even a detriment as you now have to use more keys for basic commands?
Steno is at least as efficient with Vim as Vim is with a keyboard. Vim works by pressing a single key and mapping it to a command. Steno still allows you to send single letters. hjkl lose their benefit because each has a different shaped stroke. But then you could use arrow key equivalents like I described above with the STPH prefix. So, no real loss there. That's the only "loss" I experienced when using Vin. You still keep the verb-word benefits.
Contrary to your concern for having to use more basic commands, because you can define any mapping you want, you can create shortcuts for common sequences. For example, if you use dip a lot, just map that to one stroke (maybe something like TK*EUP) rather than needing to stroke d-i-p. If you did that enough, you might instead define a left-hand prefix or settle for always doing two strokes, one to say "the next stroke is a Vim abbreviation" then having the second stroke be a brief for whatever vim stuff you want to do.
A conceptual downside is you end up having two layers of mapping: 1) the steno mapping between the key and the output and 2) the mapping between the output and the application (in this case Vim). That is, you might press SKWR for "j". That's the steno mapping. Vim then receives a "j" and runs whatever command is associated with it. In practice, it's not a problem.
Anytime you want to add new functionality to your keyboard, you just add new chords/dictionaries instead of physically having to add/move letter locations or add some insane layer system that only has one or two use cases. I don't know why its so hard to explain to people.
I been using qwerty since the IBM PC XT where a thing. Before that my mother tauch me to type in eletronic typewriters. It's a terrible layout for Portuguese, ok for english, but but I spent so many years perfecting the necessary motor skills to use it that I would prefer to lose a hand than type in anything else now.