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.
@devxalted status?