Once upon a time I got really into ergonomics and thought I wanted a split-keyboard. Unfortunately I realized I often do bad things like typing 'Y' with my left hand or other cross-overs. Often if it's a quick sentence I'll type it 100% with my left hand if my right hand is on the mouse/trackpad, etc. These "cross-over" habits make a split-keyboard unrealistic for me to use.
So, for Linux - I ended up just plugging in two cheap Dell keyboards and using them together. I've seen many other people do similar things. I took a spare heat-sink that was about the right height and raised the right-most keyboard so that it sits over the arrow/numpad of the left-most keyboard. This allows my hands (when sitting on home-row keys) to be squarely aligned with the armrests of most office chairs.
This arrangement allows for either hand to use either keyboard, allows me to "cross-over" without having to reach across a barrier for "middle" letters like TYU, maintains a numpad (on the far-right), and creates a quite comfortable ergonomic situation. If I weren't so cheap - the perfect arrangement would actually be for the matching-leftmost keyboard to not have arrows/numpad so that the right doesn't have to be raised - but I can forgo a lot in the name of 'free'.
Unfortunately, on OSX - cross-modifier keys did not work. When I would use my left-hand to press 'shift' but my right-hand for 'J' - the modifier would not apply to the other keyboard.
Enter Karabiner.app: This application - by default - combines multiple keyboards such that cross-modifiers "just work".
The only other modifications I did in this application are the following rebinds:
- left-alt = command
- left-super (windows) = option
- capslock = control (although this one I do for all keyboards - even the default laptop/OSX keyboard - and does not require Karabiner to be done)