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 activate
git 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/include
You 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
kmonad
quit with this error.
Encountered error in KeySource: [Cannot translate from mac keycode: (7,100)]
kmonad: [Cannot translate from mac keycode: (7,100)]
- Suspend breaks
kmonad
and it needs to be restarted. I keepActivity Monitor
around to killkmonad
with the mouse.
Took a lot of inspiration from your layout man, well done. Works freakin great. Can't wait for this to turn into muscle memory. So much better this way. This should be more widely adopted.