I must be lucky but I haven't developped RSI since I've been programming non stop since the 90s.
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.
The fallacy in your argument is to think RSI means something wrong is done.
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.
I'm an okayish speed typer, I use Emacs bindings, and use a full keyboard layout my entire life. No RSI. My hands are quite large though, so perhaps I strain less without thinking about it.
Colemak was just released when I decided to switch to a better keyboard layout to prevent a return to RSI. I looked into rolling my own based on statistics.
I didn't care if it would look like QWERTY, if I needed to switch cold turkey for my health or future comfort I'd do so.
I decided to use the tried and true DVORAK and tweak a minimum to make it even beter; switch the U (qwerty F) and the I (qwerty G) as the I is used much more frequently in both English and Dutch. Next to being optimized for finger travel the DVORAK layout has more so called 'hand alteration' during typing due to the vowels being on the left.
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.
> Soon we will be talking to our LLM's a lot, so it's not a real big deal
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.
The only replacement for typing I can see taking over would be a mind interface, but even there I have a suspicion that it'll require 'thinking in a different voice' that'll make it almost as tiring as voice control.
I had the same thought. Maybe it would be like our internal monologue voice (which I learned not everyone has). So instead of just one in there, we'd have two.
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.
I don't know about anyone else, obviously, but my internal monologue is very poorly focused at times, I can be mentally editing code and suddenly think about donuts, or squirrels.
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!'
Accuracy incurs secondary problems today; in my experience, I type slower than I can talk, but I type much faster than I can talk to a computer and have any hope of being understood. Now, I do have high-ish hopes that this problem will be rendered obsolete in the next few years, but it remains a problem so far. The other thing that occurs to me is sort of connected and also something that might be fixed soon; I can type arbitrary symbols and words that aren't in the dictionary with no extra overhead, and I don't trust a machine to handle that. However, I suspect that sufficiently accurate voice-to-text combined with even current LLMs may be up to the task of handling that, so this whole comment really might boil down to "give it 5 years and we'll see".
Accuracy isn't one of them, because that's not something inherent to using voice as an interface. I'm thinking of aspects that are inherent to communicating by voice at all, not even related to machines understanding it.
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?)
I simply don't like a speech-based interface, but I think it's unfair to compare STT tech from even a few years ago to something like Whisper. It's dramatically improved in both accuracy and speed.
I'm working on kind of the opposite of what most everyone does: a larger-than-full-sized keyboard. Bringing back the f13-f24 physical keys (mostly because they make good non-global hotkeys), surrounding the number pad with characters for hex, : for IPv6, "," bc why the hell isn't it there, moving the number pad to the left so the keyboard is more balanced.
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 tried to switch to workman a while ago. I only did it on my kinesis advantage (my main work board). I left my gaming keyboard, normal flat 65. I was able to switch back and forth but I credit that to a kind of muscle memory because of the advantages physical layout.
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.
When I learned to use computers I naturally gravitated towards holding my arms at about 45 degrees, with fingers on left-shift, A, W, D and K, O, ;, '.
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.
I find that most of the time people pretend there is a proper way to do things its actually them talking about their lack of skill or insecurity. They seem to have it right because they have been doing the thing for much longer than you, so it is almost always an unfair comparison. If you look at it through the prism of ability development over time, it completely changes the dynamics and I believe those people are very often wrong because they only speak from their experience that is driven by their mediocrity or lack of skill.
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.
This sounds like 'hah, I have that one trick', but as someone who benefited a lot from being conscious about the ones posture... please, take a look at yourself before.
one of my innovation formulas is to query/ask what completely obvious thing everyone has missed all along.
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.
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 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.
I had RSI and experimented with Dvorak, vertical keyboards, even vertical mice (terrible idea).
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.
I learned Dvorak 30 years ago due to RSI, and it's a pain for reasons 2 and 3. Maybe 10 years ago I just dropped it and went back to Qwerty. Got RSI, switched back to Dvorak, fixed 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.
Even without RSI, overwhelmingly the anecdotes about Dvorak are that it feels more comfortable.
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.
> Ever want to type on any other keyboard in the world again?
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).
About keyboard shortcuts, with vim and ctrl-c/v I decided to use the characters of the layout, otherwise I thought it would be to confusing. But X, C and V are so comfortably next to each other that I sometimes make an exception.
> 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.
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 tried vertical mouse, and the biggest issue with it is that you need to rotate your wrist each time you reach for the mouse. Just using a keyboard without numpad solved the issue. Back in the days when I used a keyboard with numpad, I positioned my mouse below the keyboard (near the Space key) and it was a big improvement in terms of hand travel distance.
I got a HM Sayl. It is comfortable but it makes a racket of squeaks, creaks, and wailing noises every time I move. So much so that I try not to move at all during meetings these days. My previous $80 Staples chair didn't have this problem.
I've used quite a few Sayl chairs at my uni, I've never noticed them making any squeaks. Though my (2nd hand) Ikea marcus is pretty noisy. I think if you open up the chair and re-oil it it should be good.
I went through this rabbit hole about 2 years ago. I assembled 2 versions of also 34 keys designs, split, low profile keyboards. That helped a lot with my RSI but eventually my thumb got stressed since is constantly requested for the layers.
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.
Jonas' keyboard layout is so awesome and incredibly inspirational for my own journey -- probably the single most read documents that I've spent time with this year.
The only one I’ve seriously considered is to open the mechanical keyboard market for me as a Nordic ISO layout user by using the Swerty layout: https://johanegustafsson.net/projects/swerty/
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 do a custom layout to get the diacritic non-English letters from my "proper local" layout but all the special characters/symbols as per US keyboard, since the "proper local" layout has them moved around for some reason. That was annoying, so many years ago I spent the 15 minutes to prepare the layout files and then I just need to install them on every new computer I get.
I wish would-be keyboard designers would read John Napier's marvelous book Hands, because I see little evidence of the biomechanics of the hand being considered in any sort of systemic way by practitioners.
Does anyone do this and type in multiple languages regularly?
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.
I use Dvorak and regularly type in both English and Chinese (Pinyin).
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.
I recently switched to Dvorak for iOS, which I was delighted to find as an option.
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.
Yes. I'm also using my own layout on ErgoDox EZ, my languages are Czech (příšerně žlouťoučký kůň úpěl ďábelské ódy) and English. I'm also a (neo)vim user.
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.
I'm a native English speaker (with a lot of study of Frènch) and I am deeply grateful that English, while we have many dire critics, does not have diacritic accents. But it makes me curious. Could Czech (and the Scandi languages) do away with their diacritics and just stop using them? DONT INTERRUPT LET ME FINISH the question. I understand that you're used to it, and it's "nice", but is all that decoration absolutely necessary? SHUSH I'm not done. Let's look at Hebrew and Arabic: they don't indicate any vowels. Sounds crazy, sounds intolerable, but they get along just fine.
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")
- 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.
The difference between `s` and `š` is similar to `s` and `sh`. Can you omit `h` in Englis? Well, tecnically yes, but you canged the language. Same on you!
yes, I agree, that's the point I'm making: it's doable like abjads and their vowels. And by coincidence, only does Hebrew not have vowels, it also does not distinguish between s and sh, they are both that W-looking character! That's the spirit in which I was asking the question, they don't distinguish, but they still have no trouble reading and writing.
Unlike English, it's possible to read Czech without knowing the words (no tricks like "tomb"). If you omit accents, one would either have to know correct pronunciation or he will read it differently.
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.
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.
I don't use Windows so I don't have an definitive answer for you but it seems possible to have Dvorak+Pinyin. This is 6 years old so I don't know if the latest versions of Windows work the same way
Yes, I type in Dutch, English and sometimes German. You have to check if the distance advantage also goes for the three languages, for me they all are more efficient and more comfortable in Dvorak with the I and U reversed.
It's not that much more comfortable, but definitely noticeable.
When you have had RSI anything that makes typing more comfortable helps.
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.
AZERTY (french) keyboards made some unimportant choices which just turned out horribly over time. I can't remember exactly but in the age of MSWindows and the internet, characters like \\ and @ (I think) were just buried away so deeply. I have a number of French friends who can't deal, they just use QWERTY keyboards.
It has one clever design choice that nobody followed though: the fact that numbers are not wasting a full row of your keyboard without modifiers. Like, if I want to type a number I can start by pressing shift then typing the number, while all the braces I want to use are separated, and on a lot of layouts this implies using Shift which is annoying. (Or use the numpad, one more reason to not give them that much importance on the keyboard)
I made my own crossplatform multilingual layout [0]. Although it’s based on QWERTY, it shouldn’t be hard to remap the Linux and Mac versions to any other base layout, since they’re autogenerated from the Windows version.
Why would anyone switch layouts, unless they're more than bilingual in non-English and layouts somehow comes with mutually offending differences? ASCII is subset to everything. Your national keyboard should be able to handle it.
For those just looking to dip a toe in different layouts: I remapped movement keys and it's awesome. I made a demo so you can see for yourself: jkaptur.com/layout/
I use QWERTY layout on Ergodox with some keys removed. Moving symbols to a separate layer and Esc to Caps Lock position was enough to relieve my hands.
The only customiseable keyboard i want is one made of glass - a screen like macbook’s touchbar - where i can move keys around, add custom keys, or simply “enable” and show only those relevant to what i’m using. Ie if i play a game to only shows wasd plus tool keys. And those tools keys to be renamed to whatever their purpose is.
> 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
With custom layouts how do you deal with editor shortcuts? I tried Dvorak but the cost of losing vim muscle memory was too high for me. Do you remap editor shortcuts (e.g. hjkl navigation) or do you learn the new positions from scratch?
Colemak user here, one of nicest things about Colemak IMO is that the ZXCV keys on the bottom row stay in the same location. I tried out a variant for a while that had XCDVZ and my brain could never get used to it. For other common shortcuts (Ctrl+T when browsing, Ctrl+F, etc) I didn't find it too hard; I guess some shortcuts are more muscle memory and others are associated with the letter in my mind.
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.
I (the post author) designed the layout with Vim in mind, so I placed hjkl in decent spots and added som Vim specific combos.
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.
If all I did was type on my own private keyboars maybe I would consider another layout. But since I spend quite some time on other people's computers it is not worth the brain-knots that happen when switching.
i think the ship has sailed on qwerty for me, but it's hard to deny the benefits of a thumb cluster keyboard. i've had a kinesis advantage sitting on my desk for a couple of months but have yet to figure out the best way to remap the thumb cluster for emacs. and the days when my wrist hurts enough to motivate me to try using it are the days i definitely, definitely don't have time to have my productivity crippled by my silly keyboard.
For Emacs with Kinesis (or Glove80), move Control and Alt where the arrow keys are. I have been using it that way for quite a while, and it has been working great.
I know i've seen them but it might be easierjust to go with a layout like one of these.. I'm not suggesting this particular company, i have no experience.. but just easy to find photos:
The ANSI HHKB does not have the arrows, but if you're willing to use the JIS HHKB, it actually comes with dedicated arrow keys, and even a split spacebar with extra thumb keys that you can reprogram with software to act however you want.
I’m pretty happy with just plain HHKB, just wish I could have that layout on a laptop. Maybe one of these days some company will produce aftermarket HHKB layout keyboard components for Framework laptops…
I'm super happy with it. So much so that I have two. However, occasionally I do want to "play pacman with one hand and eat pizza with other". Impossible to do with HHKB.
If you haven't experienced RSI to the point where you understand that reaching for distant keys is literally painful, then I can see how you might come to the conclusion that it's just for e-peen points.
Yes about 20 years ago, I switched to a kinesis advantage (then called the essential) it solved all my problems and I still have a relatively normal amount of keys.
Lots of the fancy keyboards coming out at the moment are settling around the layout the advantage has had for decades (although usually without the nice curve the advantage has).
yeah no the whole ergo-dox moonlander blahblah family is just 'advantage but way easier to build cause it's flat'... and they all suck because they are flat.
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)
It is fun, you learn something in process, nothing wrong with that. E.g. knowledge I have acquired while playing with keyboards was beneficial while fixing some home appliances and toys. I don’t have any health problems like RSI and find it more comfortable. And BTW there is end game - you can create one key Morse keyboard that is actually usable https://blog.ffff.lt/posts/morsilka/
I've built half a dozen keyboards I've build handwired, bought pcbs off the shelf and designed my own pcb for a custom 'keyboard' for a space flight simulator so that i could more easily use it under vr. It's fun and all, but chasing the how few keys do i need genie is a waste of time.
> The whole 'least keys possible i'm 31337 hax0r' optimization fuckery I just find hilarious.
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.
i use one of those keyboards but one with a sane number of buttons (kinesis advantage) I have access to 12 thumb keys. Modifiers, space, backspace, delete, enter being the primary ones I use, but also pagup, pagedown, home, end.
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.
> Putting very commonly used characters 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.
well good luck with your optimal 10 key keyboard so that you never have to move your fingers. Or one of those crazy datahand style boards where there are four buttons surrounding your fingertip.
Every time I see a post like this, I mention steno (stenography). I do it not to dunk on someone's fun. I think this project is super cool and inspiring. I hope to do my own design some day.
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!
I wanted to dive into steno, but it seems to be at least a factor more effort to learn than even a custom layout which is already pretty high. I have no doubt it's more efficient, but it was just a step too far for me.
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?
Thanks for letting me know what questions you have.
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.
Steno is so-so worth it. Its harder (but not by much), but actually is useful. I went full-time steno after three months of practicing.
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.
It's a mapping between some keys pressed and some output. If you really need emojis, make that your output. I map A-R to "->" for C programming. You could map HR*APHD (for "lambda") to λ if you wanted. Honestly, the bigger restriction is whether the receiving application handles Unicode.
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.
thanks, that looks very complicated, but maybe it's still very fast, so hence my original question - has there been some research into those improvements? Maybe adding an extra key would make it much better? Maybe in some cases holding is better (like repeatable cursor movements), etc
If you mean at a hardware level, yes. But that's not unique to steno.
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"?
What do you mean by "research into those improvements"?
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.
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.
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.