Karabiner and KMonad are great open source software. Don't forget to support the authors and contributors.
If you want to try home row mods on OSX, don't use Karabiner but KMonad.
KMonad is harder at the beginning but then it is easier than Karabiner.
Creating layers in KMonad is trivial and without drawbacks, while it is impossible in Karabiner without drawbacks.
You need to compile a PR of the project. Install https://github.com/pqrs-org/Karabiner-DriverKit-VirtualHIDDevice/releases/download/v2.1.0/Karabiner-DriverKit-VirtualHIDDevice-2.1.0.pkg
Install
/Applications/.Karabiner-VirtualHIDDevice-Manager.app/Contents/MacOS/Karabiner-VirtualHIDDevice-Manager activategit clone --recursive https://github.com/vosaica/kmonad.git
cd kmonad
git checkout Upgrade-DriverKit-VirtualHIDDevice
git submodule update --init
stack build --flag kmonad:dext --extra-include-dirs=c_src/mac/Karabiner-DriverKit-VirtualHIDDevice/include/pqrs/karabiner/driverkit:c_src/mac/Karabiner-DriverKit-VirtualHIDDevice/src/Client/vendor/includeYou need to see the virtual keyboard. Try to restart OSX if it doesn't appear.

I use KeyCastr to have visual feedback
# create a new file for writing - visudo uses the vim editor by default.
# go read about this if you have no idea what is going on.
sudo visudo -f /private/etc/sudoers.d/kmonad
# input the line below into the file you are editing.
# replace <kmonad> with the path to the kmonad binary (output of: which kmonad).
# replace <user> with your username (output of: whoami).
# replace <hash> with the sha256 hash of the kmonad binary (output of: shasum -a 256 $(which kmonad)).
# this hash must be updated manually after running brew upgrade.
<user> ALL=(root) NOPASSWD: sha256:<hash> <kmonad>If it works, this will be the output
❯ sudo kmonad .kmonad.kbd
connected
driver_loaded 0
driver_version_matched 0
driver_loaded 1
driver_version_matched 1
- The european MBP keyboard is not recognized correctly and this symbol (§) makes
kmonadquit with this error.
Encountered error in KeySource: [Cannot translate from mac keycode: (7,100)]
kmonad: [Cannot translate from mac keycode: (7,100)]- Suspend breaks
kmonadand it needs to be restarted. I keepActivity Monitoraround to killkmonadwith the mouse.

Thanks for the write up! I'm wondering if you would have any idea why the installation will go smoothly but when I try to run the kmonad command I receive the
command not founderror?