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.
I'm having a problem not sure if someone else notices it.
For all the keys with the
tap-hold-next-release
trying to do an uppercase letter (ASDFLKJ) fails sometimes when typing fast.I find out that this happens when the sequence is for example for an uppercase "A" instead of doing:
that works with kmonad, I get the "A" from the key with the
tap-hold-next-release
binding.However I do sometimes:
and that produces a "a" in lowercase. without kmonad running (or if I do that on other keys without the
tap-hold-next-release
) the uppercase letter is correctly produced.This is the only reason I cannot use kmonad. I run into this issue so often that makes me feel triping on stones everything I am typing.