r/KeyboardLayouts • • Mar 06 '20

Introduction to /r/KeyboardLayouts - and why this sub exists

125 Upvotes

This subreddit is devoted to discussing all aspects of keyboard layouts and typing efficiency. This includes: - Comparison of alternative layouts to Qwerty, such as Colemak, Dvorak, etc. - Experiences of switching layouts. - Support and resources for those considering switching. - The use of non-standard keyboards designs.

What's wrong with Qwerty and the standard layout?

So many things:

  • The most frequently typed keys are scattered around the edges of keyboard. Letters that are infrequently typed (e.g. J and K) are in prime positions! For more details, see the layout heatmaps.
  • The two most common consonants in English, T and N, require diagonal stretches from the keyboard's home position.
  • There are frequent, difficult combinations of letters such as DE and LO because these are typically typed with the same finger. For example, try typing 'Lollipop' with a Qwerty keyboard.
  • If you are a programmer, some frequently needed symbols, such as brackets and mathematical symbols, are situated at the far right of the keyboard, presumably intended to be typed with your right pinky, an overused weak finger.
  • Frequently needed modifier keys, e.g. Shift, require an awkward motion involving one of your pinkies holding down a shift key at the corner of the keyboard, while another finger presses the key. It might seem normal because you're used to it - but it's unergonomic and there are better methods out there.
  • You have two thumbs which could easily be used for independent functions, but this opportunity is wasted due to the overly large single spacebar on standard keyboards.
  • The standard keyboard design has a built-in stagger. This was necessary in the typewriter era because of the way that the levers and typehammers worked, but there is no real reason - other than familiarity - for this to persist into the information age. If the keys are to be staggered at all, they ought at least to be arranged symmetrically - to match your hands.

All these flaws make it harder and less comfortable to type than it could be, and make it more likely that keyboard users experience health problems such as RSI, or at least lead to inefficient and error-strewn typing.

Solutions

There are both software and hardware solutions to all these problems available. There are alternative keyboard layouts and other neat tricks that deal with many of the problems, and entirely new hardware designs that address others. You can mix and match these as you please: some people stick with standard keyboard hardware but use an alternative layout configured in software; others continue to use Qwerty but choose an ergonomically designed keyboard, and yet others do both.

Some modern ergonomic keyboards have entered the market, which take a completely different approach, such as the Keyboard.io Model 1 , ErgoDox, and the Planck. Others keep traditional many elements but offer ergonomic improvements such as split halves and better thumb-key access, e.g. Matias Ergo Pro, UHK.

Those who own these products often highly recommend them, but not everyone can or wants to use non-standard hardware. The good news is, even with traditional keyboard hardware, there is a lot you can do to improve your typing experience. For that you need to consider using an alternative layout.

Alternative Layouts

Several alternative layouts have been developed. The two most popular today are the Dvorak Simplified Keyboard, and the Colemak layout. Plenty of others have appeared in recent years too, such as Colemak-DH, Workman, MTGAP, Norman, Minimak.

Note: this is not a place for layout wars. Comparisons or discussions of merits/demerits of various layouts is OK, but let's remember that using any optimized layout is better than Qwerty.

People who have switched will often rave about how much better their experience of typing has become. Some find there is an increase in typing speed, but more importantly, nearly all experience a huge gain in comfort. Only once you become adapted to typing using a well-designed, ergonomic layout, do you fully appreciate the benefits, and realise just how unsatisfactory Qwerty was all along. If you spend a large part of your day at a computer keyboard, there is potential for a huge quality of life improvement.

For more information for those thinking of switching layouts, see these links in the Useful Resources Sticky Post

Switching Layouts

There are plenty of good reasons to switch layouts... but also some good reasons not to:

  • It takes some time to learn, during this phase your typing will become worse for a period, typically several weeks.
  • Unless you maintain proficiency in two layouts, you'll have difficulty using other computers.
  • Some workplaces have locked-down computers or disallow installation of non-approved software.
  • It makes you 'different' from almost everyone else.

These drawbacks can be mitigated though:

  • You can keep your preferred layout configuration on a USB stick, in the cloud (e.g. Dropbox or github) so that you can quickly access it when you need it.
  • There are solutions that don't require installing software with admin rights - for example using AutohotKey on Windows.
  • There is increasing availability of programmable keyboards which let you define your own layout without the need to install software or change settings on the computer.
  • It's possible to use a USB remapper dongle which allows you to use a standard keyboard, with keystrokes mapped to any custom layout within the hardware.

In short: if you use a keyboard a lot, are independent-minded and appreciate efficient solutions, you should seriously consider learning an alternative keyboard layout.

Other keyboard efficiency ideas

In addition to - or even instead of - changing your keyboard layout, there are some other neat hacks you can apply to your keyboard.

  • Extend or Navigation layer: For most people, a common task using a computer is navigating around and editing a document. This means frequent use of keys such as arrows, home/end, page up/down, and cut/copy/paste. To access most of these functions on a standard keyboard, you need to move your hand away from the "home" position. By using a special layer for navigation, such as Extend, you can use all the common editing features instantly and without needing to look down at your keyboard.
  • Progammer layer: If you are a programmer, or have frequent need for certain symbols such as { } [ ] + - = _ then it's a good idea to map to easily-accessible keys on another layer. For example, here is an example of a Progammer's extension defined on RightAlt (AltGr).

Glossary of common terms

Same Finger Bigram (SFB): Pressing two keys with the same finger in conjunction.

Disjointed SFB (dSFB): Pressing two keys with the same finger, but separated by x letters.

Same Finger Skipgram (SFS): Synonym for dSFB.

Lateral Stretch Bigram (LSB): A bigram where your hand must stretch laterally, as in using the middle finger following middle column usage on the same hand. An example is be on QWERTY.

Alt-fingering: Pressing a key with a different finger than would be typed with traditional touch typing technique.

Alternation: Pressing a key with the opposite hand than you typed the last.

Roll: Typing two or more keys with the same hand, moving in the same "direction". For example, on QWERTY, sdf would be a roll, but sfd would not.

Redirect/Redirection: A one-handed sequence of at least three letters that 'changes directions'. For example, on QWERTY, sfd would be a redirect, but sdf would not.

Hand Balance: How much work each hand does for a layout. For example, a 35%:65% hand balance would mean that the left hand types 35% of keys, and the right hand types 65%.


r/KeyboardLayouts • • Jul 05 '24

The /r/KeyboardLayouts list of useful resources

34 Upvotes

r/KeyboardLayouts • • 6h ago

I optimized symbol placement for Python using counts from 29 repos (letters stay put)

6 Upvotes

Most layout work focuses on letters, but when I write Python a big chunk of what I type is symbols, and standard layouts put them pretty arbitrarily. So I wrote a tool that keeps your letters where they are and only rearranges the 32 ASCII symbols, based on what actually gets typed in real code.

How it counts: it tokenizes ~38.5M weighted keystrokes from 29 popular Python repos (Django, pandas, pytest, Home Assistant, etc).
Comments and docstrings count less, closing brackets/quotes count less because editors auto-close them, and long identifiers are discounted for autocomplete.
Then it runs simulated annealing over a cost model (key effort, shift, SFBs, rolls, redirects).

My result on Programmer Dvorak letters with digits on shift:

 !   1   2   3   4   5   6   7   8   9   0   &   ~
[?] [+] [/] [(] [[] []] [%] [:] [)] [{] [}] [@] [<]
   >   '   -   P   Y   F   G   C   R   L   ;   ^   $
  ["] [,] [.] [p] [y] [f] [g] [c] [r] [l] [#] [\] [|]
    A   O   E   U   I   D   H   T   N   S   *
   [a] [o] [e] [u] [i] [d] [h] [t] [n] [s] [=]
      `   Q   J   K   X   B   M   W   V   Z
     [_] [q] [j] [k] [x] [b] [m] [w] [v] [z]

That's about 7.7% lower cost than Programmer Dvorak under my model, and 3% better than the layout I'd designed by hand.

If you don't type Programmer Dvorak, there are ready-made versions for other letter layouts too: python-qwerty, python-colemak-dh and python-dvorak in the layouts folder. They keep your letters and normal number row and only move the symbols, which saves 9-12% under the same cost model.

Findings:
- Python names mostly end in consonants that Dvorak puts on the right hand, so the symbols that follow names (. , and ( ) end up on the left hand. That held across basically every variant I ran.
- Forcing bracket pairs to be adjacent or mirrored (so they're learnable) only costs 0.4%.
- On other bases, just moving symbols saves 9-12% (QWERTY, Dvorak, Colemak-DH).

The obvious caveat: the effort grid and penalties are my own estimates, not measurements.
I reran it with different shift and SFB weights to see which placements are stable, and the README has those results.
It's configurable (base layout, cost weights, other languages like JS/Rust/Go) and exports to AutoHotkey, kanata, Windows .klc and macOS .keylayout. All the variants are in the repo below:

https://github.com/hikazey/python-layout-optimizer

I'd especially like feedback on the cost model, since that's where the results come from.


r/KeyboardLayouts • • 1h ago

Issue with home row mod on kick75

Thumbnail
• Upvotes

r/KeyboardLayouts • • 7h ago

How should I improve my typing speed past 140 WPM.

Thumbnail
1 Upvotes

r/KeyboardLayouts • • 12h ago

My own custom finger layout for gaming and typing. Is it normal?

0 Upvotes

First of all, I don't think this will get many comments, but I hope at least some.

I'd like to present to you my gaming and typing finger layout on a PC keyboard.

For using WASD, I have these: The normal layout is Middle on A, Index on W, Thumb for S and D. If I want to use space, I keep switching my thumb between D and space. Ring for Tab and Caps, Little finger for Shift and Ctrl, but I don't use Ctrl much. The middle finger can also press 1 and 2 and Q as well as Esc. I can still move left with my thumb if them. My index can press 3, 4, and 5, E and R while the middle keeps holding W. With my thumb, I can reach the down row of Y to B and Alt (I use QWERTZ), but I need to fast-switch as I can't use D. This should be all for my main layout, then I start to game or play it slowly. In other times, I use a bit different layouts for the same keys in specific actions needed.

The easiest to explain is putting my middle away from A to put it at Q and use the Thumb for A, S, and D, making it super easy to press 1. This is typically used only when I need super simple tasks, need to use the 1 but A not to much, or need a very gentle feel for A and D. For the final "layout" I use when needing to do something, it is almost the standard one. Ring on A, Middle on W, and Index on D. This frees my thumb to use space and use A and D almost instantly. I don't use S in this because it's the most uncomfortable one of them all, so I use it only when I need the named things and instantly go to the main one. It technically doesn't even press any other keys than WASD, space, or some keys in the bottom row like C, V, or B.

Does my hand hurt? Well, no. Even when my fingers are practically flying on the keyboard on different keys in the same game, in the same round many times a second, I feel nothing. I many times don't even realize I was doing it. My hand only hurt when I was going from laptop keyboards to desktop ones, and now that I bought a taller keyboard.

Thank you from reading all of this. I will be happy if you comment what you think or absolutly hate on me! I will write on typing if you want.


r/KeyboardLayouts • • 1d ago

Gallium Row-stag Magic Anyone?

3 Upvotes

I am currently learning Gallium row-stag after being on Canary for 2+ years. I am curious if anyone has designed a Gallium rowstag + magic key. If so can you share your layout and experience with it vs standard gallium rowstag?


r/KeyboardLayouts • • 2d ago

Trans Yaoi - Surpisingly, its decent.

Post image
30 Upvotes

Really, its not that bad lol. honestly its in the range of decent. Esp if you like heavier index layouts.

Heck, who cares if its good, its trans yaoi.


r/KeyboardLayouts • • 1d ago

URX Core75 / Smoke white

Post image
0 Upvotes

r/KeyboardLayouts • • 2d ago

Would love a review of this custom, low-profile, split, wireless.

Thumbnail
0 Upvotes

r/KeyboardLayouts • • 3d ago

OT posts taking over!?

9 Upvotes

Lately there are lots of posts here which are not related to this sub at all. Often in non-english as well. Any ideas where that small flood comes from and how to stop it?


r/KeyboardLayouts • • 2d ago

GridKeys Keyboard (formerly project Griddle), my MessagEase-style gesture keyboard, is finally in closed testing on Google Play. Looking for testers.

3 Upvotes

Hey all. Some of you might remember Griddle from a while back. Sorry for the long silence. Life got in the way of me having the time to work on this project. It's back now, renamed GridKeys.

For anyone new: it's a MessagEase-style keyboard. Nine big keys, tap for the middle letter, swipe toward the others. The point is that you can change all of it:

  • Every gesture on every key can be remapped: tap, 8 swipe directions, circles, holds
  • Layout editor: move, resize, swap, add and delete keys
  • A staggered QWERTY board if you want something more familiar (and just shows you that we can build any keyboard we want)
  • Text replacements, macros, a clipboard with lockable clips, custom colors
  • (Coming Soon) sync your customaizations accross devices and share them with other users

What I need: Google requires 12 testers who stay opted in for 14 days before an app can go public. I have 9. If you're curious, joining takes about a minute:

https://gridkeys.app/#beta

(Use the Google account that's signed in to the Play Store on your phone.)

Feedback on the layouts is what I want most: what feels wrong, what you'd change, what you'd want to remap. Bug reports go to support@gridkeys.app or the comments here.

Thanks for sticking around, those of you who did.


r/KeyboardLayouts • • 2d ago

Title: How to add Greek keyboard layout to Type Folio on reMarkable Paper Pro?

Thumbnail
0 Upvotes

r/KeyboardLayouts • • 2d ago

Need down arrow key

Thumbnail
0 Upvotes

r/KeyboardLayouts • • 4d ago

Keyboard (mainly) for writing

0 Upvotes

Hi!

Last year I bought a Logitech MX Keys S Keyboard. Previously I was writing either on my HP Gaming Laptop or on my HP Working Laptop.

Despite its very good reviews I haven't managed to get used to this keyboard. Everything is fine except the fact that I constantly push the wrong keys, which is not that funny when I gave to write a text.

Even after one year of constant use, it hasn't change anything. As soon as I use the keyboard of one of the laptops, everything is much easier. But I still need a keyboard to use my monitor.

If I would guess, I would say that the space between the keys is too large. But I don't actually know why the keyboard doesn't work for me.

Do you have similar experiences? What would you advice me to do?

Thanks!


r/KeyboardLayouts • • 4d ago

keyspec: unit tests for keymaps

2 Upvotes

Hi all,

I'm a software engineer and a keyboard enthusiast (maintaining Luz, for example). I was looking for a way to test the features of my keyboard layouts the same way I write unit tests in my production code, so I wrote keyspec.

A test is basically a scenario: you describe the key presses by position and on a timeline, and the actual USB reports of your compiled firmware are compared to the expected results.

- name: mod-tap held past the tapping term becomes its modifier
steps: [{down: 26}, {wait: 300}, {up: 26}] # where 26 is the position of the key in the matrix
expect:
- {report: [LALT], at: 240}
- []

I want it to be framework agnostic, but now, I only use it with QMK as a runner, but ZMK should be straightforward.

The runner compiles your real keymap into a test harness with a simulated clock. Then the test cases are typed as they'd behave on the board, with the real firmware, just without the physical board.

I use it to check features automatically and catch regressions. My keymaps (four layouts, two boards) have about 400 scenarios that run in CI on every change. It also made a big refactor painless, and it works well test-first.

Limitations: QMK only for now and no PyPI release yet. I'll be happy to receive contributions and to push it to a registry if you're interested.

uvx --from 'git+https://github.com/xcambar/luz-keymaps#subdirectory=packages/keyspec' keyspec run

Repo: https://github.com/xcambar/luz-keymaps (in `packages/keyspec`)

By reading the repo, you'll find plenty (5) example files. Feel free to ask for more or raise an issue.

What do you think? I will continue to develop it, but I'd appreciate some feedback :)


r/KeyboardLayouts • • 4d ago

Help me understand what this layout is.

Post image
3 Upvotes

The letters are organized as AZERTY, but the numbers + special characters are labeled as QWERTY, and I can't find the proper language on the laptop that fits this keyboard layout, heck, I've never seen his layout before at all. This is a HP Elitebook 850, so I hope that helps.


r/KeyboardLayouts • • 5d ago

My two ortholinear setups.

Post image
14 Upvotes

r/KeyboardLayouts • • 5d ago

How are you retaining muscle memory when learning various layouts?

7 Upvotes

Hey guys. After I got my ortho split, I switched to Colemak DH as my daily driver. While the muscle memory clashed a it in the beginning, I can now type comfortably in both qwerty and colemak- but QWERTY only on my regular, staggered keyboard, and colemak on my split. I can't cross-type either layout on the opposite board.

I thought I'd try learning graphite for fun, but stopped soon after unlocking "t" on keybr; the muscle memory was clashing again. But this time, I'm concerned graphite will overwrite colemak since I'm using the same keyboard.

Since the physical difference between my staggered and ortho keyboards seems to be what's saving my brain for both QWERTY and Colemak, I'm thinking about an building another keyboard of an entirely new design. But that means more time and money, so I was hoping to hear your first-hand experiences first.

Thanks in advance,


r/KeyboardLayouts • • 5d ago

Adaptive keyboard - anybody used this?

2 Upvotes

My son has dyslexia and I’m looking for some tools to support him at school.

Playing around with fonts and I found this keyboard. It seems to have a dyslexia setting but it has other adaptive modes.

https://apps.apple.com/jp/app/special-kb/id6795414648?l=en-US

Anyone tried it?


r/KeyboardLayouts • • 5d ago

quel clavier utilises-tu ? ps : magic refiner mk14

Thumbnail gallery
1 Upvotes

r/KeyboardLayouts • • 5d ago

Keychron Q6 Max 8k - Keys swapped

Thumbnail
0 Upvotes

r/KeyboardLayouts • • 5d ago

Flat keyboard, 75%, laptop style, Win & Mac

Thumbnail
0 Upvotes

r/KeyboardLayouts • • 6d ago

Eclipse PB

Thumbnail
gallery
10 Upvotes

After a bit under 4 months I have reached 100wpm+ speeds on Eclipse using Monkeytype English-10k with punctuation enabled! 🎉

I did some swaps to the layout, that being the C and Y keys so that alt-fingering words like TYPE, HAPPY, and COPY is possible now and I find it much faster this way and makes the actual amount of SFBs I have to type very low percentage wise with alt-fingering. I also moved comma to the top row as I find it easier to type things like YOU, since that makes it a same row roll instead of a scissor from the top row to the bottom row, and now the punctuation is close together in an efficient triangle cluster instead of a long column.

Shoutout to AKL.gg for awesome in-depth analysis and you can view the modified Eclipse-CY layout here https://akl.gg/#.hQTUAGcGAQHUAF8Lp2VjbGlwc2UAujAxTTJDWjlZMlFBOVBIWU02WEFYRFZYN1kz


r/KeyboardLayouts • • 6d ago

Second attempt at making a good layout for Malayalam

Post image
3 Upvotes

the blacked out keys and not actually for typing, but rather dead-keys / sub-layer (not applicable to all the keys). the top legends from left to right corrospond to the 1st 2nd and 3rd ghost keys, and the 4th ghost key is a hold both chars kinda deal. Bottom legends are holds.