Karabiner-Elements: Does not work on MacOS Catalina

When opening the KeyEventViewer, I am prompted to allow permission for “Input Monitoring” in the Privacy settings. This appears to be a new category. Opening Karabiner-Elements does not trigger this prompt. Even after manually adding Elements to the list, it still does not work.

Is there any other info I can provide or anything I can do to assist? I can attach my modifications if helpful, I have 1 simple and 1 complex. FWIW, Event Viewer does detect key presses.

EDIT: @saagarjha has figured out a workaround that gets it to work. Unless requested, I’ll leave this open until it’s officially fixed, hopefully that will help people find it.

Workaround: add /Library/Application Support/org.pqrs/Karabiner-Elements/bin/karabiner_grabber to the list.

Oh, and sudo killall karabiner_grabber.

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 196
  • Comments: 147 (14 by maintainers)

Most upvoted comments

For some reason the permission prompt is not showing up for me when I open Karabiner-EventViewer. And EventViewer says “EventViewer failed to observe keyboard devices”. So I cannot find out a way to use saagarjha’s method as stated above.

Anyway, turns out that you can add karabiner_grabber and karabiner_observer to Accessibility apps. And after sudo killall-ing both processes, Karabiner-Elements is working for me again.

Workaround: add /Library/Application Support/org.pqrs/Karabiner-Elements/bin/karabiner_grabber to the list.

Oh, and sudo killall karabiner_grabber.

@grigoryvp Try opening Karabiner-EventViewer.

For me, this fixed the problem:

  1. Add karabiner_grabber and karabiner_observer to the input monitoring whitelist:

image

  1. Run sudo killall karabiner_observer karabiner_grabber and wait ~10 seconds

I’m running macOS 10.15 Public Beta 2

Edit: also add karabiner_kextd to the input monitoring whitelist if you want capslock LED support

Adding karabiner_grabber works for me at first. But after I install the new version(12.4.8), It won’t work. And doing the same thing to karabiner_observer make it work again. Apple’s changing is make a lot of software unusable, LOL.

I’m on Catalina 10.15.7 and Karabiner-Elements 13.1.0, and have tried to follow these instructions to no avail. Here’s what I did:

  • [updated to Catalina]
  • [updated Karabiner-Elements]
  • saw the following instructions and opened system preferences, where I did not see the option to ‘Allow’

https://dl.dropboxusercontent.com/s/8z2hjgw4t94cs1f/Screenshot%202020-11-08%20at%2010.53.06.png?raw=1

  • clicked ‘Deactivate driver’ and restarted

  • clicked ‘Activate driver’, and got “Activation was failed. (error: 1)”

  • added karabiner_grabber, karabiner_observer, Karabiner-Elements, Karabiner-EventViewer, and Karabiner-DriverKit-VirtualHIDDeviceClient to Accessibility and Input Monitoring

  • ran the appropriate sudo killall commands

  • restarted Karabiner-Elements, only to see exactly the same messages

  • retried the above three times, just in case

So I can’t get it to work with any of the above steps. Anyone got any ideas?

Had to combine some steps from this step to make it work for. It will still be broken after waking up from sleep (see below for details). Works good enough for me until the amazing @tekezo can fix it for good - waiting for the Github sponsoring opportunity for this repo )

I needed to open Karabiner-EventViewer.app prompts me to add permission for Karabiner-EventViewer.app in the “Input Monitoring” category of “System Preferences > Security & Privacy > Privacy” settings. I could not add anything to that category before.

( thanks @saagarjha )

I then added

/Library/Application Support/org.pqrs/Karabiner-Elements/bin/karabiner_grabber
/Library/Application Support/org.pqrs/Karabiner-Elements/bin/karabiner_observer

( thanks @kylekeesling )

to that list and then I had to restart both processes. I do this using

or simply

sudo killall karabiner_observer karabiner_grabber

You have to do that every time your machine wakes up from sleep.

Edit ::

Prior method to kill the processes was

ps -ef | egrep karabiner_observer\|karabiner_grabber | grep -v grep |  awk '{print $2}' | xargs -I _ sudo kill _

Thanks @humblehacker . I think I just did killall karabiner_observer first which couldn’t find the process. Then I constructed the complicated solution above, without thinking that it actually just needed sudo

Thank you for feedback!

I guess you also have to do it with karabiner_observer though I didn’t confirm this issue, yet. (I’ll confirm soon.)

I can confirm this is fixed for me as of v12.6.2 mentioned in #1932. It survives a sleep for the first time since installing Catalina beta 1 😌

I don’t think it’s necessary to reinstall to see the fix, but this was my process in case others are interested:

  • (Catalina beta 6)
  • remove Karabiner by pressing uninstall in karabiner elements > preferences > misc
  • remove all manually added karabiner_* processes from Input Monitoring in system prefs
  • install Karabiner from the latest dmg
  • install the latest beta

It’s worth mentioning my keyboard settings were preserved after the reinstall.

Thanks @tekezo 🙏

Workaround: add /Library/Application Support/org.pqrs/Karabiner-Elements/bin/karabiner_grabber to the list.

Thank you! And Dear Apple, FUCK you for these insane restrictions.

OK, discovered my issue. After sleep, Karabiner does not work. I restarted many times, did sudo kill things. No way.

Same here. Works after reboot and stop working after sleep.

It stops working for me after some time, too

It seems to stop working when disconnecting / connecting an external usb keyboard for me. My temp workaround is restarting the grabber service: sudo killall karabiner_grabber

Tried the kilall and adding the apps from /Library..., still wasn’t working.

The only thing more I needed to do was to Add my Device to the list. In my case it was a VR BOX.

image

I currently have to run sudo killall karabiner_observer karabiner_grabber every time I return to my MacBook Pro after locking it - on Catalina public beta, with all current updates applied.

Running on Catalina Beta 2:

In order to fix the F-key/media playback buttons, I needed to add the following entries to the Security & Privacy > Privacy > Input Monitoring list:

  • /Library/Application Support/org.pqrs/Karabiner-Elements/bin/karabiner_grabber
  • /Library/Application Support/org.pqrs/Karabiner-Elements/bin/karabiner_observer

Hope that helps anyone else that may have been still struggling!

How to add anything into the “Input monitoring”? there is no “+” button like in other categories: Screenshot 2019-06-04 at 08 02 14

Yes, you do, based on the TCC warnings. I didn’t care enough to add it, since it wasn’t essential to getting Karabiner working (and sudo killall karabiner_observer, etc.)

How to add anything into the “Input monitoring”? there is no “+” button like in other categories: Screenshot 2019-06-04 at 08 02 14

maybe your mac system preference apps has a problem just remove /Library/Application\ Support/com.apple.TCC/TCC.db and reboot

OK, discovered my issue. After sleep, Karabiner does not work. I restarted many times, did sudo kill things. No way.

I upgraded my Mac to Catalina on Friday. I tried the steps below sequentially. 1- Update Karabiner to 12.7. Not worked 2- sudo things. The system couldn’t find grabber and observer so I think no effect. Not worked 3- Update Karabiner to 12.7.2 Not worked 4- Restart Mac 😃 Worked

FYI

@rfarine in my case the solution was to downgrade to 12.0.0, nothing else worked

From the docs

macOS Catalina Note #2
The problem is caused by macOS Catalina issues around DriverKit driver.

Karabiner-Elements v12.10.0 uses a legacy kernel extension, so it is not affected by the macOS issues. So, downgrading to Karabiner-Elements 12.10.0 also solves the issue.

Issue creator here, I’m going to close because it’s become a dumping ground for any random problem and the original issue of working on Catalina has long been fixed.

Any new issues, use issue search or create if necessary 👍

After over a year of working perfectly, I’m getting logs for the correct key in EventViewer, I’ve registered non_us_backslash to be replaced with grave_accent_and_tilde()`, but suddenly nothing is happening and I’m getting §.

I have the same issue. Karabiner was working now it’s not, all seems to be set up correctly:

image

FYI: my configs were not applying when I upgraded to Catalina Beta 7 because I my .config folder was symlinked to another folder within my iCloud Drive. Grabber was failing with this message:

[2019-09-08 14:55:48.973] [error] [grabber] failed to open /Users/john/.config/karabiner/karabiner.json

Had to move the .config folder back to ~. This used to work on Mojave, so it may be a change regarding iCloud Drive permissions, or something else.

Has anyone tried Karabiner Beta v12.5.5? The release notes say, it is supposed to support Catalina. I’d try it myself, but would like to prevent 6 hours of TimeMachine rollback, if possible 😉

Can confirm this problem still exist in Catalina beta4 (19A512f) with Karabiner-Elements 12.5.0 / 12.5.3, disable built-in keyboard option is still broken with all workaround above.

log:

[warning] [grabber] HHKB Professional (device_id:4296082982) is not observed yet. Please wait for a while.
[warning] [grabber] Apple Internal Keyboard / Trackpad (device_id:4295022378) is not observed yet. Please wait for a while.
[info] [grabber] (vendor_id:0x5ac, product_id:0x8600) (device_id:4295022412) is ignored.
[warning] [grabber] Apple Internal Keyboard / Trackpad (device_id:4295022386) is not observed yet. Please wait for a while.

Same problem here. Using workaround is helpful for a while but become not working after some time. Trying reinstall karabiner, delete and add grabber to Settings again, still can’t work. Log has some records: [warning] [grabber] (my all external mouse and keyboard) is not observed yet. Please wait for a while.

19A526H newest MacOS beta, still have to kill the processes on every wake

EDIT: With the Karabiner beta version 12.5.9, I no longer have to do it after every wake but only once on device start - big improvement

12.5.5 fix the issue, devices are grabbed properly.

Just updated to beta 4. The trick still works but now it lasts even shorter. However, now the app can capture my input all the time instead of stop working entirely. But it just can’t launch the functions should be triggered by my input.

macOS Catalina 10.15 Beta 3 Karabiner-Elements: 12.5.0

works fine after adding both to the security settings. Survives a restart

An older version had problems after a few minutes with the mapping. Sometimes even after a restart.

I have found that when you run an update ie move from beta 1 > beta 2 or beta 2 > beta 3 these get wiped and you have to add them again

+1 to @davidbailey00. sudo killall karabiner_observer karabiner_grabber worked for me sudo killall karabiner_grabber alone doesnt work on catalina beta 3

FYI, in addition to sleep, the problem also occurs when connecting a new keyboard, wired or bluetooth for me. Killing the two tasks after connecting fixes the problem as well.

Wouldn’t this work just as well?

sudo killall karabiner_observer karabiner_grabber
ps -ef | egrep karabiner_observer\|karabiner_grabber | grep -v grep |  awk '{print $2}' | xargs -I _ sudo kill _

This worked for me on beta 2 when nothing else did

For me, my caps_lock -> left_command + left_control + left_option keybind no longer works in 10.15 beta (karabiner elements version 12.4.8).

I followed the instructions, but still not working 😦

EDIT: After following these steps it did work! https://github.com/tekezo/Karabiner-Elements/issues/1867#issuecomment-498556572

Update: “shell_command”, like “open ‘/Applications/Safari.app’”, stops working after few minutes. Keyboard rebinding countinues to work. Any way to troubleshoot “shell_command” issue? Some logs or anything?

After over a year of working perfectly, I’m getting logs for the correct key in EventViewer, I’ve registered non_us_backslash to be replaced with grave_accent_and_tilde()`, but suddenly nothing is happening and I’m getting §.

This… Why is this happening?

@Dionisiy

almost all applications don’t work after update to 10.15.5 wtf?

I don’t experience any issues with 10.15.5

almost all applications don’t work after update to 10.15.5 wtf?

I continue to have a similar issue with Catalina, however sleeping is not a requirement. Specifically:

  1. External usb Keyboard is plugged in and working great with Karabiner.
  2. External keyboard is unplugged, then plugged in again.
  3. External keyboard key strokes are not detected.
  4. External keyboard is not listed under “devices” tab of karabiner.
  5. Quit Karabiner. killall karabiner_grabber && killall karabiner_observer.
  6. Unplug keyboard. Plug back in.
  7. Keyboard key strokes now work.
  8. Start karabiner and all is fine again.

Hi. I’ve upgraded specifically to Catalina to try to get Karabiner working, but no, still no result. Get also the message “EventViewer failed to observe keyboard devices” but have both Karabiner_grabber" and “observer” added to the Input monitoring, did the sudo killall for both, did a restart, but still this message when opening the Karabiner Eventviewer. So tips are welcome!

Thanks, Pascal

Working for me on Catalina 10.15 (GA release).

Still broken on Catalina b8, no buffer size available.

I still got no buffer space available error after i tried all of the solutions above.BTW,I upgraded to Catalina Beta 8

In 12.5.6, I still have to kill the processes after my Mac wakes up from sleep.

12.5.5 beta seems to work great even after waking up from sleeps. However, it doesn’t seem to work when it wakes up from sleeps longer than 5 minutes or so. Here is the log message where grabber failed.

[2019-07-29 16:35:10.301] [warning] [grabber] Apple Internal Keyboard / Trackpad (device_id:4294984559) is not observed yet. Please wait for a while. [2019-07-29 16:35:11.161] [warning] [grabber] (vendor_id:0x5ac, product_id:0x8600) (device_id:4294984647) is not observed yet. Please wait for a while.

It starts to work again after sudo killall. AND it works if device is put to sleep for a short period of time, where observer and grabber aren’t invoked.

It’s working for me as well. Haven’t tried restarting without doing the “sudo killall” action. Great thanks to whomever fixed this.

@revolter beta works fine for me

I will. <strike>Where could I download the beta from?</strike>

Yes, it finally works ❤️ But I had to add back my modification as the old one I think it was linked to a keyboard “instance” (physically, it’s the same one) the Elements is not recognising it anymore:

image

I can also see the same message and the function does not work.

Version 12.3.0 / Catalina Beta4(19A512f)

log : `[2019-07-26 18:51:14.707] [error] [observer] grabber_client error: Connection reset by peer [2019-07-26 18:51:14.707] [info] [observer] grabber_client is closed. [2019-07-26 18:51:14.858] [info] [observer] grabber_client is connected. [2019-07-26 18:51:14.858] [info] [observer] rescan devices… [2019-07-26 18:51:15.292] [warning] [grabber] Magic Keyboard (device_id:4295212220) is not observed yet. Please wait for a while. [2019-07-26 18:51:15.292] [warning] [grabber] USB Receiver (device_id:4294968430) is not observed yet. Please wait for a while. [2019-07-26 18:51:15.293] [warning] [grabber] Magic Mouse 2 (device_id:4294968730) is not observed yet. Please wait for a while. [2019-07-26 18:51:15.293] [warning] [grabber] USB Receiver (device_id:4294968428) is not observed yet. Please wait for a while.

Ditto with @FBeccaria. I added grabber and observer also to the accessibility list and no luck. The log continues to report “[warning] [grabber] Microsoft Sculpt Comfort Mouse (device_id:4294969413) is not observed yet. Please wait for a while.”

I tried the trick and it does not work (added k…grabber and k…observer to Input Monitor list and terminated both in Terminal with sudo killall several times). I am running version 12.5.3 and latest 10.15 Beta (19A512f).

So I followed the instructions here and it worked for a while, but stops working at some point. It might be when it goes to sleep - I haven’t noticed the pattern yet. Using sudo killall on grabber and observer, then restarting KE works.

First, any idea why it might stop working?

Second, while the workaround is necessary, what’s the smallest subset that should work? Just killing grabber? What restarts grabber? Does it restart on its own while the KE gui is running or does restarting the GUI do that? (I haven’t dug in yet. Sorry if this is an obvious question.)

@yangchenlarkin I doubt there’s an easy way to do this from the Terminal, since it would obviate the need for TCC in the first place.