Keyb is a Mac app that lets you type more easily with one hand. It was inspired by the concept of a half-QWERTY keyboard, plus the need to be able to type with one hand while holding a baby. If you often find yourself typing with one hand, this app may be useful to you.
Download the latest release from the Mac App Store. It’s free!
The app works by mirroring the keyboard left-to-right when the spacebar is held down. After enabling the app, put one hand on the keyboard and type normally. When you would use the other hand, simply hold the spacebar while making the equivalent motion with the hand that's on the keyboard. Try it for a few minutes and you should get the hang of it. Try it for a few hours and you’ll probably be able to touch-type.
Once enabled, the app enables half-keyboard mode system-wide. If there is an app that doesn’t work, please file an issue.
This is a rough proof-of-concept that I threw together in a few hours. I got the some keyboard event tap code from Unshaky and ported it to Swift.
There are some non-letter keys that are poorly supported or unsupported. See code comments for details. But basic typing should work. If you notice a bug or a key combination doesn't work, please file a bug so we can track what needs to be done.
The app has been tested only with a US-English QWERTY layout. It shouldn’t be too hard to add other layout support, though. You’d have to add another mapping table in code, and figure out a way to select the mapping table based on the system’s currently selected keyboard layout.
It would be great if operating system venders added this as an accessibility feature. I’m releasing it under the MIT license in the hopes that they (or a third party) will take the idea and run with it. It’s easy enough to run it as an app, but building it into the system would be pretty slick. The app works well enough on macOS, but it would currently be impossible to ship on iPadOS (for use with external keyboards), except to allow one-handed typing in a single app. Only Apple can build this kind of functionality into the OS, or provide accessibility extension points to allow third-party developers to build such an app, but so far they have done neither.
(If you decide to ship something based on this, you might want to check with Matias to see if they have any patents or copyrights. The original patent appears to have expired in 2010, but I am not a lawyer.)
If you need to reset accessibility permissions, you can do so with:
tccutil reset Accessibility com.zeveisenberg.Keyb
Icon uses assets created by Herbert Spencer from the Noun Project.