-
-
Notifications
You must be signed in to change notification settings - Fork 837
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MacOS 10.15.4 warning: Legacy extensions need to be updated #2196
Comments
|
Same. This is because Apple is planning to deprecate kernel extensions and move to a new framework called DriverKit. |
|
document from apple about how to migrate it to new API https://developer.apple.com/support/kernel-extensions/ |
|
This quite reminds me when Keyremap4macbook (was it renamed to Karabiner already at that time?) stopped working on the latest macOSes, and had to wait for several years 😖 to see complete-comeback of the Karabiner Elements with ThumbSense. So this is it, yet again. Do you have any thoughts or plans with this currently, @tekezo ? |
|
😭 |
|
Just as a PSA: macOS has built-in support for doing simple keyboard remapping (since version 10.12 Sierra). For example, to remap Right Option key to Delete Forward key, create a text file named local.RemapRightOptionToDeleteForward.plist with the following content: <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>local.RemapRightOptionToDeleteForward</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/hidutil</string>
<string>property</string>
<string>--set</string>
<string>{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x7000000E6,"HIDKeyboardModifierMappingDst":0x70000004C}]}</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>Then copy the file to: ...and log out & back in. See Apple's Technical Note TN2450 in order to figure out how to configure other remappings and then replace the "UserKeyMapping" key-value pairs in the aforementioned plist file accordingly. |
|
For sure gonna have to stay with Catalina as long as the migration is not complete. |
This seems interesting, but not a replacement. For example, I want to switch around Anyway, I'm hopeful that this app can continue to provide its features for future versions of macOS. |
Interesting approach! One question: I want to replace CAPS_LOCK with _DOUBLE__QUOTES. Is there a way to replace caps-lock with shift+ single-quote (= double quote)? |
@mcdado Option-click the Apple menu and choose System Information. Find your external keyboard in the Hardware section, either under Bluetooth or USB (depending on how it's connected). For example, information for my wired keyboard appears under Hardware > USB > Apple Keyboard and for my wireless keyboard under Hardware > Bluetooth > Magic Keyboard. Under your keyboard's section, find the value for its Product ID and replace the value <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>local.SwapLeftOptionAndLeftCommand</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/hidutil</string>
<string>property</string>
<string>--matching</string>
<string>{"ProductID":0x1234}</string>
<string>--set</string>
<string>
{"UserKeyMapping":[
{"HIDKeyboardModifierMappingSrc":0x7000000E2,"HIDKeyboardModifierMappingDst":0x7000000E3},
{"HIDKeyboardModifierMappingSrc":0x7000000E3,"HIDKeyboardModifierMappingDst":0x7000000E2}
]}
</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>Save it as this text file: ~/Library/LaunchAgents/local.SwapLeftOptionAndLeftCommand.plist And finally, either log out or execute the following in Terminal:
@DJF3 It doesn't seem to be possible to do that with hidutil. But I could very well be wrong. |
|
I'm working to migration from the old kext. |
|
How cool! Hearing that, I can wait forever until then. BTW, this is one interesting case that is also trying to migrate: blog.obdev.at/little-snitch-and-the-deprecation-of-kernel-extensions |
I don't see any mention of modifier keys -- is this only for 1-to-1 key remapping? Or is there a way to support e.g. Caps Lock -> shift + ctrl + option + cmd ? |
|
one of the big benefits out of the box is the ability to press shift one keyboard and another key on another. such as hold ⇧ on keyboard A while pressing 1 on keyboard B would produce !. |
|
Does anybody or @tommit know how to also remap the right Option and Command key? I tried using this, but it doesn't work: Btw, why is the hex starting with |
@herrernst Your snippet is correct. So I don't know why it doesn't work on your end. On my mac, executing the following command on Terminal swaps left Option with left Command, and right Option with right Command: |
Is it possible to disable a key or all keys of the built-in keyboard? Edit: Tried wth "HIDKeyboardModifierMappingDst":0, works fine. |
That's actually awesome! For me that's all I needed from this. |
|
@tommit from https://developer.apple.com/library/archive/technotes/tn2450/_index.html :
In practice, this means until you disconnect an external keyboard. Often that translate to each time you login, if you're using a laptop and it goes to sleep. I did some googling and found out that launchd has the concept of triggering jobs in response to events: https://stackoverflow.com/a/12259762/1092853 I made these modification so that the launchd job that you shared here can be retriggered each time the keyboard is plugged in: <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>local.SwapLeftOptionAndLeftCommand</string>
<key>LaunchEvents</key>
<dict>
<key>com.apple.iokit.matching</key>
<dict>
<key>com.apple.usb.device</key>
<dict>
<key>IOMatchLaunchStream</key>
<true />
<key>IOProviderClass</key>
<string>IOUSBDevice</string>
<key>idProduct</key>
<string>*</string>
<key>idVendor</key>
<string>*</string>
</dict>
</dict>
</dict>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/hidutil</string>
<string>property</string>
<string>--matching</string>
<string>{"ProductID":0xc33a}</string>
<string>--set</string>
<string>
{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x7000000E2,"HIDKeyboardModifierMappingDst":0x7000000E3},{"HIDKeyboardModifierMappingSrc":0x7000000E3,"HIDKeyboardModifierMappingDst":0x7000000E2}]}</string>
</array>
<key>RunAtLoad</key>
<true />
</dict>
</plist>Of course |
|
@mcdado By evidence of |
In the pdf linked above there is some informations about Bluetooth devices; check page 26 and... good luck! |
|
@mcdado After searching around, I took a little bit from https://stackoverflow.com/questions/44546021/mac-launch-command-when-device-connected-by-bluetooth and came up with this: Close enough, I'd say. :) Bonus content: Bash script for key remapping: |
If I'm understanding the goal here (e.g. use a Windows keyboard with a Mac), macOS has us covered and no |
|
The problem is that it also affects the right side option key, which is Alt Gr in many locales. And on my particular keyboard there's no Windows key on the right side. |
|
how can i disable left-shift? |
|
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
|
@tekezo |
Yes, I'm working to switch DriverKit from kext at https://github.com/pqrs-org/Karabiner-DriverKit-VirtualHIDDevice. The DriverKit extension has been completed and I want to release new Karabiner-Elements release before macOS Big Sur is shipped. |
|
Thank you for the update and the work you do on this great piece of software, the comment was largely because the bot had marked the issue as stale. I feel a little bad about ping someone on software when I am not willing or able to offer assistance but CPP is not one of the languages I am familiar with and by all accounts not something one can pick up in quick order in a useful fashion. I am happy to offer testing or other assistance if that would be useful. |
|
Next Karabiner-Elements replaced the legacy system extension with DriverKit. |
|
Thank you for your work @tekezo! |
https://support.apple.com/en-us/HT210999

Appreciate your help. Thanks.
The text was updated successfully, but these errors were encountered: