Allow button on System Preferences > Security & Privacy does not work.

The allow button on System Preferences > Security & Privacy should be hidden after you click it.
If the button does not hide after click, you did not succeed to click it.

It's because macOS blocks the click if you are using an app which intercepts mouse events.
You have to quit them before pressing the allow button.

Apps which prevent the click:
  • MagicPrefs
  • SteerMouse
  • Witch
  • If you are using macOS from remote via Screen Sharing, you cannot click the allow button.
  • etc.

The last resort

You can press Allow button by starting your Mac in safe mode if you cannot find such apps that intercept mouse events.
Because any extra apps which prevent clicking the Allow button is not launched automatically in safe mode.

The procedure is follows.

  1. Download Karabiner-Elements before restarting your Mac.
  2. Restart your Mac in safe mode. (Press and hold the Shift key at boot.)
  3. Reinstall Karabiner-Elements from downloaded file.
  4. Open System Preferences and confirm the Allow button is shown.
    If the Allow button is hidden, close System Preferences and open it again.
  5. Click the Allow button.
  6. Restart your Mac in normal mode.


Touch Bar does not change to f1-f12 when I press the fn key.

It's an issue of macOS, and unfortunately, Karabiner-Elements cannot avoid this issue.
Instead, please change fn+number keys to function keys in Karabiner-Elements configuration.

  1. Import Map fn + number keys to function keys
  2. Enable Map fn + number keys to their corresponding function keys.
  3. You can use f1-f12 keys by fn+number keys.
Detail of problem

The fn key events are ignored by Touch Bar since the following facts.

  1. Touch Bar accepts the fn key event only from the build-in keyboard.
  2. The fn key events are sent from Karabiner's virtual keyboard when Karabiner-Elements is running.

Unfortunately, posting input events via own virtual keyboard is the only way to accomplish the stable input event modification.
In other words, we cannot post the fn key event through the built-in keyboard if we want to change key events stably.


Control-eject shortcut does not work when Karabiner-Elements is running.

It's an issue of macOS, and unfortunately, Karabiner-Elements cannot avoid this issue.
Instead, please change fn+escape to eject and use control+fn+escape (== control+eject) shortcut.

  1. Import Change escape key
  2. Enable Change fn+escape to eject.
  3. You can use control+fn+escape as control+eject.


karabiner.json is not owned by a valid user error message in log

If the following error message is appeared in log, your home directory owner ship is not valid.

[warning] [grabber] /Users/.../karabiner.json is not owned by a valid user.

The cause is that you are using an external storage and locating your home directory into the volume.
You have to enable ownership on the external volume by the following command in

sudo diskutil enableOwnership disk99999s99999

(See diskutil manual for detail.)


How to change mouse buttons

Karabiner-Elements does not modify mouse devices by default.
You have to enable your mouse on Karabiner-Elements Preferences > Devices.

Then, use Simple Modifications to assign a key to a button or use Complex Modifications for more advanced usage.


Installed files

Karabiner-Elements installs files into the following locations.

System files
  • /Applications/
  • /Applications/
  • /Library/Application Support/org.pqrs/Karabiner-Elements
  • /Library/Application Support/org.pqrs/Karabiner-VirtualHIDDevice
  • /Library/Application Support/org.pqrs/config
  • /Library/Application Support/org.pqrs/tmp
  • /Library/LaunchDaemons/org.pqrs.karabiner.karabiner_grabber.plist
  • /Library/LaunchAgents/org.pqrs.karabiner.karabiner_console_user_server.plist
  • /var/log/karabiner
User files
  • ~/.config/karabiner
  • ~/.local/share/karabiner