Ergonomic Mac Keyboard Setup

TLDR: I've tried to optimize my MacOS setup for my personal & work use. The setup uses Karabiner to setup: 1) split style customized mac keyboard. 2) thumb clusters on mac keyboard. 3) app switching. Karabiner config file: https://pastebin.com/awRX1kE7 Principles For someone who spends many hours at their computer for their day job it's important that you get comfortable with your setup. One portion of being comfrotable with your setup is having nice ergonomics that meet your needs. Most people use the default setup provided to them and never touch settings however I for myself I always had the urge that things were not comfortable using the default setup and I've been more picky with how things are configured. This has led me down the path of trying to optimize my setup for my personal needs. The progression of things that I've tried have gone from using the mac keyboard with default keybindings, to using a split keyboard to using, to using the mac keyboard with customized keybindings and improving those keybindings over time. Top level goals: Ergonomic Fast Comfortable Portable. Egonomic Home Row Home Row keys are keys that you lay your fingers on when you rest your fingers on the keyboard. If you are using the qwerty layout it's usually asdf for your left hand and jkl; for your right hand. Keeping keys that you use most often closes to where your fingers lie is important for quick pressing. Keys that are far away, like arrow keys, take time to navigate to if you need to constantly pick up your wrist to move to them and can cause strain and injury if you repeat the action enough times. Instead of accessing arrow keys by pressing the arrow keys directly we are able to 'layer' multiple key presses such that if we press a modifier key then press a key closer to your finger then it will equate to pressing a key that is further away from your fingers. This layering principle exists in the default keyboard with the shift keys. Pressing shift changes the behavior of other keys allowing the 'a' key to become 'A' or the '1' key to become the '!' key. The same principle can be applied when pressing other keys other than shift. For example, i've mapped arrow keys left down up right to be equal to holding down caps_lock and pressing h j k l respectively. This can be mapped for symbols, and number similarily. Thumb Cluster Thumb clusters are important for the Home Row principle. Thumb clusters allow you to access most frequently accessed keys with your strongest finger, the thumb. Thumb keys can be regular keys like delete or enter, or they can be used to activate layers. With the default keyboard with no configuration your left and right thumb share the same spacebar key. This is not ideal as your thumbs could be used to access different keys. Keyboard Driven Similar to home row setup it's nice to have a workflow that allows you to keep your hands on the keyboard for navigating instead of moving to a mouse. Some things that I've adopted are vim keybindings and utilizing keyboard shortcuts as much as possible for navigating between applications and within applications. Touch Typing Touch Typing is important for being fast, being able to translate what you want to type out without thinking about typing and looking at pressing when you type is important for increasing your speed. With a new keyboard setup there will always be a learning curve, but once you set the foundation then you can let your muscles and brain adapt. Portable As someone who works from home and goes to office for work it's important that I can have a portable setup. Keyboards like Kinesis, Moonlander, Ergodox provide the physical setup to be ergonomic but are too big to carry around and are too expensive to have one keyboard at the office and one at home. I would like to say that my simple mac setup provides 80% of the ergonmics at 0% of the cost and is more portable by just using the laptop keyboard. The ergonomic principles are similar and implementation and physical placement and attribute between the laptop keyboard and the ergonomic keyboards are different. That said I haven't used one of the popular ergonomic keyboards before, so I may be wrong. Keyboard Setup Alright, so now that we understand the principles we can jump into the setup. I use Karabiner as the driver for keyboard customizations. Karabiner intercepts hardware keystrokes and sends keystrokes to the computer allowing me to configure Karabiner to have a flexible setup and map key(s) presses to other keys(s) or commands. Split Keyboard I use the qwerty keyboard layout. My left hand is typically layed out on asdf but my right hand moved to the right by two keys such that my pointer finger is resting on the physical 'L' key and pinky is on my 'Return/Enter' key. The physical 'L' key is not actual mapped to the keystroke 'L' when I press it but is in

May 5, 2025 - 16:06
 0
Ergonomic Mac Keyboard Setup

TLDR: I've tried to optimize my MacOS setup for my personal & work use. The setup uses Karabiner to setup:
1) split style customized mac keyboard.
2) thumb clusters on mac keyboard.
3) app switching.

Karabiner config file: https://pastebin.com/awRX1kE7

Principles

For someone who spends many hours at their computer for their day job it's important that you get comfortable with your setup. One portion of being comfrotable with your setup is having nice ergonomics that meet your needs.

Most people use the default setup provided to them and never touch settings however I for myself I always had the urge that things were not comfortable using the default setup and I've been more picky with how things are configured.

This has led me down the path of trying to optimize my setup for my personal needs. The progression of things that I've tried have gone from using the mac keyboard with default keybindings, to using a split keyboard to using, to using the mac keyboard with customized keybindings and improving those keybindings over time.

Top level goals:

  • Ergonomic
    • Fast
    • Comfortable
  • Portable.

Egonomic

Home Row

Home Row keys are keys that you lay your fingers on when you rest your fingers on the keyboard. If you are using the qwerty layout it's usually asdf for your left hand and jkl; for your right hand.

Keeping keys that you use most often closes to where your fingers lie is important for quick pressing. Keys that are far away, like arrow keys, take time to navigate to if you need to constantly pick up your wrist to move to them and can cause strain and injury if you repeat the action enough times.

Instead of accessing arrow keys by pressing the arrow keys directly we are able to 'layer' multiple key presses such that if we press a modifier key then press a key closer to your finger then it will equate to pressing a key that is further away from your fingers. This layering principle exists in the default keyboard with the shift keys. Pressing shift changes the behavior of other keys allowing the 'a' key to become 'A' or the '1' key to become the '!' key. The same principle can be applied when pressing other keys other than shift. For example, i've mapped arrow keys left down up right to be equal to holding down caps_lock and pressing h j k l respectively. This can be mapped for symbols, and number similarily.

Thumb Cluster

Thumb clusters are important for the Home Row principle. Thumb clusters allow you to access most frequently accessed keys with your strongest finger, the thumb. Thumb keys can be regular keys like delete or enter, or they can be used to activate layers.

With the default keyboard with no configuration your left and right thumb share the same spacebar key. This is not ideal as your thumbs could be used to access different keys.

Keyboard Driven

Similar to home row setup it's nice to have a workflow that allows you to keep your hands on the keyboard for navigating instead of moving to a mouse.

Some things that I've adopted are vim keybindings and utilizing keyboard shortcuts as much as possible for navigating between applications and within applications.

Touch Typing

Touch Typing is important for being fast, being able to translate what you want to type out without thinking about typing and looking at pressing when you type is important for increasing your speed.
With a new keyboard setup there will always be a learning curve, but once you set the foundation then you can let your muscles and brain adapt.

Portable

As someone who works from home and goes to office for work it's important that I can have a portable setup. Keyboards like Kinesis, Moonlander, Ergodox provide the physical setup to be ergonomic but are too big to carry around and are too expensive to have one keyboard at the office and one at home.

I would like to say that my simple mac setup provides 80% of the ergonmics at 0% of the cost and is more portable by just using the laptop keyboard.

The ergonomic principles are similar and implementation and physical placement and attribute between the laptop keyboard and the ergonomic keyboards are different.

That said I haven't used one of the popular ergonomic keyboards before, so I may be wrong.

Keyboard Setup

Alright, so now that we understand the principles we can jump into the setup.

I use Karabiner as the driver for keyboard customizations. Karabiner intercepts hardware keystrokes and sends keystrokes to the computer allowing me to configure Karabiner to have a flexible setup and map key(s) presses to other keys(s) or commands.

Split Keyboard

I use the qwerty keyboard layout.
My left hand is typically layed out on asdf but my right hand moved to the right by two keys such that my pointer finger is resting on the physical 'L' key and pinky is on my 'Return/Enter' key.

The physical 'L' key is not actual mapped to the keystroke 'L' when I press it but is instead mapped to 'J'. I've shifted all keys that I would usually access with my right hand over by two. So 'I' is mapped to 'P' and 'O' is mapped to '[' and 'P' is mapped to ']'

I've basically moved all my symbols & 'Return' into a separate layer which I'll discuss later in the Symbols Layer.

The original purpose for moving my right hand over by 2 keys was so that my thumbs could access the right 'Command' and 'Option' keys more easily. I find that this wider distance between my left and right hand is more comfortable for me and allows me to access certain thumb keys for more easily which I discuss in the next section.

Thumb Clusters

I primarily use 4 keys for my thumb cluster. My left hand presses left command and spacebar while my right hand accesses my right command and option. These keys are the closest keys for my thumbs and my thumbs do not need to stretched in order to reach these keys.

Having more keys accessible for my thumbs allows for creative layering when I press a combination of keys.

  • Left command isn't remapped.
  • Spacebar is mapped to my symbols layer.
  • Right command is mapped to my space key.
  • Right option key is mapped to my numbers layer.

Symbols Layer

To access most of my symbols I press space bar and one of my letter keys. There are quite a few symbols so I won't bore you with the specifics, but talk over how I decided to map things where.

When learning to touch type it takes time to build the muscle memory. One way to build muscle memory is to visualize what key mappings should be before you creating the mapping.

For example for me I made the connection between hyphen character '-' and the letter 'h'. So in order to reach '-' I hold spacebar and then press 'h'. I do the similar between '*' and 's', 'd' and delete key.
Another method I use is to group similar keys together. For example all the different quotes `'" are mapped to spacebar hold then pressing qwe respectively. Or my different brackets <> {} () [] are mapped to my right hand -= io kl /.

Some keys don't have any reason to be there. But generally my most keys are mapped closest to my fingers. My most used symbols '.', ',', tab and return, are mapped to spacebar 'j', 'f', 'a', and 'y'. I remapped my 'y' key to the return key since 'y' is difficult to access otherwise.

At the end of the day you should always find what works for you and to configure how you like it. So I encourage that if you decide to implement any of this that you picture what works for you.

Number Layer

Numbers are accessible via pressing right option and then my home row keys. Pressing option-a maps to 1, s to 2, d to 3, f to 4, g to 5, h to 6, j to 7, k to 8, l to 9, y to 0.

The symbols when pressing shift then are mapped to the keys above the home row asdfjkly. I kept the mapping between number and symbol such that option 'q' maps to '!'.

There are some duplicates between the symbols that would exist in symbols layers and number layers.

Capslock Layer

My capslock doesn't work to capitalize characters as I opt to use my left shift. If I press caps by itself it becomes the 'escape' key. This is helpful as a vim keybindings user to move from insert mode to normal mode.
Pressing capslock with other keys produces different character events. For many keys, caps is just a ctrl replacement. So capslock-f is ctrl-f. This allows me to be able to hit ctrl- without stretching my fingers. As mentioned earlier, holding capslock then pressing hjkl keys maps to arrow keys.

Keyboard Driven

When jumping between applications most people use cmd-tab to switch between their windows. Tab ordering is dynmaic and changes with the most recently used applications coming up first. So when trying to jump to an application I need to analyze the applications that I have open and then hit tab multiple times to reach the application.

It is preferable to directly jump to the application with a shortcut. I've setup shortcuts for different applications that I commonly use. Left-cmd option e opens up my editor. Left-cmd option g opens up google chrome.

Try it out yourself and tell me what you think!

I didn't cover all the details of the layout. So if you are interested in the setup you can go ahead and try it out for yourself.

Once you've installed Karabiner place the Karabiner config in your ~/.config/karabiner/karabiner.json file.

To disable to keybindings you can close Karabiner or put in an empty config {} and save.